From 80dbfed728d3b729c325e3fb39c4fc962e30d7ce Mon Sep 17 00:00:00 2001 From: eggplants Date: Fri, 1 Apr 2022 08:15:31 +0900 Subject: [PATCH 1/6] Drop Python 3.5 and 3.6 --- .github/workflows/test.yml | 2 +- setup.py | 4 +--- tox.ini | 6 +----- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5135ae4f..4f231b18 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ jobs: matrix: os: - ubuntu-latest - python-version: [3.5, 3.6, 3.7, 3.8, 3.9, "3.10", "3.11.0-alpha - 3.11", pypy3] + python-version: ["3.7", "3.8", "3.9", "3.10", "3.11.0-alpha - 3.11", pypy3] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} diff --git a/setup.py b/setup.py index 5a35d188..bcf1b0dc 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,7 @@ def read_files(files): package_data={ 'dotenv': ['py.typed'], }, - python_requires=">=3.5", + python_requires=">=3.7", extras_require={ 'cli': ['click>=5.0', ], }, @@ -45,8 +45,6 @@ def read_files(files): 'Development Status :: 5 - Production/Stable', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/tox.ini b/tox.ini index 3d7e1b60..d0284143 100644 --- a/tox.ini +++ b/tox.ini @@ -3,8 +3,6 @@ envlist = lint,py{35,36,37,38,39,310,311},pypy3,manifest,coverage-report [gh-actions] python = - 3.5: py35, coverage-report - 3.6: py36, coverage-report 3.7: py37, coverage-report 3.8: py38, coverage-report 3.9: py39, coverage-report @@ -18,7 +16,7 @@ deps = coverage sh click - py{35,36,37,38,39,310,311,py3}: ipython + py{37,38,39,310,311,py3}: ipython commands = coverage run --parallel -m pytest {posargs} [testenv:lint] @@ -33,8 +31,6 @@ commands = mypy --python-version=3.9 src tests mypy --python-version=3.8 src tests mypy --python-version=3.7 src tests - mypy --python-version=3.6 src tests - mypy --python-version=3.5 src tests [testenv:manifest] deps = check-manifest From 91a1d1d6042e95178a3d4a29971d1a7d09b48ab6 Mon Sep 17 00:00:00 2001 From: eggplants Date: Fri, 1 Apr 2022 08:22:02 +0900 Subject: [PATCH 2/6] fix: use os.PathLike as type hint without checking python version --- src/dotenv/main.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/dotenv/main.py b/src/dotenv/main.py index 78410660..7516d474 100644 --- a/src/dotenv/main.py +++ b/src/dotenv/main.py @@ -14,12 +14,6 @@ logger = logging.getLogger(__name__) -if sys.version_info >= (3, 6): - _PathLike = os.PathLike -else: - _PathLike = str - - def with_warn_for_invalid_lines(mappings: Iterator[Binding]) -> Iterator[Binding]: for mapping in mappings: if mapping.error: @@ -33,14 +27,14 @@ def with_warn_for_invalid_lines(mappings: Iterator[Binding]) -> Iterator[Binding class DotEnv(): def __init__( self, - dotenv_path: Optional[Union[str, _PathLike]], + dotenv_path: Optional[Union[str, os.PathLike[str]]], stream: Optional[IO[str]] = None, verbose: bool = False, encoding: Union[None, str] = None, interpolate: bool = True, override: bool = True, ) -> None: - self.dotenv_path = dotenv_path # type: Optional[Union[str, _PathLike]] + self.dotenv_path = dotenv_path # type: Optional[Union[str, os.PathLike[str]]] self.stream = stream # type: Optional[IO[str]] self._dict = None # type: Optional[Dict[str, Optional[str]]] self.verbose = verbose # type: bool @@ -113,7 +107,7 @@ def get(self, key: str) -> Optional[str]: def get_key( - dotenv_path: Union[str, _PathLike], + dotenv_path: Union[str, os.PathLike[str]], key_to_get: str, encoding: Optional[str] = "utf-8", ) -> Optional[str]: @@ -127,7 +121,7 @@ def get_key( @contextmanager def rewrite( - path: Union[str, _PathLike], + path: Union[str, os.PathLike[str]], encoding: Optional[str], ) -> Iterator[Tuple[IO[str], IO[str]]]: try: @@ -146,7 +140,7 @@ def rewrite( def set_key( - dotenv_path: Union[str, _PathLike], + dotenv_path: Union[str, os.PathLike[str]], key_to_set: str, value_to_set: str, quote_mode: str = "always", @@ -195,7 +189,7 @@ def set_key( def unset_key( - dotenv_path: Union[str, _PathLike], + dotenv_path: Union[str, os.PathLike[str]], key_to_unset: str, quote_mode: str = "always", encoding: Optional[str] = "utf-8", @@ -310,7 +304,7 @@ def _is_interactive(): def load_dotenv( - dotenv_path: Union[str, _PathLike, None] = None, + dotenv_path: Union[str, os.PathLike[str], None] = None, stream: Optional[IO[str]] = None, verbose: bool = False, override: bool = False, @@ -348,7 +342,7 @@ def load_dotenv( def dotenv_values( - dotenv_path: Union[str, _PathLike, None] = None, + dotenv_path: Union[str, os.PathLike[str], None] = None, stream: Optional[IO[str]] = None, verbose: bool = False, interpolate: bool = True, From 1b902f410465ab87aecf4b4d53a0978fa7ef1399 Mon Sep 17 00:00:00 2001 From: Saurabh Kumar Date: Sat, 23 Jul 2022 10:57:31 +0530 Subject: [PATCH 3/6] Fix os.PathLike annotation --- src/dotenv/main.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/dotenv/main.py b/src/dotenv/main.py index 7516d474..e16c770d 100644 --- a/src/dotenv/main.py +++ b/src/dotenv/main.py @@ -27,14 +27,14 @@ def with_warn_for_invalid_lines(mappings: Iterator[Binding]) -> Iterator[Binding class DotEnv(): def __init__( self, - dotenv_path: Optional[Union[str, os.PathLike[str]]], + dotenv_path: Optional[Union[str, os.PathLike]], stream: Optional[IO[str]] = None, verbose: bool = False, encoding: Union[None, str] = None, interpolate: bool = True, override: bool = True, ) -> None: - self.dotenv_path = dotenv_path # type: Optional[Union[str, os.PathLike[str]]] + self.dotenv_path = dotenv_path # type: Optional[Union[str, os.PathLike]] self.stream = stream # type: Optional[IO[str]] self._dict = None # type: Optional[Dict[str, Optional[str]]] self.verbose = verbose # type: bool @@ -107,7 +107,7 @@ def get(self, key: str) -> Optional[str]: def get_key( - dotenv_path: Union[str, os.PathLike[str]], + dotenv_path: Union[str, os.PathLike], key_to_get: str, encoding: Optional[str] = "utf-8", ) -> Optional[str]: @@ -121,7 +121,7 @@ def get_key( @contextmanager def rewrite( - path: Union[str, os.PathLike[str]], + path: Union[str, os.PathLike], encoding: Optional[str], ) -> Iterator[Tuple[IO[str], IO[str]]]: try: @@ -140,7 +140,7 @@ def rewrite( def set_key( - dotenv_path: Union[str, os.PathLike[str]], + dotenv_path: Union[str, os.PathLike], key_to_set: str, value_to_set: str, quote_mode: str = "always", @@ -189,7 +189,7 @@ def set_key( def unset_key( - dotenv_path: Union[str, os.PathLike[str]], + dotenv_path: Union[str, os.PathLike], key_to_unset: str, quote_mode: str = "always", encoding: Optional[str] = "utf-8", @@ -304,7 +304,7 @@ def _is_interactive(): def load_dotenv( - dotenv_path: Union[str, os.PathLike[str], None] = None, + dotenv_path: Union[str, os.PathLike, None] = None, stream: Optional[IO[str]] = None, verbose: bool = False, override: bool = False, @@ -342,7 +342,7 @@ def load_dotenv( def dotenv_values( - dotenv_path: Union[str, os.PathLike[str], None] = None, + dotenv_path: Union[str, os.PathLike, None] = None, stream: Optional[IO[str]] = None, verbose: bool = False, interpolate: bool = True, From e3b108ef04b6ec2ae58c268e7e0e088a49058dc3 Mon Sep 17 00:00:00 2001 From: Saurabh Kumar Date: Sat, 23 Jul 2022 11:02:48 +0530 Subject: [PATCH 4/6] Fix flake8 --- src/dotenv/main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dotenv/main.py b/src/dotenv/main.py index e16c770d..05d377a9 100644 --- a/src/dotenv/main.py +++ b/src/dotenv/main.py @@ -14,6 +14,7 @@ logger = logging.getLogger(__name__) + def with_warn_for_invalid_lines(mappings: Iterator[Binding]) -> Iterator[Binding]: for mapping in mappings: if mapping.error: From 399aa7edad7ecfb0fee5d636193bd456f929c512 Mon Sep 17 00:00:00 2001 From: Saurabh Kumar Date: Sat, 23 Jul 2022 11:12:09 +0530 Subject: [PATCH 5/6] Tox and GitHub Actions upgrade --- .github/workflows/test.yml | 6 +++--- tox.ini | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4f231b18..299cbc89 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,11 +10,11 @@ jobs: matrix: os: - ubuntu-latest - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11.0-alpha - 3.11", pypy3] + python-version: ["3.7", "3.8", "3.9", "3.10", "3.11.0-beta.4 - 3.11", pypy3] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/tox.ini b/tox.ini index d0284143..1c8c26f7 100644 --- a/tox.ini +++ b/tox.ini @@ -8,7 +8,7 @@ python = 3.9: py39, coverage-report 3.10: py310, lint, manifest, coverage-report 3.11: py311, coverage-report - pypy3: pypy3, coverage-report + pypy-3: pypy3, coverage-report [testenv] deps = From 3c869645983f6b0c680984aeec817809eb37fb1f Mon Sep 17 00:00:00 2001 From: Saurabh Kumar Date: Sat, 23 Jul 2022 11:34:16 +0530 Subject: [PATCH 6/6] Fix pypy version --- .github/workflows/test.yml | 4 ++-- tox.ini | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 299cbc89..b7c6d504 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ jobs: matrix: os: - ubuntu-latest - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11.0-beta.4 - 3.11", pypy3] + python-version: ["3.7", "3.8", "3.9", "3.10", "3.11.0-beta.4 - 3.11", pypy3.9] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} @@ -18,7 +18,7 @@ jobs: with: python-version: ${{ matrix.python-version }} - name: Install dependencies - run: | + run: python -m pip install --upgrade pip pip install tox tox-gh-actions - name: Test with tox diff --git a/tox.ini b/tox.ini index 1c8c26f7..cb8a6625 100644 --- a/tox.ini +++ b/tox.ini @@ -8,7 +8,7 @@ python = 3.9: py39, coverage-report 3.10: py310, lint, manifest, coverage-report 3.11: py311, coverage-report - pypy-3: pypy3, coverage-report + pypy-3.9: pypy3, coverage-report [testenv] deps =