From efc15ce4b79a65c1b07f0d4f766ded8d19854b3b Mon Sep 17 00:00:00 2001 From: vduseev Date: Fri, 25 Sep 2020 23:50:07 +0200 Subject: [PATCH 1/4] Bumped poetry version in build to preview Poetry is now installed using official `get-poetry.py` script using --preview flag. Script is downloaded to /tmp directory and poetry environment is sourced into the Travis' shell. --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 60899cc..0a93ae3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,9 @@ python: - 3.8 before_install: -- pip install poetry +- curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py > /tmp/get-poetry.py +- python /tmp/get-poetry.py --preview --yes +- source $HOME/.poetry/env install: - poetry install -E yaml -E toml -E azure -E aws From 6d84de9cb74366a8325b4d9709a1a679af9cb109 Mon Sep 17 00:00:00 2001 From: vduseev Date: Sat, 26 Sep 2020 01:16:40 +0200 Subject: [PATCH 2/4] Added GCP dependencies to poetry install during build --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0a93ae3..4d9d3c3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ before_install: - source $HOME/.poetry/env install: -- poetry install -E yaml -E toml -E azure -E aws +- poetry install -E yaml -E toml -E azure -E aws -E gcp script: - poetry run pytest From d968f058490211d8132ec102bd2d9185e0625b41 Mon Sep 17 00:00:00 2001 From: vduseev Date: Sat, 26 Sep 2020 01:27:41 +0200 Subject: [PATCH 3/4] Formatted test_interpolation.py using black --- tests/test_interpolation.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/test_interpolation.py b/tests/test_interpolation.py index 65bb18e..238eaaf 100644 --- a/tests/test_interpolation.py +++ b/tests/test_interpolation.py @@ -46,7 +46,10 @@ def test_interpolation(): # type: ignore assert cfg.var1 == "This is a test" cfg = config_from_dict( - VALUES, lowercase_keys=True, interpolate=True, interpolate_type="unknown", + VALUES, + lowercase_keys=True, + interpolate=True, + interpolate_type="unknown", ) with raises(ValueError, match='Invalid interpolation method "unknown"'): From 98dd9bdc00193903834caabb64ae2e03e035a287 Mon Sep 17 00:00:00 2001 From: vduseev Date: Sat, 26 Sep 2020 13:03:03 +0200 Subject: [PATCH 4/4] Add reversed dict implementation for Python < 3.8 --- config/configuration.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/config/configuration.py b/config/configuration.py index 77e0ffd..ec0b485 100644 --- a/config/configuration.py +++ b/config/configuration.py @@ -3,6 +3,7 @@ import base64 from contextlib import contextmanager from copy import deepcopy +from sys import version_info from typing import ( Any, Dict, @@ -27,6 +28,9 @@ interpolate_object, ) +if version_info < (3, 8): + from collections import OrderedDict + class Configuration: """ @@ -299,7 +303,10 @@ def __iter__(self) -> Iterator[Tuple[str, Any]]: # noqa: D105 return iter(dict(self.items())) # type: ignore def __reversed__(self) -> Iterator[Tuple[str, Any]]: # noqa: D105 - return reversed(dict(self.items())) # type: ignore + if version_info < (3, 8): + return OrderedDict(reversed(list(self.items()))) # type: ignore + else: + return reversed(dict(self.items())) # type: ignore def __len__(self) -> int: # noqa: D105 return len(self.keys())