diff options
author | F. Eugene Aumson <feuGeneA@users.noreply.github.com> | 2018-12-13 09:47:25 +0800 |
---|---|---|
committer | F. Eugene Aumson <feuGeneA@users.noreply.github.com> | 2018-12-15 05:53:15 +0800 |
commit | b6c8126589a94c2986c591ad7741cd3787a96e58 (patch) | |
tree | a4befde8c6ae5b364bd91ffe176ff0c6b1fd66ff /python-packages/order_utils/src/zero_ex | |
parent | f9a6c45a038206c863d745fdf9c98f463f03e269 (diff) | |
download | dexon-0x-contracts-b6c8126589a94c2986c591ad7741cd3787a96e58.tar dexon-0x-contracts-b6c8126589a94c2986c591ad7741cd3787a96e58.tar.gz dexon-0x-contracts-b6c8126589a94c2986c591ad7741cd3787a96e58.tar.bz2 dexon-0x-contracts-b6c8126589a94c2986c591ad7741cd3787a96e58.tar.lz dexon-0x-contracts-b6c8126589a94c2986c591ad7741cd3787a96e58.tar.xz dexon-0x-contracts-b6c8126589a94c2986c591ad7741cd3787a96e58.tar.zst dexon-0x-contracts-b6c8126589a94c2986c591ad7741cd3787a96e58.zip |
Move zero_ex.json_schemas to its own package
Diffstat (limited to 'python-packages/order_utils/src/zero_ex')
-rw-r--r-- | python-packages/order_utils/src/zero_ex/json_schemas/__init__.py | 74 | ||||
l--------- | python-packages/order_utils/src/zero_ex/json_schemas/schemas | 1 |
2 files changed, 0 insertions, 75 deletions
diff --git a/python-packages/order_utils/src/zero_ex/json_schemas/__init__.py b/python-packages/order_utils/src/zero_ex/json_schemas/__init__.py deleted file mode 100644 index a76a2fa3b..000000000 --- a/python-packages/order_utils/src/zero_ex/json_schemas/__init__.py +++ /dev/null @@ -1,74 +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 - - -class _LocalRefResolver(jsonschema.RefResolver): - """Resolve package-local JSON schema id's.""" - - def __init__(self): - """Initialize a new instance.""" - self.ref_to_file = { - "/addressSchema": "address_schema.json", - "/hexSchema": "hex_schema.json", - "/orderSchema": "order_schema.json", - "/wholeNumberSchema": "whole_number_schema.json", - "/ECSignature": "ec_signature_schema.json", - "/signedOrderSchema": "signed_order_schema.json", - "/ecSignatureParameterSchema": ( - "ec_signature_parameter_schema.json" + "" - ), - } - jsonschema.RefResolver.__init__(self, "", "") - - def resolve_from_url(self, 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://", "") - if ref in self.ref_to_file: - return json.loads( - resource_string( - "zero_ex.json_schemas", f"schemas/{self.ref_to_file[ref]}" - ) - ) - raise jsonschema.ValidationError( - f"Unknown ref '{ref}'. " - + f"Known refs: {list(self.ref_to_file.keys())}." - ) - - -# 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}, - ... '/ECSignature', - ... ) - """ - # noqa - - _, schema = _LOCAL_RESOLVER.resolve(schema_id) - jsonschema.validate(data, schema, resolver=_LOCAL_RESOLVER) diff --git a/python-packages/order_utils/src/zero_ex/json_schemas/schemas b/python-packages/order_utils/src/zero_ex/json_schemas/schemas deleted file mode 120000 index b8257372c..000000000 --- a/python-packages/order_utils/src/zero_ex/json_schemas/schemas +++ /dev/null @@ -1 +0,0 @@ -../../../../../packages/json-schemas/schemas/
\ No newline at end of file |