The purpose of this document is to list all of the notable changes to this project. The format was inspired by Keep a Changelog. This project adheres to semantic versioning.

Release 3.0 (2020-03-02)

No exciting changes, mostly just project maintenance 😇.

  • Merge pull request #2: Fix deprecation warnings caused by importing collections.Hashable on Python 3.3+ (fixes issue #1).
  • Drop support for Python 2.6 and 3.4, start testing on 3.7 and 3.8.
  • Change order of hints & overview in generated documentation.
  • Updated to humanfriendly 8.0 (to fix deprecated imports).
  • Updated the Makefile to use Python 3 for local development.
  • Switched the coveralls badge in the readme to SVG.
  • Changed the Read the Docs base URL.

Release 2.3.1 (2018-05-19)

Minor bug fix release to sort the property names in the overview appended to class docstrings (I’m not sure what the implicit order was but it definitely wasn’t alphabetical :-p).

Release 2.3 (2018-04-27)

  • Added property_manager.sphinx module to automatically generate boilerplate documentation.
  • Added license and removed test_suite key in script.
  • Include documentation in source distributions.
  • Change Sphinx documentation theme.
  • Added this changelog.

Release 2.2 (2017-06-29)

  • Decomposed __repr__() into property selection and rendering functionality.
  • Added Python 3.6 to tested and supported versions.
  • Properly documented logging configuration.
  • Switched Sphinx theme (default → classic).
  • Refactored script and Makefile:
    • Added wheel distributions (setup.cfg).
    • Fixed code style checks.

Release 2.1 (2016-06-15)

Remove fancy but superfluous words from DYNAMIC_PROPERTY_NOTE :-).

Release 2.0 (2016-06-15)

Easy to use PropertyManager object hashing and comparisons.

Release 1.6 (2016-06-01)

Support for setters, deleters and logging.

Release 1.5 (2016-06-01)

  • Added set_property() and clear_property() functions.
  • Added Python 3.5 to tested and supported versions.
  • Rearranged class variables and their documentation (I’m still getting up to speed with Sphinx, have been doing so for years, probably I’ll still be learning new things a few years from now :-).

Release 1.4 (2016-05-31)

  • Only inject usage notes when applicable.
  • Start using the humanfriendly.sphinx module.

Release 1.3 (2015-11-25)

Support for properties whose values are based on environment variables.

Release 1.2 (2015-10-06)

Made it possible to opt out of usage notes.

Release 1.1.1 (2015-10-04)

  • Made repr() render only properties of subclasses.
  • Removed indentation from doctest formatted code samples in readme.

Release 1.1 (2015-10-04)

  • Documented similar projects and distinguishing features.
  • Improved the structure of the documentation.

Release 1.0.1 (2015-10-04)

  • Improved usage notes of dynamically constructed subclasses.
  • Added PyPI trove classifiers to script.
  • Added Travis CI configuration.

Release 1.0 (2015-10-04)

The initial commit and release. Relevant notes from the readme:

The property-manager package came into existence as a submodule of my executor package where I wanted to define classes with a lot of properties that had a default value which was computed on demand but also needed to support assignment to easily override the default value.

Since I created that module I’d wanted to re-use it in a couple of other projects I was working on, but adding an executor dependency just for the property_manager submodule felt kind of ugly.

This is when I decided that it was time for the property-manager package to be created. When I extracted the submodule from executor I significantly changed its implementation (making the code more robust and flexible) and improved the tests, documentation and coverage in the process.