Metadata-Version: 2.1
Name: logicbank
Version: 0.0.6
Summary: Declare multi-table rules for SQLAlchemy update logic -- 40X more concise, Python for extensibility.
Home-page: https://github.com/valhuber/logicbank
Author: Val Huber
Author-email: valjhuber@gmail.com
License: BSD
Project-URL: Docs, https://github.com/valhuber/logicbank/wiki
Description: Python Rules - Logic for SQLAlchemy
        ===================================
        
        This package enables you to declare rules that govern SQLAlchemy
        update transaction logic (multi-table derivations, constraints,
        and actions such as sending mail or messages).
        
        Logic is stated in Python, and is over an **40X
        more concise than code.**
        
        
        Features
        --------
        
        Logic is declared in Python (example below), and is:
        
        - **Extensible:** logic consists of rules (see below), plus standard Python code
        
        - **Multi-table:** rules like `sum` automate multi-table transactions
        
        - **Scalable:** rules are pruned and optimized; for example, sums are processed as *1 row adjustment updates,* rather than expensive SQL aggregate queries
        
        - **Manageable:** develop and debug your rules in IDEs, manage it in SCS systems (such as `git`) using existing procedures
        
        
        Example:
        --------
        The following 5 rules represent the same logic as 200 lines
        of Python:
        
        .. image:: https://github.com/valhuber/LogicBank/raw/main/images/example.png
            :width: 800px
            :align: center
        
        
        
        To activate the rules declared above:
        
        .. code-block:: Python
        
            LogicBank.activate(session=session, activator=declare_logic)
        
        Depends on:
        -----------
        - SQLAlchemy
        - Python 3.8
        
        
        More information:
        -----------------
        The github project includes documentation and examples.
        
        
        Acknowledgements
        ----------------
        Many thanks to
        
        - Tyler Band, for testing and the Banking sample
        - Max Tardiveau, for testing
        
        
        
        Change Log
        ----------
        
        0.0.6 - Initial Version
        
Platform: any
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: ~=3.8
Description-Content-Type: text/x-rst
Provides-Extra: jmespath
