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.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.