Changelog

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.11.3 - 0-Undefined-2023

Changed

  • Formally support Python 3.12.

  • 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

Fixed

  • Revert “Add variable expansion.” feature due to #490.

v0.11.1 - 30-August-2023

Fixed

  • Revert “Add interpolate argument to avoid resolving proxied values.” feature due to #485.

v0.11.0 - 30-August-2023

Added

  • 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, like KEY= 'part1 # part2' # comment #475.

  • Added support for interpolate parameter #415.

Changed

  • Used mssql-django as engine for SQL Server #446.

  • Changed handling bool values, stripping whitespace around value #475.

  • Use importlib.util.find_spec to replace pkgutil.find_loader #482.

Removed

  • Removed support of Python 3.5.

v0.10.0 - 2-March-2023

Added

  • 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_CHECKS to database base options #413.

  • Added encoding parameter to read_env with default value ‘utf8’ #442.

  • Added support for Django 4.1 #416.

Deprecated

  • Support of Python < 3.6 is deprecated and will be removed in next major version.

Changed

  • Used UTF-8 as a encoding when open .env file.

  • Provided access to DB_SCHEMES through cls rather than Env in db_url_config #414.

  • Correct CI workflow to use supported Python versions/OS matrix #441.

  • Reworked trigger CI workflows strategy #440.

Fixed

  • Fixed logic of Env.get_value() to skip parsing only when default=None, not for all default values that coerce to False #404.

  • Deleted duplicated include in docs/quickstart.rst #439.

Removed

  • Removed deprecated Env.unicode().

  • Removed environ.register_schemes calls and do not modify global urllib.parse.urlparse’s uses_* variables as this no longer needed #246.

v0.9.0 - 15-June-2022

Added

  • Added support for Postgresql cluster URI #355.

  • Added support for Django 4.0 #371.

  • Added support for prefixed variables #362.

  • Amended documentation.

Deprecated

  • Env.unicode() is deprecated and will be removed in the next major release. Use Env.str() instead.

Changed

  • Attach cause to ImproperlyConfigured exception #360.

Fixed

  • Fixed _cast_urlstr unquoting #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

  • Fixed “Invalid line” spam logs on blank lines in env file #340.

  • Fixed memcache/pymemcache URL parsing for correct identification of connection type #337.

v0.8.0 - 17-October-2021

Added

  • Log invalid lines when parse .env file #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 pymemcache cache backend for Django 3.2+ #335.

Fixed

  • Keep newline/tab escapes in quoted strings #296.

  • Handle escaped dollar sign in values #271.

  • Fixed incorrect parsing of DATABASES_URL for Google Cloud MySQL #294.

v0.7.0 - 11-September-2021

Added

  • Added support for negative float strings #160.

  • Added Elasticsearch5 to search scheme #297.

  • Added Elasticsearch7 to search scheme #314.

  • Added the ability to use bytes or str as a default value for Env.bytes().

Fixed

  • Fixed links in the documentation.

  • Use default option in Env.bytes() #206.

  • Safely evaluate a string containing an invalid Python literal #200.

Changed

  • Added ‘Funding’ and ‘Say Thanks!’ project urls on pypi.

  • Stop raising UserWarning if .env file isn’t found. Log a message with INFO log level instead #243.

v0.6.0 - 4-September-2021

Added

  • 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

  • Fixed various code linting errors.

  • Fixed typos in the documentation.

  • Added missed files to the package contents.

  • Fixed db_url_config to work the same for all postgres-like schemes #264, #268.

Changed

  • 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.in in a source package for completeness as a part of CI pipeline.

  • Added pytest and coverage[toml] to setuptools’ extras_require.

v0.5.0 - 30-August-2021

Added

  • Support for Django 2.1 & 2.2.

  • Added tox.ini targets.

  • Added secure redis backend URLs via rediss://.

  • Added cast=str to str() method.

Fixed

  • Fixed misspelling in the documentation.

Changed

  • Validate empty cache url and invalid cache schema.

  • Set long_description_content_type in setup.

  • Improved Django 1.11 database configuration support.

v0.4.5 - 25-June-2018

Added

  • Support for Django 2.0.

  • Support for smart casting.

  • Support PostgreSQL unix domain socket paths.

  • Tip: Multiple env files.

Changed

  • Fix parsing option values None, True and False.

  • Order of importance of engine configuration in db_url_config.

Removed

  • Remove django and six dependencies.

v0.4.4 - 21-August-2017

Added

  • Support for django-redis multiple locations (master/slave, shards).

  • Support for Elasticsearch2.

  • Support for Mysql-connector.

  • Support for pyodbc.

  • Added __contains__ feature to Environ class.

Fixed

  • Fix Path subtracting.

v0.4.3 - 21-August-2017

Changed

  • Rollback the default Environ to os.environ.

v0.4.2 - 13-April-2017

Added

  • Confirm support for Django 1.11.

  • Support for Redshift database URL.

Changed

  • Fixed uwsgi settings reload problem #55.

  • Update support for django-redis urls #109.

v0.4.1 - 13-November-2016

Added

  • Add support for Django 1.10.

Changed

  • 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

Added

  • New email schemes - smtp+ssl and smtp+tls (smtps would be deprecated).

  • Added tuple support. Thanks to @anonymouzz.

  • Added LDAP url support for database. Thanks to django-ldapdb/django-ldapdb.

Changed

  • Fixed non-ascii values (broken in Python 2.x).

  • redis_cache replaced by django_redis.

  • Fixed psql/pgsql url.

v0.3.1 - 19 Sep 2015

Added

  • Added email as alias for email_url.

  • Django 1.7 is now supported.

  • Added LDAP scheme support for db_url_config.

Fixed

  • 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

  • Added cache url support.

  • Added email url support.

  • Added search url support.

Changed

  • Rewriting README.rst.

v0.2.1 - 19-April-2013

Changed

  • Env.__call__ now uses Env.get_value instance method.

v0.2 - 16-April-2013

Added

  • Added advanced float parsing (comma and dot symbols to separate thousands and decimals).

Fixed

  • Fixed typos in the documentation.

v0.1 - 2-April-2013

Added

  • Initial release.