apischema


Nameapischema JSON
Version 0.18.1 PyPI version JSON
download
home_pagehttps://github.com/wyfo/apischema
SummaryJSON (de)serialization, GraphQL and JSON schema generation using Python typing.
upload_time2023-10-10 08:15:13
maintainer
docs_urlNone
authorJoseph Perez
requires_python>=3.7
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # apischema

JSON (de)serialization, GraphQL and JSON schema generation using Python typing.

*apischema* makes your life easier when dealing with API data.

## Documentation

[https://wyfo.github.io/apischema/](https://wyfo.github.io/apischema/)

## Install
```shell
pip install apischema
```
It requires only Python 3.7+. *PyPy3* is also fully supported.

## Why another library?

(If you wonder how this differs from the *pydantic* library, see the [dedicated section of the documentation](https://wyfo.github.io/apischema/0.18/difference_with_pydantic) — there are many differences.)

This library fulfills the following goals:

- stay as close as possible to the standard library (dataclasses, typing, etc.) — as a consequence we do not need plugins for editors/linters/etc.;
- avoid object-oriented limitations — do not require a base class — thus handle easily every type (`Foo`, `list[Bar]`, `NewType(Id, int)`, etc.) the same way.
- be adaptable, provide tools to support any types (ORM, etc.);
- avoid dynamic things like using raw strings for attributes name - play nicely with your IDE.

No known alternative achieves all of this, and apischema is also [(a lot) faster](https://wyfo.github.io/apischema/0.18/optimizations_and_benchmark#benchmark) than all of them.

On top of that, because APIs are not only JSON, *apischema* is also a complete GraphQL library

> Actually, *apischema* is even adaptable enough to enable support of competitor libraries in a few dozens of line of code ([pydantic support example](https://wyfo.github.io/apischema/0.18/examples/pydantic_support) using [conversions feature](https://wyfo.github.io/apischema/0.18/conversions))

## Example

```python
from collections.abc import Collection
from dataclasses import dataclass, field
from uuid import UUID, uuid4

import pytest
from graphql import print_schema

from apischema import ValidationError, deserialize, serialize
from apischema.graphql import graphql_schema
from apischema.json_schema import deserialization_schema


# Define a schema with standard dataclasses
@dataclass
class Resource:
    id: UUID
    name: str
    tags: set[str] = field(default_factory=set)


# Get some data
uuid = uuid4()
data = {"id": str(uuid), "name": "wyfo", "tags": ["some_tag"]}
# Deserialize data
resource = deserialize(Resource, data)
assert resource == Resource(uuid, "wyfo", {"some_tag"})
# Serialize objects
assert serialize(Resource, resource) == data
# Validate during deserialization
with pytest.raises(ValidationError) as err:  # pytest checks exception is raised
    deserialize(Resource, {"id": "42", "name": "wyfo"})
assert err.value.errors == [
    {"loc": ["id"], "err": "badly formed hexadecimal UUID string"}
]
# Generate JSON Schema
assert deserialization_schema(Resource) == {
    "$schema": "http://json-schema.org/draft/2020-12/schema#",
    "type": "object",
    "properties": {
        "id": {"type": "string", "format": "uuid"},
        "name": {"type": "string"},
        "tags": {
            "type": "array",
            "items": {"type": "string"},
            "uniqueItems": True,
            "default": [],
        },
    },
    "required": ["id", "name"],
    "additionalProperties": False,
}


# Define GraphQL operations
def resources(tags: Collection[str] | None = None) -> Collection[Resource] | None:
    ...


# Generate GraphQL schema
schema = graphql_schema(query=[resources], id_types={UUID})
schema_str = """\
type Query {
  resources(tags: [String!]): [Resource!]
}

type Resource {
  id: ID!
  name: String!
  tags: [String!]!
}"""
assert print_schema(schema) == schema_str
```
*apischema* works out of the box with your data model.

> This example and further ones are using *pytest* API because they are in fact run as tests in the library CI

### Run the documentation examples

All documentation examples are written using the last Python minor version — currently 3.10 — in order to provide up-to-date documentation. Because Python 3.10 specificities (like [PEP 585](https://www.python.org/dev/peps/pep-0604/)) are used, this version is "mandatory" to execute the examples as-is.

In addition to *pytest*, some examples use third-party libraries like *SQLAlchemy* or *attrs*. All of this dependencies can be downloaded using the `examples` extra with
```shell
pip install apischema[examples]
```

Once dependencies are installed, you can simply copy-paste examples and execute them, using the proper Python version. 


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/wyfo/apischema",
    "name": "apischema",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "",
    "author": "Joseph Perez",
    "author_email": "joperez@hotmail.fr",
    "download_url": "https://files.pythonhosted.org/packages/c8/81/196380f22dd63d46ff0b4c1ceb7836ade5762248388194d8c0f8380a5841/apischema-0.18.1.tar.gz",
    "platform": null,
    "description": "# apischema\n\nJSON (de)serialization, GraphQL and JSON schema generation using Python typing.\n\n*apischema* makes your life easier when dealing with API data.\n\n## Documentation\n\n[https://wyfo.github.io/apischema/](https://wyfo.github.io/apischema/)\n\n## Install\n```shell\npip install apischema\n```\nIt requires only Python 3.7+. *PyPy3* is also fully supported.\n\n## Why another library?\n\n(If you wonder how this differs from the *pydantic* library, see the [dedicated section of the documentation](https://wyfo.github.io/apischema/0.18/difference_with_pydantic) \u2014 there are many differences.)\n\nThis library fulfills the following goals:\n\n- stay as close as possible to the standard library (dataclasses, typing, etc.) \u2014 as a consequence we do not need plugins for editors/linters/etc.;\n- avoid object-oriented limitations \u2014 do not require a base class \u2014 thus handle easily every type (`Foo`, `list[Bar]`, `NewType(Id, int)`, etc.) the same way.\n- be adaptable, provide tools to support any types (ORM, etc.);\n- avoid dynamic things like using raw strings for attributes name - play nicely with your IDE.\n\nNo known alternative achieves all of this, and apischema is also [(a lot) faster](https://wyfo.github.io/apischema/0.18/optimizations_and_benchmark#benchmark) than all of them.\n\nOn top of that, because APIs are not only JSON, *apischema* is also a complete GraphQL library\n\n> Actually, *apischema* is even adaptable enough to enable support of competitor libraries in a few dozens of line of code ([pydantic support example](https://wyfo.github.io/apischema/0.18/examples/pydantic_support) using [conversions feature](https://wyfo.github.io/apischema/0.18/conversions))\n\n## Example\n\n```python\nfrom collections.abc import Collection\nfrom dataclasses import dataclass, field\nfrom uuid import UUID, uuid4\n\nimport pytest\nfrom graphql import print_schema\n\nfrom apischema import ValidationError, deserialize, serialize\nfrom apischema.graphql import graphql_schema\nfrom apischema.json_schema import deserialization_schema\n\n\n# Define a schema with standard dataclasses\n@dataclass\nclass Resource:\n    id: UUID\n    name: str\n    tags: set[str] = field(default_factory=set)\n\n\n# Get some data\nuuid = uuid4()\ndata = {\"id\": str(uuid), \"name\": \"wyfo\", \"tags\": [\"some_tag\"]}\n# Deserialize data\nresource = deserialize(Resource, data)\nassert resource == Resource(uuid, \"wyfo\", {\"some_tag\"})\n# Serialize objects\nassert serialize(Resource, resource) == data\n# Validate during deserialization\nwith pytest.raises(ValidationError) as err:  # pytest checks exception is raised\n    deserialize(Resource, {\"id\": \"42\", \"name\": \"wyfo\"})\nassert err.value.errors == [\n    {\"loc\": [\"id\"], \"err\": \"badly formed hexadecimal UUID string\"}\n]\n# Generate JSON Schema\nassert deserialization_schema(Resource) == {\n    \"$schema\": \"http://json-schema.org/draft/2020-12/schema#\",\n    \"type\": \"object\",\n    \"properties\": {\n        \"id\": {\"type\": \"string\", \"format\": \"uuid\"},\n        \"name\": {\"type\": \"string\"},\n        \"tags\": {\n            \"type\": \"array\",\n            \"items\": {\"type\": \"string\"},\n            \"uniqueItems\": True,\n            \"default\": [],\n        },\n    },\n    \"required\": [\"id\", \"name\"],\n    \"additionalProperties\": False,\n}\n\n\n# Define GraphQL operations\ndef resources(tags: Collection[str] | None = None) -> Collection[Resource] | None:\n    ...\n\n\n# Generate GraphQL schema\nschema = graphql_schema(query=[resources], id_types={UUID})\nschema_str = \"\"\"\\\ntype Query {\n  resources(tags: [String!]): [Resource!]\n}\n\ntype Resource {\n  id: ID!\n  name: String!\n  tags: [String!]!\n}\"\"\"\nassert print_schema(schema) == schema_str\n```\n*apischema* works out of the box with your data model.\n\n> This example and further ones are using *pytest* API because they are in fact run as tests in the library CI\n\n### Run the documentation examples\n\nAll documentation examples are written using the last Python minor version \u2014 currently 3.10 \u2014 in order to provide up-to-date documentation. Because Python 3.10 specificities (like [PEP 585](https://www.python.org/dev/peps/pep-0604/)) are used, this version is \"mandatory\" to execute the examples as-is.\n\nIn addition to *pytest*, some examples use third-party libraries like *SQLAlchemy* or *attrs*. All of this dependencies can be downloaded using the `examples` extra with\n```shell\npip install apischema[examples]\n```\n\nOnce dependencies are installed, you can simply copy-paste examples and execute them, using the proper Python version. \n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "JSON (de)serialization, GraphQL and JSON schema generation using Python typing.",
    "version": "0.18.1",
    "project_urls": {
        "Homepage": "https://github.com/wyfo/apischema"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "162baf4235846e4edfaef3b3439d3b4e88ba44abfade23292d8999b0319154e2",
                "md5": "56764519520ba812d22f0c3ce85d1558",
                "sha256": "4201e481cc4b15ad3f8c855540ad72d810641b5b766953db170405c852c26e9a"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "56764519520ba812d22f0c3ce85d1558",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 690129,
            "upload_time": "2023-10-10T08:13:56",
            "upload_time_iso_8601": "2023-10-10T08:13:56.704726Z",
            "url": "https://files.pythonhosted.org/packages/16/2b/af4235846e4edfaef3b3439d3b4e88ba44abfade23292d8999b0319154e2/apischema-0.18.1-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e7fe971581e5fffedad0ffe19f8ee5c058aef2d31aef5688adf1b7d8a234eff6",
                "md5": "d7cd0fb4b1ca31bf4114117be825d9c8",
                "sha256": "a62348374a42c47e311fa3a8945b3c54bf4b52029eda2c819be0a1b63280b04d"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d7cd0fb4b1ca31bf4114117be825d9c8",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 4101887,
            "upload_time": "2023-10-10T08:13:58",
            "upload_time_iso_8601": "2023-10-10T08:13:58.504977Z",
            "url": "https://files.pythonhosted.org/packages/e7/fe/971581e5fffedad0ffe19f8ee5c058aef2d31aef5688adf1b7d8a234eff6/apischema-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3b79bb746040d96ac1b02f5c7386722caaf3c364ea6153b4745a51c4da152114",
                "md5": "1f232cba289b45396de2b9de3a1b0859",
                "sha256": "2df9072431ee1231bd7baa888c19f8e0be42f220e0b6bb59ae71b058959fd75c"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "1f232cba289b45396de2b9de3a1b0859",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3729604,
            "upload_time": "2023-10-10T08:14:00",
            "upload_time_iso_8601": "2023-10-10T08:14:00.583512Z",
            "url": "https://files.pythonhosted.org/packages/3b/79/bb746040d96ac1b02f5c7386722caaf3c364ea6153b4745a51c4da152114/apischema-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7e9f2fbd7ff3d12371adbf3a2b69860c705dfb595886138a3cf8817f54aacc52",
                "md5": "e8a98f98cb05b876d01d0e72ff486711",
                "sha256": "69470927a530a3cf6ef12d491501acb0d44cf655479c3ec394d3346a1bed5e78"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp310-cp310-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "e8a98f98cb05b876d01d0e72ff486711",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3787439,
            "upload_time": "2023-10-10T08:14:02",
            "upload_time_iso_8601": "2023-10-10T08:14:02.839225Z",
            "url": "https://files.pythonhosted.org/packages/7e/9f/2fbd7ff3d12371adbf3a2b69860c705dfb595886138a3cf8817f54aacc52/apischema-0.18.1-cp310-cp310-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b93afb188964d9dffebf0b2517f9b3945df04624982118784da092ec4623ab6b",
                "md5": "e818d8c683f8cfde1c5d54988a4182f3",
                "sha256": "efffadd579713945404f974322b54ca66f9cbd2a6d9f7e81956ac55305c3cf94"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e818d8c683f8cfde1c5d54988a4182f3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 4107661,
            "upload_time": "2023-10-10T08:14:04",
            "upload_time_iso_8601": "2023-10-10T08:14:04.901050Z",
            "url": "https://files.pythonhosted.org/packages/b9/3a/fb188964d9dffebf0b2517f9b3945df04624982118784da092ec4623ab6b/apischema-0.18.1-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "22d42851d6362cddccdf836c43cb8ba44ee20fe95f090f862bcdf4d7a033b835",
                "md5": "a87eec5304dc67fae814ac0453fd2b34",
                "sha256": "855f49d44d9068583daef1f11048bba7cc56b45ade2e07cb9dcd82ec1f29c58d"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "a87eec5304dc67fae814ac0453fd2b34",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 105608,
            "upload_time": "2023-10-10T08:14:07",
            "upload_time_iso_8601": "2023-10-10T08:14:07.421557Z",
            "url": "https://files.pythonhosted.org/packages/22/d4/2851d6362cddccdf836c43cb8ba44ee20fe95f090f862bcdf4d7a033b835/apischema-0.18.1-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9f714c726d3469972dedf6e118962241ac1529597382d7f35deeaed2c2df1bea",
                "md5": "13acb0db34978ae5901e6f0bc57d286e",
                "sha256": "6ec576a421fdb28dfed027133564e60df1b266a0d481b99ad11bfe6fa9bfb607"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "13acb0db34978ae5901e6f0bc57d286e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 105612,
            "upload_time": "2023-10-10T08:14:09",
            "upload_time_iso_8601": "2023-10-10T08:14:09.015491Z",
            "url": "https://files.pythonhosted.org/packages/9f/71/4c726d3469972dedf6e118962241ac1529597382d7f35deeaed2c2df1bea/apischema-0.18.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "abf9998c850d6a480140c5845b5d0402f6a6b1c17e05914758d6507adb4972f1",
                "md5": "900276eeeaa76893978df7f62bbf313a",
                "sha256": "9533867f4385e2656158a9e76fdc877bd0cf86fd7bb595d7ca0ff8bb7bf3611d"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "900276eeeaa76893978df7f62bbf313a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 697427,
            "upload_time": "2023-10-10T08:14:10",
            "upload_time_iso_8601": "2023-10-10T08:14:10.738432Z",
            "url": "https://files.pythonhosted.org/packages/ab/f9/998c850d6a480140c5845b5d0402f6a6b1c17e05914758d6507adb4972f1/apischema-0.18.1-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "00b789a8c082f826d41a54d47df0bed1b1f5cec920ae4ecd9f8a51c1e65fe620",
                "md5": "cbdde4fc4ff4a076c61d85e463878e1e",
                "sha256": "0d4afb686f94ed13a84ae6507eaf4b55958433fff9f96e511dbae8ac8a39c47b"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cbdde4fc4ff4a076c61d85e463878e1e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 4533805,
            "upload_time": "2023-10-10T08:14:13",
            "upload_time_iso_8601": "2023-10-10T08:14:13.093699Z",
            "url": "https://files.pythonhosted.org/packages/00/b7/89a8c082f826d41a54d47df0bed1b1f5cec920ae4ecd9f8a51c1e65fe620/apischema-0.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bd4bd99ef96fd36a885e4a3b731dc914026950fd886acd66990a126d0c9c8ae4",
                "md5": "534ac7e04174bd7372af73c532db871a",
                "sha256": "a9da90ce1e9e1b0970f62e6dac57a72667745d5f8a159a2c91e6f9905d286581"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "534ac7e04174bd7372af73c532db871a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 4124884,
            "upload_time": "2023-10-10T08:14:15",
            "upload_time_iso_8601": "2023-10-10T08:14:15.151324Z",
            "url": "https://files.pythonhosted.org/packages/bd/4b/d99ef96fd36a885e4a3b731dc914026950fd886acd66990a126d0c9c8ae4/apischema-0.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3cc9cf8cb52ecac407d60b5e39a07c4f7d4b7f80739c00a562d60f1fd5601dd8",
                "md5": "d7d69d7ac50e27593abe2124a13d2bd7",
                "sha256": "e0adb93fb0de2266e95cf4f4eab772a0cef1b1bec7b8e626eb2c63456920e6af"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp311-cp311-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "d7d69d7ac50e27593abe2124a13d2bd7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 4212441,
            "upload_time": "2023-10-10T08:14:16",
            "upload_time_iso_8601": "2023-10-10T08:14:16.901486Z",
            "url": "https://files.pythonhosted.org/packages/3c/c9/cf8cb52ecac407d60b5e39a07c4f7d4b7f80739c00a562d60f1fd5601dd8/apischema-0.18.1-cp311-cp311-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6f0e06b067f7b294749876267f100998f3ce353d053d8810a9f7fc39183f32a3",
                "md5": "ec9278e87806d722fa8fd7c18ecd75e5",
                "sha256": "0ed5569080a6028470232d9d86c05b3d963532c5e585cb0e31715d5f38738a16"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ec9278e87806d722fa8fd7c18ecd75e5",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 4521311,
            "upload_time": "2023-10-10T08:14:18",
            "upload_time_iso_8601": "2023-10-10T08:14:18.807461Z",
            "url": "https://files.pythonhosted.org/packages/6f/0e/06b067f7b294749876267f100998f3ce353d053d8810a9f7fc39183f32a3/apischema-0.18.1-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "03e8bb3e3ee478e48eca3a7d16b1dd73b2d0282a3f6472b26004ae86ff98511a",
                "md5": "edf6966ce6ad53482852863e71df989e",
                "sha256": "d2a5e965d427b8b42960dbf14c3820f88efe83634d5027d0e749c029f6e65117"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "edf6966ce6ad53482852863e71df989e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 105608,
            "upload_time": "2023-10-10T08:14:20",
            "upload_time_iso_8601": "2023-10-10T08:14:20.663261Z",
            "url": "https://files.pythonhosted.org/packages/03/e8/bb3e3ee478e48eca3a7d16b1dd73b2d0282a3f6472b26004ae86ff98511a/apischema-0.18.1-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "382a3966ab4d8b5285dd18b1e742a12f0c4294659afa0e39514807ee02fa2369",
                "md5": "7071e22a3f8233ab091e9e8f01436b75",
                "sha256": "f1bbb9cc3c74151de2e9314cfe6192f218ed9a7f95e324a2e034d70512268b22"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "7071e22a3f8233ab091e9e8f01436b75",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 105612,
            "upload_time": "2023-10-10T08:14:22",
            "upload_time_iso_8601": "2023-10-10T08:14:22.550596Z",
            "url": "https://files.pythonhosted.org/packages/38/2a/3966ab4d8b5285dd18b1e742a12f0c4294659afa0e39514807ee02fa2369/apischema-0.18.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "503684759faad7c04f03ba5f597e76b4375e2f5402b90cd32efb1f616cd6525d",
                "md5": "b3d4f7824a0ee2e1a2b3609675b51135",
                "sha256": "220aa56974f765dc100e875c66c688ff57bad3ae48d0aeaee4fb1ec90c5cd0fd"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b3d4f7824a0ee2e1a2b3609675b51135",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 680788,
            "upload_time": "2023-10-10T08:14:23",
            "upload_time_iso_8601": "2023-10-10T08:14:23.896212Z",
            "url": "https://files.pythonhosted.org/packages/50/36/84759faad7c04f03ba5f597e76b4375e2f5402b90cd32efb1f616cd6525d/apischema-0.18.1-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f074354bccedeaed29642b17975714ffde516ba86a7b26a0d0d0c678899ffc65",
                "md5": "b5257f5b64beb01bfb1627d38aecca95",
                "sha256": "653492010d22acdcbe2240f0ceb3ca59de1b6d34640895e03fda15f944e216d8"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b5257f5b64beb01bfb1627d38aecca95",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 4366552,
            "upload_time": "2023-10-10T08:14:26",
            "upload_time_iso_8601": "2023-10-10T08:14:26.844842Z",
            "url": "https://files.pythonhosted.org/packages/f0/74/354bccedeaed29642b17975714ffde516ba86a7b26a0d0d0c678899ffc65/apischema-0.18.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a3b5f469dfb669f4296ca1b16dd293ac266c9cbc6250933b4b6317ccd9a9359c",
                "md5": "4450e6feec840ad5d94467f41232ae2b",
                "sha256": "56a8acc8da59cf7a1052b5aec71d2f8ed6137b54aa1492709acb2c47f0547107"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "4450e6feec840ad5d94467f41232ae2b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3972647,
            "upload_time": "2023-10-10T08:14:29",
            "upload_time_iso_8601": "2023-10-10T08:14:29.129751Z",
            "url": "https://files.pythonhosted.org/packages/a3/b5/f469dfb669f4296ca1b16dd293ac266c9cbc6250933b4b6317ccd9a9359c/apischema-0.18.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6f4e54d49fe0bab8ace252f5cd1c4e8d8fd4c424a910aad0639208463845ccff",
                "md5": "77c9a08991b0f9add69ed4b69844ea1d",
                "sha256": "d466ccc31cbc95b381037ed5b9e82e034f921eb28f8057263aefc2817678036f"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp312-cp312-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "77c9a08991b0f9add69ed4b69844ea1d",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3996534,
            "upload_time": "2023-10-10T08:14:30",
            "upload_time_iso_8601": "2023-10-10T08:14:30.753490Z",
            "url": "https://files.pythonhosted.org/packages/6f/4e/54d49fe0bab8ace252f5cd1c4e8d8fd4c424a910aad0639208463845ccff/apischema-0.18.1-cp312-cp312-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "36b36b0423d5b80866c119865ce647134011e80b1d4b817d2ce5ee4b185f90f8",
                "md5": "085a5920efb691e2974021a49f902622",
                "sha256": "4b005d5a4baba32eccec5bb0fbd616f9fd26b6a5fb4f15e9a8bb53a948adade0"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp312-cp312-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "085a5920efb691e2974021a49f902622",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 4340671,
            "upload_time": "2023-10-10T08:14:32",
            "upload_time_iso_8601": "2023-10-10T08:14:32.465328Z",
            "url": "https://files.pythonhosted.org/packages/36/b3/6b0423d5b80866c119865ce647134011e80b1d4b817d2ce5ee4b185f90f8/apischema-0.18.1-cp312-cp312-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e0ef447e16ede21d79e48e8ab7b32f87ccea3b0b979229fc8343a3e30d18f4dc",
                "md5": "d86b96fcaec146a6e090487aab17985e",
                "sha256": "bd06fc6a52d461bd6540409cb25c1d51aae23b22fcd10b1fb002a3f7f1f15d0f"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "d86b96fcaec146a6e090487aab17985e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 105608,
            "upload_time": "2023-10-10T08:14:34",
            "upload_time_iso_8601": "2023-10-10T08:14:34.253728Z",
            "url": "https://files.pythonhosted.org/packages/e0/ef/447e16ede21d79e48e8ab7b32f87ccea3b0b979229fc8343a3e30d18f4dc/apischema-0.18.1-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d0bc59ca44bf71ffc5c2f43439af3c39ce66c217f780b0a4d3efac2c7b187a03",
                "md5": "4f0af43f18c0dbf32fba52c2aea2988b",
                "sha256": "429f13d9e35379bf8187c41a3c05562f8149358128382a90e415c63db528d6a2"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "4f0af43f18c0dbf32fba52c2aea2988b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 105612,
            "upload_time": "2023-10-10T08:14:35",
            "upload_time_iso_8601": "2023-10-10T08:14:35.677330Z",
            "url": "https://files.pythonhosted.org/packages/d0/bc/59ca44bf71ffc5c2f43439af3c39ce66c217f780b0a4d3efac2c7b187a03/apischema-0.18.1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "646847fbd033a6f5628ca5cedb28ca31e34ef5cd704293fb77cb02b866430b0c",
                "md5": "446c0b538ef71786c35a394584ebd47a",
                "sha256": "6a30e42eacfba0ed34a36a722e9b82cb49252c24e0a83ccc5b6dc504b39f4265"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "446c0b538ef71786c35a394584ebd47a",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 665392,
            "upload_time": "2023-10-10T08:14:37",
            "upload_time_iso_8601": "2023-10-10T08:14:37.265189Z",
            "url": "https://files.pythonhosted.org/packages/64/68/47fbd033a6f5628ca5cedb28ca31e34ef5cd704293fb77cb02b866430b0c/apischema-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "906e4af14292f856630f2075b04dc1f721419a80a45287c1d6130a10506b681b",
                "md5": "7f0ba23390949f9d8b4a3dc75bf1480c",
                "sha256": "aa188ee00d12090e68e3ef3cc553540fd467702518cc3b329b2f22fa83a21a23"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7f0ba23390949f9d8b4a3dc75bf1480c",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3612444,
            "upload_time": "2023-10-10T08:14:39",
            "upload_time_iso_8601": "2023-10-10T08:14:39.278988Z",
            "url": "https://files.pythonhosted.org/packages/90/6e/4af14292f856630f2075b04dc1f721419a80a45287c1d6130a10506b681b/apischema-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d48269996a776e1c4ca66af207b6d784538294310648d8de69b23506fcb8f51e",
                "md5": "6f8117aa98408656dbccdb1250449c46",
                "sha256": "d2a5824afe3406b9d328a26a82365ddcced6a4c5577b2341890063ba5739ca30"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "6f8117aa98408656dbccdb1250449c46",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3210426,
            "upload_time": "2023-10-10T08:14:40",
            "upload_time_iso_8601": "2023-10-10T08:14:40.954699Z",
            "url": "https://files.pythonhosted.org/packages/d4/82/69996a776e1c4ca66af207b6d784538294310648d8de69b23506fcb8f51e/apischema-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cc623046b1bd1f963bcbe96105cf3e83165acf163714497c69db5589472d07ae",
                "md5": "c6a46dd1e0a2a983aa0e2e23fd5ff643",
                "sha256": "3e6ec44c1e8bb03c3e24f52265b176a50d0947cbc3662c9a0cfe1746ce975eba"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp37-cp37m-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "c6a46dd1e0a2a983aa0e2e23fd5ff643",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3321707,
            "upload_time": "2023-10-10T08:14:42",
            "upload_time_iso_8601": "2023-10-10T08:14:42.998528Z",
            "url": "https://files.pythonhosted.org/packages/cc/62/3046b1bd1f963bcbe96105cf3e83165acf163714497c69db5589472d07ae/apischema-0.18.1-cp37-cp37m-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4a13745217855be0f2c4978d5adff2b6f61b14446f66be97eb95d3e453448c29",
                "md5": "d7f17aa637bc46291e93c32f13864e51",
                "sha256": "35f247ba29660661c6fa5c73007a326dda1d6c8b0c2d5b17bc05c3054e1fec50"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d7f17aa637bc46291e93c32f13864e51",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3643271,
            "upload_time": "2023-10-10T08:14:44",
            "upload_time_iso_8601": "2023-10-10T08:14:44.519562Z",
            "url": "https://files.pythonhosted.org/packages/4a/13/745217855be0f2c4978d5adff2b6f61b14446f66be97eb95d3e453448c29/apischema-0.18.1-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "70cca22cdcbf31e3ad593e97e06a7d4a002536097f57fadfe41e9ec7e29ea068",
                "md5": "b21708a3cf6456803984a5fca176d815",
                "sha256": "832a692d6062db43cda09aea36c2dd98bdc2405e63db639200a2aeefcad76528"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp37-cp37m-win32.whl",
            "has_sig": false,
            "md5_digest": "b21708a3cf6456803984a5fca176d815",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 105608,
            "upload_time": "2023-10-10T08:14:46",
            "upload_time_iso_8601": "2023-10-10T08:14:46.456940Z",
            "url": "https://files.pythonhosted.org/packages/70/cc/a22cdcbf31e3ad593e97e06a7d4a002536097f57fadfe41e9ec7e29ea068/apischema-0.18.1-cp37-cp37m-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4707f044f9daf632157095beecf807d7fb0287153fa5c6c525f34ba9ba408661",
                "md5": "aea15739d2469d337c9b1f13cb3828d2",
                "sha256": "b3e5b0758f6cef5d76b8df1dfbbd23e961f7ec407141752ee434973b0d24e588"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp37-cp37m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "aea15739d2469d337c9b1f13cb3828d2",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 105615,
            "upload_time": "2023-10-10T08:14:47",
            "upload_time_iso_8601": "2023-10-10T08:14:47.606999Z",
            "url": "https://files.pythonhosted.org/packages/47/07/f044f9daf632157095beecf807d7fb0287153fa5c6c525f34ba9ba408661/apischema-0.18.1-cp37-cp37m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "34c6063d2987885f2461f72b5d656842300640f92e05429a88718d3fb971b787",
                "md5": "71ec15c7096e3dac9d8571815a905583",
                "sha256": "131fd604b91a61ef163f33f9dc420acd13960103422a09f9d24950ca59356bb9"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "71ec15c7096e3dac9d8571815a905583",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 690834,
            "upload_time": "2023-10-10T08:14:49",
            "upload_time_iso_8601": "2023-10-10T08:14:49.570933Z",
            "url": "https://files.pythonhosted.org/packages/34/c6/063d2987885f2461f72b5d656842300640f92e05429a88718d3fb971b787/apischema-0.18.1-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dca4de5dac95d0b4a6720ad2bebdfef942cfeeb9f782ff014f87419de7bd330e",
                "md5": "6b80ae6f44df07e7674b7d57fe0410d8",
                "sha256": "b5e8967186c7858f1ebd790ea3dd07bad6e6c6bb0eb173b96159491f847d193e"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6b80ae6f44df07e7674b7d57fe0410d8",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 4219966,
            "upload_time": "2023-10-10T08:14:51",
            "upload_time_iso_8601": "2023-10-10T08:14:51.162089Z",
            "url": "https://files.pythonhosted.org/packages/dc/a4/de5dac95d0b4a6720ad2bebdfef942cfeeb9f782ff014f87419de7bd330e/apischema-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6878a124433f73389819d9e16d47550f2d37019c647d767e2a02f7a47bcd5e63",
                "md5": "555515e6329baa4a45748bd65ce264e7",
                "sha256": "3ba704e30ae29a4ddf89619e83380b42fc38d0b6a10dc5683fae7502da26e4d8"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "555515e6329baa4a45748bd65ce264e7",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 3830368,
            "upload_time": "2023-10-10T08:14:53",
            "upload_time_iso_8601": "2023-10-10T08:14:53.005413Z",
            "url": "https://files.pythonhosted.org/packages/68/78/a124433f73389819d9e16d47550f2d37019c647d767e2a02f7a47bcd5e63/apischema-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9670d6174c5bc153eb9e3525ac2dffb6d29e219b549814565307fb4133d84af6",
                "md5": "ffcc582ec1acb726aae212f52fa535c7",
                "sha256": "ce731cadf5374c7a243a1bd7b942246ecd9a1fed47fab455d15eaef1770511a6"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp38-cp38-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "ffcc582ec1acb726aae212f52fa535c7",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 4089529,
            "upload_time": "2023-10-10T08:14:55",
            "upload_time_iso_8601": "2023-10-10T08:14:55.151954Z",
            "url": "https://files.pythonhosted.org/packages/96/70/d6174c5bc153eb9e3525ac2dffb6d29e219b549814565307fb4133d84af6/apischema-0.18.1-cp38-cp38-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cc1d27619c19957e58bd62f7a0f876e8ec864f5d9ff5a98166fdf8402260f482",
                "md5": "eb48f3c9de64e14f311d4f4118ed68dc",
                "sha256": "e0bcd088854a040b28ccfa9792637f432335c42bace144e0e0d7da7cf71eff20"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "eb48f3c9de64e14f311d4f4118ed68dc",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 4497758,
            "upload_time": "2023-10-10T08:14:57",
            "upload_time_iso_8601": "2023-10-10T08:14:57.599469Z",
            "url": "https://files.pythonhosted.org/packages/cc/1d/27619c19957e58bd62f7a0f876e8ec864f5d9ff5a98166fdf8402260f482/apischema-0.18.1-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1c108f10d75e17279ef82447691da38d47f0f37d154a73cd80bc4fc883a0aa41",
                "md5": "0fc0e62525208b20369b9281cb62d03c",
                "sha256": "d6d93afc3343762ea7c13931cc8932f3122915a28bc0961779ae3aaf842bb572"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp38-cp38-win32.whl",
            "has_sig": false,
            "md5_digest": "0fc0e62525208b20369b9281cb62d03c",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 105608,
            "upload_time": "2023-10-10T08:14:59",
            "upload_time_iso_8601": "2023-10-10T08:14:59.154316Z",
            "url": "https://files.pythonhosted.org/packages/1c/10/8f10d75e17279ef82447691da38d47f0f37d154a73cd80bc4fc883a0aa41/apischema-0.18.1-cp38-cp38-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ba512335bb3526db9d4d4ce4ef0cca47ba0e6af388479d94ef16c34aeccbee3c",
                "md5": "b15a3af65574392a892e9bd80c05cbe7",
                "sha256": "cfa7ca98e8efa73351b55c57ec301ac9cd1743a6c3361482c31ae97d9db7aebc"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b15a3af65574392a892e9bd80c05cbe7",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 105610,
            "upload_time": "2023-10-10T08:15:00",
            "upload_time_iso_8601": "2023-10-10T08:15:00.803290Z",
            "url": "https://files.pythonhosted.org/packages/ba/51/2335bb3526db9d4d4ce4ef0cca47ba0e6af388479d94ef16c34aeccbee3c/apischema-0.18.1-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0c8f5672b18720ccac5c1a006d8dbb255a55113eba060a84b7b8eee4fb9c3e48",
                "md5": "6913fbc97f0fc29e61d319099dd79cc7",
                "sha256": "c8dd466ca0e0c4927dbdef1ca9ee1107d93b015589eed8521144a8ef4f465362"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6913fbc97f0fc29e61d319099dd79cc7",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 690775,
            "upload_time": "2023-10-10T08:15:02",
            "upload_time_iso_8601": "2023-10-10T08:15:02.350489Z",
            "url": "https://files.pythonhosted.org/packages/0c/8f/5672b18720ccac5c1a006d8dbb255a55113eba060a84b7b8eee4fb9c3e48/apischema-0.18.1-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d08bba2102ac88122d5dab2d84d88ca4e157fb0bc9e899562b4971da046d4253",
                "md5": "36e79079abcdd92897d3058611800eff",
                "sha256": "0ba3ee6dd9f06f5b6fefdfeaeab8735d76318c1d09c8e7eab1f8225e1ddeebda"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "36e79079abcdd92897d3058611800eff",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 4100656,
            "upload_time": "2023-10-10T08:15:03",
            "upload_time_iso_8601": "2023-10-10T08:15:03.981149Z",
            "url": "https://files.pythonhosted.org/packages/d0/8b/ba2102ac88122d5dab2d84d88ca4e157fb0bc9e899562b4971da046d4253/apischema-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a4c88ea092f59c3a1e2cc92a4276e07637088b1d825f6eaf0b8c820179175ef6",
                "md5": "de9eb35f71c8e17efa4565d7b3cf2734",
                "sha256": "dfc8665978a2082af4574fe23ae3ce834f3989a109b7e876230f773764df4420"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "de9eb35f71c8e17efa4565d7b3cf2734",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3731358,
            "upload_time": "2023-10-10T08:15:05",
            "upload_time_iso_8601": "2023-10-10T08:15:05.648731Z",
            "url": "https://files.pythonhosted.org/packages/a4/c8/8ea092f59c3a1e2cc92a4276e07637088b1d825f6eaf0b8c820179175ef6/apischema-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cc6ba5a6a5fc47ed527d73f9ea749df985dedc00a30901d5280fa59b752497a5",
                "md5": "e6fdf16a850c9f902ee37947fa900d1c",
                "sha256": "8e023d9bf9aa2d8004aedcac4cc5e66f0693953f8a37143f5054605441e336bb"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp39-cp39-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "e6fdf16a850c9f902ee37947fa900d1c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3789237,
            "upload_time": "2023-10-10T08:15:07",
            "upload_time_iso_8601": "2023-10-10T08:15:07.209924Z",
            "url": "https://files.pythonhosted.org/packages/cc/6b/a5a6a5fc47ed527d73f9ea749df985dedc00a30901d5280fa59b752497a5/apischema-0.18.1-cp39-cp39-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c08c32b76544ab1cb990fb28a8b79f60e592c5abd4ede507f9688fabcbc5830a",
                "md5": "6c3e5094194e24f2c3349c2718a55e57",
                "sha256": "ce4afd900ac7a7110f19595616ab2151ca24e4249b9a7df2cc7a3b70addcef77"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6c3e5094194e24f2c3349c2718a55e57",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 4105961,
            "upload_time": "2023-10-10T08:15:09",
            "upload_time_iso_8601": "2023-10-10T08:15:09.046012Z",
            "url": "https://files.pythonhosted.org/packages/c0/8c/32b76544ab1cb990fb28a8b79f60e592c5abd4ede507f9688fabcbc5830a/apischema-0.18.1-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6f6951daa75c58b941a97a80e53eed151b3b45fb085d90260b083e0259fb894a",
                "md5": "4f8deeef9dd7d47b8443f6a0290b878c",
                "sha256": "a475345391e8adb91ef53459f21d3330accc63f24e98a5de589703e5f49910c8"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "4f8deeef9dd7d47b8443f6a0290b878c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 105609,
            "upload_time": "2023-10-10T08:15:10",
            "upload_time_iso_8601": "2023-10-10T08:15:10.463791Z",
            "url": "https://files.pythonhosted.org/packages/6f/69/51daa75c58b941a97a80e53eed151b3b45fb085d90260b083e0259fb894a/apischema-0.18.1-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "da70c702a5b2beb36f93d0d9f9b8a60ea36b17895acf438ff28aa4852d51ce15",
                "md5": "744c9452b4b65df211fa9abf0636bfec",
                "sha256": "fb7a67f78fe225c463b9336d95aec02e412729aa910ae8c760d23ef867d3190d"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "744c9452b4b65df211fa9abf0636bfec",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 105610,
            "upload_time": "2023-10-10T08:15:11",
            "upload_time_iso_8601": "2023-10-10T08:15:11.711977Z",
            "url": "https://files.pythonhosted.org/packages/da/70/c702a5b2beb36f93d0d9f9b8a60ea36b17895acf438ff28aa4852d51ce15/apischema-0.18.1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c881196380f22dd63d46ff0b4c1ceb7836ade5762248388194d8c0f8380a5841",
                "md5": "a5b6f759486941f91521f05c4a27e2c2",
                "sha256": "355dc4dea7389f5b25f5326c26f06eebee8107efda7e82db8f09ee122cdf0c98"
            },
            "downloads": -1,
            "filename": "apischema-0.18.1.tar.gz",
            "has_sig": false,
            "md5_digest": "a5b6f759486941f91521f05c4a27e2c2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 746793,
            "upload_time": "2023-10-10T08:15:13",
            "upload_time_iso_8601": "2023-10-10T08:15:13.007467Z",
            "url": "https://files.pythonhosted.org/packages/c8/81/196380f22dd63d46ff0b4c1ceb7836ade5762248388194d8c0f8380a5841/apischema-0.18.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-10 08:15:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "wyfo",
    "github_project": "apischema",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "apischema"
}
        
Elapsed time: 0.75911s