{ "info": { "author": "Cliss XXI", "author_email": "contact@cliss21.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3", "Natural Language :: French", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "Libsne\n======\n\nLibrairie Python g\u00e9rant les \u00e9changes synchrones de num\u00e9ros uniques avec\nle Syst\u00e8me National d'Enregistrement (SNE) des demandes de logements\nsociaux dans le cadre de leur gestion.\n\n--------------\n\nCette librairie permet de g\u00e9rer plusieurs \u00e9tapes dans le processus\nd'\u00e9changes de num\u00e9ros uniques SNE :\n\n- R\u00e9cup\u00e9ration d'une cha\u00eene de caract\u00e8res ou d'un arbre ``lxml.etree``\n repr\u00e9sentant la structure XML de la demande de logement ;\n- Construction du message SOAP \u00e0 envoyer au serveur SNE selon le\n protocole XOP/MTOM (comme sp\u00e9cifi\u00e9 dans le `cahier des charges des\n interfaces\n SNE `__)\n ;\n- \u00c9changes avec le serveur SNE selon le protocole HTTPS/TLS gr\u00e2ce \u00e0\n l'authentification et la signature par syst\u00e8me de certificats ;\n- Analyse de la r\u00e9ponse du serveur SNE, construction des exceptions\n selon le type d'erreur (enveloppe SOAP, anomalies dans le XML, ...),\n ou retour de r\u00e9ponse si pas d'erreur.\n\n5 services Web (sur les 6 propos\u00e9s par SNE, voir cahier des charges)\nsont disponibles. Au sein de la librairie, ces services sont d\u00e9finis en\nenlevant le ``get`` et en rempla\u00e7ant la premi\u00e8re lettre par une\nminuscule (ex : ``getDemandeLogement`` devient ``demandeLogement``) :\n\n- ``getNumUnique`` ayant comme param\u00e8tre la demande de logement sous\n forme de cha\u00eene de caract\u00e8res repr\u00e9sentant la structure XML de la\n demande (param\u00e8tre : ``xml``) ;\n- ``getDemandeLogement`` ayant comme param\u00e8tre le num\u00e9ro unique SNE\n (param\u00e8tre : ``num_unique``) ;\n- ``getDoublons`` ayant comme param\u00e8tre une demande de logement\n partielle sous forme de cha\u00eene de caract\u00e8res repr\u00e9sentant la\n structure XML de la demande (param\u00e8tre : ``xml``) ;\n- (``getNouveauxDaloDepuisLe`` ayant comme param\u00e8tre la date \u00e0 partir\n de laquelle chercher les nouveaux DALO (param\u00e8tre ``date`` au format\n ``YYYY-MM-DDTHH:MM:SS.s+HH:MM`` par rapport \u00e0 UTC).)\n- (``getDemandesRadieesDepuisLe`` ayant comme param\u00e8tre la date \u00e0\n partir de laquelle chercher les nouvelles demandes radi\u00e9es (param\u00e8tre\n ``date`` au format ``YYYY-MM-DDTHH:MM:SS.s+HH:MM`` par rapport \u00e0\n UTC).)\n\nCes deux derniers services ne fonctionnent pas correctement,\nam\u00e9liorations bienvenues :)\n\nLa librairie est compatible Python 2 et Python 3.\n\nInstallation\n============\n\nEn tant que logiciel libre, il est pr\u00e9f\u00e9rable d'utiliser la librairie\nSNE sur les syst\u00e8mes d'exploitation GNU/Linux (Debian, Ubuntu, Mint,\n...).\n\nInstallation via PIP\n--------------------\n\nLa librairie SNE (version alpha) est disponible sur PyPI et peut \u00eatre\ninstall\u00e9e en ligne de commande (l'installation peut prendre du temps,\nnotamment pour lxml) :\n\n.. code:: bash\n\n pip install --pre libsne\n\nInstallation via Git\n--------------------\n\nLa librairie SNE est disponible sur la `forge de Cliss\nXXI `__ et peut \u00eatre clon\u00e9e\nvia Git. Cependant l'installation via git s'adresse surtout aux\nd\u00e9veloppeurs. Voir le paragraphe D\u00e9veloppement pour plus d'informations.\n\nConfiguration\n=============\n\nLes fichiers ressources sont ajout\u00e9s automatiquement lors de\nl'installation. Cependant, ils peuvent changer \u00e0 tout moment ! Se\nrenseigner sur le `site du\ngouvernement `__.\n\nComment l'utiliser\n==================\n\nPython\n------\n\nPour utiliser la librairie SNE depuis un code externe Python, il faut\nappeler la fonction echanger qui prend en param\u00e8tres le nom du service,\nle chemin du fichier contenant la cha\u00eene publique de certificats, le\nchemin du fichier contenant la cl\u00e9 priv\u00e9e, optionnellement le nom d'h\u00f4te\nde SNE (d\u00e9faut \u00e0\n``nuu-ws.ecole.application.developpement-durable.gouv.fr`` sur le port\n443 si non fourni) et le param\u00e8tre du service sous forme de kwargs.\n\nExemples :\n\n.. code:: python\n\n import libsne\n reponse_serveur = libsne.echanger(\"demandeLogement\", \"certificats/public/fullchain.pem\", \"certificats/prive/key.pem\", num_unique=\"0123456789ABCDEFGH\")\n reponse_serveur = libsne.echanger(\"numUnique\", \"certificats/public/fullchain.pem\", \"certificats/prive/key.pem\", xml=xml_demande)\n reponse_serveur = libsne.echanger(\"demandesRadieesDepuisLe\", \"certificats/public/fullchain.pem\", \"certificats/prive/key.pem\", date=\"2017-01-13T14:55:43.5+02:00\") # Ne fonctionne pas correctement actuellement\n\nLigne de commande\n-----------------\n\nLa librairie est aussi utilisable en ligne de commande.\n\nExemples :\n\n.. code:: bash\n\n ./libsne.py demandeLogement 0123456789ABCDEFGH certificats/public/fullchain.pem certificats/prive/key.pem\n ./libsne.py numUnique [xml_demande] certificats/public/fullchain.pem certificats/prive/key.pem\n ./libsne.py demandesRadieesDepuisLe 2017-01-13T14:55:43.5+02:00 certificats/public/fullchain.pem certificats/prive/key.pem # Ne fonctionne pas correctement actuellement\n\nDocumentation\n=============\n\nCe\n`README `__\net les docstrings :)\n\nD\u00e9veloppement\n=============\n\nIl est pr\u00e9alablement n\u00e9cessaire de monter un environnement de\nd\u00e9veloppement :\n\n.. code:: bash\n\n git clone https://forge.cliss21.org/cliss21/libsne.git\n cd libsne\n virtualenv venv\n . venv/bin/activate\n pip install -r requirements_dev.txt\n pip install -e .\n\nTests\n-----\n\nUne fois l'environnement de test deploy\u00e9, les tests peuvent \u00eatre lanc\u00e9s\nde la mani\u00e8re suivante :\n\n.. code:: bash\n\n ./tests.sh\n # TODO: faire un Makefile\n # TODO: jouer les tests avec tox\n\nD\u00e9ploiement sur PyPI\n--------------------\n\nLa librairie \u00e9tant disponible sur PyPI, il est possible pour les\nd\u00e9veloppeurs de la librairie de mettre \u00e0 jour le paquet Python. Pour\ncela, il est usuel de cr\u00e9er un fichier .pypirc \u00e0 la racine du home de la\nmachine (~/.pypirc) contenant les informations n\u00e9cessaires au\nd\u00e9ploiement :\n\n.. code:: bash\n\n [distutils]\n index-servers=\n pypi\n testpypi\n\n [testpypi]\n repository = https://test.pypi.org/legacy/\n username = LOGIN\n password = PASS\n\n [pypi]\n username = LOGIN\n password = PASS\n\nNe pas oublier de se rendre dans l'environnement virtuel si vous n'y\n\u00eates pas encore. Il sera ensuite possible de pousser la librairie sur\nPyPI :\n\n.. code:: bash\n\n # Sur testpypi\n python setup.py bdist_wheel upload --repository testpypi\n\n # Sur pypi\n python setup.py bdist_wheel upload\n\nContacts\n========\n\nVous pouvez contacter `Cliss XXI `__ pour plus\nde d\u00e9tails sur la librairie.\n\nLicence\n=======\n\nLa librairie est disponible librement sous licence `GNU\nAGPLv3+ `__. Voir le fichier\n`LICENSE `__ pour plus de d\u00e9tails.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://trac.interne.cliss21.org/libsne/", "keywords": "libsne", "license": "GNU AGPL-3", "maintainer": "", "maintainer_email": "", "name": "libsne", "package_url": "https://pypi.org/project/libsne/", "platform": "", "project_url": "https://pypi.org/project/libsne/", "project_urls": { "Homepage": "http://trac.interne.cliss21.org/libsne/" }, "release_url": "https://pypi.org/project/libsne/0.1.0a10/", "requires_dist": null, "requires_python": "", "summary": "Python library for SNE synchronous exchanges", "version": "0.1.0a10" }, "last_serial": 3123336, "releases": { "0.1.0a1": [ { "comment_text": "", "digests": { "md5": "8923ea32e214ece883af88f5aca979c2", "sha256": "96e72429e78c9f82ca88b2f38e9e63d6f65971633d36ac396f0a05e2346f4f7a" }, "downloads": -1, "filename": "libsne-0.1.0a1.tar.gz", "has_sig": false, "md5_digest": "8923ea32e214ece883af88f5aca979c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29938, "upload_time": "2017-08-23T09:07:57", "url": "https://files.pythonhosted.org/packages/85/4b/084616697c71deffe5ba5a47216ef6c7a41e301ad476f2e8d06dca2cde39/libsne-0.1.0a1.tar.gz" } ], "0.1.0a10": [ { "comment_text": "", "digests": { "md5": "838cb0391cfa32aaf98a4882d6411fd4", "sha256": "5e4db94db39bfddc6b0d97b042d2865311506c6be7b5103490ca0d203969875b" }, "downloads": -1, "filename": "libsne-0.1.0a10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "838cb0391cfa32aaf98a4882d6411fd4", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 20529, "upload_time": "2017-08-25T15:28:14", "url": "https://files.pythonhosted.org/packages/ae/e9/a130d4a9ebd6d494dad20a62aa16fc39e0866c77be8829b489ff37bb1e3c/libsne-0.1.0a10-py2.py3-none-any.whl" } ], "0.1.0a2": [ { "comment_text": "", "digests": { "md5": "2b678ede62aa23010aaa90abe8c81d26", "sha256": "5a46a0c4325b06597d5b4fb1f878d0cb3330a2d8da36a576af6989ccc1feb34d" }, "downloads": -1, "filename": "libsne-0.1.0a2.tar.gz", "has_sig": false, "md5_digest": "2b678ede62aa23010aaa90abe8c81d26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29930, "upload_time": "2017-08-23T09:27:43", "url": "https://files.pythonhosted.org/packages/0a/4e/934856cd1fcbd2023182e664f8952e113a95e3d660d7a0e1a3de8c54d78f/libsne-0.1.0a2.tar.gz" } ], "0.1.0a3": [ { "comment_text": "", "digests": { "md5": "c081af48324ff2d9c7c15c5bf12f9ee5", "sha256": "135f1393776ff020c73eb56c059bb64c282cf124baeb2110a7865c2d69910f55" }, "downloads": -1, "filename": "libsne-0.1.0a3.tar.gz", "has_sig": false, "md5_digest": "c081af48324ff2d9c7c15c5bf12f9ee5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29979, "upload_time": "2017-08-23T09:51:42", "url": "https://files.pythonhosted.org/packages/32/a9/521dbecb2d77c81fdf528e97bd353c375105bafe71752ed97fa9c924049f/libsne-0.1.0a3.tar.gz" } ], "0.1.0a4": [ { "comment_text": "", "digests": { "md5": "184634ccfd679c91591d06fd0e592d90", "sha256": "ada4e7f157ec06df9793741124568f18b1c9cd09bf4f58f2dfb200f6e0addc70" }, "downloads": -1, "filename": "libsne-0.1.0a4.tar.gz", "has_sig": false, "md5_digest": "184634ccfd679c91591d06fd0e592d90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30010, "upload_time": "2017-08-23T10:04:41", "url": "https://files.pythonhosted.org/packages/09/1e/341436fa28639012a96bb448f090dcf0ec4ef35b45b1f6ae7cf9886afcc7/libsne-0.1.0a4.tar.gz" } ], "0.1.0a5": [ { "comment_text": "", "digests": { "md5": "0fa7985b6c173899c87292ecb5fb5ecc", "sha256": "19ab192a941159c90813b04f2bd15dcee79745f431e97a80d539812393be2b34" }, "downloads": -1, "filename": "libsne-0.1.0a5.tar.gz", "has_sig": false, "md5_digest": "0fa7985b6c173899c87292ecb5fb5ecc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30182, "upload_time": "2017-08-23T12:31:03", "url": "https://files.pythonhosted.org/packages/a0/a0/202c4b8b59f201496095e5d5efc929ffdfd79f758e4043c8729f2c36b3fc/libsne-0.1.0a5.tar.gz" } ], "0.1.0a6": [ { "comment_text": "", "digests": { "md5": "fc8e128978b02cbbd890ac6708f02d01", "sha256": "5ed23681816dea018b07e035cb5b043242b023af3ae9ca78d9e54e09797ba1ef" }, "downloads": -1, "filename": "libsne-0.1.0a6.tar.gz", "has_sig": false, "md5_digest": "fc8e128978b02cbbd890ac6708f02d01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30174, "upload_time": "2017-08-24T15:53:36", "url": "https://files.pythonhosted.org/packages/c8/be/4e8964e2c33ffb52995ab91cf68ad5bfc73ec1de50daac14baf612bc922d/libsne-0.1.0a6.tar.gz" } ], "0.1.0a7": [ { "comment_text": "", "digests": { "md5": "eaaebfd281f5c526057215aef5ef1853", "sha256": "60be1307e04efb0e313abfcdc4ab7cc304ac5ac8c5e3f6ed56d55824b6e11267" }, "downloads": -1, "filename": "libsne-0.1.0a7.tar.gz", "has_sig": false, "md5_digest": "eaaebfd281f5c526057215aef5ef1853", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30451, "upload_time": "2017-08-24T16:09:27", "url": "https://files.pythonhosted.org/packages/49/22/6c700e601eb0b1eb157d16cbaca45b595172f94493224ca9d97377996c76/libsne-0.1.0a7.tar.gz" } ], "0.1.0a8": [ { "comment_text": "", "digests": { "md5": "34e59667aee0f9835f634b689483ac88", "sha256": "f34a55888bc9665ee6ccf75a12d9115ec73b23ab37b349543129423c63cc9aec" }, "downloads": -1, "filename": "libsne-0.1.0a8.tar.gz", "has_sig": false, "md5_digest": "34e59667aee0f9835f634b689483ac88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30435, "upload_time": "2017-08-25T07:47:29", "url": "https://files.pythonhosted.org/packages/48/bb/7220ac8a1560623541e8fc9b2d91fc7f890fdac8ca47f8ea89a5d000e8be/libsne-0.1.0a8.tar.gz" } ], "0.1.0a9": [ { "comment_text": "", "digests": { "md5": "52cadaeefed63a36bda1c261a67cf4b1", "sha256": "779283e9b7a63cacce06f2c51024a271c9ac24b22ad7e9fc8597673f081820a9" }, "downloads": -1, "filename": "libsne-0.1.0a9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "52cadaeefed63a36bda1c261a67cf4b1", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 19837, "upload_time": "2017-08-25T14:53:17", "url": "https://files.pythonhosted.org/packages/58/80/5bc9da5f484bca71f30892d2156018800abe76ac6d4750076e076c5b27fc/libsne-0.1.0a9-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "838cb0391cfa32aaf98a4882d6411fd4", "sha256": "5e4db94db39bfddc6b0d97b042d2865311506c6be7b5103490ca0d203969875b" }, "downloads": -1, "filename": "libsne-0.1.0a10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "838cb0391cfa32aaf98a4882d6411fd4", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 20529, "upload_time": "2017-08-25T15:28:14", "url": "https://files.pythonhosted.org/packages/ae/e9/a130d4a9ebd6d494dad20a62aa16fc39e0866c77be8829b489ff37bb1e3c/libsne-0.1.0a10-py2.py3-none-any.whl" } ] }