All notable changes to this project will be documented in this file. The format is inspired by Keep a Changelog and this project adheres to Semantic Versioning.
v0.13.0 - 18-February-2026
- Added optional warnings when defaults are used #582.
- Added choices argument support for value validation in
Env.str(...)#555. - Added Valkey support via
valkey://andvalkeys://cache URL schemes #554. - Added support for
rediss://scheme in channels URL parsing #573. - Added django-prometheus database backend aliases to DB URL parsing schemes #559.
v0.12.1 - 13-February-2026
- Fixed PostgreSQL cluster URL parsing with bracketed IPv6 hosts in recent Python versions, preventing failures in runtime URL parsing and related regression tests #574.
- Fixed debug logging in
Env.get_value()to avoid evaluating lazy default objects when DEBUG logging is enabled #571.
v0.12.0 - 8-November-2024
- Include prefix in the
ImproperlyConfigurederror message #513.
- Add support for Python 3.12 and 3.13 #538.
- Add support for Django 5.1 #535.
- Add support for Django CockroachDB driver #509.
- Add support for Django Channels #266.
- Disabled inline comments handling by default due to potential side effects. While the feature itself is useful, the project's philosophy dictates that it should not be enabled by default for all users #499.
v0.11.2 - 1-September-2023
- Revert "Add variable expansion." feature due to #490.
v0.11.1 - 30-August-2023
- Revert "Add interpolate argument to avoid resolving proxied values." feature due to #485.
v0.11.0 - 30-August-2023
- Added support for Django 4.2 #456.
- Added support for secure Elasticsearch connections #463.
- Added variable expansion #468.
- Added capability to handle comments after
#, after quoted values, likeKEY= 'part1 # part2' # comment#475. - Added support for
interpolateparameter #415.
- Used
mssql-djangoas engine for SQL Server #446. - Changed handling bool values, stripping whitespace around value #475.
- Use
importlib.util.find_spectoreplace pkgutil.find_loader#482.
- Removed support of Python 3.5.
v0.10.0 - 2-March-2023
- Use the core redis library by default if running Django >= 4.0 #356.
- Value of dict can now contain an equal sign #241.
- Added support for Python 3.11.
- Added
CONN_HEALTH_CHECKSto database base options #413. - Added
encodingparameter toread_envwith default value 'utf8' #442. - Added support for Django 4.1 #416.
- Support of Python < 3.6 is deprecated and will be removed in next major version.
- Used UTF-8 as a encoding when open
.envfile. - Provided access to
DB_SCHEMESthroughclsrather thanEnvindb_url_config#414. - Correct CI workflow to use supported Python versions/OS matrix #441.
- Reworked trigger CI workflows strategy #440.
- Fixed logic of
Env.get_value()to skip parsing only whendefault=None, not for all default values that coerce toFalse#404. - Deleted duplicated include in docs/quickstart.rst #439.
- Removed deprecated
Env.unicode(). - Removed
environ.register_schemescalls and do not modify globalurllib.parse.urlparse'suses_*variables as this no longer needed #246.
v0.9.0 - 15-June-2022
- Added support for Postgresql cluster URI #355.
- Added support for Django 4.0 #371.
- Added support for prefixed variables #362.
- Amended documentation.
Env.unicode()is deprecated and will be removed in the next major release. UseEnv.str()instead.
- Attach cause to
ImproperlyConfiguredexception #360.
- Fixed
_cast_urlstrunquoting #357. - Fixed documentation regarding unsafe characters in URLs #220.
- Fixed
environ.Path.__eq__()to compare paths correctly #86, #197.
v0.8.1 - 20-October-2021
- Fixed "Invalid line" spam logs on blank lines in env file #340.
- Fixed
memcache/pymemcacheURL parsing for correct identification of connection type #337.
v0.8.0 - 17-October-2021
- Log invalid lines when parse
.envfile #283. - Added docker-style file variable support #189.
- Added option to override existing variables with
read_env#103, #249. - Added support for empty var with None default value #209.
- Added
pymemcachecache backend for Django 3.2+ #335.
- Keep newline/tab escapes in quoted strings #296.
- Handle escaped dollar sign in values #271.
- Fixed incorrect parsing of
DATABASES_URLfor Google Cloud MySQL #294.
v0.7.0 - 11-September-2021
- Added support for negative float strings #160.
- Added Elasticsearch5 to search scheme #297.
- Added Elasticsearch7 to search scheme #314.
- Added the ability to use
bytesorstras a default value forEnv.bytes().
- Fixed links in the documentation.
- Use default option in
Env.bytes()#206. - Safely evaluate a string containing an invalid Python literal #200.
- Added 'Funding' and 'Say Thanks!' project urls on pypi.
- Stop raising
UserWarningif.envfile isn't found. Log a message withINFOlog level instead #243.
v0.6.0 - 4-September-2021
- Python 3.9, 3.10 and pypy 3.7 are now supported.
- Django 3.1 and 3.2 are now supported.
- Added missed classifiers to
setup.py. - Accept Python 3.6 path-like objects for
read_env#106, #286.
- Fixed various code linting errors.
- Fixed typos in the documentation.
- Added missed files to the package contents.
- Fixed
db_url_configto work the same for all postgres-like schemes #264, #268.
- Refactor tests to use pytest and follow DRY.
- Moved CI to GitHub Actions.
- Restructuring of project documentation.
- Build and test package documentation as a part of CI pipeline.
- Build and test package distribution as a part of CI pipeline.
- Check
MANIFEST.inin a source package for completeness as a part of CI pipeline. - Added
pytestandcoverage[toml]to setuptools'extras_require.
v0.5.0 - 30-August-2021
- Support for Django 2.1 & 2.2.
- Added tox.ini targets.
- Added secure redis backend URLs via
rediss://. - Added
cast=strtostr()method.
- Fixed misspelling in the documentation.
- Validate empty cache url and invalid cache schema.
- Set
long_description_content_typein setup. - Improved Django 1.11 database configuration support.
v0.4.5 - 25-June-2018
- Support for Django 2.0.
- Support for smart casting.
- Support PostgreSQL unix domain socket paths.
- Tip: Multiple env files.
- Fix parsing option values
None,TrueandFalse. - Order of importance of engine configuration in
db_url_config.
- Remove
djangoandsixdependencies.
v0.4.4 - 21-August-2017
- Support for
django-redismultiple locations (master/slave, shards). - Support for Elasticsearch2.
- Support for Mysql-connector.
- Support for
pyodbc. - Added
__contains__feature to Environ class.
- Fix Path subtracting.
v0.4.3 - 21-August-2017
- Rollback the default Environ to
os.environ.
v0.4.2 - 13-April-2017
- Confirm support for Django 1.11.
- Support for Redshift database URL.
v0.4.1 - 13-November-2016
- Add support for Django 1.10.
- Fixed for unsafe characters into URLs.
- Clarifying warning on missing or unreadable file. Thanks to @nickcatal.
- Fixed support for Oracle urls.
- Fixed support for
django-redis.
v0.4 - 23-September-2015
- New email schemes -
smtp+sslandsmtp+tls(smtpswould be deprecated). - Added tuple support. Thanks to @anonymouzz.
- Added LDAP url support for database. Thanks to django-ldapdb/django-ldapdb.
- Fixed non-ascii values (broken in Python 2.x).
redis_cachereplaced bydjango_redis.- Fixed psql/pgsql url.
v0.3.1 - 19 Sep 2015
- Added
emailas alias foremail_url. - Django 1.7 is now supported.
- Added LDAP scheme support for
db_url_config.
- Fixed typos in the documentation.
- Fixed
environ.Path.__add__to correctly handle plus operator. - Fixed
environ.Path.__contains__to correctly work on Windows.
v0.3 - 03-June-2014
- Added cache url support.
- Added email url support.
- Added search url support.
- Rewriting README.rst.
Env.__call__now usesEnv.get_valueinstance method.
- Added advanced float parsing (comma and dot symbols to separate thousands and decimals).
- Fixed typos in the documentation.
- Initial release.