| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339 | Metadata-Version: 2.3Name: apispecVersion: 6.8.1Summary: A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification).Keywords: apispec,swagger,openapi,specification,oas,documentation,spec,rest,apiAuthor-email: Steven Loria <sloria1@gmail.com>Maintainer-email: Steven Loria <sloria1@gmail.com>, Jérôme Lafréchoux <jerome@jolimont.fr>Requires-Python: >=3.9Description-Content-Type: text/x-rstClassifier: Development Status :: 5 - Production/StableClassifier: Intended Audience :: DevelopersClassifier: License :: OSI Approved :: MIT LicenseClassifier: Programming Language :: Python :: 3Classifier: Programming Language :: Python :: 3.9Classifier: Programming Language :: Python :: 3.10Classifier: Programming Language :: Python :: 3.11Classifier: Programming Language :: Python :: 3.12Classifier: Programming Language :: Python :: 3.13Requires-Dist: packaging>=21.3Requires-Dist: apispec[tests] ; extra == "dev"Requires-Dist: tox ; extra == "dev"Requires-Dist: pre-commit>=3.5,<5.0 ; extra == "dev"Requires-Dist: apispec[marshmallow] ; extra == "docs"Requires-Dist: pyyaml==6.0.2 ; extra == "docs"Requires-Dist: sphinx==8.1.3 ; extra == "docs"Requires-Dist: sphinx-issues==5.0.0 ; extra == "docs"Requires-Dist: sphinx-rtd-theme==3.0.2 ; extra == "docs"Requires-Dist: marshmallow>=3.18.0 ; extra == "marshmallow"Requires-Dist: apispec[yaml, marshmallow] ; extra == "tests"Requires-Dist: openapi-spec-validator==0.7.1 ; extra == "tests"Requires-Dist: pytest ; extra == "tests"Requires-Dist: PyYAML>=3.10 ; extra == "yaml"Project-URL: Changelog, https://apispec.readthedocs.io/en/latest/changelog.htmlProject-URL: Funding, https://opencollective.com/marshmallowProject-URL: Issues, https://github.com/marshmallow-code/apispec/issuesProject-URL: Source, https://github.com/marshmallow-code/apispecProject-URL: Tidelift, https://tidelift.com/subscription/pkg/pypi-apispec?utm_source=pypi-apispec&utm_medium=pypiProvides-Extra: devProvides-Extra: docsProvides-Extra: marshmallowProvides-Extra: testsProvides-Extra: yaml*******apispec*******|pypi| |build-status| |docs| |marshmallow-support| |openapi|.. |pypi| image:: https://badgen.net/pypi/v/apispec    :target: https://pypi.org/project/apispec/    :alt: PyPI package.. |build-status| image:: https://github.com/marshmallow-code/apispec/actions/workflows/build-release.yml/badge.svg    :target: https://github.com/marshmallow-code/webargs/actions/workflows/build-release.yml    :alt: Build status.. |docs| image:: https://readthedocs.org/projects/apispec/badge/   :target: https://apispec.readthedocs.io/   :alt: Documentation.. |marshmallow-support| image:: https://badgen.net/badge/marshmallow/3,4?list=1    :target: https://marshmallow.readthedocs.io/en/latest/upgrading.html    :alt: marshmallow 3|4 compatible.. |openapi| image:: https://badgen.net/badge/OAS/2,3?list=1&color=cyan    :target: https://github.com/OAI/OpenAPI-Specification    :alt: OpenAPI Specification 2/3 compatibleA pluggable API specification generator. Currently supports the `OpenAPI Specification <https://github.com/OAI/OpenAPI-Specification>`_ (f.k.a. the Swagger specification).Features========- Supports the OpenAPI Specification (versions 2 and 3)- Framework-agnostic- Built-in support for `marshmallow <https://marshmallow.readthedocs.io/>`_- Utilities for parsing docstringsInstallation============::    $ pip install -U apispecWhen using the marshmallow plugin, ensure a compatible marshmallow version is used: ::    $ pip install -U apispec[marshmallow]Example Application===================.. code-block:: python    from apispec import APISpec    from apispec.ext.marshmallow import MarshmallowPlugin    from apispec_webframeworks.flask import FlaskPlugin    from flask import Flask    from marshmallow import Schema, fields    # Create an APISpec    spec = APISpec(        title="Swagger Petstore",        version="1.0.0",        openapi_version="3.0.2",        plugins=[FlaskPlugin(), MarshmallowPlugin()],    )    # Optional marshmallow support    class CategorySchema(Schema):        id = fields.Int()        name = fields.Str(required=True)    class PetSchema(Schema):        category = fields.List(fields.Nested(CategorySchema))        name = fields.Str()    # Optional security scheme support    api_key_scheme = {"type": "apiKey", "in": "header", "name": "X-API-Key"}    spec.components.security_scheme("ApiKeyAuth", api_key_scheme)    # Optional Flask support    app = Flask(__name__)    @app.route("/random")    def random_pet():        """A cute furry animal endpoint.        ---        get:          description: Get a random pet          security:            - ApiKeyAuth: []          responses:            200:              content:                application/json:                  schema: PetSchema        """        pet = get_random_pet()        return PetSchema().dump(pet)    # Register the path and the entities within it    with app.test_request_context():        spec.path(view=random_pet)Generated OpenAPI Spec----------------------.. code-block:: python    import json    print(json.dumps(spec.to_dict(), indent=2))    # {    #   "paths": {    #     "/random": {    #       "get": {    #         "description": "Get a random pet",    #         "security": [    #           {    #             "ApiKeyAuth": []    #           }    #         ],    #         "responses": {    #           "200": {    #             "content": {    #               "application/json": {    #                 "schema": {    #                   "$ref": "#/components/schemas/Pet"    #                 }    #               }    #             }    #           }    #         }    #       }    #     }    #   },    #   "tags": [],    #   "info": {    #     "title": "Swagger Petstore",    #     "version": "1.0.0"    #   },    #   "openapi": "3.0.2",    #   "components": {    #     "parameters": {},    #     "responses": {},    #     "schemas": {    #       "Category": {    #         "type": "object",    #         "properties": {    #           "name": {    #             "type": "string"    #           },    #           "id": {    #             "type": "integer",    #             "format": "int32"    #           }    #         },    #         "required": [    #           "name"    #         ]    #       },    #       "Pet": {    #         "type": "object",    #         "properties": {    #           "name": {    #             "type": "string"    #           },    #           "category": {    #             "type": "array",    #             "items": {    #               "$ref": "#/components/schemas/Category"    #             }    #           }    #         }    #       }    #       "securitySchemes": {    #          "ApiKeyAuth": {    #            "type": "apiKey",    #            "in": "header",    #            "name": "X-API-Key"    #         }    #       }    #     }    #   }    # }    print(spec.to_yaml())    # components:    #   parameters: {}    #   responses: {}    #   schemas:    #     Category:    #       properties:    #         id: {format: int32, type: integer}    #         name: {type: string}    #       required: [name]    #       type: object    #     Pet:    #       properties:    #         category:    #           items: {$ref: '#/components/schemas/Category'}    #           type: array    #         name: {type: string}    #       type: object    #   securitySchemes:    #     ApiKeyAuth:    #       in: header    #       name: X-API-KEY    #       type: apiKey    # info: {title: Swagger Petstore, version: 1.0.0}    # openapi: 3.0.2    # paths:    #   /random:    #     get:    #       description: Get a random pet    #       responses:    #         200:    #           content:    #             application/json:    #               schema: {$ref: '#/components/schemas/Pet'}    #       security:    #       - ApiKeyAuth: []    # tags: []Documentation=============Documentation is available at https://apispec.readthedocs.io/ .Ecosystem=========A list of apispec-related libraries can be found at the GitHub wiki here:https://github.com/marshmallow-code/apispec/wiki/EcosystemSupport apispec===============apispec is maintained by a group of`volunteers <https://apispec.readthedocs.io/en/latest/authors.html>`_.If you'd like to support the future of the project, please considercontributing to our Open Collective:.. image:: https://opencollective.com/marshmallow/donate/button.png    :target: https://opencollective.com/marshmallow    :width: 200    :alt: Donate to our collectiveProfessional Support====================Professionally-supported apispec is available through the`Tidelift Subscription <https://tidelift.com/subscription/pkg/pypi-apispec?utm_source=pypi-apispec&utm_medium=referral&utm_campaign=readme>`_.Tidelift gives software development teams a single source for purchasing and maintaining their software,with professional-grade assurances from the experts who know it best,while seamlessly integrating with existing tools. [`Get professional support`_].. _`Get professional support`: https://tidelift.com/subscription/pkg/pypi-apispec?utm_source=pypi-apispec&utm_medium=referral&utm_campaign=readme.. image:: https://user-images.githubusercontent.com/2379650/45126032-50b69880-b13f-11e8-9c2c-abd16c433495.png    :target: https://tidelift.com/subscription/pkg/pypi-apispec?utm_source=pypi-apispec&utm_medium=referral&utm_campaign=readme    :alt: Get supported apispec with TideliftSecurity Contact Information============================To report a security vulnerability, please use the`Tidelift security contact <https://tidelift.com/security>`_.Tidelift will coordinate the fix and disclosure.Project Links=============- Docs: https://apispec.readthedocs.io/- Changelog: https://apispec.readthedocs.io/en/latest/changelog.html- Contributing Guidelines: https://apispec.readthedocs.io/en/latest/contributing.html- PyPI: https://pypi.python.org/pypi/apispec- Issues: https://github.com/marshmallow-code/apispec/issuesLicense=======MIT licensed. See the bundled `LICENSE <https://github.com/marshmallow-code/apispec/blob/dev/LICENSE>`_ file for more details.
 |