All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.19.2 - 2021-11-11
- In
set_key
, add missing newline character before new entry if necessary. (#361 by @bbc2)
0.19.1 - 2021-08-09
- Add support for Python 3.10. (#359 by @theskumar)
0.19.0 - 2021-07-24
- Require Python 3.5 or a later version. Python 2 and 3.4 are no longer supported. (#341 by @bbc2).
- The
dotenv_path
argument ofset_key
andunset_key
now has a type ofUnion[str, os.PathLike]
instead of justos.PathLike
(#347 by @bbc2). - The
stream
argument ofload_dotenv
anddotenv_values
can now be a text stream (IO[str]
), which includes values likeio.StringIO("foo")
andopen("file.env", "r")
(#348 by @bbc2).
0.18.0 - 2021-06-20
- Raise
ValueError
ifquote_mode
isn't one ofalways
,auto
ornever
inset_key
(#330 by @bbc2). - When writing a value to a .env file with
set_key
ordotenv set <key> <value>
(#330 by @bbc2):- Use single quotes instead of double quotes.
- Don't strip surrounding quotes.
- In
auto
mode, don't add quotes if the value is only made of alphanumeric characters (as determined bystring.isalnum
).
0.17.1 - 2021-04-29
- Fixed tests for build environments relying on
PYTHONPATH
(#318 by @befeleme).
0.17.0 - 2021-04-02
- Make
dotenv get <key>
only show the value, notkey=value
(#313 by @bbc2).
0.16.0 - 2021-03-27
- The default value of the
encoding
parameter forload_dotenv
anddotenv_values
is now"utf-8"
instead ofNone
(#306 by @bbc2). - Fix resolution order in variable expansion with
override=False
(#287 by @bbc2).
0.15.0 - 2020-10-28
- Add
--export
option toset
to make it prepend the binding withexport
(#270 by @jadutter).
- Make
set
command create the.env
file in the current directory if no.env
file was found (#270 by @jadutter).
- Fix potentially empty expanded value for duplicate key (#260 by @bbc2).
- Fix import error on Python 3.5.0 and 3.5.1 (#267 by @gongqingkui).
- Fix parsing of unquoted values containing several adjacent space or tab characters (#277 by @bbc2, review by @x-yuri).
0.14.0 - 2020-07-03
- Privilege definition in file over the environment in variable expansion (#256 by @elbehery95).
- Improve error message for when file isn't found (#245 by @snobu).
- Use HTTPS URL in package meta data (#251 by @ekohl).
0.13.0 - 2020-04-16
- Add support for a Bash-like default value in variable expansion (#248 by @bbc2).
0.12.0 - 2020-02-28
- Use current working directory to find
.env
when bundled by PyInstaller (#213 by @gergelyk).
- Fix escaping of quoted values written by
set_key
(#236 by @bbc2). - Fix
dotenv run
crashing on environment variables without values (#237 by @yannham). - Remove warning when last line is empty (#238 by @bbc2).
0.11.0 - 2020-02-07
- Add
interpolate
argument toload_dotenv
anddotenv_values
to disable interpolation (#232 by @ulyssessouza).
- Use logging instead of warnings (#231 by @bbc2).
- Fix installation in non-UTF-8 environments (#225 by @altendky).
- Fix PyPI classifiers (#228 by @bbc2).
0.10.5 - 2020-01-19
- Fix handling of malformed lines and lines without a value (#222 by @bbc2):
- Don't print warning when key has no value.
- Reject more malformed lines (e.g. "A: B", "a='b',c").
- Fix handling of lines with just a comment (#224 by @bbc2).
0.10.4 - 2020-01-17
- Make typing optional (#179 by @techalchemy).
- Print a warning on malformed line (#211 by @bbc2).
- Support keys without a value (#220 by @ulyssessouza).
- Improve interactive mode detection (@andrewsmith)(#183).
- Refactor parser to fix parsing inconsistencies (@bbc2)(#170).
- Interpret escapes as control characters only in double-quoted strings.
- Interpret
#
as start of comment only if preceded by whitespace.
- Add type hints and expose them to users (@qnighy)(#172)
load_dotenv
anddotenv_values
now accept anencoding
parameter, defaults toNone
(@theskumar)(@earlbread)([#161])- Fix
str
/unicode
inconsistency in Python 2: values are alwaysstr
now. (@bbc2)(#121) - Fix Unicode error in Python 2, introduced in 0.10.0. (@bbc2)(#176)
- Add support for UTF-8 in unquoted values (@bbc2)(#148)
- Add support for trailing comments (@bbc2)(#148)
- Add backslashes support in values (@bbc2)(#148)
- Add support for newlines in values (@bbc2)(#148)
- Force environment variables to str with Python2 on Windows (@greyli)
- Drop Python 3.3 support (@greyli)
- Fix stderr/-out/-in redirection (@venthur)
- Add
--version
parameter to cli (@venthur) - Enable loading from current directory (@cjauvin)
- Add 'dotenv run' command for calling arbitrary shell script with .env (@venthur)
- Add tests for docs (@Flimm)
- Make 'cli' support optional. Use
pip install python-dotenv[cli]
. (@theskumar)
set_key
andunset_key
only modified the affected file instead of parsing and re-writing file, this causes comments and other file entact as it is.- Add support for
export
prefix in the line. - Internal refractoring (@theskumar)
- Allow
load_dotenv
anddotenv_values
to work withStringIO())
(@alanjds)(@theskumar)(#78)
- Remove hard dependency on iPython (@theskumar)
- Add support to override system environment variable via .env. (@milonimrod) (#63)
- Disable ".env not found" warning by default (@maxkoryukov) (#57)
- Handle unicode exception in setup.py (#46)
- Fix dotenv list command (@ticosax)
- Add iPython Support (@tillahoffmann)
- Drop support for Python 2.6
- Handle escaped characters and newlines in quoted values. (Thanks @iameugenejo)
- Remove any spaces around unquoted key/value. (Thanks @paulochf)
- Added POSIX variable expansion. (Thanks @hugochinchilla)
- Fix find_dotenv - it now start search from the file where this function is called from.
- Add
find_dotenv
method that will try to find a.env
file. (Thanks @isms)
- cli: Added
-q/--quote
option to control the behaviour of quotes around values in.env
. (Thanks @hugochinchilla). - Improved test coverage.