{ "info": { "author": "Nirum team", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: Software Development :: Code Generators", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Object Brokering" ], "description": "Nirum services as WSGI apps\n===========================\n\n.. image:: https://travis-ci.org/spoqa/nirum-python-wsgi.svg?branch=master\n :target: https://travis-ci.org/spoqa/nirum-python-wsgi\n :alt: Build status\n\n.. image:: https://badge.fury.io/py/nirum-wsgi.svg\n :target: https://pypi.org/project/nirum-wsgi/\n :alt: Latest PyPI version\n\nThis package provides ``nirum_wsgi.WsgiApp`` class which adapts a given\nNirum service to a WSGI application:\n\n.. code-block:: python\n\n from yourservice import YourService\n from nirum_wsgi import WsgiApp\n\n class YourServiceImpl(YourService):\n ...\n\n app = WsgiApp(YourServiceImpl())\n\nThere's a development-purpose CLI launcher named ``nirum-server`` as well:\n\n.. code-block:: bash\n\n nirum-server -H 0.0.0.0 -p 8080 --debug 'yourserviceimpl:YourServiceImpl()'\n\nChangelog\n=========\n\nVersion 0.3.0\n-------------\n\nReleased on May 25, 2018.\n\n- Became ready for the `Nirum 0.4.0`__ compiler. Instances of service classes\n generated by the compiler older than the version 0.4.0 is supported through\n ``LegacyWsgiApp``. Note that the constructor of ``WsgiApp`` detects\n which version of compiler is the given service object generated from,\n and if it's older than 0.4.0 automatically returns an instance of\n ``LegacyWsgiApp`` instead of ``WsgiApp``, for backward compatibility.\n\n- An ``400 Bad Request`` error response for invalid method arguments became\n to have a more field named ``errors`` which contains one or more errors.\n Its format is like:\n\n .. code-block:: json\n\n {\n \"message\": \"There are invalid arguments.\",\n \"errors\": [\n {\"path\": \".author.name\", \"message\": \"Expected a string.\"},\n {\"path\": \".tags\", \"message\": \"Expected an array.\"}\n ]\n }\n\n- ``WsgiApp`` had been an old-style class in Python 2. It's now a new-style\n class. No change on Python 3 (since there's no old-style class in Python 3.)\n\n- Added ``MethodArgumentError`` to store multiple errors during\n deserialization of method arguments.\n\n- ``WsgiApp.error()`` and ``WsgiApp.make_error_response()`` methods became able\n to take extra keyword arguments to extend the result JSON object.\n\n__ https://github.com/spoqa/nirum/releases/tag/0.4.0\n\n\nVersion 0.2.2\n-------------\n\nReleased on March 20, 2018.\n\n- Fixed a runtime ``TypeError`` that had been raised when a parameter\n corresponding to a variable for a query string in ``@http-resource``\n annotation's path has an optional type. [`#251`_ by Chang-soo Han]\n\n.. _#251: https://github.com/spoqa/nirum/issues/251\n\n\nVersion 0.2.1\n-------------\n\nReleased on March 20, 2018.\n\n- Fixed a runtime ``re.error`` (``sre_constants.error``) that had been raised\n when a variable name for a query string has one or more hyphens\n in ``@http-resource`` annotation's ``path``. [`#250`_ by Chang-soo Han]\n\n.. _#250: https://github.com/spoqa/nirum/issues/250\n\n\nVersion 0.2.0\n-------------\n\nReleased on February 4, 2018.\n\n- Made parameters having an optional type possible to be omitted. [`#205`_]\n- Added method dispatching by querystring pattern\n e.g., ``@http-resource(method=\"GET\", path=\"/users?from={from}&to={to}\")``.\n [`#130`_]\n- Added basic method dispatching by path pattern (URI template) through\n ``http-resource`` annotation, e.g.,\n ``@http-resource(method=\"GET\", path=\"/users/{login}/works/{work-id}/\")``.\n [`#130`_]\n- Added ``allowed_origins`` and ``allowed_headers`` options for CORS_ to\n ``WsgiApp`` constructor. It supports simple wildcard (``*``) pattern syntax\n as well.\n- Added ``AnnotationError``, ``NoJsonError``, and ``ServiceMethodError``\n exceptions.\n- Since returning a disallowed value which does not match to the return type\n is the fault the server-side made, the HTTP status code for the case became\n ``500 Internal Server Error`` instead of ``400 Bad Request``.\n Also now it writes logs using ``logging`` module.\n- For the mistakes returning ``None`` from a method having non-null return type,\n now it became to show a more readable and debug-friendly message with a proper\n response instead of uncaught Python exception.\n- ``WsgiApp.url_map`` attribute was gone.\n- ``/ping/`` resource was gone.\n- Fixed ``nirum-server`` command able to import a Python module/package from\n the current working directory (``.``; CWD).\n\n.. _#205: https://github.com/spoqa/nirum/issues/205\n.. _#130: https://github.com/spoqa/nirum/issues/130\n.. _CORS: https://www.w3.org/TR/cors/\n\n\nVersion 0.1.0\n-------------\n\nReleased on July 10, 2017.\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/spoqa/nirum-python-wsgi", "keywords": "", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "nirum-wsgi", "package_url": "https://pypi.org/project/nirum-wsgi/", "platform": "", "project_url": "https://pypi.org/project/nirum-wsgi/", "project_urls": { "Homepage": "https://github.com/spoqa/nirum-python-wsgi" }, "release_url": "https://pypi.org/project/nirum-wsgi/0.3.0/", "requires_dist": null, "requires_python": "", "summary": "Nirum services as WSGI apps", "version": "0.3.0" }, "last_serial": 3897637, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "ffad5cb19935e7ece36194b069d1b0d5", "sha256": "f3c832efcf619c814597ff31f237d0627bbf04733c89517dc242ff4f5bea25fe" }, "downloads": -1, "filename": "nirum_wsgi-0.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "ffad5cb19935e7ece36194b069d1b0d5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6859, "upload_time": "2017-07-10T14:26:44", "url": "https://files.pythonhosted.org/packages/85/80/ac8e99f44445abd09a47bcd95b7c2fd9de1e996d62bc76ea6f75ea48552d/nirum_wsgi-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c5cdea541ef19f8b74448b07d630d12", "sha256": "87f9025108324786aabe06bba4c7bf1ee64956bfff564ad511ac6c1074f0270d" }, "downloads": -1, "filename": "nirum-wsgi-0.1.0.tar.gz", "has_sig": true, "md5_digest": "5c5cdea541ef19f8b74448b07d630d12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5504, "upload_time": "2017-07-10T14:26:41", "url": "https://files.pythonhosted.org/packages/5c/80/324b4209b041848621e06a42394a9afb10c197a2c3e9125beb9e66527e8b/nirum-wsgi-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f0421c0e50645387c1402c3487a3544c", "sha256": "f49110849a99bfb7cbd204911af733e5fd4572fa386ad7f11a9b498b9e5a581d" }, "downloads": -1, "filename": "nirum_wsgi-0.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "f0421c0e50645387c1402c3487a3544c", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12096, "upload_time": "2018-02-04T06:11:48", "url": "https://files.pythonhosted.org/packages/ff/2d/7a1397ec777612113b4eef1019f1a1aaaf8022916df778f001588c23a58e/nirum_wsgi-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b10faba1ba946c1f9ea78f9003b98fa0", "sha256": "40264a870d91a9ef8558657c8ef9e378a2397717ba2555b3af04642be4930a9a" }, "downloads": -1, "filename": "nirum-wsgi-0.2.0.tar.gz", "has_sig": true, "md5_digest": "b10faba1ba946c1f9ea78f9003b98fa0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11259, "upload_time": "2018-02-04T06:11:44", "url": "https://files.pythonhosted.org/packages/cd/73/0dad462986219a0e9196d70eb68849045937e9a509fa75f2ad564f767f6a/nirum-wsgi-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "7e86dfcc9f11a11eebcc4de9dbf9a453", "sha256": "f9015794fc600ccbfd14b5d2cb04eec37ad946283128c482be344294be5a2b8c" }, "downloads": -1, "filename": "nirum_wsgi-0.2.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7e86dfcc9f11a11eebcc4de9dbf9a453", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12349, "upload_time": "2018-03-19T16:22:10", "url": "https://files.pythonhosted.org/packages/d2/66/5c9a0960183bfd200f82e9d62af090fa14eed8b7c3b36da1c0d64c60286b/nirum_wsgi-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16ccd253a3272155ca459f3466219bbf", "sha256": "0a468529dcd671f53d539b7c0a5939cc934ad9ef60afae61b9276191cfabeb9f" }, "downloads": -1, "filename": "nirum-wsgi-0.2.1.tar.gz", "has_sig": true, "md5_digest": "16ccd253a3272155ca459f3466219bbf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11563, "upload_time": "2018-03-19T16:22:07", "url": "https://files.pythonhosted.org/packages/d6/22/1fa09a77bb3a84bfb41627727d742cef58a79f948187c4005dd58754ec4a/nirum-wsgi-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "f17cbed205104ae97495132a27fec471", "sha256": "62e086c7c5142097befb1080bdf088403360b6c40534a459644def522e9d1f85" }, "downloads": -1, "filename": "nirum_wsgi-0.2.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "f17cbed205104ae97495132a27fec471", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12476, "upload_time": "2018-03-20T07:49:48", "url": "https://files.pythonhosted.org/packages/f9/9a/1da4d3225f64c0a4a6ee27d4bebda9c132a53f329bf5d5c58e448ec38f1d/nirum_wsgi-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f517111d113195e6b6ef0863510cec7", "sha256": "67585577b35e286272b34232f1fa67256854eba5c51a6fc713271202a314f9e4" }, "downloads": -1, "filename": "nirum-wsgi-0.2.2.tar.gz", "has_sig": true, "md5_digest": "1f517111d113195e6b6ef0863510cec7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11669, "upload_time": "2018-03-20T07:49:44", "url": "https://files.pythonhosted.org/packages/b0/be/ff859a3106bebdaa7d5280205d346f635a3f62663b0e51533001c1da2796/nirum-wsgi-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "7cd7cc22e5c126157c4da3863bf47ffb", "sha256": "d8db63ee42edb3f73c18b67c7398532f9afc71ad0a47a4db701b8dd143dea292" }, "downloads": -1, "filename": "nirum_wsgi-0.3.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7cd7cc22e5c126157c4da3863bf47ffb", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11045, "upload_time": "2018-05-25T05:38:26", "url": "https://files.pythonhosted.org/packages/ad/19/4ce1b880531e232224196f659f8a6649b966efdf25b05378f86842bfb3dc/nirum_wsgi-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "150df12f4d052ab72e3ba915afe721bf", "sha256": "0fd1193c907e9e8888e0ac5f03bbfa8f0b80ccd85abfd84ae3a06e1081b16329" }, "downloads": -1, "filename": "nirum-wsgi-0.3.0.tar.gz", "has_sig": true, "md5_digest": "150df12f4d052ab72e3ba915afe721bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13195, "upload_time": "2018-05-25T05:38:23", "url": "https://files.pythonhosted.org/packages/99/bf/c511db8a55684a522291fb2cb92be21d3acc7f66068e9b290731a1f22ea7/nirum-wsgi-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7cd7cc22e5c126157c4da3863bf47ffb", "sha256": "d8db63ee42edb3f73c18b67c7398532f9afc71ad0a47a4db701b8dd143dea292" }, "downloads": -1, "filename": "nirum_wsgi-0.3.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7cd7cc22e5c126157c4da3863bf47ffb", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11045, "upload_time": "2018-05-25T05:38:26", "url": "https://files.pythonhosted.org/packages/ad/19/4ce1b880531e232224196f659f8a6649b966efdf25b05378f86842bfb3dc/nirum_wsgi-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "150df12f4d052ab72e3ba915afe721bf", "sha256": "0fd1193c907e9e8888e0ac5f03bbfa8f0b80ccd85abfd84ae3a06e1081b16329" }, "downloads": -1, "filename": "nirum-wsgi-0.3.0.tar.gz", "has_sig": true, "md5_digest": "150df12f4d052ab72e3ba915afe721bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13195, "upload_time": "2018-05-25T05:38:23", "url": "https://files.pythonhosted.org/packages/99/bf/c511db8a55684a522291fb2cb92be21d3acc7f66068e9b290731a1f22ea7/nirum-wsgi-0.3.0.tar.gz" } ] }