Version 1.0.0 pre-release

[1.0.0-pre-release] - 2022-08-11

Added

  • Add some test and clear the code for a full coverage (100%)!!!
  • Add a gitlab ci files to run precommit, pytest coverage and pytest.
  • Add readonly in the config.
  • Add support for config files to have a white list and a black list.
  • Add a detection for the Length mismatch between select lambda in intersect, union and except_.
  • Add a validator for column names.
  • Add the support for dict in lambda to support renaming of columns.
  • Add the possibility to have the same column name.
  • Add right operator for:
    • add
    • sub
    • mul
    • trudive
    • mod
    • pow
    • and
    • or
  • Add hyperbolic functions for MagicDotPath:
    • acosh
    • asinh
    • atanh
    • cosh
    • sinh
    • tanh
  • Add trigonometric functions for MagicDotPath:
    • acos
    • acosd
    • asin
    • asind
    • atan
    • atand
    • atan2
    • atan2d
    • cos
    • cosd
    • cot
    • cotd
    • sin
    • sind
    • tan
    • tand
  • Add more mathematical functions for MagicDotPath:
    • ceil
    • degrees
    • floor
    • gcd
    • lcm
    • exp
    • ln
    • log10
    • log
    • min_scale
    • radians
    • round
    • scale
    • sign
    • trim_scale
    • trunc
  • Add Markdonlint for the project.
  • Add - unary operator for MagicDotPath.
  • Add + unary operator for MagicDotPath.
  • Add ** (puissance) operator for MagicDotPath.
  • Add sqrt (square root) operator for MagicDotPath.
  • Add cbrt (cube root) operator for MagicDotPath.
  • Add abs (absolute value) operator for MagicDotPath.
  • Add & (and) operator for MagicDotPath.
  • Add | (or) operator for MagicDotPath.
  • Add ~ (not) operator for MagicDotPath.
  • Add * operator for MagicDotPath.
  • Add / operator for MagicDotPath.
  • Add % operator for MagicDotPath.
  • Add + operator for MagicDotPath.
  • Add - operator for MagicDotPath.
  • Add the group_join() function to generate a GROUP_JOIN subcommand.
  • Add the possibility to make other command after a join.
  • Add the delete() function to generate a DELETE subcommand.
  • Add the possibility to make a request from another request.
  • Add pretty_print() function to get a pretty output in terminal with rich.
  • Add the group_by() function to generate a GROUP_BY subcommand.
  • Add sum(), min(), max(), avg(), count(), concat() aggregate functions for group_by().
  • Add a new linter: flakehell
  • Add a new linter: pylint
  • Add the distinct() function to generate a DISTINCT subcommand.
  • Add the intersect() function to generate a INTERSECT subcommand.
  • Add the union() function to generate a UNION subcommand.
  • Add execution for join() (and tests of the execution).
  • Add a new linter: SQLfluff.
  • Add an Error if we try to reuse an SQL_Enumerable.
  • Add eq, ne and copy in SQLEnumerable.
  • Add eq, ne operator in Command data class.
  • Add the join() function to generate an JOIN subcommand.
  • Add the contains() function to know if a table contains an element or validates a predicate.
  • Add the except_() function to generate an EXCEPT subcommand.
  • Add the any() function to know if at least one element in table verify the predicate.
  • Add the all() function to know if all element in table verify the predicate.
  • Add the skip_last() function to generate a SKIP LAST subcommand.
  • Add the take_last() function to generate a TAKE LAST subcommand.
  • Add the last_or_default() function to generate a LAST subcommand but if the request return None we return an error and don't raise an Exception.
  • Add the last() function to generate a LAST subcommand.
  • Add the single_or_default() function to verify if the request return exactly one objects but if the record is empty return None.
  • Add the single() function to verify if the request return exactly one objects.
  • Add a function the detect implicit and in where condition and replace all WHERE (except the first) by a AND in the request.
  • Add the first_or_default() function to execute a LIMIT 1 OFFSET 0 subcommand of request but if the request return None we return an error and don't raise an Exception.
  • Add the element_at_or_default() function to execute a LIMIT 1 OFFSET 'n' subcommand of request but if the request return None we return an error and don't raise an Exception.
  • Add the count() function to execute a COUNT(*) subcommand of request.
  • Add the update() function to execute a UPDATE subcommand of request.
  • Add the first() function to execute a LIMIT 1 OFFSET 0 subcommand of request (Its equal to element_at(0)).
  • Add the element_at() function to execute a LIMIT 1 OFFSET 'n' subcommand of request.
  • Add a real README with a little documentation.
  • Add the skip() function to execute a OFFSET subcommand of request.
  • Add the take() function to execute a LIMIT [OFFSET] subcommand of request.
  • Add the order_by_descending() function to generate the ORDER_BY [predicate] DESC subcommand of a request.
  • Add the order_by() function to generate the ORDER_BY [predicate] ASC subcommand of a request.
  • Add the insert() function to generate the INSERT INTO subcommand of a request.
  • Add test for the already implemented functions
  • Add the execute() function to execute a command of a Request objects.
  • Add the min() function to generate the MIN subcommand of a request.
  • Add the max() function to generate the MAX subcommand of a request.
  • Add the where() function to generate the WHERE subcommand of a request.
  • Add the select() function to generate the SELECT subcommand of a request.
  • Add operator function (gt, lt, ge, le, eq, ne) to get the correct operator for request like : name = "toto" or mass > 50.
  • Add some useful classes Request, _Command, _CommandType and MagicDotPath to construct the request command.
  • Add functions to connect to a database.