Release Notes

Check below for new features added in each release. Please note that release notes were not recorded before version 0.5.0.

0.7.x

The 0.7.x series of releases are focused on conforming the project with modern Python development practices.

0.7.0

  • Ported underlying SAT engine from PicoSAT to z3 to avoid in-project C compilation dependency

0.6.x

Features in the 0.6.x series of releases are focused on expanding functionality to include expression satisfiability and transformations.

0.6.4

  • Introduce the transformations.utils module, including the RepeatableAction, ComposedTransformation, AbstractTransformationModifier classes; the repeat, twice, and forever factory classes; and the tt_compose utility function

  • Publicly expose the ensure_bexpr in the transformations.utils module

  • Drop support for all Python versions except 3.6, 3.7, and 3.8

0.6.3

0.6.2

0.6.1

0.6.0

  • Add is_valid_identifier helper method for checking if symbol names are valid

  • Add checking of valid symbol names to BooleanExpression and TruthTable initalization logic, with corresponding new exception type InvalidIdentifierError

  • Add boolean_variables_factory helper for generating more intuitive collections of symbol inputs

  • Update __iter__ in TruthTable to yield inputs as a namedtuple-like object rather than a plain tuple

  • Re-organize User Guide into different sections instead of one long page

  • Remove PyPy support, due to addition of C-extensions

  • Add OS X builds to Travis

  • Include both 32-bit and 64-bit builds on AppVeyor

  • Add initial wrapper around PicoSAT library for future satisfiability interface; namely, the sat_one method

  • Add automated deployment to PyPI on tagged commits from CI services

0.5.x

Features in the 0.5.x series of releases were focused on expanding the top-level interface and improving optimizations under the hood. See below for specific features and fixes.

0.5.1

  • Add from_values option to the TruthTable initializer, allowing for table creation directly from values

  • Add ability to store don’t cares in a TruthTable

  • Add equivalent_to method to TruthTable to check for equivalence of sources of truth

  • Convert generate_symbols and input_combos to be static methods of the TruthTable class

  • Add is_full to TruthTable

  • Add __iter__ and __getitem__ functionality to TruthTable

  • Add nice-looking __str__ to BooleanExpression

  • Add new exception types: AlreadyFullTableError, ConflictingArgumentsError, and RequiredArgumentError

  • Re-organize exception hierarchy so each group of exceptions extends from the same base class

  • Re-organize the test file structure into more-focused files

  • Add User Guide, acting as tutorial-style documentation

  • Remove CLI example from the README

  • Update documentation color palette

0.5.0

  • Added the Release Notes section to the project’s documentation (how fitting for this page)

  • Publically exposed the input_combos method in the TruthTable class

  • Added test coverage for the CPython 3.6, PyPy, and PyPy3 runtimes

  • Migrated all documentation to from Napoleon docstrings to standard Sphinx docstrings

  • Added doctest tests to the documentation

  • Added type-checking to the BooleanExpression class’s initialization

  • Fixed a bug in the handling of empty expressions in the CLI

pre-0.5

Unfortunately, release notes were not kept before the 0.5.0 release.