Metadata-Version: 2.0
Name: pyisaf
Version: 0.1.7
Summary: Python library for i.SAF VAT report generation.
Home-page: https://github.com/naglis/pyisaf
Author: Naglis Jonaitis
Author-email: naglis@mailbox.org
License: BSD license
Keywords: pyisaf
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: schema (>=0.6.5,<0.7.0)

=======
pyisaf
=======

.. image:: https://img.shields.io/pypi/v/pyisaf.svg
        :target: https://pypi.python.org/pypi/pyisaf

.. image:: https://img.shields.io/travis/naglis/pyisaf.svg
        :target: https://travis-ci.org/naglis/pyisaf

.. image:: https://codecov.io/gh/naglis/pyisaf/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/naglis/pyisaf

Python library for i.SAF VAT report generation.


* GitHub: https://github.com/naglis/pyisaf
* Free software: BSD license
* Supported Python versions: 2.7, 3.5+

Features
--------

* i.SAF data validation based on XSD
* i.SAF XML builder

Usage
-----

A complete example of i.SAF data dict can be found `in the tests
<https://github.com/naglis/pyisaf/blob/master/tests/data.py>`_.

.. code:: python

    from pyisaf import schema_v1_2 as isaf_schema, ISAF1_2Builder as Builder
    from schema import SchemaError


    # Prepare i.SAF data
    data = {
        'header': {
            'file_description': {
                # ...
            },
        },
        'master_files': {
            'customers': {
                # ...
            },
            'suppliers': {
                # ...
            },
        },
        'source_documents': {
            'purchase_invoices': {
                # ...
            },
            'sales_invoices': {
                # ...
            },
            'settlements_and_payments': {
                # ...
            },
        },
    }
    # Validate data against i.SAF schema
    isaf_data = isaf_schema.validate(data)

    # Build the XML
    builder = Builder(isaf_data)
    isaf_xml = builder.dumps()


.. :changelog:

History
-------

v0.1.7 (2017-01-24)
~~~~~~~~~~~~~~~~~~~

* Fixes rendering of elements which are nillable to set xsi:nil attribute

v0.1.6 (2017-01-06)
~~~~~~~~~~~~~~~~~~~

* Adds Python 3.6 build

v0.1.5 (2016-12-05)
~~~~~~~~~~~~~~~~~~~

* Fixes to not add empty tags like Customers, Suppliers, PurchaseInvoices if
  the underlying collection is empty.

v0.1.4 (2016-11-30)
~~~~~~~~~~~~~~~~~~~

* Fixes nillable dates rendering

v0.1.3 (2016-11-24)
~~~~~~~~~~~~~~~~~~~

* Includes packages (fail)
* Removes docs from the packages

v0.1.2 (2016-11-24)
~~~~~~~~~~~~~~~~~~~

* Minor fixes in description

v0.1.1 (2016-11-24)
~~~~~~~~~~~~~~~~~~~

* Initial version


