{ "info": { "author": "Naglis Jonaitis", "author_email": "naglis@versada.eu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "=======\npyisaf\n=======\n\n.. image:: https://img.shields.io/pypi/v/pyisaf.svg\n :target: https://pypi.python.org/pypi/pyisaf\n\n.. image:: https://img.shields.io/travis/versada/pyisaf.svg\n :target: https://travis-ci.org/versada/pyisaf\n\n.. image:: https://codecov.io/gh/versada/pyisaf/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/versada/pyisaf\n\nPython library for i.SAF VAT report generation.\n\n\n* GitHub: https://github.com/versada/pyisaf\n* Free software: BSD license\n* Supported Python versions: 2.7, 3.5+\n\nFeatures\n--------\n\n* i.SAF data validation based on XSD\n* i.SAF XML builder\n\nUsage\n-----\n\nA complete example of i.SAF data dict can be found `in the tests\n`_.\n\n.. code:: python\n\n from pyisaf import schema_v1_2 as isaf_schema, ISAF1_2Builder as Builder\n from schema import SchemaError\n\n\n # Prepare i.SAF data\n data = {\n 'header': {\n 'file_description': {\n # ...\n },\n },\n 'master_files': {\n 'customers': {\n # ...\n },\n 'suppliers': {\n # ...\n },\n },\n 'source_documents': {\n 'purchase_invoices': {\n # ...\n },\n 'sales_invoices': {\n # ...\n },\n 'settlements_and_payments': {\n # ...\n },\n },\n }\n # Validate data against i.SAF schema\n isaf_data = isaf_schema.validate(data)\n\n # Build the XML\n builder = Builder(isaf_data)\n isaf_xml = builder.dumps()\n\n\n.. :changelog:\n\nHistory\n-------\n\nv0.1.8 (2017-02-01)\n~~~~~~~~~~~~~~~~~~~\n\n* Updates links after repository transfer.\n\nv0.1.7 (2017-01-24)\n~~~~~~~~~~~~~~~~~~~\n\n* Fixes rendering of elements which are nillable to set xsi:nil attribute\n\nv0.1.6 (2017-01-06)\n~~~~~~~~~~~~~~~~~~~\n\n* Adds Python 3.6 build\n\nv0.1.5 (2016-12-05)\n~~~~~~~~~~~~~~~~~~~\n\n* Fixes to not add empty tags like Customers, Suppliers, PurchaseInvoices if\n the underlying collection is empty.\n\nv0.1.4 (2016-11-30)\n~~~~~~~~~~~~~~~~~~~\n\n* Fixes nillable dates rendering\n\nv0.1.3 (2016-11-24)\n~~~~~~~~~~~~~~~~~~~\n\n* Includes packages (fail)\n* Removes docs from the packages\n\nv0.1.2 (2016-11-24)\n~~~~~~~~~~~~~~~~~~~\n\n* Minor fixes in description\n\nv0.1.1 (2016-11-24)\n~~~~~~~~~~~~~~~~~~~\n\n* Initial version\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/versada/pyisaf", "keywords": "pyisaf", "license": "BSD license", "maintainer": "", "maintainer_email": "", "name": "pyisaf", "package_url": "https://pypi.org/project/pyisaf/", "platform": "", "project_url": "https://pypi.org/project/pyisaf/", "project_urls": { "Homepage": "https://github.com/versada/pyisaf" }, "release_url": "https://pypi.org/project/pyisaf/0.1.8/", "requires_dist": [ "schema (<0.7.0,>=0.6.5)" ], "requires_python": "", "summary": "Python library for i.SAF VAT report generation.", "version": "0.1.8" }, "last_serial": 2611909, "releases": { "0.1.0": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "a0aaecddf2160589e31df33f68e53714", "sha256": "46e96c9b396683c893498d51c1c9cb437f0902284f6410a482c4df92c3f14fd3" }, "downloads": -1, "filename": "pyisaf-0.1.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "a0aaecddf2160589e31df33f68e53714", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3912, "upload_time": "2016-11-24T20:06:04", "url": "https://files.pythonhosted.org/packages/9e/7f/20aa647f274feedb8f86120660bbf22c774760d9e3066e99dabb46f6c9ba/pyisaf-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45a961252c7de04fe02ea212867f7b6b", "sha256": "d0de468fd1ebf98fcb4716daf0029bad93fce7fd0ad35339dac616b18f904d5b" }, "downloads": -1, "filename": "pyisaf-0.1.1.tar.gz", "has_sig": true, "md5_digest": "45a961252c7de04fe02ea212867f7b6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14210, "upload_time": "2016-11-24T20:06:08", "url": "https://files.pythonhosted.org/packages/49/4d/75b3dda65ad59863f6d20ea9fdbf20c988ac8614f681c90ef08694377dd4/pyisaf-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "97a6ffb93bd7b169988b8c135ae1eba2", "sha256": "bf68a5acd8f4e2906993aa572a7cc00f629f33cc5082826c0d6784e871fb8720" }, "downloads": -1, "filename": "pyisaf-0.1.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "97a6ffb93bd7b169988b8c135ae1eba2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3997, "upload_time": "2016-11-24T20:20:57", "url": "https://files.pythonhosted.org/packages/14/8f/3be21af7cc4bf05ee9369fa98af652b002d3daf38f1a124edd4db146be0e/pyisaf-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dcc3b514f10e9dc66b259d79dadeb587", "sha256": "ea581abfa255001c0016e5745245245a45fbab300783be14b2ae8b49227b3012" }, "downloads": -1, "filename": "pyisaf-0.1.2.tar.gz", "has_sig": true, "md5_digest": "dcc3b514f10e9dc66b259d79dadeb587", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14255, "upload_time": "2016-11-24T20:21:00", "url": "https://files.pythonhosted.org/packages/1d/33/051007c738b2c02b80a1436fb8dba3cc0980ecacfc7e68942288d6507924/pyisaf-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ccd2872397c0dd49f17f3d08d9385936", "sha256": "0e6ff633c23d2267d765e07205271c203bbdab0005d8e0a0c6d6cefcc268ca08" }, "downloads": -1, "filename": "pyisaf-0.1.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "ccd2872397c0dd49f17f3d08d9385936", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9554, "upload_time": "2016-11-24T20:39:04", "url": "https://files.pythonhosted.org/packages/bd/e4/fcc077bc24aa657d8ea3a696076596779598486e99a2e8e5f9763f272027/pyisaf-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9deb7ad5f7a50f378d20673507f42245", "sha256": "dd1ba37d79c053b07fc1b6d4611cfb505f5c8d0b183b8540b0e7e1ae26719457" }, "downloads": -1, "filename": "pyisaf-0.1.3.tar.gz", "has_sig": true, "md5_digest": "9deb7ad5f7a50f378d20673507f42245", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17584, "upload_time": "2016-11-24T20:39:07", "url": "https://files.pythonhosted.org/packages/c6/95/6b059cf44dff05c0d7d90431c92149d6f1bc9e35be33120b577d37b3bd41/pyisaf-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "246b45dd8b689cb881bbaf206c2e4fec", "sha256": "1991f3c42ffd177228723fa046efea6a804ae44f580d04265ce67282204acf1e" }, "downloads": -1, "filename": "pyisaf-0.1.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "246b45dd8b689cb881bbaf206c2e4fec", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9660, "upload_time": "2016-11-30T15:47:41", "url": "https://files.pythonhosted.org/packages/69/cf/1b4d4882ba367945d81a7a9a07700d3f84488045a26b66a1d3bced80471c/pyisaf-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3910041186773a051cb556793d611691", "sha256": "e5450f14ab8dc8bf590336cae75b5897ec774bc02419a447653f2fc6659ec2f6" }, "downloads": -1, "filename": "pyisaf-0.1.4.tar.gz", "has_sig": true, "md5_digest": "3910041186773a051cb556793d611691", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10155, "upload_time": "2016-11-30T15:47:43", "url": "https://files.pythonhosted.org/packages/4f/9b/86bfea03963f42f6bc1ac3bdf44684f76bc5117318c2c4f62fff0c2cd402/pyisaf-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "2c4b5b57ebd86cd1a8c41e46b8408a5a", "sha256": "0cfba4a5de65268b9023445127ac891dac28e2851d30f60a543d53806da6a04c" }, "downloads": -1, "filename": "pyisaf-0.1.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "2c4b5b57ebd86cd1a8c41e46b8408a5a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9886, "upload_time": "2016-12-05T14:54:16", "url": "https://files.pythonhosted.org/packages/52/b0/81ef30c1f16c0137624764b67796ed2cb1c976d67fa9a00431bcd1eb4c0c/pyisaf-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5db65c43a0cf968ac657dff20f944fb", "sha256": "33ed6a0c0582ab8f777d5c207505ce5f8f622d7ba6e876ea69bd13d35d7ddac7" }, "downloads": -1, "filename": "pyisaf-0.1.5.tar.gz", "has_sig": true, "md5_digest": "f5db65c43a0cf968ac657dff20f944fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10433, "upload_time": "2016-12-05T14:54:18", "url": "https://files.pythonhosted.org/packages/47/e1/70005f6482d8e6c156025efa2f3531c939821128adb865a6b5a6e85242a9/pyisaf-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "16eff807fe92505f5c7325e7e4d7370b", "sha256": "fa0074bae0b7b0cb31fd4af3074da8643e92d85941168fa3d233d33ce6190596" }, "downloads": -1, "filename": "pyisaf-0.1.6-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "16eff807fe92505f5c7325e7e4d7370b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9939, "upload_time": "2017-01-06T19:45:11", "url": "https://files.pythonhosted.org/packages/e6/07/eaed3b1bd31a535e287b92b486c79b67c9cc1368d7dc11db0e7aae11b910/pyisaf-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04cec9754ebe69983fe0513b03d55385", "sha256": "4618c0dd7846dbad1aedf53f30a63a1a5b30234995f1547368abd3712c67b748" }, "downloads": -1, "filename": "pyisaf-0.1.6.tar.gz", "has_sig": true, "md5_digest": "04cec9754ebe69983fe0513b03d55385", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18218, "upload_time": "2017-01-06T19:45:13", "url": "https://files.pythonhosted.org/packages/40/9d/d1800e5253a65252e876e8f17ba4539561ec7094e8d4bdfef7a3d1607440/pyisaf-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "6fc728a0d00f7232cf7e7b9863c26d25", "sha256": "b15df0264cdd4d3887717efb8d54772d9f86c445102a959a28d507cedc3f08db" }, "downloads": -1, "filename": "pyisaf-0.1.7-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "6fc728a0d00f7232cf7e7b9863c26d25", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10723, "upload_time": "2017-01-24T11:04:47", "url": "https://files.pythonhosted.org/packages/2c/8a/514625241cde51e82ad3e5a9b162d9b6c0fda910fb235163d696e99e8565/pyisaf-0.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bc4f698dc35f7f198166a2f37a2e5df3", "sha256": "40b3f2a15209b8e4bab1168c3a2771e1aa76fb787a744298c8b086cab766acf9" }, "downloads": -1, "filename": "pyisaf-0.1.7.tar.gz", "has_sig": true, "md5_digest": "bc4f698dc35f7f198166a2f37a2e5df3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11135, "upload_time": "2017-01-24T11:04:48", "url": "https://files.pythonhosted.org/packages/55/97/ee7be0bb68da3d464e51676a2f83d9b3b8e1460a96851f22c5c386a19d38/pyisaf-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "e92834371ab9b6a2d63994723ceb5ea9", "sha256": "d0195de1d29e1207673cfdd070e83141379ad388f7954f83a65575e94f970343" }, "downloads": -1, "filename": "pyisaf-0.1.8-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e92834371ab9b6a2d63994723ceb5ea9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10776, "upload_time": "2017-02-01T16:00:18", "url": "https://files.pythonhosted.org/packages/d5/4f/c49090fdf37cde63e1cf75bddf696574ecd85f217ab6b5e023fa259fd4b9/pyisaf-0.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe4419d8eb4560ff583a6a83cbaf1a0a", "sha256": "f5a6ee2f460f95ef26517bb8ce877e06edec07546515f2bc4c092387685ae21a" }, "downloads": -1, "filename": "pyisaf-0.1.8.tar.gz", "has_sig": true, "md5_digest": "fe4419d8eb4560ff583a6a83cbaf1a0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11175, "upload_time": "2017-02-01T16:00:19", "url": "https://files.pythonhosted.org/packages/f5/94/190f6c076cf273517774c2be459722adf783d0b858fef7127c1c6660fef4/pyisaf-0.1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e92834371ab9b6a2d63994723ceb5ea9", "sha256": "d0195de1d29e1207673cfdd070e83141379ad388f7954f83a65575e94f970343" }, "downloads": -1, "filename": "pyisaf-0.1.8-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e92834371ab9b6a2d63994723ceb5ea9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10776, "upload_time": "2017-02-01T16:00:18", "url": "https://files.pythonhosted.org/packages/d5/4f/c49090fdf37cde63e1cf75bddf696574ecd85f217ab6b5e023fa259fd4b9/pyisaf-0.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe4419d8eb4560ff583a6a83cbaf1a0a", "sha256": "f5a6ee2f460f95ef26517bb8ce877e06edec07546515f2bc4c092387685ae21a" }, "downloads": -1, "filename": "pyisaf-0.1.8.tar.gz", "has_sig": true, "md5_digest": "fe4419d8eb4560ff583a6a83cbaf1a0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11175, "upload_time": "2017-02-01T16:00:19", "url": "https://files.pythonhosted.org/packages/f5/94/190f6c076cf273517774c2be459722adf783d0b858fef7127c1c6660fef4/pyisaf-0.1.8.tar.gz" } ] }