CHANGES
=======

1.0.0rc3
--------

* Constant SmartType was broken
* Adds ability to compare non-comparable types in legacy mode
* Adds engine option to make dicts iterable
* Boolean equality functions were missing

1.0.0rc2
--------

* Add legacy mode to CLI
* Makes len(string
* Better exception messages
* *args/**kwargs were added to SmartType methods
* Make data converters extendable
* Contexts interface refactoring
* Generalization of helper methods to limit resource consumption
* Fixes to collections/queries stdlib
* Improved legacy mode
* Adds parameter specification for #call()
* Python 3 compatibility bug
* Fixes bug with positional arg specs

1.0.0rc1
--------

* Small improvements to yaql

1.0.0b3
-------

* Adds Unicode support to yaql REPL CLI
* Fixed compatibility with ply 3.6

1.0.0b2
-------

* Enable H306 sort imports in alphabetical order
* Fixed a conflict in grammar
* Detect YAQL version based on the distribution package
* yaql 1.0
* Restore CLI entry point and version in setup.cfg
* Enable Python 3 support
* Workflow documentation is now in infra-manual
* Enable H902 collection membership evaluation
* Enable H202 assertRaises Exception too broad
* Enable H201 no 'except:' at least use 'except Exception:'
* Enable F841 unused variables
* Enable F403 import something.*
* Enable F401 something imported but unused
* Update gitignore
* Enable E501 line too long
* Using print() function instead of print statements to allow Python3
* Simplified the wrong precedence example in tests
* Added a test which demonstrates the wrong precedence of 'or' and 'and' operators
* Fixed compatibility with Python 2.6
* Fix pep8 checks: W292,W391
* Fixed pep8 checks: E203,E226,E302,E303
* Toxify project
* * Date fixed in CLI prompt * Obsolete files deleted * URL to github added as homepage setup.py
* Version fixed in CLI prompt
* migrated cli functions
* Added 'switch' and 'for_each' functions
* Removed old code
* 'as' function impelemented, context data retrieval/saving fixed
* Class restriction rewritten as self parameter arg_type setting Self parameter validation added Added string conversion functions Added ways to specify parameter definitions for vararg parameters
* added a set of advanced functions for collections operations and sequence generation
* Fixed a bug when self object was written into the context data
* improved assertEval method
* random function added
* Added collection_parameter decorator as a syntax sugar
* Join function implemented for collections
* old module for builtin functions delete
* Namespace support
* Tests for Composite function names
* ! operator fixes
* Exception handling improved
* minor context changes
* Separated ! and not operators Added line breaks to ignore list
* BuildDict added
* Class methods can now be registered as functions
* Constant tests extract to a different file type conversions test added
* boolean operators added
* type conversion functions added
* Major 0.3 changes implemented
* CLI is now called as "yaql" command, not "yaql-cli" Incremented version to 0.2.1 (cherry picked from commit ae6636a)
* CLI is now called as "yaql" command, not "yaql-cli" Incremented version to 0.2.1
* Modified some builtin functions (attribution, filtering) etc to handle objects and dictionary properly: Strings are not treated as collections anymore. Exception is now thrown if an unknown property is attempted to be retrieved for an object. Filtering with non-boolean predicates is no longer possible
* Where fixed
* 0.3 in progress
* Moved decorators to separated module

0.2
---

* Bumped version to 0.2
* Switch function added
* Temporary workaround to make boolean function weekly-typed again
* Temporary functions removed
* parent functions removed, root function finalized
* Pushed data now properly added to the context of function (not the parent context)
* Generator sequences are now limited
* Boolean functions now require strong typing list(*args) function now properly unwraps generators type conversion functions added
* Context-tree reversing added
* Added support for varargs in context-aware functions
* Attempt to add context-manipulation functions (work in progress yet, most probably parent will be removed and root dramatically modified)
* Get context data ($-char) can now be followed by letters as well as digits
* extensions renamed to cli_functions
* Test-data became closer to real-world
* extensiions.py renamed to cli_functions, some temporary debug functions added Console history supoort added
* Collection-collection attribution now properly flattens properties
* Set output dir for parser_table.py in a platform independent way
* Write parser_table_py to a different location
* Empty input is now properly handled in CLI
* Context default data assignment now assigns $1 as well
* Fix precedence for IN operator
* Merge
* Add 'in' operator to YAQL
* CLI will handle all runtime exceptions
* Added ability to run yaql-cli right after setup
* Added license to setup.py
* Separated grammar and lexical exceptions
* Added cli module
* Added 'examples' package
* Generated grammar added to .gitignore
* Updated README
* Added simple setup.py
* Added gitignore
* Updated license notes
* Used @wrap decorator to copy the arguments of context-aware function
* Update LICENSE.txt
* Add Apache 2.0 license
* Initial commit of YAQL: lexical tokenizer, grammar parser and expression executor of the context-based pluggable functions for basic YAQL operations. Implemented basic set of functions: - loading of data from context - attribute access (including collection iteration) - scoping - collection filtering - comparison operators - arithmetic operators - boolean operators - generation of simple data structures (list, dictionary, tuple)
* Initial commit
