{ "info": { "author": "Lars van de Kerkhof, Martijn Jacobs", "author_email": "lars@devopsconsulting.nl, martijn@devopsconsulting.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "License :: OSI Approved :: BSD License", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Application Frameworks" ], "description": "==============\nSpyne Delegate\n==============\n\nExtension for spyne so you can easy override services using delegate classes.\n\nExample usage:\n\n.. code:: python\n\n import logging\n\n from wsgiref.simple_server import make_server\n from wsgiref.validate import validator\n\n from spyne import Application, Unicode\n from spyne import rpc as original_spyne_rpc\n\n from spyne.model.complex import ComplexModel\n from spyne.protocol.soap.soap11 import Soap11\n from spyne.server.wsgi import WsgiApplication\n\n from spynedelegate.meta import DelegateBase, ExtensibleServiceBase, rpc\n\n logging.basicConfig(level=logging.DEBUG)\n logger = logging.getLogger(__name__)\n\n\n # models\n class Chicken(ComplexModel):\n __namespace__ = \"spyne.delegate.chicken\"\n name = Unicode\n\n\n class Cow(ComplexModel):\n __namespace__ = \"spyne.delegate.cow\"\n name = Unicode\n\n\n # delegates\n class ChickenDelegate(DelegateBase):\n @rpc(Chicken, _returns=Chicken.customize(max_occurs='unbounded'))\n def multiplyChickens(self, chicken): # noqa\n return [chicken, chicken]\n\n\n class CowDelegate(DelegateBase):\n @property\n def method_request_string(self):\n # you can access the context with self.ctx\n return self.ctx.method_request_string\n\n def gen_name(self, name):\n # and you can use self as well\n return \"%s -> %s\" % (self.method_request_string, name)\n\n @rpc(Cow, _returns=Unicode)\n def sayMooh(self, cow): # noqa\n return self.gen_name(cow.name)\n\n @rpc(Cow, _returns=Unicode)\n def noInheritance(self, cow): # noqa\n # This method won't be inherited because we set the \n # collect_base_methods = False in the overridden delegate\n return self.gen_name(cow.name)\n\n\n class CowDelegateOverridden(CowDelegate):\n\n # With this property we don't expose inherited methods from the base\n # class\n collect_base_methods = False\n\n @rpc(Cow, _returns=Unicode)\n def sayMooh(self, cow): # noqa\n # call the super and add a 'overridden' string\n result = super(CowDelegateOverridden, self).sayMooh(cow)\n return \"%s overridden\" % result\n\n @rpc(Unicode, _returns=Unicode)\n def generateName(self, name):\n # shows that we call a regular supermethod\n return super(CowDelegateOverridden, self).gen_name(name)\n\n\n # inheritance\n class FarmDelegate(ChickenDelegate, CowDelegateOverridden):\n pass\n\n\n # services\n class ChickenService(ExtensibleServiceBase):\n delegate = ChickenDelegate\n\n\n class FarmService(ExtensibleServiceBase):\n delegate = FarmDelegate\n\n @original_spyne_rpc(_returns=Unicode)\n def thisStillWorks(ctx): # noqa\n return \"Old fashioned spyne\"\n\n\n farm_application = Application(\n [FarmService],\n tns='spyne.delegate.farm',\n name='farm-application',\n in_protocol=Soap11(validator='lxml'),\n out_protocol=Soap11()\n )\n\n if __name__ == \"__main__\":\n wsgi_application = WsgiApplication(farm_application)\n wsgi_server = make_server(\n 'localhost', 9876, validator(wsgi_application))\n\n logger.info('Starting server at %s:%s.' % ('localhost', 9876))\n logger.info('WSDL is at: /?wsdl')\n\n wsgi_server.serve_forever()", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/devopsconsulting/python-spynedelegate", "keywords": "spyne delegate", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "spyne-delegate", "package_url": "https://pypi.org/project/spyne-delegate/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/spyne-delegate/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/devopsconsulting/python-spynedelegate" }, "release_url": "https://pypi.org/project/spyne-delegate/1.0.2/", "requires_dist": null, "requires_python": null, "summary": "Extension for spyne so you can easy override services using delegate classes", "version": "1.0.2" }, "last_serial": 2883231, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "b0b45cddaf50668a07a94e633018a2a9", "sha256": "4b56fc9e00d6f39c03ccf946d754949774988e3e953b1e0dfcaac325e3064559" }, "downloads": -1, "filename": "spyne-delegate-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b0b45cddaf50668a07a94e633018a2a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4283, "upload_time": "2016-12-18T21:15:08", "url": "https://files.pythonhosted.org/packages/01/70/432fb437c12bc4d8883403be760e09d65da3019b5e0035a2873558b63d0f/spyne-delegate-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "43d7023ed7df41326f4f90db0eb2803e", "sha256": "14a0c0f3d4bf611ca4d9cde7b7325733e2ebfcb73afba16ac4cd981959d16ff2" }, "downloads": -1, "filename": "spyne-delegate-1.0.1.tar.gz", "has_sig": false, "md5_digest": "43d7023ed7df41326f4f90db0eb2803e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4729, "upload_time": "2017-02-14T16:27:03", "url": "https://files.pythonhosted.org/packages/4c/49/7f887c8306305c5fa43add00293ecbc855ed2a5c11150dd480aa1bc540e1/spyne-delegate-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "4db56b87626e41f4c1e807e343565547", "sha256": "d758017f12d906483b4774146afebfed0b70dc40fb0b1e7bbb5c0e3448ec6888" }, "downloads": -1, "filename": "spyne-delegate-1.0.2.tar.gz", "has_sig": false, "md5_digest": "4db56b87626e41f4c1e807e343565547", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5545, "upload_time": "2017-05-18T13:58:24", "url": "https://files.pythonhosted.org/packages/52/5b/605d5674e635a70420466d0fad98657a3b543d19802e43545a363d24be0d/spyne-delegate-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4db56b87626e41f4c1e807e343565547", "sha256": "d758017f12d906483b4774146afebfed0b70dc40fb0b1e7bbb5c0e3448ec6888" }, "downloads": -1, "filename": "spyne-delegate-1.0.2.tar.gz", "has_sig": false, "md5_digest": "4db56b87626e41f4c1e807e343565547", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5545, "upload_time": "2017-05-18T13:58:24", "url": "https://files.pythonhosted.org/packages/52/5b/605d5674e635a70420466d0fad98657a3b543d19802e43545a363d24be0d/spyne-delegate-1.0.2.tar.gz" } ] }