{ "info": { "author": "Matthias Barde", "author_email": "mbarde@uni-koblenz.de", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Plone", "Framework :: Plone :: 5.0", "Framework :: Plone :: 5.1", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7" ], "description": "unikold.connector\n=================\n\nPlone-Addon for making persistent SOAP requests using a fast and modern Python SOAP client: [zeep](https://pypi.org/project/zeep/).\n\nRequests are automatically stored as `SOAPQuery` objects which allows caching with variable lifetime of the responses.\n\n\nFeatures\n--------\n\n- SOAP requests are cached (lifetime can be specified)\n- Live-View to test your SOAP requests: `test_soap`: [https://raw.githubusercontent.com/mbarde/unikold.connector/master/docs/connector.gif](https://raw.githubusercontent.com/mbarde/unikold.connector/master/docs/connector.gif)\n- Specific queries (`LSFQuery`, `LSFSearchQuery`) to easily connect to products of [HIS eG](https://www.his.de) via their SOAP API (`dbinterface`)\n\nInstallation\n--------\n1. Add `unikold.connector` to your buildout\n2. Install via `prefs_install_products_form`\n3. Create a `SOAPQueriesFolder`\n* For security reasons `SOAPQueriesFolder` are not globally addable by default - to be able to add it you need to allow adding this content type at the desired location temporarily\n* In this folder all queries will be stored\n* Maybe you also want to exclude it from navigation\n4. Set path to this folder in `@@unikold-connector-controlpanel`\n5. If you want to make use of LSF-Queries you also have to define settings in `@@unikold-connector-lsf-controlpanel`\n\n\nExamples\n--------\n\nAfter installing this addon you can make SOAP requests like this:\n\n```python\nfrom unikold.connector.soap import SOAPConnector\nsoapConnector = SOAPConnector(\n 'http://webservices.daehosting.com/services/isbnservice.wso?WSDL', # URL to WSDL file\n 'IsValidISBN13', # name of the method\n '9783492700764', # method parameter\n 24 # lifetime of this request in hours\n)\nresponse = soapConnector.get()\n```\n\nIf the request already exists and its lifetime did not expire `soapConnector` simply returns the stored response.\nIf the request exists but is outdated it will be updated before returning the response.\nIf the request does not yet exist, a new object will be created. Its path will be `{SOAP-Queries-Folder}.{WSDL-URL}.{Methodname}.{Parameter}` (where `{SOAP-Queries-Folder}` has to be specified in the controlpanel of this addon - otherwise a folder will be created at your sites' root).\n\nTo get the corresponding query object:\n\n```python\nqueryObject = soapConnector.getQuery()\n```\n\nAbove example without this addon would look like this (remember no persistent objects, no caching):\n\n```python\nfrom zeep import Client\nurl = 'http://webservices.daehosting.com/services/isbnservice.wso?WSDL'\nclient = Client(url)\nresponse = client.service.IsValidISBN13('9783492700764')\n```\n\n\nAutomate updating of queries\n--------\n\nUse Zope clock server to call `unikold.connector.update` (user must have permission `cmf.ManagePortal`):\n\n```\n[client2]\nzope-conf-additional =\n \n method /SiteName/unikold.connector.update\n period 2880\n user username\n password *****\n host hostname.com\n \n```\n\nParameters explained in detail here: https://docs.plone.org/develop/plone/misc/asyncronoustasks.html#clock-server\n\nUpdating big amounts of queries can take a while so its advisable to run the task on a dedicated client.\n\n\nTesting\n------------\n\nBefore you can run the tests you need to create a file called `config.py` in the `tests` folder,\ncontaining following constants:\n\n```python\n# -*- coding: utf-8 -*-\nsoap_test_url = u'http://webservices.daehosting.com/services/isbnservice.wso?WSDL'\nsoap_test_method = u'IsValidISBN13'\nsoap_test_method_parameter = u'9783492700764'\n\n# config data needed for LSF tests\nlsf_wsdl_url = u'' # URL to LSF WSDL file containing getDataXML method\nlsf_test_object_type = u'' # LSF object type\nlsf_test_conditions = [] # a list of tuples, i.e. [('prename', 'Peter')]\nlsf_wsdl_search_url = u'' # URL to LSF search WSDL\nlsf_search_test_method_parameter = u'' # XML-formatted parameter for the search method\n\n# for testing LSF methods with authentication\nlsf_auth_username = u''\nlsf_auth_password = u''\nlsf_auth_test_object_type = u'' # LSF object type\nlsf_auth_test_conditions_0 = [] # a list of tuples, i.e. [('prename', 'Peter')]\nlsf_auth_test_conditions_1 = [] # a list of tuples, i.e. [('prename', 'Peter')]\n```\n\n* `bin/test`\n* `bin/code-analysis`\n\nTypeError: string indices must be integers\n------------\n\nMake sure this fix has been applied to zeep: https://github.com/mvantellingen/python-zeep/pull/657/commits/a2b7ec0296bcb0ac47a5d15669dcb769447820eb\n\n\nLicense\n-------\n\nThe project is licensed under the GPLv2.\n\n\nContributors\n============\n\n- Matthias Barde, mbarde@uni-koblenz.de\n\n\nChangelog\n=========\n\n\n1.0a1 (unreleased)\n------------------\n\n- Initial release.\n [mbarde]\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/mbarde/unikold.connector/archive/v1.0a3.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mbarde/unikold.connector", "keywords": "Python Plone", "license": "GPL version 2", "maintainer": "", "maintainer_email": "", "name": "unikold.connector", "package_url": "https://pypi.org/project/unikold.connector/", "platform": "", "project_url": "https://pypi.org/project/unikold.connector/", "project_urls": { "Download": "https://github.com/mbarde/unikold.connector/archive/v1.0a3.tar.gz", "Homepage": "https://github.com/mbarde/unikold.connector" }, "release_url": "https://pypi.org/project/unikold.connector/1.0a3/", "requires_dist": [ "plone.app.dexterity", "plone.api (>=1.8.4)", "Products.GenericSetup (>=1.8.2)", "setuptools", "z3c.jbot", "zeep", "plone.app.testing ; extra == 'test'", "plone.testing (>=5.0.0) ; extra == 'test'", "plone.app.contenttypes ; extra == 'test'", "plone.app.robotframework[debug] ; extra == 'test'" ], "requires_python": "", "summary": "Plone addon for making persistent SOAP requests", "version": "1.0a3" }, "last_serial": 5176351, "releases": { "1.0a1": [ { "comment_text": "", "digests": { "md5": "b9891b700bececdbb43eda04e0723e93", "sha256": "f18175442bc0e9ff67b78ecce3ee3572f9cdd5cc0fd4b0a8adf4bb38646d2f15" }, "downloads": -1, "filename": "unikold.connector-1.0a1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9891b700bececdbb43eda04e0723e93", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 54194, "upload_time": "2019-04-23T08:26:15", "url": "https://files.pythonhosted.org/packages/98/04/9fd91e87ad7b895de2c6a8e5523a83aba5a2c4592a51c3527c9d0ee7a92a/unikold.connector-1.0a1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73957cc4a1641c6aaa8767fd68867c82", "sha256": "709bd2d8a3766400a4757a13b7e43bb6d193014f6d7180847e0471d729bdf14a" }, "downloads": -1, "filename": "unikold.connector-1.0a1.tar.gz", "has_sig": false, "md5_digest": "73957cc4a1641c6aaa8767fd68867c82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26930, "upload_time": "2019-04-23T08:26:17", "url": "https://files.pythonhosted.org/packages/18/e3/8b6ab16dcfe835a94318ae09738e65b7e6ec950f76e3c7f41cafb0aa061c/unikold.connector-1.0a1.tar.gz" } ], "1.0a2": [ { "comment_text": "", "digests": { "md5": "39f48ea7772624a2374b27bf3a0ab2ad", "sha256": "0e8a75937ef09d66d54e5d08ceb501b317dcd12e2adbf902da0858043656ab55" }, "downloads": -1, "filename": "unikold.connector-1.0a2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "39f48ea7772624a2374b27bf3a0ab2ad", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 58861, "upload_time": "2019-04-23T09:28:25", "url": "https://files.pythonhosted.org/packages/eb/00/12fc0ce172c4319b5e7d5fd680bcee379a6d379dec878a104dfe83316dcd/unikold.connector-1.0a2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3ae784c8201a6c94db2f2488de23c34", "sha256": "1ebbe8d98a457f4ae9000f65259b2e1fff8a13847146869c8010562cc399c7a3" }, "downloads": -1, "filename": "unikold.connector-1.0a2.tar.gz", "has_sig": false, "md5_digest": "f3ae784c8201a6c94db2f2488de23c34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 297018, "upload_time": "2019-04-23T09:28:27", "url": "https://files.pythonhosted.org/packages/29/7f/6fc8159090a575f9a65ad979ae664780c1f1bf57a3c9337b4b8a03c5e43e/unikold.connector-1.0a2.tar.gz" } ], "1.0a3": [ { "comment_text": "", "digests": { "md5": "77c7e6e360e81aeba40aceff200e69bc", "sha256": "708c71a3a6171a21949208dd6799221f2a662a69d481be25019d27a3ea634e75" }, "downloads": -1, "filename": "unikold.connector-1.0a3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "77c7e6e360e81aeba40aceff200e69bc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 58856, "upload_time": "2019-04-23T09:45:06", "url": "https://files.pythonhosted.org/packages/38/a7/c0faab5988fbc58f2ba7b46713f74708e7f4ac8e471d789688f423365525/unikold.connector-1.0a3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3545b5265036f80a84b12f54a868f89", "sha256": "5f5a1a9ff42f3e033963b5b056ef828b463bc5e74a95ef84bb751bbd4770d16f" }, "downloads": -1, "filename": "unikold.connector-1.0a3.tar.gz", "has_sig": false, "md5_digest": "a3545b5265036f80a84b12f54a868f89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 297015, "upload_time": "2019-04-23T09:45:08", "url": "https://files.pythonhosted.org/packages/b7/f0/f0914f8cd167b1592bcad3b74290e38275bb6ed21027646f66cad3ec6397/unikold.connector-1.0a3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "77c7e6e360e81aeba40aceff200e69bc", "sha256": "708c71a3a6171a21949208dd6799221f2a662a69d481be25019d27a3ea634e75" }, "downloads": -1, "filename": "unikold.connector-1.0a3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "77c7e6e360e81aeba40aceff200e69bc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 58856, "upload_time": "2019-04-23T09:45:06", "url": "https://files.pythonhosted.org/packages/38/a7/c0faab5988fbc58f2ba7b46713f74708e7f4ac8e471d789688f423365525/unikold.connector-1.0a3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3545b5265036f80a84b12f54a868f89", "sha256": "5f5a1a9ff42f3e033963b5b056ef828b463bc5e74a95ef84bb751bbd4770d16f" }, "downloads": -1, "filename": "unikold.connector-1.0a3.tar.gz", "has_sig": false, "md5_digest": "a3545b5265036f80a84b12f54a868f89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 297015, "upload_time": "2019-04-23T09:45:08", "url": "https://files.pythonhosted.org/packages/b7/f0/f0914f8cd167b1592bcad3b74290e38275bb6ed21027646f66cad3ec6397/unikold.connector-1.0a3.tar.gz" } ] }