Changelog ========= next ---- 4.0 (2022-05-05) ---------------- * API changes * Drop support for Python 2. * Test on Python 3.10 * Make Expression.sort_order an instance attributes and not a class attribute * Misc. * Correct licensing documentation * Improve docstringf and apply minor refactorings * Adopt black code style and isort for imports * Drop Travis and use GitHub actions for CI 3.8 (2020-06-10) ---------------- * API changes * Add support for evaluation of boolean expression. Thank you to Lars van Gemerden @gemerden * Bug fixes * Fix parsing of tokens that have a number as the first character. Thank you to Jeff Cohen @ jcohen28 * Restore proper Python 2 compatibility. Thank you to Benjy Weinberger @benjyw * Improve documentation * Add pointers to Linux distro packages. Thank you to Max Mehl @mxmehl and Carmen Bianca Bakker @carmenbianca * Fix typo. Thank you to Gabriel Niebler @der-gabe 3.7 (2019-10-04) ---------------- * API changes * Add new sort argument to simplify() to optionally not sort when simplifying expressions (e.g. not applying "commutativity"). Thank you to Steven Esser @majurg for this * Add new argument to tokenizer to optionally accept extra characters in symbol tokens. Thank you to @carpie for this 3.6 (2018-08-06) ---------------- * No API changes * Bug fixes * Fix De Morgan's laws effect on double negation propositions. Thank you to Douglas Cardoso for this * Improve error checking when parsing 3.5 (Nov 1, 2017) ----------------- * No API changes * Bug fixes * Documentation updates and add testing for Python 3.6. Thank you to Alexander Lisianoi @alisianoi * Improve testng and expression equivalence checks * Improve subs() method to an expression 3.4 (May 12, 2017) ------------------ * No API changes * Bug fixes and improvements * Fix various documentation typos and improve tests . Thank you to Alexander Lisianoi @alisianoi * Fix handling for literals vs. symbols in negations Thank you to @YaronK 3.3 (2017-02-09) ---------------- * API changes * #40 and #50 Expression.subs() now takes 'default' thanks to @kronuz * #45 simplify=False is now the default for parse and related functions or methods. * #40 Use "&" and "|" as default operators * Bug fixes * #60 Fix bug for "a or b c" which is not a valid expression * #58 Fix math formula display in docs * Improve handling of parse errors 2.0.0 (2016-05-11) ------------------ * API changes * New algebra definition. Refactored class hierarchy. Improved parsing. * New features * possibility to subclass algebra definition * new normal forms shortcuts for DNF and CNF. 1.1 (2016-04-06) ------------------ * Initial release on Pypi.