diff --git a/CHANGELOG.md b/CHANGELOG.md index ac3cc2f..583e52d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Removed - Python 3.6 support + - Support for text file objects as `load` input. Use binary file objects instead. ## 1.2.2 diff --git a/README.md b/README.md index c1faec4..3db4ffb 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,6 @@ with open("path_to_file/conf.toml", "rb") as f: The file must be opened in binary mode (with the `"rb"` flag). Binary mode will enforce decoding the file as UTF-8 with universal newlines disabled, both of which are required to correctly parse TOML. -Support for text file objects is deprecated for removal in the next major release. ### Handle invalid TOML diff --git a/tests/test_misc.py b/tests/test_misc.py index 2eec882..032c8ff 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -3,8 +3,6 @@ from decimal import Decimal as D from pathlib import Path -import pytest - import tomli @@ -14,13 +12,6 @@ def test_load(tmp_path): file_path = tmp_path / "test.toml" file_path.write_text(content) - # Test text mode - with open(file_path, encoding="utf-8", newline="") as f: - with pytest.warns(DeprecationWarning): - actual = tomli.load(f) # type: ignore[arg-type] - assert actual == expected - - # Test binary mode with open(file_path, "rb") as bin_f: actual = tomli.load(bin_f) assert actual == expected diff --git a/tomli/_parser.py b/tomli/_parser.py index 29d221f..ec7c749 100644 --- a/tomli/_parser.py +++ b/tomli/_parser.py @@ -4,7 +4,6 @@ import string from types import MappingProxyType from typing import Any, BinaryIO, NamedTuple -import warnings from tomli._re import ( RE_DATETIME, @@ -53,17 +52,7 @@ class TOMLDecodeError(ValueError): def load(fp: BinaryIO, *, parse_float: ParseFloat = float) -> dict[str, Any]: """Parse TOML from a binary file object.""" - s_bytes = fp.read() - try: - s = s_bytes.decode() - except AttributeError: - warnings.warn( - "Text file object support is deprecated in favor of binary file objects." - ' Use `open("foo.toml", "rb")` to open the file in binary mode.', - DeprecationWarning, - stacklevel=2, - ) - s = s_bytes # type: ignore[assignment] + s = fp.read().decode() return loads(s, parse_float=parse_float)