Metadata-Version: 2.1
Name: convtools
Version: 0.2.1
Summary: convtools is a python library to declaratively define fast conversions from python objects to python objects, including processing collections and doing complex aggregations.
Home-page: UNKNOWN
Author: iTechArt Group
Author-email: mikita.almakou@itechart-group.com
License: mit
Project-URL: Documentation, https://convtools.readthedocs.io/en/latest/
Project-URL: Bug Reports, https://github.com/itechart-almakov/convtools/issues
Description: =========
        convtools
        =========
        
        
        **convtools** is a python library to declaratively define fast conversions from python
        objects to python objects, including processing collections and doing complex
        aggregations.
        
        .. image:: https://img.shields.io/pypi/pyversions/convtools.svg
            :target: https://pypi.org/project/convtools/
        
        .. image:: https://img.shields.io/github/license/itechart-almakov/convtools.svg
           :target: https://github.com/itechart-almakov/convtools/blob/master/LICENSE.txt
        
        .. image:: https://codecov.io/gh/itechart-almakov/convtools/branch/master/graph/badge.svg
           :target: https://codecov.io/gh/itechart-almakov/convtools
        
        .. image:: https://github.com/itechart-almakov/convtools/workflows/tests/badge.svg
           :target: https://github.com/itechart-almakov/convtools/workflows/tests/badge.svg
           :alt: Tests Status
        
        .. image:: https://readthedocs.org/projects/convtools/badge/?version=latest
           :target: https://convtools.readthedocs.io/en/latest/?badge=latest
           :alt: Documentation Status
        
        .. image:: https://img.shields.io/github/tag/itechart-almakov/convtools.svg
           :target: https://GitHub.com/itechart-almakov/convtools/tags/
        
        .. image:: https://badge.fury.io/py/convtools.svg
           :target: https://badge.fury.io/py/convtools
        
        .. image:: https://pepy.tech/badge/convtools
           :target: https://pepy.tech/project/convtools
           :alt: Downloads
        
        
        
        Description
        ===========
        
        The speed of **convtools** comes from the approach of generating code & compiling
        conversion functions, which don't have any generic code like superfluous
        loops, ifs, etc.
        
        So you can follow the DRY principle by storing and reusing the code on the
        python expression level, but at the same time be able to run the
        ``gen_converter`` and get the compiled code which doesn't care about being DRY
        and is generated to be highly specialized for the specific need.
        
        
        Conversions are not limited to simple data transformations, there are
        ``GroupBy`` & ``Aggregate`` conversions with many useful reducers:
        
         * from common `Sum`, `Max`
         * and less widely supported `First`/`Last`, `Array`/`ArrayDistinct`
         * to `DictSum`-like ones (for nested aggregation) and `MaxRow`/`MinRow`
           (for finding an object with max/min value and further processing)
        
        Every conversion:
         * contains the information of how to transform an input
         * can be piped into another conversion (same as wrapping)
         * has a method ``gen_converter`` returning a function compiled at runtime
         * despite being compiled at runtime, is debuggable with `pdb` due to `linecache` populating.
        
        Installation:
        =============
        
        .. code-block:: bash
        
           pip install convtools
        
        Documentation
        =============
        
        `convtools on Read the Docs <https://convtools.readthedocs.io/en/latest/>`_
        
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Requires-Python: >=3.6
Description-Content-Type: text/x-rst; charset=UTF-8
Provides-Extra: testing
