aboutsummaryrefslogtreecommitdiffstats
path: root/python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py')
-rw-r--r--python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py83
1 files changed, 0 insertions, 83 deletions
diff --git a/python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py b/python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py
deleted file mode 100644
index 10c564b99..000000000
--- a/python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py
+++ /dev/null
@@ -1,83 +0,0 @@
-"""JSON schemas and associated utilities."""
-
-from os import path
-import json
-from typing import Mapping
-
-from pkg_resources import resource_string
-import jsonschema
-from stringcase import snakecase
-
-
-class _LocalRefResolver(jsonschema.RefResolver):
- """Resolve package-local JSON schema id's."""
-
- def __init__(self):
- """Initialize a new instance."""
- jsonschema.RefResolver.__init__(self, "", "")
-
- @staticmethod
- def resolve_from_url(url: str) -> str:
- """Resolve the given URL.
-
- :param url: a string representing the URL of the JSON schema to fetch.
- :returns: a string representing the deserialized JSON schema
- :raises jsonschema.ValidationError: when the resource associated with
- `url` does not exist.
- """
- ref = url.replace("file://", "")
- return json.loads(
- resource_string(
- "zero_ex.json_schemas",
- f"schemas/{snakecase(ref.lstrip('/'))}.json",
- )
- )
-
-
-# Instantiate the `_LocalRefResolver()` only once so that `assert_valid()` can
-# perform multiple schema validations without reading from disk the schema
-# every time.
-_LOCAL_RESOLVER = _LocalRefResolver()
-
-
-def assert_valid(data: Mapping, schema_id: str) -> None:
- """Validate the given `data` against the specified `schema`.
-
- :param data: Python dictionary to be validated as a JSON object.
- :param schema_id: id property of the JSON schema to validate against. Must
- be one of those listed in `the 0x JSON schema files
- <https://github.com/0xProject/0x-monorepo/tree/development/packages/json-schemas/schemas>`_.
-
- Raises an exception if validation fails.
-
- >>> assert_valid(
- ... {'v': 27, 'r': '0x'+'f'*64, 's': '0x'+'f'*64},
- ... '/ecSignatureSchema',
- ... )
- """
- # noqa
-
- _, schema = _LOCAL_RESOLVER.resolve(schema_id)
- jsonschema.validate(data, schema, resolver=_LOCAL_RESOLVER)
-
-
-def assert_valid_json(data: str, schema_id: str) -> None:
- """Validate the given `data` against the specified `schema`.
-
- :param data: JSON string to be validated.
- :param schema_id: id property of the JSON schema to validate against. Must
- be one of those listed in `the 0x JSON schema files
- <https://github.com/0xProject/0x-monorepo/tree/development/packages/json-schemas/schemas>`_.
-
- Raises an exception if validation fails.
-
- >>> assert_valid_json(
- ... r'''{
- ... "v": 27,
- ... "r": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
- ... "s": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
- ... }''',
- ... '/ecSignatureSchema',
- ... )
- """ # noqa: E501 (line too long)
- assert_valid(json.loads(data), schema_id)