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¶
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.utilsmodule, including theRepeatableAction,ComposedTransformation,AbstractTransformationModifierclasses; therepeat,twice, andforeverfactory classes; and thett_composeutility functionPublicly expose the
ensure_bexprin thetransformations.utilsmoduleDrop support for all Python versions except 3.6, 3.7, and 3.8
0.6.3¶
Add
non_negated_symbol_setandnegated_symbol_settoExpressionTreeNodeAdd
apply_idempotent_law,apply_identity_law, andapply_inverse_lawtransformations toExpressionTreeNodeAdd
apply_idempotent_law,apply_identity_law, andapply_inverse_lawtop-level transformation functionsAdd functionality to the
coalesce_negationstransformation to apply negations on constant operandsUpdate
to_cnfto incorporate new transformations, leading to more condense CNF transformed expressions
0.6.2¶
Remove class
BooleanExpressionTreein favor of working exclusively with instances ofExpressionTreeNodeAdd
sat_alltopicosatinterfaceAdd
constrain,sat_one, andsat_alltoBooleanExpressionMove the implementation logic of the
to_cnftransformation to theto_cnfmethod of theExpressionTreeNodeclass
0.6.1¶
Add iff (
iff,->) and implies (impl,<->) Boolean operatorsAdd
is_cnfandis_dnfattributes toBooleanExpressionAdd functionality to initialize
BooleanExpressionobjects from instances ofExpressionTreeNodeorBooleanExpressionTreeUpdate __str__ and __repr__ for
BooleanExpressionAdd
is_really_unaryattribute toExpressionTreeNodeAdd
iter_clauses,iter_cnf_clauses, anditer_dnf_clausestoExpressionTreeNodeAdd
iter_clauses,iter_cnf_clauses, anditer_dnf_clausestoBooleanExpressionAdd attributes
default_symbol_stranddefault_plain_english_strtoBooleanOperator, in place of removednameattributeAdd
to_primitives,coalesce_negations,distribute_ands,distribute_ors, andapply_de_morganstoExpressionTreeNodeIntroduce high-level
transformationsinterface, including transformation functionsto_primitives,coalesce_negations,distribute_ands,distribute_ors,to_cnf, andapply_de_morgansAdd
BINARY_OPERATORSandNON_PRIMITIVE_OPERATORSsets todefinitionsmoduleAdd
__eq__and__ne__implementations forBooleanExpressionand derivatives ofExpressionTreeNode
0.6.0¶
Add
is_valid_identifierhelper method for checking if symbol names are validAdd checking of valid symbol names to
BooleanExpressionandTruthTableinitalization logic, with corresponding new exception typeInvalidIdentifierErrorAdd
boolean_variables_factoryhelper for generating more intuitive collections of symbol inputsUpdate
__iter__inTruthTableto yield inputs as anamedtuple-like object rather than a plaintupleRe-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_onemethodAdd 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_valuesoption to theTruthTableinitializer, allowing for table creation directly from valuesAdd ability to store don’t cares in a
TruthTableAdd
equivalent_tomethod toTruthTableto check for equivalence of sources of truthConvert
generate_symbolsandinput_combosto be static methods of theTruthTableclassAdd
is_fulltoTruthTableAdd __iter__ and __getitem__ functionality to
TruthTableAdd nice-looking __str__ to
BooleanExpressionAdd new exception types:
AlreadyFullTableError,ConflictingArgumentsError, andRequiredArgumentErrorRe-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_combosmethod in theTruthTableclassAdded 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
BooleanExpressionclass’s initializationFixed 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.