From 6f6cac1cd22ab19c170dd2c8ece83adb94e845e9 Mon Sep 17 00:00:00 2001 From: Alex Laird Date: Sun, 10 Dec 2017 17:42:03 -0800 Subject: [PATCH 1/4] #79: Adding an "overwrite" flag to read_dotenv, False by default. --- dotenv.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dotenv.py b/dotenv.py index 3b0b2ae..48fd2b5 100644 --- a/dotenv.py +++ b/dotenv.py @@ -34,12 +34,17 @@ """, re.IGNORECASE | re.VERBOSE) -def read_dotenv(dotenv=None): +def read_dotenv(dotenv=None, overwrite=False): """ Read a .env file into os.environ. If not given a path to a dotenv path, does filthy magic stack backtracking to find manage.py and then find the dotenv. + + If tests rely on .env files, setting the overwrite flag to True is a safe way to ensure tests run consistently + across all environments. + + :param overwrite: True if values in .env should overwrite export environment variables. """ if dotenv is None: frame_filename = sys._getframe().f_back.f_code.co_filename @@ -51,7 +56,10 @@ def read_dotenv(dotenv=None): if os.path.exists(dotenv): with open(dotenv) as f: for k, v in parse_dotenv(f.read()).items(): - os.environ.setdefault(k, v) + if overwrite: + os.environ[k] = v + else: + os.environ.setdefault(k, v) else: warnings.warn("Not reading {0} - it doesn't exist.".format(dotenv), stacklevel=2) From 8836e6955685f5ea74873c945798cc2c2f5e2f96 Mon Sep 17 00:00:00 2001 From: Alex Laird Date: Sun, 10 Dec 2017 17:57:45 -0800 Subject: [PATCH 2/4] #26 Removing PY33, as interpreter no longer support by Travis CI. --- .travis.yml | 1 - dotenv.py | 10 +++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 313660f..873d54b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,6 @@ sudo: false env: - TOX_ENV=py27-flake8 - TOX_ENV=py27 - - TOX_ENV=py33 - TOX_ENV=py34 - TOX_ENV=py35 diff --git a/dotenv.py b/dotenv.py index 48fd2b5..63be7e6 100644 --- a/dotenv.py +++ b/dotenv.py @@ -34,17 +34,17 @@ """, re.IGNORECASE | re.VERBOSE) -def read_dotenv(dotenv=None, overwrite=False): +def read_dotenv(dotenv=None, override=False): """ Read a .env file into os.environ. If not given a path to a dotenv path, does filthy magic stack backtracking to find manage.py and then find the dotenv. - If tests rely on .env files, setting the overwrite flag to True is a safe way to ensure tests run consistently - across all environments. + If tests rely on .env files, setting the overwrite flag to True is a safe + way to ensure tests run consistently across all environments. - :param overwrite: True if values in .env should overwrite export environment variables. + :param override: True if values in .env should override system variables. """ if dotenv is None: frame_filename = sys._getframe().f_back.f_code.co_filename @@ -56,7 +56,7 @@ def read_dotenv(dotenv=None, overwrite=False): if os.path.exists(dotenv): with open(dotenv) as f: for k, v in parse_dotenv(f.read()).items(): - if overwrite: + if override: os.environ[k] = v else: os.environ.setdefault(k, v) From fecf4734bddb9cd53981cee6f42025251bf16ad9 Mon Sep 17 00:00:00 2001 From: Alex Laird Date: Sun, 10 Dec 2017 18:17:47 -0800 Subject: [PATCH 3/4] #26 Removing Python 3.3 references from other files. --- setup.py | 1 - tox.ini | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.py b/setup.py index f35ad7e..e482bcb 100644 --- a/setup.py +++ b/setup.py @@ -49,7 +49,6 @@ def get_version(module): 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.2', - 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Topic :: Internet :: WWW/HTTP', ] diff --git a/tox.ini b/tox.ini index 067966f..2bba69b 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ [tox] envlist = py27-flake8, - py27, py32, py33, py34, py35 + py27, py32, py34, py35 [testenv] commands = python setup.py test From fa0a6fe834a294674806c336a941aef6c56e2758 Mon Sep 17 00:00:00 2001 From: Alex Laird Date: Sun, 10 Dec 2017 18:21:57 -0800 Subject: [PATCH 4/4] #26 Bumping version number. --- dotenv.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotenv.py b/dotenv.py index 63be7e6..09f01a5 100644 --- a/dotenv.py +++ b/dotenv.py @@ -4,7 +4,7 @@ import warnings -__version__ = '1.4.1' +__version__ = '1.4.2' line_re = re.compile(r"""