{ "info": { "author": "Qualita Seguranca e Saude Ocupacional", "author_email": "lab.ti@qualitaocupacional.com.br", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "# LIBeSocial\n\nBiblioteca em Python para lidar com os processos do [eSocial](https://portal.esocial.gov.br):\n\n- Valida\u00e7\u00e3o dos XML's dos eventos;\n- Comunica\u00e7\u00e3o com o Webservices do eSocial para envio e consulta de lotes;\n- Assinatura dos XML's (e conex\u00e3o com o webservices) com certificado tipo `A1`.\n\nApesar desta biblioteca ter sido desenvolvida para lidar especialmente com os eventos de SST (Sa\u00fade e Seguran\u00e7a do Trabalho), nada impede que ela possa ser utilizada para enviar/validar quaisquer dos eventos dispon\u00edveis no projeto eSocial.\n\nNo momento s\u00f3 \u00e9 poss\u00edvel utilizar assinaturas do tipo `A1` em arquivos no formato `PKCS#12` (geralmente arquivos com extens\u00e3o `.pfx` ou `.p12`).\n\n# Instala\u00e7\u00e3o\n\nPyPi:\n```\npip install libesocial\n```\n\nA vers\u00e3o mais recente diretamente do reposit\u00f3rio:\n\n```\npip install https://github.com/qualitaocupacional/libesocial/archive/master.zip\n```\n\nOu voc\u00ea pode clonar este reposit\u00f3rio:\n```\ngit clone https://github.com/qualitaocupacional/libesocial\n```\n\nEntrar na pasta do reposit\u00f3rio rec\u00e9m clonado:\n```\n> cd libesocial\n> python setup.py install\n```\n# Uso b\u00e1sico\n\n**Assinando um evento**\n\n```python\nimport esocial.xml\nimport esocial.utils\n\ncert_data = esocial.utils.pkcs12_data('my_cert_file.pfx', 'my password')\nevt2220 = esocial.xml.load_fromfile('S2220.xml')\n\n# Signing using the signature algorithms from eSocial documentation\nevt2220_signed = esocial.xml.sign(evt2220, cert_data)\n\n```\n\n**Validando um evento**\n\n```python\nimport esocial.xml\n\nevt2220 = esocial.xml.load_fromfile('S2220.xml')\ntry:\n esocial.xml.XMLValidate(evt2220).validate()\nexcept AssertionError as e:\n print('O XML do evento S-2220 \u00e9 inv\u00e1lido!')\n print(e)\n```\nou\n```python\nimport esocial.xml\n\nevt2220 = esocial.xml.load_fromfile('S2220.xml')\nxmlschema = esocial.xml.XMLValidate(evt2220)\nif xmlschema.isvalid():\n print('XML do evento \u00e9 v\u00e1lido! :-D.')\nelse:\n print('O XML do evento S-2220 \u00e9 inv\u00e1lido!')\n print(str(xmlschema.last_error))\n```\n\n**OBSERVA\u00c7\u00c3O**: At\u00e9 o presente momento (*15/05/2018*), a [SignXML](https://github.com/XML-Security/signxml),\nvers\u00e3o **2.5.2** que est\u00e1 no [PyPi](https://pypi.org/project/signxml) n\u00e3o est\u00e1 alinhada com a vers\u00e3o mais\natual da [Cryptography](https://pypi.org/project/cryptography):\n\n```\n(...)/site-packages/signxml/__init__.py:370: CryptographyDeprecationWarning: signer and verifier have been deprecated. Please use sign and verify instead.\n signer = key.signer(padding=PKCS1v15(), algorithm=hash_alg)\n\n```\nIsso n\u00e3o atrapalha o funcionamento da **LIBeSocial**, mas \u00e9 um aviso de que no futuro essa\nfun\u00e7\u00e3o n\u00e3o vai mais funcionar. Voc\u00ea pode instalar a mesma vers\u00e3o **2.5.2** da **SignXML** diretamente do\nreposit\u00f3rio oficial, onde esta *issue* j\u00e1 foi corrigida:\n```\npip install https://github.com/XML-Security/signxml/archive/master.zip\n```\n\n# Requisitos\n\nA LIBeSocial requer as seguintes bibliotecas Python:\n\n- **requests** >= 2.7.0\n- **lxml** >= 4.2.1\n- **zeep** >= 2.5.0\n- **pyOpenSSL** >= 17.5.0\n- **signxml** >= 2.5.2\n- **six** >= 1.11.0\n\n# Licen\u00e7a\n\nA LIBeSocial \u00e9 um projeto de c\u00f3digo aberto, desenvolvido pelo departamento de\nPesquisa e Desenvolvimento e Tecnologia da Informa\u00e7\u00e3o da [Qualit\u00e1 Seguran\u00e7a e Sa\u00fade Ocupacional](https://qualitaocupacional.com.br)\ne est\u00e1 licenciada pela [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/qualitaocupacional/libesocial", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "libesocial", "package_url": "https://pypi.org/project/libesocial/", "platform": "", "project_url": "https://pypi.org/project/libesocial/", "project_urls": { "Homepage": "https://github.com/qualitaocupacional/libesocial" }, "release_url": "https://pypi.org/project/libesocial/0.0.1rc1/", "requires_dist": [ "requests (>=2.7.0)", "lxml (>=4.2.1)", "zeep (>=2.5.0)", "pyOpenSSL (>=17.5.0)", "signxml (>=2.5.2)", "six (>=1.11.0)" ], "requires_python": "", "summary": "Biblioteca para uso com o eSocial", "version": "0.0.1rc1" }, "last_serial": 4290974, "releases": { "0.0.1.dev0": [ { "comment_text": "", "digests": { "md5": "e5042d13a0fcb93030a8a8efe558fb1f", "sha256": "1d8d94e5a46548ebf5df4d394796e3c994b9b549b85efc01e72e5f99a0f8641c" }, "downloads": -1, "filename": "libesocial-0.0.1.dev0.tar.gz", "has_sig": false, "md5_digest": "e5042d13a0fcb93030a8a8efe558fb1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 112835, "upload_time": "2018-05-23T19:05:35", "url": "https://files.pythonhosted.org/packages/77/32/0e714da89d47f132ff6f1d142e0093a0da192188ea586d96ea2271617ff9/libesocial-0.0.1.dev0.tar.gz" } ], "0.0.1rc1": [ { "comment_text": "", "digests": { "md5": "7b9c9dbd4fd88eef3a26638bc65027c0", "sha256": "01949c09496cc8b3f6cd5dbe543bd573399c5cdc9fcf26fc7232c93d56446ea4" }, "downloads": -1, "filename": "libesocial-0.0.1rc1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b9c9dbd4fd88eef3a26638bc65027c0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 171566, "upload_time": "2018-09-20T02:31:07", "url": "https://files.pythonhosted.org/packages/4d/df/ebfd955abd53f8522a54c3c480e9120b2afa4b7e757f872d3d5490ae45e3/libesocial-0.0.1rc1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "405d80d4185213f35ad4c5eb9ca6a3e5", "sha256": "5881198a5fb835ca82bd2df2f071561db5d5307fd051aff94eec1c651d7a43b5" }, "downloads": -1, "filename": "libesocial-0.0.1rc1.tar.gz", "has_sig": false, "md5_digest": "405d80d4185213f35ad4c5eb9ca6a3e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 116558, "upload_time": "2018-09-20T02:31:09", "url": "https://files.pythonhosted.org/packages/3f/e1/174ac444dfa46930088335b12e3eab48c67949855c2149262f9cc11ffe93/libesocial-0.0.1rc1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7b9c9dbd4fd88eef3a26638bc65027c0", "sha256": "01949c09496cc8b3f6cd5dbe543bd573399c5cdc9fcf26fc7232c93d56446ea4" }, "downloads": -1, "filename": "libesocial-0.0.1rc1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b9c9dbd4fd88eef3a26638bc65027c0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 171566, "upload_time": "2018-09-20T02:31:07", "url": "https://files.pythonhosted.org/packages/4d/df/ebfd955abd53f8522a54c3c480e9120b2afa4b7e757f872d3d5490ae45e3/libesocial-0.0.1rc1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "405d80d4185213f35ad4c5eb9ca6a3e5", "sha256": "5881198a5fb835ca82bd2df2f071561db5d5307fd051aff94eec1c651d7a43b5" }, "downloads": -1, "filename": "libesocial-0.0.1rc1.tar.gz", "has_sig": false, "md5_digest": "405d80d4185213f35ad4c5eb9ca6a3e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 116558, "upload_time": "2018-09-20T02:31:09", "url": "https://files.pythonhosted.org/packages/3f/e1/174ac444dfa46930088335b12e3eab48c67949855c2149262f9cc11ffe93/libesocial-0.0.1rc1.tar.gz" } ] }