From 2f36c082c278bad1a84411f1ad61547f95cecdb8 Mon Sep 17 00:00:00 2001 From: eggplants Date: Sat, 23 Jul 2022 15:07:18 +0900 Subject: [PATCH] Drop Python 3.5 and 3.6 and upgrade GA (#393) * Drop Python 3.5 and 3.6 * Tox and GitHub Actions upgrade * Fix pypy version Co-authored-by: Saurabh Kumar --- .github/workflows/test.yml | 8 ++++---- setup.py | 4 +--- src/dotenv/main.py | 21 ++++++++------------- tox.ini | 8 ++------ 4 files changed, 15 insertions(+), 26 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5135ae4f..b7c6d504 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,15 +10,15 @@ 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-beta.4 - 3.11", pypy3.9] 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 - run: | + run: python -m pip install --upgrade pip pip install tox tox-gh-actions - name: Test with tox 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/src/dotenv/main.py b/src/dotenv/main.py index 78410660..05d377a9 100644 --- a/src/dotenv/main.py +++ b/src/dotenv/main.py @@ -14,11 +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: @@ -33,14 +28,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]], 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]] self.stream = stream # type: Optional[IO[str]] self._dict = None # type: Optional[Dict[str, Optional[str]]] self.verbose = verbose # type: bool @@ -113,7 +108,7 @@ def get(self, key: str) -> Optional[str]: def get_key( - dotenv_path: Union[str, _PathLike], + dotenv_path: Union[str, os.PathLike], key_to_get: str, encoding: Optional[str] = "utf-8", ) -> Optional[str]: @@ -127,7 +122,7 @@ def get_key( @contextmanager def rewrite( - path: Union[str, _PathLike], + path: Union[str, os.PathLike], encoding: Optional[str], ) -> Iterator[Tuple[IO[str], IO[str]]]: try: @@ -146,7 +141,7 @@ def rewrite( def set_key( - dotenv_path: Union[str, _PathLike], + dotenv_path: Union[str, os.PathLike], key_to_set: str, value_to_set: str, quote_mode: str = "always", @@ -195,7 +190,7 @@ def set_key( def unset_key( - dotenv_path: Union[str, _PathLike], + dotenv_path: Union[str, os.PathLike], key_to_unset: str, quote_mode: str = "always", encoding: Optional[str] = "utf-8", @@ -310,7 +305,7 @@ def _is_interactive(): def load_dotenv( - dotenv_path: Union[str, _PathLike, None] = None, + dotenv_path: Union[str, os.PathLike, None] = None, stream: Optional[IO[str]] = None, verbose: bool = False, override: bool = False, @@ -348,7 +343,7 @@ def load_dotenv( def dotenv_values( - dotenv_path: Union[str, _PathLike, None] = None, + dotenv_path: Union[str, os.PathLike, None] = None, stream: Optional[IO[str]] = None, verbose: bool = False, interpolate: bool = True, diff --git a/tox.ini b/tox.ini index 3d7e1b60..cb8a6625 100644 --- a/tox.ini +++ b/tox.ini @@ -3,14 +3,12 @@ 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 3.10: py310, lint, manifest, coverage-report 3.11: py311, coverage-report - pypy3: pypy3, coverage-report + pypy-3.9: pypy3, coverage-report [testenv] deps = @@ -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