apischema


Nameapischema JSON
Version 0.19.0 PyPI version JSON
download
home_pageNone
SummaryJSON (de)serialization, GraphQL and JSON schema generation using Python typing.
upload_time2024-10-01 07:49:09
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
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.8+. *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/dev/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/dev/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/dev/examples/pydantic_support) using [conversions feature](https://wyfo.github.io/apischema/dev/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": null,
    "name": "apischema",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "Joseph Perez <joperez@hotmail.fr>",
    "download_url": "https://files.pythonhosted.org/packages/8f/53/ff03c63f973222627b897a70379f02263b28bee3c8fa8d80f6f0c449675c/apischema-0.19.0.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.8+. *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/dev/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/dev/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/dev/examples/pydantic_support) using [conversions feature](https://wyfo.github.io/apischema/dev/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.19.0",
    "project_urls": {
        "Documentation": "https://wyfo.github.io/apischema",
        "Repository": "https://github.com/wyfo/apischema"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "def131180b2eb9298624850aaebc6ca18ec3cb30124d9f80e8e1a21137521fc9",
                "md5": "2a2c0fe83443648a34bc1876782a6b85",
                "sha256": "b114bfae48107d570810568737bc5d46e696c15e44778a00a578ec88303d5031"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "2a2c0fe83443648a34bc1876782a6b85",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 1264173,
            "upload_time": "2024-10-01T07:48:14",
            "upload_time_iso_8601": "2024-10-01T07:48:14.440664Z",
            "url": "https://files.pythonhosted.org/packages/de/f1/31180b2eb9298624850aaebc6ca18ec3cb30124d9f80e8e1a21137521fc9/apischema-0.19.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d80ac073767f2485ab0ba3b0a9be36d0b38a3f2c9ac339466db53fcfdeb2d31c",
                "md5": "e665ce751b3f1145e050cbea55d05e4d",
                "sha256": "55808611ec25e242302d3b405c55590bc4394a0748159806d397cee712eaedc2"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e665ce751b3f1145e050cbea55d05e4d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 4805063,
            "upload_time": "2024-10-01T07:48:16",
            "upload_time_iso_8601": "2024-10-01T07:48:16.446728Z",
            "url": "https://files.pythonhosted.org/packages/d8/0a/c073767f2485ab0ba3b0a9be36d0b38a3f2c9ac339466db53fcfdeb2d31c/apischema-0.19.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d27f54249d9f441f88764342f3d836b3b65b6d38792556e44beefa5e313ee3db",
                "md5": "7acd3e55a12b5de39dac1ad2bc22fc64",
                "sha256": "482c502d8cc5b48512f86e46e7631fa42e1d5c7fe8a9e4f9dd3f48fadd51c00c"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "7acd3e55a12b5de39dac1ad2bc22fc64",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 4448632,
            "upload_time": "2024-10-01T07:48:18",
            "upload_time_iso_8601": "2024-10-01T07:48:18.324007Z",
            "url": "https://files.pythonhosted.org/packages/d2/7f/54249d9f441f88764342f3d836b3b65b6d38792556e44beefa5e313ee3db/apischema-0.19.0-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": "d72b06ae172843a0ff5826ac60fec9d7af8d12b7522a85c7c03715c3d6806e5d",
                "md5": "0fadbccdef5309e586a17780ddc17408",
                "sha256": "73a56cc50d7badbe66d6ae17d4c5067e8452e936c271e7982f8d47432255b73f"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp310-cp310-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "0fadbccdef5309e586a17780ddc17408",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 4075424,
            "upload_time": "2024-10-01T07:48:20",
            "upload_time_iso_8601": "2024-10-01T07:48:20.199675Z",
            "url": "https://files.pythonhosted.org/packages/d7/2b/06ae172843a0ff5826ac60fec9d7af8d12b7522a85c7c03715c3d6806e5d/apischema-0.19.0-cp310-cp310-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f203d176fdc80d914217aa00df0a2ad8e4732611a9fb9301dcbb51cc36971a81",
                "md5": "2421c0183a417cb5376296dbd6c4405f",
                "sha256": "b0014591c597fd0363a1573cb27852bb84bb4f7bcf644cd1084f3bd99b8e7a6d"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2421c0183a417cb5376296dbd6c4405f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 4253194,
            "upload_time": "2024-10-01T07:48:21",
            "upload_time_iso_8601": "2024-10-01T07:48:21.884671Z",
            "url": "https://files.pythonhosted.org/packages/f2/03/d176fdc80d914217aa00df0a2ad8e4732611a9fb9301dcbb51cc36971a81/apischema-0.19.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "af876eabc6746e6e9757bec2f164479eca579a2cd47f9b27ff27782075d67e0f",
                "md5": "a7d070253ff06a08c576b9930ae1bbb5",
                "sha256": "b106c255eaf015eb1489625341f61cb78c8f0ace29605fd2bbea137308f89033"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "a7d070253ff06a08c576b9930ae1bbb5",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 104501,
            "upload_time": "2024-10-01T07:48:23",
            "upload_time_iso_8601": "2024-10-01T07:48:23.485688Z",
            "url": "https://files.pythonhosted.org/packages/af/87/6eabc6746e6e9757bec2f164479eca579a2cd47f9b27ff27782075d67e0f/apischema-0.19.0-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "858fc7ab1c8e4b697f5253fd539643c83fb75892e25c2af529225726da90882d",
                "md5": "853be2aae241671208d0b49309a1b381",
                "sha256": "b91c5a0c6e5462a5ab27250c1f641536e536e95c723519424cfff22154342ee7"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "853be2aae241671208d0b49309a1b381",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 104506,
            "upload_time": "2024-10-01T07:48:24",
            "upload_time_iso_8601": "2024-10-01T07:48:24.816769Z",
            "url": "https://files.pythonhosted.org/packages/85/8f/c7ab1c8e4b697f5253fd539643c83fb75892e25c2af529225726da90882d/apischema-0.19.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fc1babc52b6b2868edc7cc194282e3568dc9a9d19b53fa15cc0a6d0a0ac7bbec",
                "md5": "b74f947a850c399ea62feca406e35ade",
                "sha256": "de8f893f81086d1f092b9a8e8fa7b05903bdd55d19a5827575fc2834c0c9ed39"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "b74f947a850c399ea62feca406e35ade",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 1269226,
            "upload_time": "2024-10-01T07:48:26",
            "upload_time_iso_8601": "2024-10-01T07:48:26.389137Z",
            "url": "https://files.pythonhosted.org/packages/fc/1b/abc52b6b2868edc7cc194282e3568dc9a9d19b53fa15cc0a6d0a0ac7bbec/apischema-0.19.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "853a9d244726c96e2139c028d7ec779c59aa828d194acf44f66143d8fb7820c7",
                "md5": "7a5207ba77e26b12f1f0d76aa78c6b19",
                "sha256": "b55c8094562b291d3b8984425180396d09e772d21725b63339468b830b59273e"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7a5207ba77e26b12f1f0d76aa78c6b19",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 5256508,
            "upload_time": "2024-10-01T07:48:28",
            "upload_time_iso_8601": "2024-10-01T07:48:28.057523Z",
            "url": "https://files.pythonhosted.org/packages/85/3a/9d244726c96e2139c028d7ec779c59aa828d194acf44f66143d8fb7820c7/apischema-0.19.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ee28b9cbaf534f0932a3b68e5ef588408d31269bd6bbeda09f9abcfba2a2a364",
                "md5": "c13e000c3353a9f1199d31fb6b95b7a2",
                "sha256": "ebf72a9a4b77c678a260e9efc68be45c83f475f9eaa81d79e3d391d39266010f"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "c13e000c3353a9f1199d31fb6b95b7a2",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 4843945,
            "upload_time": "2024-10-01T07:48:29",
            "upload_time_iso_8601": "2024-10-01T07:48:29.567162Z",
            "url": "https://files.pythonhosted.org/packages/ee/28/b9cbaf534f0932a3b68e5ef588408d31269bd6bbeda09f9abcfba2a2a364/apischema-0.19.0-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": "8ac9c41f1458869a164c27ce5fb9dc70a29d373ca602730b6f7d78035e423062",
                "md5": "6a60b632d777e03aa3ee8c74acce1e6c",
                "sha256": "3a5836363cd7158c7bb50cf269b9a82b2cca2c73fa5391cdcfca594035ddb292"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp311-cp311-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "6a60b632d777e03aa3ee8c74acce1e6c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 4441026,
            "upload_time": "2024-10-01T07:48:31",
            "upload_time_iso_8601": "2024-10-01T07:48:31.124036Z",
            "url": "https://files.pythonhosted.org/packages/8a/c9/c41f1458869a164c27ce5fb9dc70a29d373ca602730b6f7d78035e423062/apischema-0.19.0-cp311-cp311-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c22b9c579ab1368caa38188fb79db0829f783eb675c2d91b6ba39c82de322d1f",
                "md5": "13d1e7ac734293a5505f9b24c6f0b691",
                "sha256": "684e7e85554ee35b599041263c1cf2502ed8e61bf27b3373ec359a6e19c86d58"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "13d1e7ac734293a5505f9b24c6f0b691",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 4724845,
            "upload_time": "2024-10-01T07:48:32",
            "upload_time_iso_8601": "2024-10-01T07:48:32.567093Z",
            "url": "https://files.pythonhosted.org/packages/c2/2b/9c579ab1368caa38188fb79db0829f783eb675c2d91b6ba39c82de322d1f/apischema-0.19.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "263ee32a8983ab993c603f024d627b08d05de753a66370424e00c70027c0a9b4",
                "md5": "bfdf45d5d6c0446d33352c937d19ea4d",
                "sha256": "08977cff7813bb735a3f3d3cd2e5d02167a3a3663bdf6151a0a08285ae3842e3"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "bfdf45d5d6c0446d33352c937d19ea4d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 104502,
            "upload_time": "2024-10-01T07:48:34",
            "upload_time_iso_8601": "2024-10-01T07:48:34.363208Z",
            "url": "https://files.pythonhosted.org/packages/26/3e/e32a8983ab993c603f024d627b08d05de753a66370424e00c70027c0a9b4/apischema-0.19.0-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a1f4d97ec62275737852a9bc3150e65d132e797638f40d19f98e5e86a1ad059c",
                "md5": "ab10967a51bbf42fda2ad852efa76674",
                "sha256": "53fa2179d2f0deb10428367ba0a6754321bbf006a4ea413a5242a18260cc88ed"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ab10967a51bbf42fda2ad852efa76674",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 104504,
            "upload_time": "2024-10-01T07:48:35",
            "upload_time_iso_8601": "2024-10-01T07:48:35.474392Z",
            "url": "https://files.pythonhosted.org/packages/a1/f4/d97ec62275737852a9bc3150e65d132e797638f40d19f98e5e86a1ad059c/apischema-0.19.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "acf9e252b570a964aa2e6c04f5ec69f9015a67410f2d1c9c03d974d16762a0d3",
                "md5": "4ab751181f685c3ea7ce681665d5959f",
                "sha256": "9ca15e9b61fdf4b863aad867ef493f35a69102ea6cedd8513ce202250156d081"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "4ab751181f685c3ea7ce681665d5959f",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 1268446,
            "upload_time": "2024-10-01T07:48:36",
            "upload_time_iso_8601": "2024-10-01T07:48:36.832409Z",
            "url": "https://files.pythonhosted.org/packages/ac/f9/e252b570a964aa2e6c04f5ec69f9015a67410f2d1c9c03d974d16762a0d3/apischema-0.19.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "89fec93199fff2ef4f9db6d909173ea74daadcae2431e36487401c027cedeb4b",
                "md5": "7d0b145839e4763bd5028900402fa1cb",
                "sha256": "169d577e9bf7e373b568749c313d45bf3d88aceffff3ad678589f788211433bb"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7d0b145839e4763bd5028900402fa1cb",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 5064614,
            "upload_time": "2024-10-01T07:48:38",
            "upload_time_iso_8601": "2024-10-01T07:48:38.348451Z",
            "url": "https://files.pythonhosted.org/packages/89/fe/c93199fff2ef4f9db6d909173ea74daadcae2431e36487401c027cedeb4b/apischema-0.19.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1b7bc0f7ab90b3490db5624c26504354b842b4bd237e1bc4ad5b4fe33b15e2f0",
                "md5": "56f788ca9244cc8f0d437221cb4f2a65",
                "sha256": "83fbcdef329b68dacb6b6fe3aeb2b6e5c6f23e3d60c4919346688eb3d3eaa7cd"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "56f788ca9244cc8f0d437221cb4f2a65",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 4679167,
            "upload_time": "2024-10-01T07:48:39",
            "upload_time_iso_8601": "2024-10-01T07:48:39.959695Z",
            "url": "https://files.pythonhosted.org/packages/1b/7b/c0f7ab90b3490db5624c26504354b842b4bd237e1bc4ad5b4fe33b15e2f0/apischema-0.19.0-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": "ef6bb756485e19b971cdfdedbc747c7a8d846f6e89ef7649ffe5262906e492c3",
                "md5": "d10e3bedf60fbc46f5426a6efff4fe43",
                "sha256": "8cb6d3cf5c15b2176170d84bcc0c6cf6138c4653308ac8f78dc5c70b5e72f4cc"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp312-cp312-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "d10e3bedf60fbc46f5426a6efff4fe43",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 4299713,
            "upload_time": "2024-10-01T07:48:41",
            "upload_time_iso_8601": "2024-10-01T07:48:41.247989Z",
            "url": "https://files.pythonhosted.org/packages/ef/6b/b756485e19b971cdfdedbc747c7a8d846f6e89ef7649ffe5262906e492c3/apischema-0.19.0-cp312-cp312-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4ecf9a22de08bc18b5a9a060d53b1d6a77d7653d89d5ae91ac374768c12e7f90",
                "md5": "49eb61ce753fc49bc4af1c8b2df40c2f",
                "sha256": "915c209a5666ad2cf148899292116d743da382d01695491a10bd9137ad383588"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "49eb61ce753fc49bc4af1c8b2df40c2f",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 4523601,
            "upload_time": "2024-10-01T07:48:42",
            "upload_time_iso_8601": "2024-10-01T07:48:42.475482Z",
            "url": "https://files.pythonhosted.org/packages/4e/cf/9a22de08bc18b5a9a060d53b1d6a77d7653d89d5ae91ac374768c12e7f90/apischema-0.19.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c89a46916fec8a4a7e036e30975f40307adbcb6e558c8dd83c251a033a3734b7",
                "md5": "be9c13506e4127cbc192eb3794168b2a",
                "sha256": "63950afdec0d4addb90e3d704743cd32bde755f7f4a88f081a347c55d6884a31"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "be9c13506e4127cbc192eb3794168b2a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 104501,
            "upload_time": "2024-10-01T07:48:44",
            "upload_time_iso_8601": "2024-10-01T07:48:44.271053Z",
            "url": "https://files.pythonhosted.org/packages/c8/9a/46916fec8a4a7e036e30975f40307adbcb6e558c8dd83c251a033a3734b7/apischema-0.19.0-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0c5a6b4e1c9a0669b24f84925bb5da13262d8b684a51d8e68704dd1b83b5888a",
                "md5": "7883fde19f4714e0cd4deb6c277689d7",
                "sha256": "56a7de22646304903003844bb54957e2fff39f432f380856ec34e2143063595c"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "7883fde19f4714e0cd4deb6c277689d7",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 104504,
            "upload_time": "2024-10-01T07:48:45",
            "upload_time_iso_8601": "2024-10-01T07:48:45.636157Z",
            "url": "https://files.pythonhosted.org/packages/0c/5a/6b4e1c9a0669b24f84925bb5da13262d8b684a51d8e68704dd1b83b5888a/apischema-0.19.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7d4addfcf1ab04c1c2bd212e8474082b93f178b0b6859a020d7d5f70cf88b08a",
                "md5": "562a20435cf49910fcb5f2689b99606b",
                "sha256": "f0e72b24f24179badfae61d54ef5c21f1326e7169915c7d206f91649196c1c30"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "562a20435cf49910fcb5f2689b99606b",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 1259611,
            "upload_time": "2024-10-01T07:48:47",
            "upload_time_iso_8601": "2024-10-01T07:48:47.190354Z",
            "url": "https://files.pythonhosted.org/packages/7d/4a/ddfcf1ab04c1c2bd212e8474082b93f178b0b6859a020d7d5f70cf88b08a/apischema-0.19.0-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "99d791662146216996327781cb0460a05297c507025468c2bd45e06952c13c53",
                "md5": "d58e8bab4bb4a009e793c5b22e0cf5ff",
                "sha256": "45cb6657586ebe4d3af71e5bdd8fbf7447b72c8fde6c5009b5d64743a7983df3"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d58e8bab4bb4a009e793c5b22e0cf5ff",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 5072809,
            "upload_time": "2024-10-01T07:48:48",
            "upload_time_iso_8601": "2024-10-01T07:48:48.968013Z",
            "url": "https://files.pythonhosted.org/packages/99/d7/91662146216996327781cb0460a05297c507025468c2bd45e06952c13c53/apischema-0.19.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "82f26111b07c98b7a816b53603d5d8d66d51d6ae241f6edde20537740baf98e3",
                "md5": "2157e61aebd6236b91b87cd4d378d368",
                "sha256": "36493f56855ce23e42fb949f7c1ace17353d07242e96c94ea272a2abb6dc5e1e"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "2157e61aebd6236b91b87cd4d378d368",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 4670528,
            "upload_time": "2024-10-01T07:48:50",
            "upload_time_iso_8601": "2024-10-01T07:48:50.834219Z",
            "url": "https://files.pythonhosted.org/packages/82/f2/6111b07c98b7a816b53603d5d8d66d51d6ae241f6edde20537740baf98e3/apischema-0.19.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "98df8b4bcd135d803a933714d1702d73b700464be7661347971f84b8e84e3535",
                "md5": "d0bff1b3ab624c901c61507f0cd945f1",
                "sha256": "d1e9a399b823404d74a7d2be223b86fe6dc2216ccfab0742f4702fbd34af6c5d"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp313-cp313-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "d0bff1b3ab624c901c61507f0cd945f1",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 4306643,
            "upload_time": "2024-10-01T07:48:52",
            "upload_time_iso_8601": "2024-10-01T07:48:52.768578Z",
            "url": "https://files.pythonhosted.org/packages/98/df/8b4bcd135d803a933714d1702d73b700464be7661347971f84b8e84e3535/apischema-0.19.0-cp313-cp313-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d2d8607d615896edad5a16f85a87e87ee20b37a592f079d6f6d7458afff42219",
                "md5": "7257d206f642006670780d6aec857f78",
                "sha256": "7a9a0c23d0b0fe070410488a45264828a07c2efbaabb9341c86ac651a5ba0dda"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7257d206f642006670780d6aec857f78",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 4533942,
            "upload_time": "2024-10-01T07:48:54",
            "upload_time_iso_8601": "2024-10-01T07:48:54.774442Z",
            "url": "https://files.pythonhosted.org/packages/d2/d8/607d615896edad5a16f85a87e87ee20b37a592f079d6f6d7458afff42219/apischema-0.19.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0abaf5f452e79e3362c375c7803cfc7ba63653f83325ec0c1ffc56f740dd1581",
                "md5": "cc923b83740d46b0658118b926b0bcc1",
                "sha256": "285c4c041f846abb6c5fd321a76389db7ed44e8cf48bcf2f1f8118c4de828c5e"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "cc923b83740d46b0658118b926b0bcc1",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 104501,
            "upload_time": "2024-10-01T07:48:56",
            "upload_time_iso_8601": "2024-10-01T07:48:56.015989Z",
            "url": "https://files.pythonhosted.org/packages/0a/ba/f5f452e79e3362c375c7803cfc7ba63653f83325ec0c1ffc56f740dd1581/apischema-0.19.0-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0e66fabd309a3421da68712b11b00ccb7b98d2a096d2cf99c0f4226b6914ec8d",
                "md5": "c374800cb4c06514533190843555fe49",
                "sha256": "59897fc9017e7753da41904783c16ed7e12eaa682ce355b510581011a8fd8f6f"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c374800cb4c06514533190843555fe49",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 104505,
            "upload_time": "2024-10-01T07:48:57",
            "upload_time_iso_8601": "2024-10-01T07:48:57.033458Z",
            "url": "https://files.pythonhosted.org/packages/0e/66/fabd309a3421da68712b11b00ccb7b98d2a096d2cf99c0f4226b6914ec8d/apischema-0.19.0-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f80b6f0b09ee750572dd957f8b7338b3658a79c28a98302864b4240d97bf298a",
                "md5": "be0e98243a594b75994f13734cc4fffb",
                "sha256": "418418fe8844da793a00a2a38f6fb610c1826892abe6e0f2dce72b82c13ae9f0"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "be0e98243a594b75994f13734cc4fffb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 1264498,
            "upload_time": "2024-10-01T07:48:58",
            "upload_time_iso_8601": "2024-10-01T07:48:58.436695Z",
            "url": "https://files.pythonhosted.org/packages/f8/0b/6f0b09ee750572dd957f8b7338b3658a79c28a98302864b4240d97bf298a/apischema-0.19.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e7a152818dfaaaa57e920aafc3fabd7f402336b7ab82bf048230bfbfebece274",
                "md5": "1c177e69e803920361eef3f55561363b",
                "sha256": "ed695daf750b50e5402b9987825496b182e09f6746d09e674a00c01a9a4979d7"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1c177e69e803920361eef3f55561363b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 4804131,
            "upload_time": "2024-10-01T07:48:59",
            "upload_time_iso_8601": "2024-10-01T07:48:59.623508Z",
            "url": "https://files.pythonhosted.org/packages/e7/a1/52818dfaaaa57e920aafc3fabd7f402336b7ab82bf048230bfbfebece274/apischema-0.19.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6b0463b350df3d216101f1e38e20057c49aaac4dc5eb66dfe7979492d31e5be7",
                "md5": "fd156e9f871e35afd9ebff43b7f79e3e",
                "sha256": "fe28c61b40f3a090a66e380af8889d1d601fabe06f321519257366a0dc5df22f"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "fd156e9f871e35afd9ebff43b7f79e3e",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 4449917,
            "upload_time": "2024-10-01T07:49:01",
            "upload_time_iso_8601": "2024-10-01T07:49:01.360777Z",
            "url": "https://files.pythonhosted.org/packages/6b/04/63b350df3d216101f1e38e20057c49aaac4dc5eb66dfe7979492d31e5be7/apischema-0.19.0-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": "dae1e7d0cf02eac4225b6bacf2e0e1a36273c37a5afadba073f1ff50bab4fbdc",
                "md5": "1d1e7183eaaadc24fee8635c1692bc54",
                "sha256": "fd466a90ede5774c9bfc78648ed75e7af04eba1e50eca2cfb312f50adc70caef"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp39-cp39-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "1d1e7183eaaadc24fee8635c1692bc54",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 4071440,
            "upload_time": "2024-10-01T07:49:02",
            "upload_time_iso_8601": "2024-10-01T07:49:02.605694Z",
            "url": "https://files.pythonhosted.org/packages/da/e1/e7d0cf02eac4225b6bacf2e0e1a36273c37a5afadba073f1ff50bab4fbdc/apischema-0.19.0-cp39-cp39-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7cc152687e89c6923a686694a0b778caa4ad5334ab3b7497f34a78f5bf719f1a",
                "md5": "ea885107c7aab9888df38de83fd58bf0",
                "sha256": "59cb17e4772d6919b50e01029391cf7a43ecfb6320c15bd52e750b1c44c6064f"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ea885107c7aab9888df38de83fd58bf0",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 4251614,
            "upload_time": "2024-10-01T07:49:04",
            "upload_time_iso_8601": "2024-10-01T07:49:04.377484Z",
            "url": "https://files.pythonhosted.org/packages/7c/c1/52687e89c6923a686694a0b778caa4ad5334ab3b7497f34a78f5bf719f1a/apischema-0.19.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1236512528fb702e7ac170d5260377e5e19de5cfa24da451859bd5d4e9eb554d",
                "md5": "46694a50c407b5506fa9a65dfdfc8257",
                "sha256": "4fccfc53e6654b7fa45e168322f6e3643d93cb177bc3a8a4c6abfeef0b1e03c5"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "46694a50c407b5506fa9a65dfdfc8257",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 104500,
            "upload_time": "2024-10-01T07:49:05",
            "upload_time_iso_8601": "2024-10-01T07:49:05.796825Z",
            "url": "https://files.pythonhosted.org/packages/12/36/512528fb702e7ac170d5260377e5e19de5cfa24da451859bd5d4e9eb554d/apischema-0.19.0-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e4057be41c6ed60ff9040898cb72b8cb3b61b0723e303c43095d5a928788d483",
                "md5": "f61e6020f3dc296849bf70d87d653116",
                "sha256": "fd97fe8b940f68b7a068e2b18a869f72b7e8ef65a8fd8b1e8cbca8f0be30424d"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f61e6020f3dc296849bf70d87d653116",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 104504,
            "upload_time": "2024-10-01T07:49:06",
            "upload_time_iso_8601": "2024-10-01T07:49:06.713243Z",
            "url": "https://files.pythonhosted.org/packages/e4/05/7be41c6ed60ff9040898cb72b8cb3b61b0723e303c43095d5a928788d483/apischema-0.19.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "abc47d305af684e4ad95d3235ce8b2519a2f9138ca73ad23c21d18a7e091bdc2",
                "md5": "96ff191e59438f2e25522377518c3c5e",
                "sha256": "25e253ecb860bebbb4f4f5ed2896b4d69d49c86754c83795eb2ec1ec5c1ed62b"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "96ff191e59438f2e25522377518c3c5e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 799404,
            "upload_time": "2024-10-01T07:49:07",
            "upload_time_iso_8601": "2024-10-01T07:49:07.678714Z",
            "url": "https://files.pythonhosted.org/packages/ab/c4/7d305af684e4ad95d3235ce8b2519a2f9138ca73ad23c21d18a7e091bdc2/apischema-0.19.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8f53ff03c63f973222627b897a70379f02263b28bee3c8fa8d80f6f0c449675c",
                "md5": "7a606c7fbb94207532f5c6264df6821f",
                "sha256": "08a72728b9bc90976b08a3f219f99846fb2f0218cf3dfe2019c5a52fbe1cf1b4"
            },
            "downloads": -1,
            "filename": "apischema-0.19.0.tar.gz",
            "has_sig": false,
            "md5_digest": "7a606c7fbb94207532f5c6264df6821f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 743441,
            "upload_time": "2024-10-01T07:49:09",
            "upload_time_iso_8601": "2024-10-01T07:49:09.747979Z",
            "url": "https://files.pythonhosted.org/packages/8f/53/ff03c63f973222627b897a70379f02263b28bee3c8fa8d80f6f0c449675c/apischema-0.19.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-01 07:49:09",
    "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.77448s