Skip to content

Commit 3e4f15a

Browse files
committed
Support underscore as first char in env file variable names (#263)
1 parent 787a7ec commit 3e4f15a

File tree

4 files changed

+24
-3
lines changed

4 files changed

+24
-3
lines changed

HISTORY.rst

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,31 @@
11
History
22
=======
33

4+
3.4.0 (in development)
5+
----------------------
6+
7+
Backwards incompatible changes:
8+
9+
* Drop support for Python 3.8. Thanks, Rob!
10+
11+
Fixes and features:
12+
13+
* Add support for Python 3.13. (#260) Thanks, Rob!
14+
15+
* Add support for underscore as first character in variable names in env files.
16+
(#263)
17+
18+
419
3.3.0 (November 6th, 2023)
520
--------------------------
621

722
Backwards incompatible changes:
823

9-
* Dropped support for Python 3.7. (#220)
24+
* Drop support for Python 3.7. (#220)
1025

1126
Fixes and features:
1227

13-
* Added support for Python 3.12 (#221)
28+
* Add support for Python 3.12 (#221)
1429

1530
* Fix env file parsing in regards to quotes. (#230)
1631

src/everett/manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555

5656

5757
# Regex for valid keys in an env file
58-
ENV_KEY_RE = re.compile(r"^[a-z][a-z0-9_]*$", flags=re.IGNORECASE)
58+
ENV_KEY_RE = re.compile(r"^[a-z_][a-z0-9_]*$", flags=re.IGNORECASE)
5959

6060
logger = logging.getLogger("everett")
6161

tests/data/.env

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,8 @@ LOGLEVEL=walter
33
DEBUG=True
44
YOURE_NOT_A=golfer
55

6+
# env var with quotes around value
67
DATABASE_URL="sqlite:///kahlua.db"
8+
9+
# env var that starts with underscore
10+
_TYPER_STANDARD_TRACEBACK=1

tests/test_manager.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,12 +372,14 @@ def test_ConfigEnvFileEnv(datadir):
372372
assert cefe.get("not_a", namespace="youre") == "golfer"
373373
assert cefe.get("loglevel") == "walter"
374374
assert cefe.get("LOGLEVEL") == "walter"
375+
assert cefe.get("_typer_standard_traceback") == "1"
375376
assert cefe.get("missing") is NO_VALUE
376377
assert cefe.data == {
377378
"LOGLEVEL": "walter",
378379
"DEBUG": "True",
379380
"YOURE_NOT_A": "golfer",
380381
"DATABASE_URL": "sqlite:///kahlua.db",
382+
"_TYPER_STANDARD_TRACEBACK": "1",
381383
}
382384

383385
cefe = ConfigEnvFileEnv(env_filename)

0 commit comments

Comments
 (0)