jsonschema-rs


Namejsonschema-rs JSON
Version 0.29.1 PyPI version JSON
download
home_pageNone
SummaryA high-performance JSON Schema validator for Python
upload_time2025-02-08 21:25:12
maintainerNone
docs_urlNone
authorDmitry Dygalo <dmitry@dygalo.dev>
requires_python>=3.8
licenseMIT
keywords jsonschema validation rust
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # jsonschema-rs

[![Build](https://img.shields.io/github/actions/workflow/status/Stranger6667/jsonschema/ci.yml?branch=master&style=flat-square)](https://github.com/Stranger6667/jsonschema/actions)
[![Version](https://img.shields.io/pypi/v/jsonschema-rs.svg?style=flat-square)](https://pypi.org/project/jsonschema-rs/)
[![Python versions](https://img.shields.io/pypi/pyversions/jsonschema-rs.svg?style=flat-square)](https://pypi.org/project/jsonschema-rs/)
[![License](https://img.shields.io/pypi/l/jsonschema-rs.svg?style=flat-square)](https://opensource.org/licenses/MIT)
[<img alt="Supported Dialects" src="https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Frust-jsonschema%2Fsupported_versions.json&style=flat-square">](https://bowtie.report/#/implementations/rust-jsonschema)

A high-performance JSON Schema validator for Python.

```python
import jsonschema_rs

schema = {"maxLength": 5}
instance = "foo"

# One-off validation
try:
    jsonschema_rs.validate(schema, "incorrect")
except jsonschema_rs.ValidationError as exc:
    assert str(exc) == '''"incorrect" is longer than 5 characters

Failed validating "maxLength" in schema

On instance:
    "incorrect"'''

# Build & reuse (faster)
validator = jsonschema_rs.validator_for(schema)

# Iterate over errors
for error in validator.iter_errors(instance):
    print(f"Error: {error}")
    print(f"Location: {error.instance_path}")

# Boolean result
assert validator.is_valid(instance)
```

> ⚠️ **Upgrading from older versions?** Check our [Migration Guide](https://github.com/Stranger6667/jsonschema/blob/master/crates/jsonschema-py/MIGRATION.md) for key changes.

## Highlights

- 📚 Full support for popular JSON Schema drafts
- 🌐 Remote reference fetching (network/file)
- 🔧 Custom format validators
- ✨ Meta-schema validation for schema documents

### Supported drafts

The following drafts are supported:

- [![Draft 2020-12](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Frust-jsonschema%2Fcompliance%2Fdraft2020-12.json)](https://bowtie.report/#/implementations/rust-jsonschema)
- [![Draft 2019-09](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Frust-jsonschema%2Fcompliance%2Fdraft2019-09.json)](https://bowtie.report/#/implementations/rust-jsonschema)
- [![Draft 7](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Frust-jsonschema%2Fcompliance%2Fdraft7.json)](https://bowtie.report/#/implementations/rust-jsonschema)
- [![Draft 6](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Frust-jsonschema%2Fcompliance%2Fdraft6.json)](https://bowtie.report/#/implementations/rust-jsonschema)
- [![Draft 4](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Frust-jsonschema%2Fcompliance%2Fdraft4.json)](https://bowtie.report/#/implementations/rust-jsonschema)

You can check the current status on the [Bowtie Report](https://bowtie.report/#/implementations/rust-jsonschema).

## Limitations

- No support for arbitrary precision numbers

## Installation

To install `jsonschema-rs` via `pip` run the following command:

```bash
pip install jsonschema-rs
```

## Usage

If you have a schema as a JSON string, then you could pass it to `validator_for`
to avoid parsing on the Python side:

```python
import jsonschema_rs

validator = jsonschema_rs.validator_for('{"minimum": 42}')
...
```

You can use draft-specific validators for different JSON Schema versions:

```python
import jsonschema_rs

# Automatic draft detection
validator = jsonschema_rs.validator_for({"minimum": 42})

# Draft-specific validators
validator = jsonschema_rs.Draft7Validator({"minimum": 42})
validator = jsonschema_rs.Draft201909Validator({"minimum": 42})
validator = jsonschema_rs.Draft202012Validator({"minimum": 42})
```

JSON Schema allows for format validation through the `format` keyword. While `jsonschema-rs`
provides built-in validators for standard formats, you can also define custom format validators
for domain-specific string formats.

To implement a custom format validator:

1. Define a function that takes a `str` and returns a `bool`.
2. Pass it with the `formats` argument.
3. Ensure validate_formats is set appropriately (especially for Draft 2019-09 and 2020-12).

```python
import jsonschema_rs

def is_currency(value):
    # The input value is always a string
    return len(value) == 3 and value.isascii()


validator = jsonschema_rs.validator_for(
    {"type": "string", "format": "currency"}, 
    formats={"currency": is_currency},
    validate_formats=True  # Important for Draft 2019-09 and 2020-12
)
validator.is_valid("USD")  # True
validator.is_valid("invalid")  # False
```

Additional configuration options are available for fine-tuning the validation process:

- `validate_formats`: Override the draft-specific default behavior for format validation.
- `ignore_unknown_formats`: Control whether unrecognized formats should be reported as errors.

Example usage of these options:

```python
import jsonschema_rs

validator = jsonschema_rs.Draft202012Validator(
    {"type": "string", "format": "date"},
    validate_formats=True,
    ignore_unknown_formats=False
)

# This will validate the "date" format
validator.is_valid("2023-05-17")  # True
validator.is_valid("not a date")  # False

# With ignore_unknown_formats=False, using an unknown format will raise an error
invalid_schema = {"type": "string", "format": "unknown"}
try:
    jsonschema_rs.Draft202012Validator(
        invalid_schema, validate_formats=True, ignore_unknown_formats=False
    )
except jsonschema_rs.ValidationError as exc:
    assert str(exc) == '''Unknown format: 'unknown'. Adjust configuration to ignore unrecognized formats

Failed validating "format" in schema

On instance:
    "unknown"'''
```

## Meta-Schema Validation

JSON Schema documents can be validated against their meta-schemas to ensure they are valid schemas. `jsonschema-rs` provides this functionality through the `meta` module:

```python
import jsonschema_rs

# Valid schema
schema = {
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "integer", "minimum": 0}
    },
    "required": ["name"]
}

# Validate schema (draft is auto-detected)
assert jsonschema_rs.meta.is_valid(schema)
jsonschema_rs.meta.validate(schema)  # No error raised

# Invalid schema
invalid_schema = {
    "minimum": "not_a_number"  # "minimum" must be a number
}

try:
    jsonschema_rs.meta.validate(invalid_schema)
except jsonschema_rs.ValidationError as exc:
    assert 'is not of type "number"' in str(exc)
```

## External References

By default, `jsonschema-rs` resolves HTTP references and file references from the local file system. You can implement a custom retriever to handle external references. Here's an example that uses a static map of schemas:

```python
import jsonschema_rs

def retrieve(uri: str):
    schemas = {
        "https://example.com/person.json": {
            "type": "object",
            "properties": {
                "name": {"type": "string"},
                "age": {"type": "integer"}
            },
            "required": ["name", "age"]
        }
    }
    if uri not in schemas:
        raise KeyError(f"Schema not found: {uri}")
    return schemas[uri]

schema = {
    "$ref": "https://example.com/person.json"
}

validator = jsonschema_rs.validator_for(schema, retriever=retrieve)

# This is valid
validator.is_valid({
    "name": "Alice",
    "age": 30
})

# This is invalid (missing "age")
validator.is_valid({
    "name": "Bob"
})  # False
```

## Schema Registry

For applications that frequently use the same schemas, you can create a registry to store and reference them efficiently:

```python
import jsonschema_rs

# Create a registry with schemas
registry = jsonschema_rs.Registry([
    ("https://example.com/address.json", {
        "type": "object",
        "properties": {
            "street": {"type": "string"},
            "city": {"type": "string"}
        }
    }),
    ("https://example.com/person.json", {
        "type": "object",
        "properties": {
            "name": {"type": "string"},
            "address": {"$ref": "https://example.com/address.json"}
        }
    })
])

# Use the registry with any validator
validator = jsonschema_rs.validator_for(
    {"$ref": "https://example.com/person.json"},
    registry=registry
)

# Validate instances
assert validator.is_valid({
    "name": "John",
    "address": {"street": "Main St", "city": "Boston"}
})
```

The registry can be configured with a draft version and a retriever for external references:

```python
import jsonschema_rs

registry = jsonschema_rs.Registry(
    resources=[
        (
            "https://example.com/address.json",
            {}
        )
    ],  # Your schemas
    draft=jsonschema_rs.Draft202012,  # Optional
    retriever=lambda uri: {}  # Optional
)
```

## Error Handling

`jsonschema-rs` provides detailed validation errors through the `ValidationError` class, which includes both basic error information and specific details about what caused the validation to fail:

```python
import jsonschema_rs

schema = {"type": "string", "maxLength": 5}

try:
    jsonschema_rs.validate(schema, "too long")
except jsonschema_rs.ValidationError as error:
    # Basic error information
    print(error.message)       # '"too long" is longer than 5 characters'
    print(error.instance_path) # Location in the instance that failed
    print(error.schema_path)   # Location in the schema that failed

    # Detailed error information via `kind`
    if isinstance(error.kind, jsonschema_rs.ValidationErrorKind.MaxLength):
        assert error.kind.limit == 5
        print(f"Exceeded maximum length of {error.kind.limit}")
```

For a complete list of all error kinds and their attributes, see the [type definitions file](https://github.com/Stranger6667/jsonschema/blob/master/crates/jsonschema-py/python/jsonschema_rs/__init__.pyi)

### Error Message Masking

When working with sensitive data, you might want to hide actual values from error messages.
You can mask instance values in error messages by providing a placeholder:

```python
import jsonschema_rs

schema = {
    "type": "object",
    "properties": {
        "password": {"type": "string", "minLength": 8},
        "api_key": {"type": "string", "pattern": "^[A-Z0-9]{32}$"}
    }
}

# Use default masking (replaces values with "[REDACTED]")
validator = jsonschema_rs.validator_for(schema, mask="[REDACTED]")

try:
    validator.validate({
        "password": "123",
        "api_key": "secret_key_123"
    })
except jsonschema_rs.ValidationError as exc:
    assert str(exc) == '''[REDACTED] does not match "^[A-Z0-9]{32}$"

Failed validating "pattern" in schema["properties"]["api_key"]

On instance["api_key"]:
    [REDACTED]'''
```

## Performance

`jsonschema-rs` is designed for high performance, outperforming other Python JSON Schema validators in most scenarios:

- Up to **60-390x** faster than `jsonschema` for complex schemas and large instances
- Generally **3-7x** faster than `fastjsonschema` on CPython

For detailed benchmarks, see our [full performance comparison](https://github.com/Stranger6667/jsonschema/blob/master/crates/jsonschema-py/BENCHMARKS.md).

## Python support

`jsonschema-rs` supports CPython 3.8, 3.9, 3.10, 3.11, 3.12, and 3.13.

## Acknowledgements

This library draws API design inspiration from the Python [`jsonschema`](https://github.com/python-jsonschema/jsonschema) package. We're grateful to the Python `jsonschema` maintainers and contributors for their pioneering work in JSON Schema validation.

## Support

If you have questions, need help, or want to suggest improvements, please use [GitHub Discussions](https://github.com/Stranger6667/jsonschema/discussions).

## Sponsorship

If you find `jsonschema-rs` useful, please consider [sponsoring its development](https://github.com/sponsors/Stranger6667).

## Contributing

We welcome contributions! Here's how you can help:

- Share your use cases
- Implement missing keywords
- Fix failing test cases from the [JSON Schema test suite](https://bowtie.report/#/implementations/rust-jsonschema)

See [CONTRIBUTING.md](https://github.com/Stranger6667/jsonschema/blob/master/CONTRIBUTING.md) for more details.

## License

Licensed under [MIT License](https://github.com/Stranger6667/jsonschema/blob/master/LICENSE).



            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "jsonschema-rs",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Dmitry Dygalo <dmitry@dygalo.dev>",
    "keywords": "jsonschema, validation, rust",
    "author": "Dmitry Dygalo <dmitry@dygalo.dev>",
    "author_email": "Dmitry Dygalo <dmitry@dygalo.dev>",
    "download_url": "https://files.pythonhosted.org/packages/b0/b4/33a9b25cad41d1e533c1ab7ff30eaec50628dd1bcb92171b99a2e944d61f/jsonschema_rs-0.29.1.tar.gz",
    "platform": null,
    "description": "# jsonschema-rs\n\n[![Build](https://img.shields.io/github/actions/workflow/status/Stranger6667/jsonschema/ci.yml?branch=master&style=flat-square)](https://github.com/Stranger6667/jsonschema/actions)\n[![Version](https://img.shields.io/pypi/v/jsonschema-rs.svg?style=flat-square)](https://pypi.org/project/jsonschema-rs/)\n[![Python versions](https://img.shields.io/pypi/pyversions/jsonschema-rs.svg?style=flat-square)](https://pypi.org/project/jsonschema-rs/)\n[![License](https://img.shields.io/pypi/l/jsonschema-rs.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n[<img alt=\"Supported Dialects\" src=\"https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Frust-jsonschema%2Fsupported_versions.json&style=flat-square\">](https://bowtie.report/#/implementations/rust-jsonschema)\n\nA high-performance JSON Schema validator for Python.\n\n```python\nimport jsonschema_rs\n\nschema = {\"maxLength\": 5}\ninstance = \"foo\"\n\n# One-off validation\ntry:\n    jsonschema_rs.validate(schema, \"incorrect\")\nexcept jsonschema_rs.ValidationError as exc:\n    assert str(exc) == '''\"incorrect\" is longer than 5 characters\n\nFailed validating \"maxLength\" in schema\n\nOn instance:\n    \"incorrect\"'''\n\n# Build & reuse (faster)\nvalidator = jsonschema_rs.validator_for(schema)\n\n# Iterate over errors\nfor error in validator.iter_errors(instance):\n    print(f\"Error: {error}\")\n    print(f\"Location: {error.instance_path}\")\n\n# Boolean result\nassert validator.is_valid(instance)\n```\n\n> \u26a0\ufe0f **Upgrading from older versions?** Check our [Migration Guide](https://github.com/Stranger6667/jsonschema/blob/master/crates/jsonschema-py/MIGRATION.md) for key changes.\n\n## Highlights\n\n- \ud83d\udcda Full support for popular JSON Schema drafts\n- \ud83c\udf10 Remote reference fetching (network/file)\n- \ud83d\udd27 Custom format validators\n- \u2728 Meta-schema validation for schema documents\n\n### Supported drafts\n\nThe following drafts are supported:\n\n- [![Draft 2020-12](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Frust-jsonschema%2Fcompliance%2Fdraft2020-12.json)](https://bowtie.report/#/implementations/rust-jsonschema)\n- [![Draft 2019-09](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Frust-jsonschema%2Fcompliance%2Fdraft2019-09.json)](https://bowtie.report/#/implementations/rust-jsonschema)\n- [![Draft 7](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Frust-jsonschema%2Fcompliance%2Fdraft7.json)](https://bowtie.report/#/implementations/rust-jsonschema)\n- [![Draft 6](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Frust-jsonschema%2Fcompliance%2Fdraft6.json)](https://bowtie.report/#/implementations/rust-jsonschema)\n- [![Draft 4](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Frust-jsonschema%2Fcompliance%2Fdraft4.json)](https://bowtie.report/#/implementations/rust-jsonschema)\n\nYou can check the current status on the [Bowtie Report](https://bowtie.report/#/implementations/rust-jsonschema).\n\n## Limitations\n\n- No support for arbitrary precision numbers\n\n## Installation\n\nTo install `jsonschema-rs` via `pip` run the following command:\n\n```bash\npip install jsonschema-rs\n```\n\n## Usage\n\nIf you have a schema as a JSON string, then you could pass it to `validator_for`\nto avoid parsing on the Python side:\n\n```python\nimport jsonschema_rs\n\nvalidator = jsonschema_rs.validator_for('{\"minimum\": 42}')\n...\n```\n\nYou can use draft-specific validators for different JSON Schema versions:\n\n```python\nimport jsonschema_rs\n\n# Automatic draft detection\nvalidator = jsonschema_rs.validator_for({\"minimum\": 42})\n\n# Draft-specific validators\nvalidator = jsonschema_rs.Draft7Validator({\"minimum\": 42})\nvalidator = jsonschema_rs.Draft201909Validator({\"minimum\": 42})\nvalidator = jsonschema_rs.Draft202012Validator({\"minimum\": 42})\n```\n\nJSON Schema allows for format validation through the `format` keyword. While `jsonschema-rs`\nprovides built-in validators for standard formats, you can also define custom format validators\nfor domain-specific string formats.\n\nTo implement a custom format validator:\n\n1. Define a function that takes a `str` and returns a `bool`.\n2. Pass it with the `formats` argument.\n3. Ensure validate_formats is set appropriately (especially for Draft 2019-09 and 2020-12).\n\n```python\nimport jsonschema_rs\n\ndef is_currency(value):\n    # The input value is always a string\n    return len(value) == 3 and value.isascii()\n\n\nvalidator = jsonschema_rs.validator_for(\n    {\"type\": \"string\", \"format\": \"currency\"}, \n    formats={\"currency\": is_currency},\n    validate_formats=True  # Important for Draft 2019-09 and 2020-12\n)\nvalidator.is_valid(\"USD\")  # True\nvalidator.is_valid(\"invalid\")  # False\n```\n\nAdditional configuration options are available for fine-tuning the validation process:\n\n- `validate_formats`: Override the draft-specific default behavior for format validation.\n- `ignore_unknown_formats`: Control whether unrecognized formats should be reported as errors.\n\nExample usage of these options:\n\n```python\nimport jsonschema_rs\n\nvalidator = jsonschema_rs.Draft202012Validator(\n    {\"type\": \"string\", \"format\": \"date\"},\n    validate_formats=True,\n    ignore_unknown_formats=False\n)\n\n# This will validate the \"date\" format\nvalidator.is_valid(\"2023-05-17\")  # True\nvalidator.is_valid(\"not a date\")  # False\n\n# With ignore_unknown_formats=False, using an unknown format will raise an error\ninvalid_schema = {\"type\": \"string\", \"format\": \"unknown\"}\ntry:\n    jsonschema_rs.Draft202012Validator(\n        invalid_schema, validate_formats=True, ignore_unknown_formats=False\n    )\nexcept jsonschema_rs.ValidationError as exc:\n    assert str(exc) == '''Unknown format: 'unknown'. Adjust configuration to ignore unrecognized formats\n\nFailed validating \"format\" in schema\n\nOn instance:\n    \"unknown\"'''\n```\n\n## Meta-Schema Validation\n\nJSON Schema documents can be validated against their meta-schemas to ensure they are valid schemas. `jsonschema-rs` provides this functionality through the `meta` module:\n\n```python\nimport jsonschema_rs\n\n# Valid schema\nschema = {\n    \"type\": \"object\",\n    \"properties\": {\n        \"name\": {\"type\": \"string\"},\n        \"age\": {\"type\": \"integer\", \"minimum\": 0}\n    },\n    \"required\": [\"name\"]\n}\n\n# Validate schema (draft is auto-detected)\nassert jsonschema_rs.meta.is_valid(schema)\njsonschema_rs.meta.validate(schema)  # No error raised\n\n# Invalid schema\ninvalid_schema = {\n    \"minimum\": \"not_a_number\"  # \"minimum\" must be a number\n}\n\ntry:\n    jsonschema_rs.meta.validate(invalid_schema)\nexcept jsonschema_rs.ValidationError as exc:\n    assert 'is not of type \"number\"' in str(exc)\n```\n\n## External References\n\nBy default, `jsonschema-rs` resolves HTTP references and file references from the local file system. You can implement a custom retriever to handle external references. Here's an example that uses a static map of schemas:\n\n```python\nimport jsonschema_rs\n\ndef retrieve(uri: str):\n    schemas = {\n        \"https://example.com/person.json\": {\n            \"type\": \"object\",\n            \"properties\": {\n                \"name\": {\"type\": \"string\"},\n                \"age\": {\"type\": \"integer\"}\n            },\n            \"required\": [\"name\", \"age\"]\n        }\n    }\n    if uri not in schemas:\n        raise KeyError(f\"Schema not found: {uri}\")\n    return schemas[uri]\n\nschema = {\n    \"$ref\": \"https://example.com/person.json\"\n}\n\nvalidator = jsonschema_rs.validator_for(schema, retriever=retrieve)\n\n# This is valid\nvalidator.is_valid({\n    \"name\": \"Alice\",\n    \"age\": 30\n})\n\n# This is invalid (missing \"age\")\nvalidator.is_valid({\n    \"name\": \"Bob\"\n})  # False\n```\n\n## Schema Registry\n\nFor applications that frequently use the same schemas, you can create a registry to store and reference them efficiently:\n\n```python\nimport jsonschema_rs\n\n# Create a registry with schemas\nregistry = jsonschema_rs.Registry([\n    (\"https://example.com/address.json\", {\n        \"type\": \"object\",\n        \"properties\": {\n            \"street\": {\"type\": \"string\"},\n            \"city\": {\"type\": \"string\"}\n        }\n    }),\n    (\"https://example.com/person.json\", {\n        \"type\": \"object\",\n        \"properties\": {\n            \"name\": {\"type\": \"string\"},\n            \"address\": {\"$ref\": \"https://example.com/address.json\"}\n        }\n    })\n])\n\n# Use the registry with any validator\nvalidator = jsonschema_rs.validator_for(\n    {\"$ref\": \"https://example.com/person.json\"},\n    registry=registry\n)\n\n# Validate instances\nassert validator.is_valid({\n    \"name\": \"John\",\n    \"address\": {\"street\": \"Main St\", \"city\": \"Boston\"}\n})\n```\n\nThe registry can be configured with a draft version and a retriever for external references:\n\n```python\nimport jsonschema_rs\n\nregistry = jsonschema_rs.Registry(\n    resources=[\n        (\n            \"https://example.com/address.json\",\n            {}\n        )\n    ],  # Your schemas\n    draft=jsonschema_rs.Draft202012,  # Optional\n    retriever=lambda uri: {}  # Optional\n)\n```\n\n## Error Handling\n\n`jsonschema-rs` provides detailed validation errors through the `ValidationError` class, which includes both basic error information and specific details about what caused the validation to fail:\n\n```python\nimport jsonschema_rs\n\nschema = {\"type\": \"string\", \"maxLength\": 5}\n\ntry:\n    jsonschema_rs.validate(schema, \"too long\")\nexcept jsonschema_rs.ValidationError as error:\n    # Basic error information\n    print(error.message)       # '\"too long\" is longer than 5 characters'\n    print(error.instance_path) # Location in the instance that failed\n    print(error.schema_path)   # Location in the schema that failed\n\n    # Detailed error information via `kind`\n    if isinstance(error.kind, jsonschema_rs.ValidationErrorKind.MaxLength):\n        assert error.kind.limit == 5\n        print(f\"Exceeded maximum length of {error.kind.limit}\")\n```\n\nFor a complete list of all error kinds and their attributes, see the [type definitions file](https://github.com/Stranger6667/jsonschema/blob/master/crates/jsonschema-py/python/jsonschema_rs/__init__.pyi)\n\n### Error Message Masking\n\nWhen working with sensitive data, you might want to hide actual values from error messages.\nYou can mask instance values in error messages by providing a placeholder:\n\n```python\nimport jsonschema_rs\n\nschema = {\n    \"type\": \"object\",\n    \"properties\": {\n        \"password\": {\"type\": \"string\", \"minLength\": 8},\n        \"api_key\": {\"type\": \"string\", \"pattern\": \"^[A-Z0-9]{32}$\"}\n    }\n}\n\n# Use default masking (replaces values with \"[REDACTED]\")\nvalidator = jsonschema_rs.validator_for(schema, mask=\"[REDACTED]\")\n\ntry:\n    validator.validate({\n        \"password\": \"123\",\n        \"api_key\": \"secret_key_123\"\n    })\nexcept jsonschema_rs.ValidationError as exc:\n    assert str(exc) == '''[REDACTED] does not match \"^[A-Z0-9]{32}$\"\n\nFailed validating \"pattern\" in schema[\"properties\"][\"api_key\"]\n\nOn instance[\"api_key\"]:\n    [REDACTED]'''\n```\n\n## Performance\n\n`jsonschema-rs` is designed for high performance, outperforming other Python JSON Schema validators in most scenarios:\n\n- Up to **60-390x** faster than `jsonschema` for complex schemas and large instances\n- Generally **3-7x** faster than `fastjsonschema` on CPython\n\nFor detailed benchmarks, see our [full performance comparison](https://github.com/Stranger6667/jsonschema/blob/master/crates/jsonschema-py/BENCHMARKS.md).\n\n## Python support\n\n`jsonschema-rs` supports CPython 3.8, 3.9, 3.10, 3.11, 3.12, and 3.13.\n\n## Acknowledgements\n\nThis library draws API design inspiration from the Python [`jsonschema`](https://github.com/python-jsonschema/jsonschema) package. We're grateful to the Python `jsonschema` maintainers and contributors for their pioneering work in JSON Schema validation.\n\n## Support\n\nIf you have questions, need help, or want to suggest improvements, please use [GitHub Discussions](https://github.com/Stranger6667/jsonschema/discussions).\n\n## Sponsorship\n\nIf you find `jsonschema-rs` useful, please consider [sponsoring its development](https://github.com/sponsors/Stranger6667).\n\n## Contributing\n\nWe welcome contributions! Here's how you can help:\n\n- Share your use cases\n- Implement missing keywords\n- Fix failing test cases from the [JSON Schema test suite](https://bowtie.report/#/implementations/rust-jsonschema)\n\nSee [CONTRIBUTING.md](https://github.com/Stranger6667/jsonschema/blob/master/CONTRIBUTING.md) for more details.\n\n## License\n\nLicensed under [MIT License](https://github.com/Stranger6667/jsonschema/blob/master/LICENSE).\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A high-performance JSON Schema validator for Python",
    "version": "0.29.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/Stranger6667/jsonschema/issues",
        "Changelog": "https://github.com/Stranger6667/jsonschema/blob/master/crates/jsonschema-py/CHANGELOG.md",
        "Funding": "https://github.com/sponsors/Stranger6667",
        "Homepage": "https://github.com/Stranger6667/jsonschema/tree/master/crates/jsonschema-py",
        "Source": "https://github.com/Stranger6667/jsonschema"
    },
    "split_keywords": [
        "jsonschema",
        " validation",
        " rust"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4e2acc53cf158d9ea3629b0c818fdbce9ad2cd8f656f11cafd0e21124487887e",
                "md5": "c3a59fcc0c909de3e99e43b104926538",
                "sha256": "7d84c4e1483a103694150b5706d638606443c814662738f14d34ca16948349df"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "has_sig": false,
            "md5_digest": "c3a59fcc0c909de3e99e43b104926538",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 3828955,
            "upload_time": "2025-02-08T21:23:47",
            "upload_time_iso_8601": "2025-02-08T21:23:47.957122Z",
            "url": "https://files.pythonhosted.org/packages/4e/2a/cc53cf158d9ea3629b0c818fdbce9ad2cd8f656f11cafd0e21124487887e/jsonschema_rs-0.29.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "83816ff994c6bf223eab69109f367fe8c5551a84f9e17869b6d51682776916fa",
                "md5": "968a673a51e1cfc672128b5907d6138a",
                "sha256": "0e7b72365ae0875c0e99f951ad4cec00c6f5e57b25ed5b8495b8f2c810ad21a6"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp310-cp310-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "968a673a51e1cfc672128b5907d6138a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1968807,
            "upload_time": "2025-02-08T21:23:52",
            "upload_time_iso_8601": "2025-02-08T21:23:52.069697Z",
            "url": "https://files.pythonhosted.org/packages/83/81/6ff994c6bf223eab69109f367fe8c5551a84f9e17869b6d51682776916fa/jsonschema_rs-0.29.1-cp310-cp310-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e21128243681ff1337bfe988d5b13acc11bd7f962a16eb5721f4fba86c8c7157",
                "md5": "1a095687f5a49c52412a14e40cc63d35",
                "sha256": "7078d3cc635b9832ba282ec4de3af4cdaba4af74691e52aa3ea5f7d1baaa3b76"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl",
            "has_sig": false,
            "md5_digest": "1a095687f5a49c52412a14e40cc63d35",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 2066165,
            "upload_time": "2025-02-08T21:23:55",
            "upload_time_iso_8601": "2025-02-08T21:23:55.573758Z",
            "url": "https://files.pythonhosted.org/packages/e2/11/28243681ff1337bfe988d5b13acc11bd7f962a16eb5721f4fba86c8c7157/jsonschema_rs-0.29.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b517263f9dccc3d80b7b43ee564b414155a62f6685eb2e657a3d1ebb68f791af",
                "md5": "f681f43304e95de3d6a291cb405d9e5d",
                "sha256": "30ed43c64e0d732edf32a881f0c1db340c9484f3a28c41f7da96667a49eb0f34"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "f681f43304e95de3d6a291cb405d9e5d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 2067619,
            "upload_time": "2025-02-08T21:23:58",
            "upload_time_iso_8601": "2025-02-08T21:23:58.528233Z",
            "url": "https://files.pythonhosted.org/packages/b5/17/263f9dccc3d80b7b43ee564b414155a62f6685eb2e657a3d1ebb68f791af/jsonschema_rs-0.29.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3ca700f4fec03168c71206bf9da3ff9d943cb2b44ad95f44255c4ae2efcdd4a0",
                "md5": "821d8fe36ea1fc1b9e08f79c64903568",
                "sha256": "24a14806090a5ebf1616a0047eb8049f70f3a830c460e71d5f4a78b300644ec9"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "821d8fe36ea1fc1b9e08f79c64903568",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 2085023,
            "upload_time": "2025-02-08T21:24:00",
            "upload_time_iso_8601": "2025-02-08T21:24:00.133201Z",
            "url": "https://files.pythonhosted.org/packages/3c/a7/00f4fec03168c71206bf9da3ff9d943cb2b44ad95f44255c4ae2efcdd4a0/jsonschema_rs-0.29.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8fd9ae4b6de008b45827e534f90cd68f9f34702bae02f9050101e556683d3c55",
                "md5": "d14380a1d5e2e3fa51a0d6aab72671a8",
                "sha256": "3d739419212e87219e0aa5b9b81eee726e755f606ac63f4795e37efeb9635ed9"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "d14380a1d5e2e3fa51a0d6aab72671a8",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1704378,
            "upload_time": "2025-02-08T21:24:02",
            "upload_time_iso_8601": "2025-02-08T21:24:02.611324Z",
            "url": "https://files.pythonhosted.org/packages/8f/d9/ae4b6de008b45827e534f90cd68f9f34702bae02f9050101e556683d3c55/jsonschema_rs-0.29.1-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d1ca4b8df88f81f560d712144f1dd2526852fc2d183eb5ae044c524146666d68",
                "md5": "697d90a88be971340406155ae315a260",
                "sha256": "a8fa9007e76cea86877165ebb13ed94648246a185d5eabaf9125e97636bc56e4"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "697d90a88be971340406155ae315a260",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1872145,
            "upload_time": "2025-02-08T21:24:05",
            "upload_time_iso_8601": "2025-02-08T21:24:05.489068Z",
            "url": "https://files.pythonhosted.org/packages/d1/ca/4b8df88f81f560d712144f1dd2526852fc2d183eb5ae044c524146666d68/jsonschema_rs-0.29.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ade29c3af8c7d56ff1b6bac88137f60bf02f2814c60d1f658ef06b2ddc2a21b1",
                "md5": "ef91ec3fc56a50520adbd631bdca913d",
                "sha256": "b4458f1a027ab0c64e91edcb23c48220d60a503e741030bcf260fbbe12979ad2"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "has_sig": false,
            "md5_digest": "ef91ec3fc56a50520adbd631bdca913d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 3828925,
            "upload_time": "2025-02-08T21:24:07",
            "upload_time_iso_8601": "2025-02-08T21:24:07.289558Z",
            "url": "https://files.pythonhosted.org/packages/ad/e2/9c3af8c7d56ff1b6bac88137f60bf02f2814c60d1f658ef06b2ddc2a21b1/jsonschema_rs-0.29.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3f29f9377e55f10ef173c4cf1c2c88bc30e4a1a4ea1c60659c524903cac85a07",
                "md5": "284b6af103d3cb7e0744c823c1a2d7e2",
                "sha256": "faf3d90b5473bf654fd6ffb490bd6fdd2e54f4034f652d1749bee963b3104ce3"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp311-cp311-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "284b6af103d3cb7e0744c823c1a2d7e2",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1968915,
            "upload_time": "2025-02-08T21:24:09",
            "upload_time_iso_8601": "2025-02-08T21:24:09.123947Z",
            "url": "https://files.pythonhosted.org/packages/3f/29/f9377e55f10ef173c4cf1c2c88bc30e4a1a4ea1c60659c524903cac85a07/jsonschema_rs-0.29.1-cp311-cp311-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0fae8c514ebab1d312a2422bece0a1ccca45b82a36131d4cb63e01b4469ac99a",
                "md5": "fc04c2bd5c4f8b133f5383e38fd8be41",
                "sha256": "e96919483960737ea5cd8d36e0752c63b875459f31ae14b3a6e80df925b74947"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl",
            "has_sig": false,
            "md5_digest": "fc04c2bd5c4f8b133f5383e38fd8be41",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 2066366,
            "upload_time": "2025-02-08T21:24:10",
            "upload_time_iso_8601": "2025-02-08T21:24:10.469220Z",
            "url": "https://files.pythonhosted.org/packages/0f/ae/8c514ebab1d312a2422bece0a1ccca45b82a36131d4cb63e01b4469ac99a/jsonschema_rs-0.29.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "053e04c6b25ae1b53c8c72eaf35cdda4f84558ca4df011d370b5906a6f56ba7f",
                "md5": "c407d68e0d796231c27c5945bbd66e89",
                "sha256": "2e70f1ff7281810327b354ecaeba6cdce7fe498483338207fe7edfae1b21c212"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c407d68e0d796231c27c5945bbd66e89",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 2067599,
            "upload_time": "2025-02-08T21:24:12",
            "upload_time_iso_8601": "2025-02-08T21:24:12.006343Z",
            "url": "https://files.pythonhosted.org/packages/05/3e/04c6b25ae1b53c8c72eaf35cdda4f84558ca4df011d370b5906a6f56ba7f/jsonschema_rs-0.29.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1f78b9b8934e4db4f43f61e65c5f285432c2d07cb1935ad9df88d5080a4a311b",
                "md5": "894d5474e11c2a5293c344bed92ba5f9",
                "sha256": "07fef0706a5df7ba5f301a6920b28b0a4013ac06623aed96a6180e95c110b82a"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "894d5474e11c2a5293c344bed92ba5f9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 2084926,
            "upload_time": "2025-02-08T21:24:14",
            "upload_time_iso_8601": "2025-02-08T21:24:14.544837Z",
            "url": "https://files.pythonhosted.org/packages/1f/78/b9b8934e4db4f43f61e65c5f285432c2d07cb1935ad9df88d5080a4a311b/jsonschema_rs-0.29.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5cae676d67d2583cdd50b07b5a0989b501aebf003b12232d14f87fc7fb991f2c",
                "md5": "b0fda9b3f82c15a50bc5603ebe999600",
                "sha256": "07524370bdce055d4f106b7fed1afdfc86facd7d004cbb71adeaff3e06861bf6"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "b0fda9b3f82c15a50bc5603ebe999600",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1704339,
            "upload_time": "2025-02-08T21:24:16",
            "upload_time_iso_8601": "2025-02-08T21:24:16.145590Z",
            "url": "https://files.pythonhosted.org/packages/5c/ae/676d67d2583cdd50b07b5a0989b501aebf003b12232d14f87fc7fb991f2c/jsonschema_rs-0.29.1-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4b3e4767dce237d8ea2ff5f684699ef1b9dae5017dc41adaa6f3dc3a85b84608",
                "md5": "683ceee0c902aa8f34e5d39c1c305f3a",
                "sha256": "36fa23c85333baa8ce5bf0564fb19de3d95b7640c0cab9e3205ddc44a62fdbf0"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "683ceee0c902aa8f34e5d39c1c305f3a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1872253,
            "upload_time": "2025-02-08T21:24:18",
            "upload_time_iso_8601": "2025-02-08T21:24:18.430743Z",
            "url": "https://files.pythonhosted.org/packages/4b/3e/4767dce237d8ea2ff5f684699ef1b9dae5017dc41adaa6f3dc3a85b84608/jsonschema_rs-0.29.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7b4a67ea15558ab85e67d1438b2e5da63b8e89b273c457106cbc87f8f4959a3d",
                "md5": "310d18ac92918b49f0abaaab06fa9632",
                "sha256": "9fe7529faa6a84d23e31b1f45853631e4d4d991c85f3d50e6d1df857bb52b72d"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "has_sig": false,
            "md5_digest": "310d18ac92918b49f0abaaab06fa9632",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 3825206,
            "upload_time": "2025-02-08T21:24:19",
            "upload_time_iso_8601": "2025-02-08T21:24:19.985337Z",
            "url": "https://files.pythonhosted.org/packages/7b/4a/67ea15558ab85e67d1438b2e5da63b8e89b273c457106cbc87f8f4959a3d/jsonschema_rs-0.29.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b92ebc75ed65d11ba47200ade9795ebd88eb2e64c2852a36d9be640172563430",
                "md5": "9f19c98efd02e094140bde345a1b875b",
                "sha256": "b5d7e385298f250ed5ce4928fd59fabf2b238f8167f2c73b9414af8143dfd12e"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp312-cp312-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9f19c98efd02e094140bde345a1b875b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 1966302,
            "upload_time": "2025-02-08T21:24:21",
            "upload_time_iso_8601": "2025-02-08T21:24:21.673127Z",
            "url": "https://files.pythonhosted.org/packages/b9/2e/bc75ed65d11ba47200ade9795ebd88eb2e64c2852a36d9be640172563430/jsonschema_rs-0.29.1-cp312-cp312-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "95dd4a90e96811f897de066c69d95bc0983138056b19cb169f2a99c736e21933",
                "md5": "4974d9bfc828d2518379b498a2a64a7e",
                "sha256": "64a29be0504731a2e3164f66f609b9999aa66a2df3179ecbfc8ead88e0524388"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl",
            "has_sig": false,
            "md5_digest": "4974d9bfc828d2518379b498a2a64a7e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 2062846,
            "upload_time": "2025-02-08T21:24:23",
            "upload_time_iso_8601": "2025-02-08T21:24:23.171660Z",
            "url": "https://files.pythonhosted.org/packages/95/dd/4a90e96811f897de066c69d95bc0983138056b19cb169f2a99c736e21933/jsonschema_rs-0.29.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "219161834396748a741021716751a786312b8a8319715e6c61421447a07c887c",
                "md5": "3819424cd08d9dfa58916ef869a8347b",
                "sha256": "7e91defda5dfa87306543ee9b34d97553d9422c134998c0b64855b381f8b531d"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "3819424cd08d9dfa58916ef869a8347b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 2065564,
            "upload_time": "2025-02-08T21:24:24",
            "upload_time_iso_8601": "2025-02-08T21:24:24.574057Z",
            "url": "https://files.pythonhosted.org/packages/21/91/61834396748a741021716751a786312b8a8319715e6c61421447a07c887c/jsonschema_rs-0.29.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f02c920d92e88b9bdb6cb14867a55e5572e7b78bfc8554f9c625caa516aa13dd",
                "md5": "df5862f45be75dd3364f9ea4ec3409b3",
                "sha256": "96f87680a6a1c16000c851d3578534ae3c154da894026c2a09a50f727bd623d4"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "df5862f45be75dd3364f9ea4ec3409b3",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 2083055,
            "upload_time": "2025-02-08T21:24:26",
            "upload_time_iso_8601": "2025-02-08T21:24:26.834026Z",
            "url": "https://files.pythonhosted.org/packages/f0/2c/920d92e88b9bdb6cb14867a55e5572e7b78bfc8554f9c625caa516aa13dd/jsonschema_rs-0.29.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6d0af4c1bea3193992fe4ff9ce330c6a594481caece06b1b67d30b15992bbf54",
                "md5": "6cd11737e8eee6cf3f80b83a12a0fa52",
                "sha256": "bcfc0d52ecca6c1b2fbeede65c1ad1545de633045d42ad0c6699039f28b5fb71"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "6cd11737e8eee6cf3f80b83a12a0fa52",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 1701065,
            "upload_time": "2025-02-08T21:24:28",
            "upload_time_iso_8601": "2025-02-08T21:24:28.282501Z",
            "url": "https://files.pythonhosted.org/packages/6d/0a/f4c1bea3193992fe4ff9ce330c6a594481caece06b1b67d30b15992bbf54/jsonschema_rs-0.29.1-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5e893f89de071920208c0eb64b827a878d2e587f6a3431b58c02f63c3468b76e",
                "md5": "983be446530857a099a1621cad0a2716",
                "sha256": "a414c162d687ee19171e2d8aae821f396d2f84a966fd5c5c757bd47df0954452"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "983be446530857a099a1621cad0a2716",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 1871774,
            "upload_time": "2025-02-08T21:24:30",
            "upload_time_iso_8601": "2025-02-08T21:24:30.824100Z",
            "url": "https://files.pythonhosted.org/packages/5e/89/3f89de071920208c0eb64b827a878d2e587f6a3431b58c02f63c3468b76e/jsonschema_rs-0.29.1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1b9bd642024e8b39753b789598363fd5998eb3053b52755a5df6a021d53741d5",
                "md5": "4ac03262d7108163925c996ecbee9605",
                "sha256": "0afee5f31a940dec350a33549ec03f2d1eda2da3049a15cd951a266a57ef97ee"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "has_sig": false,
            "md5_digest": "4ac03262d7108163925c996ecbee9605",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 3824864,
            "upload_time": "2025-02-08T21:24:32",
            "upload_time_iso_8601": "2025-02-08T21:24:32.252783Z",
            "url": "https://files.pythonhosted.org/packages/1b/9b/d642024e8b39753b789598363fd5998eb3053b52755a5df6a021d53741d5/jsonschema_rs-0.29.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "aa3d48a7baa2373b941e89a12e720dae123fd0a663c28c4e82213a29c89a4715",
                "md5": "995bc9c0442f6691d69232639b258787",
                "sha256": "c38453a5718bcf2ad1b0163d128814c12829c45f958f9407c69009d8b94a1232"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp313-cp313-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "995bc9c0442f6691d69232639b258787",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 1966084,
            "upload_time": "2025-02-08T21:24:33",
            "upload_time_iso_8601": "2025-02-08T21:24:33.800213Z",
            "url": "https://files.pythonhosted.org/packages/aa/3d/48a7baa2373b941e89a12e720dae123fd0a663c28c4e82213a29c89a4715/jsonschema_rs-0.29.1-cp313-cp313-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1ee4f260917a17bb28bb1dec6fa5e869223341fac2c92053aa9bd23c1caaefa0",
                "md5": "51ff27e03c253be71562e53211031b58",
                "sha256": "5dc8bdb1067bf4f6d2f80001a636202dc2cea027b8579f1658ce8e736b06557f"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.whl",
            "has_sig": false,
            "md5_digest": "51ff27e03c253be71562e53211031b58",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 2062430,
            "upload_time": "2025-02-08T21:24:35",
            "upload_time_iso_8601": "2025-02-08T21:24:35.174122Z",
            "url": "https://files.pythonhosted.org/packages/1e/e4/f260917a17bb28bb1dec6fa5e869223341fac2c92053aa9bd23c1caaefa0/jsonschema_rs-0.29.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f5e761353403b76768601d802afa5b7b5902d52c33d1dd0f3159aafa47463634",
                "md5": "6c3df8b92cc0eeb59e0b51e7bdc85390",
                "sha256": "4bcfe23992623a540169d0845ea8678209aa2fe7179941dc7c512efc0c2b6b46"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "6c3df8b92cc0eeb59e0b51e7bdc85390",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 2065443,
            "upload_time": "2025-02-08T21:24:36",
            "upload_time_iso_8601": "2025-02-08T21:24:36.778033Z",
            "url": "https://files.pythonhosted.org/packages/f5/e7/61353403b76768601d802afa5b7b5902d52c33d1dd0f3159aafa47463634/jsonschema_rs-0.29.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "40ed40b971a09f46a22aa956071ea159413046e9d5fcd280a5910da058acdeb2",
                "md5": "c112e76f94fa5fd724b00acb98880e0c",
                "sha256": "0f2a526c0deacd588864d3400a0997421dffef6fe1df5cfda4513a453c01ad42"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c112e76f94fa5fd724b00acb98880e0c",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 2082606,
            "upload_time": "2025-02-08T21:24:38",
            "upload_time_iso_8601": "2025-02-08T21:24:38.388789Z",
            "url": "https://files.pythonhosted.org/packages/40/ed/40b971a09f46a22aa956071ea159413046e9d5fcd280a5910da058acdeb2/jsonschema_rs-0.29.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bc591c142e1bfb87d57c18fb189149f7aa8edf751725d238d787015278b07600",
                "md5": "cfc9996a650b18a48b970244a6698186",
                "sha256": "68acaefb54f921243552d15cfee3734d222125584243ca438de4444c5654a8a3"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "cfc9996a650b18a48b970244a6698186",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 1700666,
            "upload_time": "2025-02-08T21:24:40",
            "upload_time_iso_8601": "2025-02-08T21:24:40.573630Z",
            "url": "https://files.pythonhosted.org/packages/bc/59/1c142e1bfb87d57c18fb189149f7aa8edf751725d238d787015278b07600/jsonschema_rs-0.29.1-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "13e8f0ad941286cd350b879dd2b3c848deecd27f0b3fbc0ff44f2809ad59718d",
                "md5": "b65fcf812a7ed781c1ffc2e15a44d8b0",
                "sha256": "1c4e5a61ac760a2fc3856a129cc84aa6f8fba7b9bc07b19fe4101050a8ecc33c"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b65fcf812a7ed781c1ffc2e15a44d8b0",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 1871619,
            "upload_time": "2025-02-08T21:24:42",
            "upload_time_iso_8601": "2025-02-08T21:24:42.286174Z",
            "url": "https://files.pythonhosted.org/packages/13/e8/f0ad941286cd350b879dd2b3c848deecd27f0b3fbc0ff44f2809ad59718d/jsonschema_rs-0.29.1-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "da55d46a78de340ede18f44bed78575364e17829b75a7f90dd4c1feb5bb9b59d",
                "md5": "18b84de460ff077df2143d7da2d90e18",
                "sha256": "b46c4769204ff3a5af62eecd5443bf3a65a4094af02da6cb284d8df054193c7c"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "has_sig": false,
            "md5_digest": "18b84de460ff077df2143d7da2d90e18",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 3829844,
            "upload_time": "2025-02-08T21:24:43",
            "upload_time_iso_8601": "2025-02-08T21:24:43.859740Z",
            "url": "https://files.pythonhosted.org/packages/da/55/d46a78de340ede18f44bed78575364e17829b75a7f90dd4c1feb5bb9b59d/jsonschema_rs-0.29.1-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7c278ff7b1fd7cc361f8663d52f2bc699ee184de4b5c6ba4951420ae05a2c4d1",
                "md5": "eaf10fb39fd6ca79198c6087ac524398",
                "sha256": "a456a6567ddc24e8390e67c698d68f74737f3f7047fdce86a7b655c737852955"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp38-cp38-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "eaf10fb39fd6ca79198c6087ac524398",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1969778,
            "upload_time": "2025-02-08T21:24:47",
            "upload_time_iso_8601": "2025-02-08T21:24:47.414644Z",
            "url": "https://files.pythonhosted.org/packages/7c/27/8ff7b1fd7cc361f8663d52f2bc699ee184de4b5c6ba4951420ae05a2c4d1/jsonschema_rs-0.29.1-cp38-cp38-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3496ab324917da1aa7fba2d5f0da5328d278cc19952d205ea861db39febd9dcc",
                "md5": "439a01b61854851333fe73b9088ea4eb",
                "sha256": "0b493b4837d0423f9b4bb455f6f6ff001529fa522216e347addfa0517644895d"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl",
            "has_sig": false,
            "md5_digest": "439a01b61854851333fe73b9088ea4eb",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 2066736,
            "upload_time": "2025-02-08T21:24:48",
            "upload_time_iso_8601": "2025-02-08T21:24:48.742430Z",
            "url": "https://files.pythonhosted.org/packages/34/96/ab324917da1aa7fba2d5f0da5328d278cc19952d205ea861db39febd9dcc/jsonschema_rs-0.29.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a8f334666057fc330519df515446a5de936f3c9d3d5bb1923f25f4ff9c70ba6e",
                "md5": "1b1f4e8f51b89c844f9ffa4c67aac92e",
                "sha256": "57ad422c7971cdb535408a130be767dd176e231ca756e42bc16098d6357bbfc5"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "1b1f4e8f51b89c844f9ffa4c67aac92e",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 2068434,
            "upload_time": "2025-02-08T21:24:50",
            "upload_time_iso_8601": "2025-02-08T21:24:50.581675Z",
            "url": "https://files.pythonhosted.org/packages/a8/f3/34666057fc330519df515446a5de936f3c9d3d5bb1923f25f4ff9c70ba6e/jsonschema_rs-0.29.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8540b90792d55ad89d7a12a764b53bfd81293ac0601513d2801e98e60d7a016f",
                "md5": "c1012b76e76a746b59cce84b77de9a23",
                "sha256": "0808b3d78034a256ffdd10b6ffd67e8115b9258c692b972f353ee6ed4a4ff3c6"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c1012b76e76a746b59cce84b77de9a23",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 2085957,
            "upload_time": "2025-02-08T21:24:52",
            "upload_time_iso_8601": "2025-02-08T21:24:52.675261Z",
            "url": "https://files.pythonhosted.org/packages/85/40/b90792d55ad89d7a12a764b53bfd81293ac0601513d2801e98e60d7a016f/jsonschema_rs-0.29.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ff987604c1fec0f798cce7245c38afb3286d01ece2ee53950bd159aa83a9bd26",
                "md5": "e810f316dc8676adca76cc40aa61e8c4",
                "sha256": "0a561d3b87075cd347a5a605799d60194aea4d923de6d4082ca854d2444ea8d7"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp38-cp38-win32.whl",
            "has_sig": false,
            "md5_digest": "e810f316dc8676adca76cc40aa61e8c4",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1705020,
            "upload_time": "2025-02-08T21:24:54",
            "upload_time_iso_8601": "2025-02-08T21:24:54.791759Z",
            "url": "https://files.pythonhosted.org/packages/ff/98/7604c1fec0f798cce7245c38afb3286d01ece2ee53950bd159aa83a9bd26/jsonschema_rs-0.29.1-cp38-cp38-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1d795133cbd9137a0951969a45ff8908d3f71876fb1d82c7d6ab25c8467ee480",
                "md5": "aaa7cc816f9175052d6d47946704fcb6",
                "sha256": "6cd5023eca31479473e87f39be87a4e31f5c879cfc403f610e985e18244c4c31"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "aaa7cc816f9175052d6d47946704fcb6",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1872643,
            "upload_time": "2025-02-08T21:24:56",
            "upload_time_iso_8601": "2025-02-08T21:24:56.248140Z",
            "url": "https://files.pythonhosted.org/packages/1d/79/5133cbd9137a0951969a45ff8908d3f71876fb1d82c7d6ab25c8467ee480/jsonschema_rs-0.29.1-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "80f95523f8ac5251998dda73b599a4cead30272479f2c76842cd69c1f12ff973",
                "md5": "908d87cef47d1350111d3cf05394161f",
                "sha256": "d72c3b2a24936fde3f9cb3befec470e5ea23cf844f098f30f57d683630771cdf"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "has_sig": false,
            "md5_digest": "908d87cef47d1350111d3cf05394161f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 3829578,
            "upload_time": "2025-02-08T21:24:57",
            "upload_time_iso_8601": "2025-02-08T21:24:57.896553Z",
            "url": "https://files.pythonhosted.org/packages/80/f9/5523f8ac5251998dda73b599a4cead30272479f2c76842cd69c1f12ff973/jsonschema_rs-0.29.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "94a6100dc1ad14288523510d19aea06ed5e042bd522b66b13ea2428ea1a21466",
                "md5": "05f09aa6169b446ffc602559ff348d7d",
                "sha256": "6142c8041f73a2dd67d7540f0609bd95e101f3d893d04471338e2508488319f4"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp39-cp39-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "05f09aa6169b446ffc602559ff348d7d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1969496,
            "upload_time": "2025-02-08T21:24:59",
            "upload_time_iso_8601": "2025-02-08T21:24:59.601068Z",
            "url": "https://files.pythonhosted.org/packages/94/a6/100dc1ad14288523510d19aea06ed5e042bd522b66b13ea2428ea1a21466/jsonschema_rs-0.29.1-cp39-cp39-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "98a720452d0f6d43b1317d67cf53ae1ba0af02cf1610eb3aea9a1bf476d70bad",
                "md5": "1be8ae2cf7cbf5dc4d467d559863e0ff",
                "sha256": "e27b0a8114643cacd6dda7796d40555b393605ca21cc0384505b9ffda4106d12"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl",
            "has_sig": false,
            "md5_digest": "1be8ae2cf7cbf5dc4d467d559863e0ff",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 2066775,
            "upload_time": "2025-02-08T21:25:03",
            "upload_time_iso_8601": "2025-02-08T21:25:03.061478Z",
            "url": "https://files.pythonhosted.org/packages/98/a7/20452d0f6d43b1317d67cf53ae1ba0af02cf1610eb3aea9a1bf476d70bad/jsonschema_rs-0.29.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6e8284d02c2a75ca82f64b209a3e8e40346777b704b5d08ee0ca8c48979e2bad",
                "md5": "a57fb396abc2a7c6a579224e7d47c279",
                "sha256": "b888c984640245f99dfd19397cb4723cd8c1781295427af50c995c49c616d561"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "a57fb396abc2a7c6a579224e7d47c279",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 2068286,
            "upload_time": "2025-02-08T21:25:06",
            "upload_time_iso_8601": "2025-02-08T21:25:06.014340Z",
            "url": "https://files.pythonhosted.org/packages/6e/82/84d02c2a75ca82f64b209a3e8e40346777b704b5d08ee0ca8c48979e2bad/jsonschema_rs-0.29.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "97793d0032ba74ded151aae7e221b5d423b73202dc51354a9bb6a1c0b4ca1773",
                "md5": "3885d8ce682b9a63cd1b459dfd9d9a6f",
                "sha256": "43e7ea704031aeff7fed671c7c71c01118710d6ebe0144114afaa944789a88f1"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3885d8ce682b9a63cd1b459dfd9d9a6f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 2085766,
            "upload_time": "2025-02-08T21:25:07",
            "upload_time_iso_8601": "2025-02-08T21:25:07.564938Z",
            "url": "https://files.pythonhosted.org/packages/97/79/3d0032ba74ded151aae7e221b5d423b73202dc51354a9bb6a1c0b4ca1773/jsonschema_rs-0.29.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5bd00208f056f8a069afa3ee4e09c6352683471563636d1bea171dd632410a76",
                "md5": "eded914820034ef735bda3456215def0",
                "sha256": "ce58eef1742c8dadbf50318085d77ccbe81e30f4bf05ce42eb710403641c6cf2"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "eded914820034ef735bda3456215def0",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1704852,
            "upload_time": "2025-02-08T21:25:09",
            "upload_time_iso_8601": "2025-02-08T21:25:09.172130Z",
            "url": "https://files.pythonhosted.org/packages/5b/d0/0208f056f8a069afa3ee4e09c6352683471563636d1bea171dd632410a76/jsonschema_rs-0.29.1-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0287dc428471fe1ddb3a2971d8c54f4027d3fe0fd972d3563891de12e0b76b8b",
                "md5": "49a47b6b4b7bb2c458807e99e3bb3731",
                "sha256": "d1a2b3f1c756579fc82b7d29def521e9532d6739b527ef446208ba5dd7e516e9"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "49a47b6b4b7bb2c458807e99e3bb3731",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1872532,
            "upload_time": "2025-02-08T21:25:10",
            "upload_time_iso_8601": "2025-02-08T21:25:10.777347Z",
            "url": "https://files.pythonhosted.org/packages/02/87/dc428471fe1ddb3a2971d8c54f4027d3fe0fd972d3563891de12e0b76b8b/jsonschema_rs-0.29.1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b0b433a9b25cad41d1e533c1ab7ff30eaec50628dd1bcb92171b99a2e944d61f",
                "md5": "2dc0999aedfef21469de5beead882425",
                "sha256": "a9f896a9e4517630374f175364705836c22f09d5bd5bbb06ec0611332b6702fd"
            },
            "downloads": -1,
            "filename": "jsonschema_rs-0.29.1.tar.gz",
            "has_sig": false,
            "md5_digest": "2dc0999aedfef21469de5beead882425",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 1406679,
            "upload_time": "2025-02-08T21:25:12",
            "upload_time_iso_8601": "2025-02-08T21:25:12.639343Z",
            "url": "https://files.pythonhosted.org/packages/b0/b4/33a9b25cad41d1e533c1ab7ff30eaec50628dd1bcb92171b99a2e944d61f/jsonschema_rs-0.29.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-08 21:25:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Stranger6667",
    "github_project": "jsonschema",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "jsonschema-rs"
}
        
Elapsed time: 0.45173s