diff --git a/docs/fields.md b/docs/fields.md
index 0f694b0..5ce383b 100644
--- a/docs/fields.md
+++ b/docs/fields.md
@@ -58,7 +58,7 @@ For example: `username = typesystem.String(max_length=100)`
 * `trim_whitespace` - A boolean indicating if leading/trailing whitespace should be removed on validation. **Default: `True`**
 * `max_length` - A maximum number of characters that valid input stings may contain. **Default: `None`**
 * `min_length` - A minimum number of characters that valid input stings may contain. **Default: `None`**
-* `pattern` - A string to be used as a regex that must match. Eg. `patern="^[A-Za-z]+$"` **Default: `None`**
+* `pattern` - A regular expression that must match. This can be either a string or a compiled regular expression. E.g. `pattern="^[A-Za-z]+$"` **Default: `None`**
 * `format` - A string used to indicate a semantic type, such as `"email"`, `"url"`, or `"color"`. **Default: `None`**
 
 ### Text
@@ -97,8 +97,8 @@ provide more precise behaviour.
 * `maximum` - A number representing the maximum allowed value. Inputs must be less than or equal to this to validate. **Default: `None`**
 * `exclusive_minimum` - A number representing an exclusive minimum. Inputs must be greater than this to validate. **Default: `None`**
 * `exclusive_maximum` - A number representing an exclusive maximum. Inputs must be less than this to validate. **Default: `None`**
-* `precision` - A string representing the decimal precision to truncate input with. Eg. `precision="0.001"`. **Default: `None`**
-* `multiple_of` - A number giving a value that inputs must be a strict multiple of in order to validate. Eg. `multiple_of=2` will only validate even integers. **Default: `None`**
+* `precision` - A string representing the decimal precision to truncate input with. E.g. `precision="0.001"`. **Default: `None`**
+* `multiple_of` - A number giving a value that inputs must be a strict multiple of in order to validate. E.g. `multiple_of=2` will only validate even integers. **Default: `None`**
 
 ### Integer
 
diff --git a/typesystem/fields.py b/typesystem/fields.py
index 3e3d656..8c5fffc 100644
--- a/typesystem/fields.py
+++ b/typesystem/fields.py
@@ -78,6 +78,25 @@ class Field:
         return self.errors[code].format(**self.__dict__)
 
 
+def normalize_regex(
+    pattern: typing.Union[str, typing.Pattern] = None
+) -> typing.Tuple[typing.Optional[str], typing.Optional[typing.Pattern]]:
+    """
+    Normalise and validate a regular expression-like input.
+
+    Returns a 2-tuple with a pattern string and a compiled regular expression.
+    """
+    if pattern is None:
+        return (None, None)
+
+    if isinstance(pattern, str):
+        pattern_regex = re.compile(pattern)
+    else:
+        pattern_regex = pattern
+
+    return pattern_regex.pattern, pattern_regex
+
+
 class String(Field):
     errors = {
         "type": "Must be a string.",
@@ -96,7 +115,7 @@ class String(Field):
         trim_whitespace: bool = True,
         max_length: int = None,
         min_length: int = None,
-        pattern: str = None,
+        pattern: typing.Union[str, typing.Pattern] = None,
         format: str = None,
         **kwargs: typing.Any,
     ) -> None:
@@ -104,7 +123,7 @@ class String(Field):
 
         assert max_length is None or isinstance(max_length, int)
         assert min_length is None or isinstance(min_length, int)
-        assert pattern is None or isinstance(pattern, str)
+        assert pattern is None or isinstance(pattern, (str, typing.Pattern))
         assert format is None or isinstance(format, str)
 
         if allow_blank and not self.has_default():
@@ -114,7 +133,7 @@ class String(Field):
         self.trim_whitespace = trim_whitespace
         self.max_length = max_length
         self.min_length = min_length
-        self.pattern = pattern
+        self.pattern, self.pattern_regex = normalize_regex(pattern)
         self.format = format
 
     def validate(self, value: typing.Any, *, strict: bool = False) -> typing.Any:
@@ -151,8 +170,8 @@ class String(Field):
             if len(value) > self.max_length:
                 raise self.validation_error("max_length")
 
-        if self.pattern is not None:
-            if not re.search(self.pattern, value):
+        if self.pattern_regex is not None:
+            if not self.pattern_regex.search(value):
                 raise self.validation_error("pattern")
 
         if self.format in FORMATS:
diff --git a/typesystem/json_schema.py b/typesystem/json_schema.py
index 1360799..fbc1529 100644
--- a/typesystem/json_schema.py
+++ b/typesystem/json_schema.py
@@ -1,3 +1,4 @@
+import re
 import typing
 
 from typesystem.composites import AllOf, IfThenElse, NeverMatch, Not, OneOf
@@ -318,8 +319,14 @@ def to_json_schema(
             data["minLength"] = field.min_length or 1
         if field.max_length is not None:
             data["maxLength"] = field.max_length
-        if field.pattern is not None:
-            data["pattern"] = field.pattern
+        if field.pattern_regex is not None:
+            if field.pattern_regex.flags != re.RegexFlag.UNICODE:
+                flags = re.RegexFlag(field.pattern_regex.flags)
+                raise ValueError(
+                    f"Cannot convert regular expression with non-standard flags "
+                    f"to JSON schema: {flags!s}"
+                )
+            data["pattern"] = field.pattern_regex.pattern
         if field.format is not None:
             data["format"] = field.format
         return data

better error messages for regular expression validation
string fields can have a `pattern` for validation, and since `re.search()` is used under the hood, the pattern can be either a regular expression as a string or a compiled regular expression (`re.compile(...)` is cached and can have flags).

so far so good, but the error message uses this:

```
        "pattern": "Must match the pattern /{pattern}/.",
```

the `str()` conversion for compiled regexes looks like code:

```
>>> my_regex = re.compile('foo')

>>> f"oops: {my_regex}"
"oops: re.compile('foo')"
```

but the `.pattern` attribute is a string:

```
>>> f"oops: {my_regex.pattern}"
'oops: foo'
```

so, perhaps the error message for regular expressions could be improved. :deciduous_tree: 
diff --git a/tests/test_fields.py b/tests/test_fields.py
index cd7308e..866322c 100644
--- a/tests/test_fields.py
+++ b/tests/test_fields.py
@@ -1,5 +1,6 @@
 import datetime
 import decimal
+import re
 
 from typesystem.base import Message, ValidationError
 from typesystem.fields import (
@@ -88,6 +89,10 @@ def test_string():
         text="Must match the pattern /^[abc]*$/.", code="pattern"
     )
 
+    validator = String(pattern=re.compile("ABC", re.IGNORECASE))
+    value, error = validator.validate_or_error("abc")
+    assert value == "abc"
+
     validator = String()
     value, error = validator.validate_or_error(" ")
     assert error == ValidationError(text="Must not be blank.", code="blank")
diff --git a/tests/test_json_schema.py b/tests/test_json_schema.py
index 3aae745..c5e2736 100644
--- a/tests/test_json_schema.py
+++ b/tests/test_json_schema.py
@@ -1,5 +1,6 @@
 import json
 import os
+import re
 
 import pytest
 
@@ -144,3 +145,15 @@ def test_to_json_schema_invalid_field():
     field = CustomField()
     with pytest.raises(TypeError):
         to_json_schema(field)
+
+
+def test_to_json_schema_complex_regular_expression():
+    field = typesystem.String(pattern=re.compile("foo", re.IGNORECASE | re.VERBOSE))
+    with pytest.raises(ValueError) as exc_info:
+        to_json_schema(field)
+
+    expected = (
+        "Cannot convert regular expression with non-standard flags "
+        "to JSON schema: RegexFlag."
+    )
+    assert str(exc_info.value).startswith(expected)

pip install -e .
parse_log_pytest
requirements.txt
pytest mypy autoflake black isort jinja2 pyyaml
3.7
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
autoflake==2.1.1
Babel==2.14.0
black==23.3.0
certifi @ file:///croot/certifi_1671487769961/work/certifi
charset-normalizer==3.4.1
click==8.1.8
codecov==2.1.13
colorama==0.4.6
coverage==7.2.7
exceptiongroup==1.2.2
ghp-import==2.1.0
idna==3.10
importlib-metadata==6.7.0
iniconfig==2.0.0
isort==5.11.5
Jinja2==3.1.6
Markdown==3.4.4
MarkupSafe==2.1.5
mergedeep==1.3.4
mkdocs==1.5.3
mkdocs-material==9.2.7
mkdocs-material-extensions==1.2
mypy==1.4.1
mypy-extensions==1.0.0
packaging==24.0
paginate==0.5.7
pathspec==0.11.2
platformdirs==4.0.0
pluggy==1.2.0
pyflakes==3.0.1
Pygments==2.17.2
pymdown-extensions==10.2.1
pytest==7.4.4
pytest-cov==4.1.0
python-dateutil==2.9.0.post0
pytz==2025.2
PyYAML==6.0.1
pyyaml_env_tag==0.1
regex==2022.10.31
requests==2.31.0
six==1.17.0
tomli==2.0.1
typed-ast==1.5.5
-e git+https://github.com/encode/typesystem.git@fc0800939c47c254f4fcc3f92dacd0b899cb8402#egg=typesystem
typing_extensions==4.7.1
urllib3==2.0.7
watchdog==3.0.0
zipp==3.15.0

name: typesystem
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - autoflake==2.1.1
      - babel==2.14.0
      - black==23.3.0
      - charset-normalizer==3.4.1
      - click==8.1.8
      - codecov==2.1.13
      - colorama==0.4.6
      - coverage==7.2.7
      - exceptiongroup==1.2.2
      - ghp-import==2.1.0
      - idna==3.10
      - importlib-metadata==6.7.0
      - iniconfig==2.0.0
      - isort==5.11.5
      - jinja2==3.1.6
      - markdown==3.4.4
      - markupsafe==2.1.5
      - mergedeep==1.3.4
      - mkdocs==1.5.3
      - mkdocs-material==9.2.7
      - mkdocs-material-extensions==1.2
      - mypy==1.4.1
      - mypy-extensions==1.0.0
      - packaging==24.0
      - paginate==0.5.7
      - pathspec==0.11.2
      - platformdirs==4.0.0
      - pluggy==1.2.0
      - pyflakes==3.0.1
      - pygments==2.17.2
      - pymdown-extensions==10.2.1
      - pytest==7.4.4
      - pytest-cov==4.1.0
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - pyyaml==6.0.1
      - pyyaml-env-tag==0.1
      - regex==2022.10.31
      - requests==2.31.0
      - six==1.17.0
      - tomli==2.0.1
      - typed-ast==1.5.5
      - typing-extensions==4.7.1
      - urllib3==2.0.7
      - watchdog==3.0.0
      - zipp==3.15.0
prefix: /opt/conda/envs/typesystem

tests/test_fields.py::test_string tests/test_json_schema.py::test_to_json_schema_complex_regular_expression
tests/test_fields.py::test_integer tests/test_fields.py::test_float tests/test_fields.py::test_decimal tests/test_fields.py::test_number tests/test_fields.py::test_boolean tests/test_fields.py::test_choice tests/test_fields.py::test_object tests/test_fields.py::test_array tests/test_fields.py::test_date tests/test_fields.py::test_time tests/test_fields.py::test_datetime tests/test_fields.py::test_union tests/test_fields.py::test_const tests/test_fields.py::test_errors_dict_interface tests/test_fields.py::test_error_messages_interface tests/test_json_schema.py::test_json_schema[schema0-data0-True-additionalItems.json tests/test_json_schema.py::test_json_schema[schema1-data1-False-additionalItems.json tests/test_json_schema.py::test_json_schema[schema2-data2-True-additionalItems.json tests/test_json_schema.py::test_json_schema[schema3-data3-True-additionalItems.json tests/test_json_schema.py::test_json_schema[schema4-data4-True-additionalItems.json tests/test_json_schema.py::test_json_schema[schema5-data5-False-additionalItems.json tests/test_json_schema.py::test_json_schema[schema6-data6-True-additionalItems.json tests/test_json_schema.py::test_json_schema[schema7-data7-True-additionalItems.json tests/test_json_schema.py::test_json_schema[schema8-data8-True-additionalItems.json tests/test_json_schema.py::test_json_schema[schema9-data9-True-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema10-data10-False-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema11-data11-True-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema12-foobarbaz-True-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema13-12-True-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema14-data14-True-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema15-data15-True-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema16-data16-False-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema17-data17-True-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema18-data18-True-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema19-data19-False-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema20-data20-True-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema21-data21-False-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema22-data22-True-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema23-data23-False-additionalProperties.json tests/test_json_schema.py::test_json_schema[schema24-data24-True-allOf.json tests/test_json_schema.py::test_json_schema[schema25-data25-False-allOf.json tests/test_json_schema.py::test_json_schema[schema26-data26-False-allOf.json tests/test_json_schema.py::test_json_schema[schema27-data27-False-allOf.json tests/test_json_schema.py::test_json_schema[schema28-data28-True-allOf.json tests/test_json_schema.py::test_json_schema[schema29-data29-False-allOf.json tests/test_json_schema.py::test_json_schema[schema30-data30-False-allOf.json tests/test_json_schema.py::test_json_schema[schema31-data31-False-allOf.json tests/test_json_schema.py::test_json_schema[schema32-data32-False-allOf.json tests/test_json_schema.py::test_json_schema[schema33-25-True-allOf.json tests/test_json_schema.py::test_json_schema[schema34-35-False-allOf.json tests/test_json_schema.py::test_json_schema[schema35-foo-True-allOf.json tests/test_json_schema.py::test_json_schema[schema36-foo-False-allOf.json tests/test_json_schema.py::test_json_schema[schema37-foo-False-allOf.json tests/test_json_schema.py::test_json_schema[schema38-1-True-anyOf.json tests/test_json_schema.py::test_json_schema[schema39-2.5-True-anyOf.json tests/test_json_schema.py::test_json_schema[schema40-3-True-anyOf.json tests/test_json_schema.py::test_json_schema[schema41-1.5-False-anyOf.json tests/test_json_schema.py::test_json_schema[schema42-3-False-anyOf.json tests/test_json_schema.py::test_json_schema[schema43-foobar-True-anyOf.json tests/test_json_schema.py::test_json_schema[schema44-foo-False-anyOf.json tests/test_json_schema.py::test_json_schema[schema45-foo-True-anyOf.json tests/test_json_schema.py::test_json_schema[schema46-foo-True-anyOf.json tests/test_json_schema.py::test_json_schema[schema47-foo-False-anyOf.json tests/test_json_schema.py::test_json_schema[schema48-data48-True-anyOf.json tests/test_json_schema.py::test_json_schema[schema49-data49-True-anyOf.json tests/test_json_schema.py::test_json_schema[schema50-data50-True-anyOf.json tests/test_json_schema.py::test_json_schema[schema51-data51-False-anyOf.json tests/test_json_schema.py::test_json_schema[True-1-True-boolean_schema.json tests/test_json_schema.py::test_json_schema[True-foo-True-boolean_schema.json tests/test_json_schema.py::test_json_schema[True-True-True-boolean_schema.json tests/test_json_schema.py::test_json_schema[True-False-True-boolean_schema.json tests/test_json_schema.py::test_json_schema[True-None-True-boolean_schema.json tests/test_json_schema.py::test_json_schema[True-data57-True-boolean_schema.json tests/test_json_schema.py::test_json_schema[True-data58-True-boolean_schema.json tests/test_json_schema.py::test_json_schema[True-data59-True-boolean_schema.json tests/test_json_schema.py::test_json_schema[True-data60-True-boolean_schema.json tests/test_json_schema.py::test_json_schema[False-1-False-boolean_schema.json tests/test_json_schema.py::test_json_schema[False-foo-False-boolean_schema.json tests/test_json_schema.py::test_json_schema[False-True-False-boolean_schema.json tests/test_json_schema.py::test_json_schema[False-False-False-boolean_schema.json tests/test_json_schema.py::test_json_schema[False-None-False-boolean_schema.json tests/test_json_schema.py::test_json_schema[False-data66-False-boolean_schema.json tests/test_json_schema.py::test_json_schema[False-data67-False-boolean_schema.json tests/test_json_schema.py::test_json_schema[False-data68-False-boolean_schema.json tests/test_json_schema.py::test_json_schema[False-data69-False-boolean_schema.json tests/test_json_schema.py::test_json_schema[schema70-2-True-const.json tests/test_json_schema.py::test_json_schema[schema71-5-False-const.json tests/test_json_schema.py::test_json_schema[schema72-a-False-const.json tests/test_json_schema.py::test_json_schema[schema73-data73-True-const.json tests/test_json_schema.py::test_json_schema[schema74-data74-True-const.json tests/test_json_schema.py::test_json_schema[schema75-data75-False-const.json tests/test_json_schema.py::test_json_schema[schema76-data76-False-const.json tests/test_json_schema.py::test_json_schema[schema77-data77-True-const.json tests/test_json_schema.py::test_json_schema[schema78-data78-False-const.json tests/test_json_schema.py::test_json_schema[schema79-data79-False-const.json tests/test_json_schema.py::test_json_schema[schema80-None-True-const.json tests/test_json_schema.py::test_json_schema[schema81-0-False-const.json tests/test_json_schema.py::test_json_schema[schema82-data82-True-default.json tests/test_json_schema.py::test_json_schema[schema83-data83-True-default.json tests/test_json_schema.py::test_json_schema[schema84-data84-True-default.json tests/test_json_schema.py::test_json_schema[schema85-data85-True-default.json tests/test_json_schema.py::test_json_schema[schema86-1-True-enum.json tests/test_json_schema.py::test_json_schema[schema87-4-False-enum.json tests/test_json_schema.py::test_json_schema[schema88-data88-True-enum.json tests/test_json_schema.py::test_json_schema[schema89-None-False-enum.json tests/test_json_schema.py::test_json_schema[schema90-data90-False-enum.json tests/test_json_schema.py::test_json_schema[schema91-data91-True-enum.json tests/test_json_schema.py::test_json_schema[schema92-data92-True-enum.json tests/test_json_schema.py::test_json_schema[schema93-data93-False-enum.json tests/test_json_schema.py::test_json_schema[schema94-data94-False-enum.json tests/test_json_schema.py::test_json_schema[schema95-2.2-True-exclusiveMaximum.json tests/test_json_schema.py::test_json_schema[schema96-3.0-False-exclusiveMaximum.json tests/test_json_schema.py::test_json_schema[schema97-3.5-False-exclusiveMaximum.json tests/test_json_schema.py::test_json_schema[schema98-x-True-exclusiveMaximum.json tests/test_json_schema.py::test_json_schema[schema99-1.2-True-exclusiveMinimum.json tests/test_json_schema.py::test_json_schema[schema100-1.1-False-exclusiveMinimum.json tests/test_json_schema.py::test_json_schema[schema101-0.6-False-exclusiveMinimum.json tests/test_json_schema.py::test_json_schema[schema102-x-True-exclusiveMinimum.json tests/test_json_schema.py::test_json_schema[schema103-0-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema104-hello-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema105-0-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema106-hello-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema107-0-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema108-hello-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema109--1-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema110--100-False-if-then-else.json tests/test_json_schema.py::test_json_schema[schema111-3-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema112--1-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema113-4-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema114-3-False-if-then-else.json tests/test_json_schema.py::test_json_schema[schema115--1-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema116--100-False-if-then-else.json tests/test_json_schema.py::test_json_schema[schema117-4-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema118-3-False-if-then-else.json tests/test_json_schema.py::test_json_schema[schema119--100-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema120-3-True-if-then-else.json tests/test_json_schema.py::test_json_schema[schema121-data121-True-items.json tests/test_json_schema.py::test_json_schema[schema122-data122-False-items.json tests/test_json_schema.py::test_json_schema[schema123-data123-True-items.json tests/test_json_schema.py::test_json_schema[schema124-data124-True-items.json tests/test_json_schema.py::test_json_schema[schema125-data125-True-items.json tests/test_json_schema.py::test_json_schema[schema126-data126-False-items.json tests/test_json_schema.py::test_json_schema[schema127-data127-True-items.json tests/test_json_schema.py::test_json_schema[schema128-data128-True-items.json tests/test_json_schema.py::test_json_schema[schema129-data129-True-items.json tests/test_json_schema.py::test_json_schema[schema130-data130-True-items.json tests/test_json_schema.py::test_json_schema[schema131-data131-True-items.json tests/test_json_schema.py::test_json_schema[schema132-data132-True-items.json tests/test_json_schema.py::test_json_schema[schema133-data133-False-items.json tests/test_json_schema.py::test_json_schema[schema134-data134-True-items.json tests/test_json_schema.py::test_json_schema[schema135-data135-True-items.json tests/test_json_schema.py::test_json_schema[schema136-data136-False-items.json tests/test_json_schema.py::test_json_schema[schema137-data137-True-items.json tests/test_json_schema.py::test_json_schema[schema138-data138-True-maxItems.json tests/test_json_schema.py::test_json_schema[schema139-data139-True-maxItems.json tests/test_json_schema.py::test_json_schema[schema140-data140-False-maxItems.json tests/test_json_schema.py::test_json_schema[schema141-foobar-True-maxItems.json tests/test_json_schema.py::test_json_schema[schema142-f-True-maxLength.json tests/test_json_schema.py::test_json_schema[schema143-fo-True-maxLength.json tests/test_json_schema.py::test_json_schema[schema144-foo-False-maxLength.json tests/test_json_schema.py::test_json_schema[schema145-100-True-maxLength.json tests/test_json_schema.py::test_json_schema[schema146-\U0001f4a9\U0001f4a9-True-maxLength.json tests/test_json_schema.py::test_json_schema[schema147-data147-True-maxProperties.json tests/test_json_schema.py::test_json_schema[schema148-data148-True-maxProperties.json tests/test_json_schema.py::test_json_schema[schema149-data149-False-maxProperties.json tests/test_json_schema.py::test_json_schema[schema150-data150-True-maxProperties.json tests/test_json_schema.py::test_json_schema[schema151-foobar-True-maxProperties.json tests/test_json_schema.py::test_json_schema[schema152-12-True-maxProperties.json tests/test_json_schema.py::test_json_schema[schema153-2.6-True-maximum.json tests/test_json_schema.py::test_json_schema[schema154-3.0-True-maximum.json tests/test_json_schema.py::test_json_schema[schema155-3.5-False-maximum.json tests/test_json_schema.py::test_json_schema[schema156-x-True-maximum.json tests/test_json_schema.py::test_json_schema[schema157-data157-True-minItems.json tests/test_json_schema.py::test_json_schema[schema158-data158-True-minItems.json tests/test_json_schema.py::test_json_schema[schema159-data159-False-minItems.json tests/test_json_schema.py::test_json_schema[schema160--True-minItems.json tests/test_json_schema.py::test_json_schema[schema161-foo-True-minLength.json tests/test_json_schema.py::test_json_schema[schema162-fo-True-minLength.json tests/test_json_schema.py::test_json_schema[schema163-f-False-minLength.json tests/test_json_schema.py::test_json_schema[schema164-1-True-minLength.json tests/test_json_schema.py::test_json_schema[schema165-\U0001f4a9-False-minLength.json tests/test_json_schema.py::test_json_schema[schema166-data166-True-minProperties.json tests/test_json_schema.py::test_json_schema[schema167-data167-True-minProperties.json tests/test_json_schema.py::test_json_schema[schema168-data168-False-minProperties.json tests/test_json_schema.py::test_json_schema[schema169-data169-True-minProperties.json tests/test_json_schema.py::test_json_schema[schema170--True-minProperties.json tests/test_json_schema.py::test_json_schema[schema171-12-True-minProperties.json tests/test_json_schema.py::test_json_schema[schema172-2.6-True-minimum.json tests/test_json_schema.py::test_json_schema[schema173-1.1-True-minimum.json tests/test_json_schema.py::test_json_schema[schema174-0.6-False-minimum.json tests/test_json_schema.py::test_json_schema[schema175-x-True-minimum.json tests/test_json_schema.py::test_json_schema[schema176-10-True-multipleOf.json tests/test_json_schema.py::test_json_schema[schema177-7-False-multipleOf.json tests/test_json_schema.py::test_json_schema[schema178-foo-True-multipleOf.json tests/test_json_schema.py::test_json_schema[schema179-0-True-multipleOf.json tests/test_json_schema.py::test_json_schema[schema180-4.5-True-multipleOf.json tests/test_json_schema.py::test_json_schema[schema181-35-False-multipleOf.json tests/test_json_schema.py::test_json_schema[schema182-0.0075-True-multipleOf.json tests/test_json_schema.py::test_json_schema[schema183-0.00751-False-multipleOf.json tests/test_json_schema.py::test_json_schema[schema184-foo-True-not.json tests/test_json_schema.py::test_json_schema[schema185-1-False-not.json tests/test_json_schema.py::test_json_schema[schema186-foo-True-not.json tests/test_json_schema.py::test_json_schema[schema187-1-False-not.json tests/test_json_schema.py::test_json_schema[schema188-True-False-not.json tests/test_json_schema.py::test_json_schema[schema189-1-True-not.json tests/test_json_schema.py::test_json_schema[schema190-data190-True-not.json tests/test_json_schema.py::test_json_schema[schema191-data191-False-not.json tests/test_json_schema.py::test_json_schema[schema192-data192-False-not.json tests/test_json_schema.py::test_json_schema[schema193-data193-True-not.json tests/test_json_schema.py::test_json_schema[schema194-foo-False-not.json tests/test_json_schema.py::test_json_schema[schema195-foo-True-not.json tests/test_json_schema.py::test_json_schema[schema196-1-True-oneOf.json tests/test_json_schema.py::test_json_schema[schema197-2.5-True-oneOf.json tests/test_json_schema.py::test_json_schema[schema198-3-False-oneOf.json tests/test_json_schema.py::test_json_schema[schema199-1.5-False-oneOf.json tests/test_json_schema.py::test_json_schema[schema200-3-False-oneOf.json tests/test_json_schema.py::test_json_schema[schema201-foobar-True-oneOf.json tests/test_json_schema.py::test_json_schema[schema202-foo-False-oneOf.json tests/test_json_schema.py::test_json_schema[schema203-foo-False-oneOf.json tests/test_json_schema.py::test_json_schema[schema204-foo-True-oneOf.json tests/test_json_schema.py::test_json_schema[schema205-foo-False-oneOf.json tests/test_json_schema.py::test_json_schema[schema206-foo-False-oneOf.json tests/test_json_schema.py::test_json_schema[schema207-data207-True-oneOf.json tests/test_json_schema.py::test_json_schema[schema208-data208-True-oneOf.json tests/test_json_schema.py::test_json_schema[schema209-data209-False-oneOf.json tests/test_json_schema.py::test_json_schema[schema210-data210-False-oneOf.json tests/test_json_schema.py::test_json_schema[schema211-aaa-True-pattern.json tests/test_json_schema.py::test_json_schema[schema212-abc-False-pattern.json tests/test_json_schema.py::test_json_schema[schema213-True-True-pattern.json tests/test_json_schema.py::test_json_schema[schema214-xxaayy-True-pattern.json tests/test_json_schema.py::test_json_schema[schema215-data215-True-patternProperties.json tests/test_json_schema.py::test_json_schema[schema216-data216-True-patternProperties.json tests/test_json_schema.py::test_json_schema[schema217-data217-False-patternProperties.json tests/test_json_schema.py::test_json_schema[schema218-data218-False-patternProperties.json tests/test_json_schema.py::test_json_schema[schema219-data219-True-patternProperties.json tests/test_json_schema.py::test_json_schema[schema220-foo-True-patternProperties.json tests/test_json_schema.py::test_json_schema[schema221-12-True-patternProperties.json tests/test_json_schema.py::test_json_schema[schema222-data222-True-patternProperties.json tests/test_json_schema.py::test_json_schema[schema223-data223-True-patternProperties.json tests/test_json_schema.py::test_json_schema[schema224-data224-True-patternProperties.json tests/test_json_schema.py::test_json_schema[schema225-data225-False-patternProperties.json tests/test_json_schema.py::test_json_schema[schema226-data226-False-patternProperties.json tests/test_json_schema.py::test_json_schema[schema227-data227-False-patternProperties.json tests/test_json_schema.py::test_json_schema[schema228-data228-True-patternProperties.json tests/test_json_schema.py::test_json_schema[schema229-data229-False-patternProperties.json tests/test_json_schema.py::test_json_schema[schema230-data230-True-patternProperties.json tests/test_json_schema.py::test_json_schema[schema231-data231-False-patternProperties.json tests/test_json_schema.py::test_json_schema[schema232-data232-True-patternProperties.json tests/test_json_schema.py::test_json_schema[schema233-data233-False-patternProperties.json tests/test_json_schema.py::test_json_schema[schema234-data234-False-patternProperties.json tests/test_json_schema.py::test_json_schema[schema235-data235-True-patternProperties.json tests/test_json_schema.py::test_json_schema[schema236-data236-True-properties.json tests/test_json_schema.py::test_json_schema[schema237-data237-False-properties.json tests/test_json_schema.py::test_json_schema[schema238-data238-False-properties.json tests/test_json_schema.py::test_json_schema[schema239-data239-True-properties.json tests/test_json_schema.py::test_json_schema[schema240-data240-True-properties.json tests/test_json_schema.py::test_json_schema[schema241-12-True-properties.json tests/test_json_schema.py::test_json_schema[schema242-data242-True-properties.json tests/test_json_schema.py::test_json_schema[schema243-data243-False-properties.json tests/test_json_schema.py::test_json_schema[schema244-data244-False-properties.json tests/test_json_schema.py::test_json_schema[schema245-data245-True-properties.json tests/test_json_schema.py::test_json_schema[schema246-data246-False-properties.json tests/test_json_schema.py::test_json_schema[schema247-data247-True-properties.json tests/test_json_schema.py::test_json_schema[schema248-data248-True-properties.json tests/test_json_schema.py::test_json_schema[schema249-data249-False-properties.json tests/test_json_schema.py::test_json_schema[schema250-data250-True-properties.json tests/test_json_schema.py::test_json_schema[schema251-data251-True-properties.json tests/test_json_schema.py::test_json_schema[schema252-data252-False-properties.json tests/test_json_schema.py::test_json_schema[schema253-data253-False-properties.json tests/test_json_schema.py::test_json_schema[schema254-data254-True-propertyNames.json tests/test_json_schema.py::test_json_schema[schema255-data255-False-propertyNames.json tests/test_json_schema.py::test_json_schema[schema256-data256-True-propertyNames.json tests/test_json_schema.py::test_json_schema[schema257-data257-True-propertyNames.json tests/test_json_schema.py::test_json_schema[schema258-foobar-True-propertyNames.json tests/test_json_schema.py::test_json_schema[schema259-12-True-propertyNames.json tests/test_json_schema.py::test_json_schema[schema260-data260-True-propertyNames.json tests/test_json_schema.py::test_json_schema[schema261-data261-True-propertyNames.json tests/test_json_schema.py::test_json_schema[schema262-data262-False-propertyNames.json tests/test_json_schema.py::test_json_schema[schema263-data263-True-propertyNames.json tests/test_json_schema.py::test_json_schema[schema264-data264-True-required.json tests/test_json_schema.py::test_json_schema[schema265-data265-False-required.json tests/test_json_schema.py::test_json_schema[schema266-data266-True-required.json tests/test_json_schema.py::test_json_schema[schema267--True-required.json tests/test_json_schema.py::test_json_schema[schema268-12-True-required.json tests/test_json_schema.py::test_json_schema[schema269-data269-True-required.json tests/test_json_schema.py::test_json_schema[schema270-data270-True-required.json tests/test_json_schema.py::test_json_schema[schema271-1-True-type.json tests/test_json_schema.py::test_json_schema[schema272-1.1-False-type.json tests/test_json_schema.py::test_json_schema[schema273-foo-False-type.json tests/test_json_schema.py::test_json_schema[schema274-1-False-type.json tests/test_json_schema.py::test_json_schema[schema275-data275-False-type.json tests/test_json_schema.py::test_json_schema[schema276-data276-False-type.json tests/test_json_schema.py::test_json_schema[schema277-True-False-type.json tests/test_json_schema.py::test_json_schema[schema278-None-False-type.json tests/test_json_schema.py::test_json_schema[schema279-1-True-type.json tests/test_json_schema.py::test_json_schema[schema280-1.1-True-type.json tests/test_json_schema.py::test_json_schema[schema281-foo-False-type.json tests/test_json_schema.py::test_json_schema[schema282-1-False-type.json tests/test_json_schema.py::test_json_schema[schema283-data283-False-type.json tests/test_json_schema.py::test_json_schema[schema284-data284-False-type.json tests/test_json_schema.py::test_json_schema[schema285-True-False-type.json tests/test_json_schema.py::test_json_schema[schema286-None-False-type.json tests/test_json_schema.py::test_json_schema[schema287-1-False-type.json tests/test_json_schema.py::test_json_schema[schema288-1.1-False-type.json tests/test_json_schema.py::test_json_schema[schema289-foo-True-type.json tests/test_json_schema.py::test_json_schema[schema290-1-True-type.json tests/test_json_schema.py::test_json_schema[schema291-data291-False-type.json tests/test_json_schema.py::test_json_schema[schema292-data292-False-type.json tests/test_json_schema.py::test_json_schema[schema293-True-False-type.json tests/test_json_schema.py::test_json_schema[schema294-None-False-type.json tests/test_json_schema.py::test_json_schema[schema295-1-False-type.json tests/test_json_schema.py::test_json_schema[schema296-1.1-False-type.json tests/test_json_schema.py::test_json_schema[schema297-foo-False-type.json tests/test_json_schema.py::test_json_schema[schema298-data298-True-type.json tests/test_json_schema.py::test_json_schema[schema299-data299-False-type.json tests/test_json_schema.py::test_json_schema[schema300-True-False-type.json tests/test_json_schema.py::test_json_schema[schema301-None-False-type.json tests/test_json_schema.py::test_json_schema[schema302-1-False-type.json tests/test_json_schema.py::test_json_schema[schema303-1.1-False-type.json tests/test_json_schema.py::test_json_schema[schema304-foo-False-type.json tests/test_json_schema.py::test_json_schema[schema305-data305-False-type.json tests/test_json_schema.py::test_json_schema[schema306-data306-True-type.json tests/test_json_schema.py::test_json_schema[schema307-True-False-type.json tests/test_json_schema.py::test_json_schema[schema308-None-False-type.json tests/test_json_schema.py::test_json_schema[schema309-1-False-type.json tests/test_json_schema.py::test_json_schema[schema310-1.1-False-type.json tests/test_json_schema.py::test_json_schema[schema311-foo-False-type.json tests/test_json_schema.py::test_json_schema[schema312-data312-False-type.json tests/test_json_schema.py::test_json_schema[schema313-data313-False-type.json tests/test_json_schema.py::test_json_schema[schema314-True-True-type.json tests/test_json_schema.py::test_json_schema[schema315-None-False-type.json tests/test_json_schema.py::test_json_schema[schema316-1-False-type.json tests/test_json_schema.py::test_json_schema[schema317-1.1-False-type.json tests/test_json_schema.py::test_json_schema[schema318-foo-False-type.json tests/test_json_schema.py::test_json_schema[schema319-data319-False-type.json tests/test_json_schema.py::test_json_schema[schema320-data320-False-type.json tests/test_json_schema.py::test_json_schema[schema321-True-False-type.json tests/test_json_schema.py::test_json_schema[schema322-None-True-type.json tests/test_json_schema.py::test_json_schema[schema323-1-True-type.json tests/test_json_schema.py::test_json_schema[schema324-foo-True-type.json tests/test_json_schema.py::test_json_schema[schema325-1.1-False-type.json tests/test_json_schema.py::test_json_schema[schema326-data326-False-type.json tests/test_json_schema.py::test_json_schema[schema327-data327-False-type.json tests/test_json_schema.py::test_json_schema[schema328-True-False-type.json tests/test_json_schema.py::test_json_schema[schema329-None-False-type.json tests/test_json_schema.py::test_json_schema[schema330-data330-True-uniqueItems.json tests/test_json_schema.py::test_json_schema[schema331-data331-False-uniqueItems.json tests/test_json_schema.py::test_json_schema[schema332-data332-False-uniqueItems.json tests/test_json_schema.py::test_json_schema[schema333-data333-True-uniqueItems.json tests/test_json_schema.py::test_json_schema[schema334-data334-False-uniqueItems.json tests/test_json_schema.py::test_json_schema[schema335-data335-True-uniqueItems.json tests/test_json_schema.py::test_json_schema[schema336-data336-False-uniqueItems.json tests/test_json_schema.py::test_json_schema[schema337-data337-True-uniqueItems.json tests/test_json_schema.py::test_json_schema[schema338-data338-False-uniqueItems.json tests/test_json_schema.py::test_json_schema[schema339-data339-True-uniqueItems.json tests/test_json_schema.py::test_json_schema[schema340-data340-True-uniqueItems.json tests/test_json_schema.py::test_json_schema[schema341-data341-True-uniqueItems.json tests/test_json_schema.py::test_json_schema[schema342-data342-False-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema0-data0-True-additionalItems.json tests/test_json_schema.py::test_to_from_json_schema[schema1-data1-False-additionalItems.json tests/test_json_schema.py::test_to_from_json_schema[schema2-data2-True-additionalItems.json tests/test_json_schema.py::test_to_from_json_schema[schema3-data3-True-additionalItems.json tests/test_json_schema.py::test_to_from_json_schema[schema4-data4-True-additionalItems.json tests/test_json_schema.py::test_to_from_json_schema[schema5-data5-False-additionalItems.json tests/test_json_schema.py::test_to_from_json_schema[schema6-data6-True-additionalItems.json tests/test_json_schema.py::test_to_from_json_schema[schema7-data7-True-additionalItems.json tests/test_json_schema.py::test_to_from_json_schema[schema8-data8-True-additionalItems.json tests/test_json_schema.py::test_to_from_json_schema[schema9-data9-True-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema10-data10-False-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema11-data11-True-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema12-foobarbaz-True-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema13-12-True-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema14-data14-True-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema15-data15-True-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema16-data16-False-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema17-data17-True-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema18-data18-True-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema19-data19-False-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema20-data20-True-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema21-data21-False-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema22-data22-True-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema23-data23-False-additionalProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema24-data24-True-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema25-data25-False-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema26-data26-False-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema27-data27-False-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema28-data28-True-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema29-data29-False-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema30-data30-False-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema31-data31-False-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema32-data32-False-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema33-25-True-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema34-35-False-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema35-foo-True-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema36-foo-False-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema37-foo-False-allOf.json tests/test_json_schema.py::test_to_from_json_schema[schema38-1-True-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema39-2.5-True-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema40-3-True-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema41-1.5-False-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema42-3-False-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema43-foobar-True-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema44-foo-False-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema45-foo-True-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema46-foo-True-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema47-foo-False-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema48-data48-True-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema49-data49-True-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema50-data50-True-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[schema51-data51-False-anyOf.json tests/test_json_schema.py::test_to_from_json_schema[True-1-True-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[True-foo-True-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[True-True-True-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[True-False-True-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[True-None-True-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[True-data57-True-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[True-data58-True-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[True-data59-True-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[True-data60-True-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[False-1-False-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[False-foo-False-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[False-True-False-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[False-False-False-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[False-None-False-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[False-data66-False-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[False-data67-False-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[False-data68-False-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[False-data69-False-boolean_schema.json tests/test_json_schema.py::test_to_from_json_schema[schema70-2-True-const.json tests/test_json_schema.py::test_to_from_json_schema[schema71-5-False-const.json tests/test_json_schema.py::test_to_from_json_schema[schema72-a-False-const.json tests/test_json_schema.py::test_to_from_json_schema[schema73-data73-True-const.json tests/test_json_schema.py::test_to_from_json_schema[schema74-data74-True-const.json tests/test_json_schema.py::test_to_from_json_schema[schema75-data75-False-const.json tests/test_json_schema.py::test_to_from_json_schema[schema76-data76-False-const.json tests/test_json_schema.py::test_to_from_json_schema[schema77-data77-True-const.json tests/test_json_schema.py::test_to_from_json_schema[schema78-data78-False-const.json tests/test_json_schema.py::test_to_from_json_schema[schema79-data79-False-const.json tests/test_json_schema.py::test_to_from_json_schema[schema80-None-True-const.json tests/test_json_schema.py::test_to_from_json_schema[schema81-0-False-const.json tests/test_json_schema.py::test_to_from_json_schema[schema82-data82-True-default.json tests/test_json_schema.py::test_to_from_json_schema[schema83-data83-True-default.json tests/test_json_schema.py::test_to_from_json_schema[schema84-data84-True-default.json tests/test_json_schema.py::test_to_from_json_schema[schema85-data85-True-default.json tests/test_json_schema.py::test_to_from_json_schema[schema86-1-True-enum.json tests/test_json_schema.py::test_to_from_json_schema[schema87-4-False-enum.json tests/test_json_schema.py::test_to_from_json_schema[schema88-data88-True-enum.json tests/test_json_schema.py::test_to_from_json_schema[schema89-None-False-enum.json tests/test_json_schema.py::test_to_from_json_schema[schema90-data90-False-enum.json tests/test_json_schema.py::test_to_from_json_schema[schema91-data91-True-enum.json tests/test_json_schema.py::test_to_from_json_schema[schema92-data92-True-enum.json tests/test_json_schema.py::test_to_from_json_schema[schema93-data93-False-enum.json tests/test_json_schema.py::test_to_from_json_schema[schema94-data94-False-enum.json tests/test_json_schema.py::test_to_from_json_schema[schema95-2.2-True-exclusiveMaximum.json tests/test_json_schema.py::test_to_from_json_schema[schema96-3.0-False-exclusiveMaximum.json tests/test_json_schema.py::test_to_from_json_schema[schema97-3.5-False-exclusiveMaximum.json tests/test_json_schema.py::test_to_from_json_schema[schema98-x-True-exclusiveMaximum.json tests/test_json_schema.py::test_to_from_json_schema[schema99-1.2-True-exclusiveMinimum.json tests/test_json_schema.py::test_to_from_json_schema[schema100-1.1-False-exclusiveMinimum.json tests/test_json_schema.py::test_to_from_json_schema[schema101-0.6-False-exclusiveMinimum.json tests/test_json_schema.py::test_to_from_json_schema[schema102-x-True-exclusiveMinimum.json tests/test_json_schema.py::test_to_from_json_schema[schema103-0-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema104-hello-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema105-0-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema106-hello-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema107-0-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema108-hello-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema109--1-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema110--100-False-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema111-3-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema112--1-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema113-4-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema114-3-False-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema115--1-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema116--100-False-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema117-4-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema118-3-False-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema119--100-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema120-3-True-if-then-else.json tests/test_json_schema.py::test_to_from_json_schema[schema121-data121-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema122-data122-False-items.json tests/test_json_schema.py::test_to_from_json_schema[schema123-data123-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema124-data124-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema125-data125-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema126-data126-False-items.json tests/test_json_schema.py::test_to_from_json_schema[schema127-data127-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema128-data128-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema129-data129-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema130-data130-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema131-data131-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema132-data132-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema133-data133-False-items.json tests/test_json_schema.py::test_to_from_json_schema[schema134-data134-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema135-data135-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema136-data136-False-items.json tests/test_json_schema.py::test_to_from_json_schema[schema137-data137-True-items.json tests/test_json_schema.py::test_to_from_json_schema[schema138-data138-True-maxItems.json tests/test_json_schema.py::test_to_from_json_schema[schema139-data139-True-maxItems.json tests/test_json_schema.py::test_to_from_json_schema[schema140-data140-False-maxItems.json tests/test_json_schema.py::test_to_from_json_schema[schema141-foobar-True-maxItems.json tests/test_json_schema.py::test_to_from_json_schema[schema142-f-True-maxLength.json tests/test_json_schema.py::test_to_from_json_schema[schema143-fo-True-maxLength.json tests/test_json_schema.py::test_to_from_json_schema[schema144-foo-False-maxLength.json tests/test_json_schema.py::test_to_from_json_schema[schema145-100-True-maxLength.json tests/test_json_schema.py::test_to_from_json_schema[schema146-\U0001f4a9\U0001f4a9-True-maxLength.json tests/test_json_schema.py::test_to_from_json_schema[schema147-data147-True-maxProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema148-data148-True-maxProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema149-data149-False-maxProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema150-data150-True-maxProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema151-foobar-True-maxProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema152-12-True-maxProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema153-2.6-True-maximum.json tests/test_json_schema.py::test_to_from_json_schema[schema154-3.0-True-maximum.json tests/test_json_schema.py::test_to_from_json_schema[schema155-3.5-False-maximum.json tests/test_json_schema.py::test_to_from_json_schema[schema156-x-True-maximum.json tests/test_json_schema.py::test_to_from_json_schema[schema157-data157-True-minItems.json tests/test_json_schema.py::test_to_from_json_schema[schema158-data158-True-minItems.json tests/test_json_schema.py::test_to_from_json_schema[schema159-data159-False-minItems.json tests/test_json_schema.py::test_to_from_json_schema[schema160--True-minItems.json tests/test_json_schema.py::test_to_from_json_schema[schema161-foo-True-minLength.json tests/test_json_schema.py::test_to_from_json_schema[schema162-fo-True-minLength.json tests/test_json_schema.py::test_to_from_json_schema[schema163-f-False-minLength.json tests/test_json_schema.py::test_to_from_json_schema[schema164-1-True-minLength.json tests/test_json_schema.py::test_to_from_json_schema[schema165-\U0001f4a9-False-minLength.json tests/test_json_schema.py::test_to_from_json_schema[schema166-data166-True-minProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema167-data167-True-minProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema168-data168-False-minProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema169-data169-True-minProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema170--True-minProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema171-12-True-minProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema172-2.6-True-minimum.json tests/test_json_schema.py::test_to_from_json_schema[schema173-1.1-True-minimum.json tests/test_json_schema.py::test_to_from_json_schema[schema174-0.6-False-minimum.json tests/test_json_schema.py::test_to_from_json_schema[schema175-x-True-minimum.json tests/test_json_schema.py::test_to_from_json_schema[schema176-10-True-multipleOf.json tests/test_json_schema.py::test_to_from_json_schema[schema177-7-False-multipleOf.json tests/test_json_schema.py::test_to_from_json_schema[schema178-foo-True-multipleOf.json tests/test_json_schema.py::test_to_from_json_schema[schema179-0-True-multipleOf.json tests/test_json_schema.py::test_to_from_json_schema[schema180-4.5-True-multipleOf.json tests/test_json_schema.py::test_to_from_json_schema[schema181-35-False-multipleOf.json tests/test_json_schema.py::test_to_from_json_schema[schema182-0.0075-True-multipleOf.json tests/test_json_schema.py::test_to_from_json_schema[schema183-0.00751-False-multipleOf.json tests/test_json_schema.py::test_to_from_json_schema[schema184-foo-True-not.json tests/test_json_schema.py::test_to_from_json_schema[schema185-1-False-not.json tests/test_json_schema.py::test_to_from_json_schema[schema186-foo-True-not.json tests/test_json_schema.py::test_to_from_json_schema[schema187-1-False-not.json tests/test_json_schema.py::test_to_from_json_schema[schema188-True-False-not.json tests/test_json_schema.py::test_to_from_json_schema[schema189-1-True-not.json tests/test_json_schema.py::test_to_from_json_schema[schema190-data190-True-not.json tests/test_json_schema.py::test_to_from_json_schema[schema191-data191-False-not.json tests/test_json_schema.py::test_to_from_json_schema[schema192-data192-False-not.json tests/test_json_schema.py::test_to_from_json_schema[schema193-data193-True-not.json tests/test_json_schema.py::test_to_from_json_schema[schema194-foo-False-not.json tests/test_json_schema.py::test_to_from_json_schema[schema195-foo-True-not.json tests/test_json_schema.py::test_to_from_json_schema[schema196-1-True-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema197-2.5-True-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema198-3-False-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema199-1.5-False-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema200-3-False-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema201-foobar-True-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema202-foo-False-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema203-foo-False-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema204-foo-True-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema205-foo-False-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema206-foo-False-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema207-data207-True-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema208-data208-True-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema209-data209-False-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema210-data210-False-oneOf.json tests/test_json_schema.py::test_to_from_json_schema[schema211-aaa-True-pattern.json tests/test_json_schema.py::test_to_from_json_schema[schema212-abc-False-pattern.json tests/test_json_schema.py::test_to_from_json_schema[schema213-True-True-pattern.json tests/test_json_schema.py::test_to_from_json_schema[schema214-xxaayy-True-pattern.json tests/test_json_schema.py::test_to_from_json_schema[schema215-data215-True-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema216-data216-True-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema217-data217-False-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema218-data218-False-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema219-data219-True-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema220-foo-True-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema221-12-True-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema222-data222-True-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema223-data223-True-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema224-data224-True-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema225-data225-False-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema226-data226-False-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema227-data227-False-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema228-data228-True-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema229-data229-False-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema230-data230-True-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema231-data231-False-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema232-data232-True-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema233-data233-False-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema234-data234-False-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema235-data235-True-patternProperties.json tests/test_json_schema.py::test_to_from_json_schema[schema236-data236-True-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema237-data237-False-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema238-data238-False-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema239-data239-True-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema240-data240-True-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema241-12-True-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema242-data242-True-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema243-data243-False-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema244-data244-False-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema245-data245-True-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema246-data246-False-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema247-data247-True-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema248-data248-True-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema249-data249-False-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema250-data250-True-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema251-data251-True-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema252-data252-False-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema253-data253-False-properties.json tests/test_json_schema.py::test_to_from_json_schema[schema254-data254-True-propertyNames.json tests/test_json_schema.py::test_to_from_json_schema[schema255-data255-False-propertyNames.json tests/test_json_schema.py::test_to_from_json_schema[schema256-data256-True-propertyNames.json tests/test_json_schema.py::test_to_from_json_schema[schema257-data257-True-propertyNames.json tests/test_json_schema.py::test_to_from_json_schema[schema258-foobar-True-propertyNames.json tests/test_json_schema.py::test_to_from_json_schema[schema259-12-True-propertyNames.json tests/test_json_schema.py::test_to_from_json_schema[schema260-data260-True-propertyNames.json tests/test_json_schema.py::test_to_from_json_schema[schema261-data261-True-propertyNames.json tests/test_json_schema.py::test_to_from_json_schema[schema262-data262-False-propertyNames.json tests/test_json_schema.py::test_to_from_json_schema[schema263-data263-True-propertyNames.json tests/test_json_schema.py::test_to_from_json_schema[schema264-data264-True-required.json tests/test_json_schema.py::test_to_from_json_schema[schema265-data265-False-required.json tests/test_json_schema.py::test_to_from_json_schema[schema266-data266-True-required.json tests/test_json_schema.py::test_to_from_json_schema[schema267--True-required.json tests/test_json_schema.py::test_to_from_json_schema[schema268-12-True-required.json tests/test_json_schema.py::test_to_from_json_schema[schema269-data269-True-required.json tests/test_json_schema.py::test_to_from_json_schema[schema270-data270-True-required.json tests/test_json_schema.py::test_to_from_json_schema[schema271-1-True-type.json tests/test_json_schema.py::test_to_from_json_schema[schema272-1.1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema273-foo-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema274-1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema275-data275-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema276-data276-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema277-True-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema278-None-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema279-1-True-type.json tests/test_json_schema.py::test_to_from_json_schema[schema280-1.1-True-type.json tests/test_json_schema.py::test_to_from_json_schema[schema281-foo-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema282-1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema283-data283-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema284-data284-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema285-True-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema286-None-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema287-1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema288-1.1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema289-foo-True-type.json tests/test_json_schema.py::test_to_from_json_schema[schema290-1-True-type.json tests/test_json_schema.py::test_to_from_json_schema[schema291-data291-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema292-data292-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema293-True-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema294-None-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema295-1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema296-1.1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema297-foo-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema298-data298-True-type.json tests/test_json_schema.py::test_to_from_json_schema[schema299-data299-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema300-True-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema301-None-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema302-1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema303-1.1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema304-foo-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema305-data305-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema306-data306-True-type.json tests/test_json_schema.py::test_to_from_json_schema[schema307-True-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema308-None-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema309-1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema310-1.1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema311-foo-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema312-data312-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema313-data313-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema314-True-True-type.json tests/test_json_schema.py::test_to_from_json_schema[schema315-None-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema316-1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema317-1.1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema318-foo-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema319-data319-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema320-data320-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema321-True-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema322-None-True-type.json tests/test_json_schema.py::test_to_from_json_schema[schema323-1-True-type.json tests/test_json_schema.py::test_to_from_json_schema[schema324-foo-True-type.json tests/test_json_schema.py::test_to_from_json_schema[schema325-1.1-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema326-data326-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema327-data327-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema328-True-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema329-None-False-type.json tests/test_json_schema.py::test_to_from_json_schema[schema330-data330-True-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema331-data331-False-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema332-data332-False-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema333-data333-True-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema334-data334-False-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema335-data335-True-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema336-data336-False-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema337-data337-True-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema338-data338-False-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema339-data339-True-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema340-data340-True-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema341-data341-True-uniqueItems.json tests/test_json_schema.py::test_to_from_json_schema[schema342-data342-False-uniqueItems.json tests/test_json_schema.py::test_schema_to_json_schema tests/test_json_schema.py::test_to_json_schema_invalid_field
docs/fields.md typesystem/fields.py typesystem/json_schema.py
docs/fields.md typesystem/fields.py typesystem/json_schema.py