Dev/mip 43/udfgen tests
Created by: jassak
This PR addresses the following Jira tickets:
- MIP-4 Implement mechanism for getting traceback if exception is raised inside UDF
- MIP-5 Separate table creation from UDF execution query
- MIP-43 Add tests to UDF generator
The UDF generator has been completely rewritten. For more details see commit message in b6f58842
To make the review process easier:
- The main addition is in
mipengine/node/udfgen/udfgenerator.py
. A high level explanation of the module's contents can be found in the module docstring. - In the file
tests/unit_tests/test_udfgenerator.py
all tests after line number 821 are testing the principal behaviors implemented in the module. Before that it's mostly implementation details with a few exceptions. - A new module,
mipengine/datatypes.py
, implements an enum class with the three data types used throughout the codebase, together with some methods for converting to and from their python/SQL versions. - Changes in
mipengine/algorithms/logistic_regression.py
are necessary because of the udf generator changes. These changes are not final, more work is needed in order to develop a better language for the algorithm flow.