<commit_before>=================================================
lima: Lightweight Marshalling of Python 3 Objects
=================================================

|pypi| |docs| |build| |coverage|

**lima** takes arbitrary Python objects and converts them into data structures
native to Python. The result can easily be serialized into JSON, XML, and all
sorts of other things. lima is Free Software, lightweight and fast.


Key Features
============

Lightweight
    lima has only a few hundred SLOC. lima has no external dependencies.

Fast
    lima tries to be as fast as possible while still remaining pure Python 3.

Focused
    lima doesn't try to do an ORM's job and it doesn't try to do a JSON
    library's job.

Extensible
    Build complex schemas out of simpler ones. Extend existing fields types or
    define your own.

Easy to learn
    lima is not only fast but also fast (and easy) to learn.

Well documented
    lima has a comprehensive tutorial and more than one line of docstring per
    line of Python code.

Free
    lima is Free Software, licensed under the terms of the MIT license (see the
    LICENSE file for details).


lima at a Glance
================

.. code-block:: python

    import datetime
    import lima

    # a model
    class Book:
        def __init__(self, title, date_published):
            self.title = title
            self.date_published = date_published

    # a marshalling schema
    class BookSchema(lima.Schema):
        title = lima.fields.String()
        published = lima.fields.Date(attr='date_published')

    book = Book('The Old Man and the Sea', datetime.date(1952, 9, 1))
    schema = BookSchema()
    schema.dump(book)
    # {'published': '1952-09-01', 'title': 'The Old Man and the Sea'}


Requirements
============

Python 3.3 or newer. That's it.


Installation
============

::

  $ pip install lima

See the `documentation`_  for more comprehensive install instructions.


.. |pypi| image:: https://img.shields.io/pypi/v/lima.svg
    ?style=flat-square
    :target: https://pypi.python.org/pypi/lima
    :alt: PyPi Package

.. |docs| image:: https://readthedocs.org/projects/lima/badge/
    ?version=latest&style=flat-square
    :target: https://lima.readthedocs.org
    :alt: Documentation Status

.. |build| image:: https://img.shields.io/travis/b6d/lima/develop.svg
    ?style=flat-square
    :target: https://travis-ci.org/b6d/lima
    :alt: Build Status

.. |coverage| image:: https://img.shields.io/coveralls/b6d/lima/develop.svg
    ?style=flat-square
    :target: https://coveralls.io/r/b6d/lima?branch=develop
    :alt: Test Coverage

.. _documentation: https://lima.readthedocs.org/en/latest/<commit_msg>README: change link to coverall report<commit_after>=================================================
lima: Lightweight Marshalling of Python 3 Objects
=================================================

|pypi| |docs| |build| |coverage|

**lima** takes arbitrary Python objects and converts them into data structures
native to Python. The result can easily be serialized into JSON, XML, and all
sorts of other things. lima is Free Software, lightweight and fast.


Key Features
============

Lightweight
    lima has only a few hundred SLOC. lima has no external dependencies.

Fast
    lima tries to be as fast as possible while still remaining pure Python 3.

Focused
    lima doesn't try to do an ORM's job and it doesn't try to do a JSON
    library's job.

Extensible
    Build complex schemas out of simpler ones. Extend existing fields types or
    define your own.

Easy to learn
    lima is not only fast but also fast (and easy) to learn.

Well documented
    lima has a comprehensive tutorial and more than one line of docstring per
    line of Python code.

Free
    lima is Free Software, licensed under the terms of the MIT license (see the
    LICENSE file for details).


lima at a Glance
================

.. code-block:: python

    import datetime
    import lima

    # a model
    class Book:
        def __init__(self, title, date_published):
            self.title = title
            self.date_published = date_published

    # a marshalling schema
    class BookSchema(lima.Schema):
        title = lima.fields.String()
        published = lima.fields.Date(attr='date_published')

    book = Book('The Old Man and the Sea', datetime.date(1952, 9, 1))
    schema = BookSchema()
    schema.dump(book)
    # {'published': '1952-09-01', 'title': 'The Old Man and the Sea'}


Requirements
============

Python 3.3 or newer. That's it.


Installation
============

::

  $ pip install lima

See the `documentation`_  for more comprehensive install instructions.


.. |pypi| image:: https://img.shields.io/pypi/v/lima.svg
    ?style=flat-square
    :target: https://pypi.python.org/pypi/lima
    :alt: PyPi Package

.. |docs| image:: https://readthedocs.org/projects/lima/badge/
    ?version=latest&style=flat-square
    :target: https://lima.readthedocs.org
    :alt: Documentation Status

.. |build| image:: https://img.shields.io/travis/b6d/lima/develop.svg
    ?style=flat-square
    :target: https://travis-ci.org/b6d/lima
    :alt: Build Status

.. |coverage| image:: https://img.shields.io/coveralls/b6d/lima/develop.svg
    ?style=flat-square
    :target: https://coveralls.io/r/b6d/lima
    :alt: Test Coverage

.. _documentation: https://lima.readthedocs.org/en/latest/
{'fraction_non_alphanumeric': 0.1473429951690821, 'fraction_numerical': 0.008175399479747306, 'mean_word_length': 3.3341384863123995, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 18, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3971340', 'n_tokens_mistral': 1689, 'n_tokens_neox': 1588, 'n_words': 556}