-
-
Notifications
You must be signed in to change notification settings - Fork 582
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make ValidationError Hashable #477
Comments
Hey yeah this is one of the remaining things I'm thinking about before the release. The issue with making them hashable is that doing so requires an API change, because they've got mutable attributes on them at the minute, so those would need to become immutable ones. |
Of course, If comparability is not necessary, I vote for simply removing For now, here's my workaround: from jsonschema.exceptions import _Error
_Error.__eq__ = object.__eq__
_Error.__ne__ = object.__ne__
_Error.__hash__ = object.__hash__
Here's another use-case: For example: # test.py
from jsonschema import validate
def test():
validate([], {"type": "object"})
|
It's used in tests, yes, via
Sounds like a |
Ah, thanks for pointing that out. Still, it's not used in many places, so I've proposed #502 to eliminate the need for comparable exceptions.
OK, I've submitted pytest-dev/pytest#4514, to see if they're interested in supporting unhashable exceptions. |
FWIW, you're right: This is not an issue when using Python 3.7. I'm using Python 3.6, where it is an issue. |
09fd353f Merge pull request #481 from kylef/kylef/time 0ed2e79b Fix negative time test to only fail on a single rule 2edc74b1 Add valid time with different second fractions 7bde0bf7 Add valid time with leap second including offset ee83f464 Stricter time format constraints 5732904a Merge pull request #480 from json-schema-org/ether/better-test-names c2994271 better test names for schema-items + additionalItems 6bc53e60 Merge pull request #479 from json-schema-org/fix-non-id-in-enum-for-drafts-6-and-7 3f783d9c fixing draft 6 & 7 non-id tests 5768c68d Merge pull request #476 from json-schema-org/ether/readme-updates 0c8bfc06 add mention of JSON::Schema::Tiny e4c10c6b fix markdown for underscores in package names eeb4db18 mention draft2020-12 in readme dff69dcb Merge pull request #474 from marksparkza/unevaluatedItems-depends-on-contains 51b4977c Merge pull request #478 from sorinsarca/patch-1 dfcd4a19 fix bad comma 4cb100a5 Merge pull request #465 from json-schema-org/ether/more-naive-ref 31dc86bc add another test of naive $ref replacement f858c613 Merge pull request #477 from json-schema-org/ether/more-items-tests 4e266c34 test that array-items/prefixItems adjusts the starting position for schema-items/additionalItems b7fced33 Merge pull request #473 from json-schema-org/ether/more-default-tests eadb9be7 test that a missing property is not populated by the default in the actual instance data 839b95d8 Added opis/json-schema 7cf78800 Add missing comma 3390c871 Update tests/draft2020-12/unevaluatedItems.json d3b88001 Update tests/draft2020-12/unevaluatedItems.json 84e1d5a9 Add another test case for unevaluatedItems-contains interaction f400802c Add tests for unevaluatedItems interaction with contains git-subtree-dir: json git-subtree-split: 09fd353fc44ab22e7e8998d096b3d6d83287e5e6
cannot log ValidationError as an exception. Making the exceptions hashable would be great to use in standard logging libraries. Any plans to make ValidationError exception hashable before the v3.0 release??
The text was updated successfully, but these errors were encountered: