JSONSchemata 0.0.0.dev22__tar.gz → 0.0.0.dev24__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {jsonschemata-0.0.0.dev22/src/JSONSchemata.egg-info → jsonschemata-0.0.0.dev24}/PKG-INFO +3 -3
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/pyproject.toml +3 -3
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24/src/JSONSchemata.egg-info}/PKG-INFO +3 -3
- jsonschemata-0.0.0.dev24/src/JSONSchemata.egg-info/requires.txt +4 -0
- jsonschemata-0.0.0.dev24/src/jsonschemata/edit.py +56 -0
- jsonschemata-0.0.0.dev22/src/JSONSchemata.egg-info/requires.txt +0 -4
- jsonschemata-0.0.0.dev22/src/jsonschemata/edit.py +0 -27
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/LICENSE +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/MANIFEST.in +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/README.md +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/setup.cfg +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/JSONSchemata.egg-info/SOURCES.txt +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/JSONSchemata.egg-info/dependency_links.txt +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/JSONSchemata.egg-info/not-zip-safe +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/JSONSchemata.egg-info/top_level.txt +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/__init__.py +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/array/unique-strings.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/css-name.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/css.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/hex-string.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/hsl-array.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/hsl-string.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/hsla-array.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/rgb-array.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/rgb-string.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/rgba-array.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/config/github/form/body.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/config/github/label/description.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/date/yyyy-mm-dd.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/doi.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/email.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/github/node.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/github/rest.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/github/user.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/linkedin.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/orcid.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/researchgate.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/spdx-license.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/twitter.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/integer/non-negative.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/number/non-negative.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/path/dir-name.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/path/posix/absolute-from-cwd.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/string/nonempty.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/string/oneline.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/uri/mailto.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/README.md +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/ftp.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/github/user.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/http-explicit.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/http-ftp-sftp.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/http-implicit.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/https.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/linkedin/company.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/linkedin/person.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/linkedin/user.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/orcid/user.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/researchgate/institution.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/researchgate/lab.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/researchgate/person.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/researchgate/user.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/sftp.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/twitter/user.yaml +0 -0
- {jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/registry.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: JSONSchemata
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.dev24
|
|
4
4
|
Requires-Python: >=3.10
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Dist: referencing>=0.35.1
|
|
7
7
|
Requires-Dist: PkgData==0.0.0.dev5
|
|
8
|
-
Requires-Dist: PySerials==0.0.0.
|
|
9
|
-
Requires-Dist: PyLinks==0.0.0.
|
|
8
|
+
Requires-Dist: PySerials==0.0.0.dev28
|
|
9
|
+
Requires-Dist: PyLinks==0.0.0.dev38
|
|
@@ -17,12 +17,12 @@ namespaces = true
|
|
|
17
17
|
# ----------------------------------------- Project Metadata -------------------------------------
|
|
18
18
|
#
|
|
19
19
|
[project]
|
|
20
|
-
version = "0.0.0.
|
|
20
|
+
version = "0.0.0.dev24"
|
|
21
21
|
name = "JSONSchemata"
|
|
22
22
|
dependencies = [
|
|
23
23
|
"referencing >= 0.35.1",
|
|
24
24
|
"PkgData == 0.0.0.dev5",
|
|
25
|
-
"PySerials == 0.0.0.
|
|
26
|
-
"PyLinks == 0.0.0.
|
|
25
|
+
"PySerials == 0.0.0.dev28",
|
|
26
|
+
"PyLinks == 0.0.0.dev38",
|
|
27
27
|
]
|
|
28
28
|
requires-python = ">=3.10"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: JSONSchemata
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.dev24
|
|
4
4
|
Requires-Python: >=3.10
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Dist: referencing>=0.35.1
|
|
7
7
|
Requires-Dist: PkgData==0.0.0.dev5
|
|
8
|
-
Requires-Dist: PySerials==0.0.0.
|
|
9
|
-
Requires-Dist: PyLinks==0.0.0.
|
|
8
|
+
Requires-Dist: PySerials==0.0.0.dev28
|
|
9
|
+
Requires-Dist: PyLinks==0.0.0.dev38
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
def required_last(schema: dict) -> dict:
|
|
2
|
+
"""Modify JSON schema to recursively put all 'required' fields at the end of the schema.
|
|
3
|
+
|
|
4
|
+
This is done because otherwise the 'required' fields
|
|
5
|
+
are checked by jsonschema before filling the defaults,
|
|
6
|
+
which can cause the validation to fail.
|
|
7
|
+
|
|
8
|
+
Returns
|
|
9
|
+
-------
|
|
10
|
+
dict
|
|
11
|
+
Modified schema.
|
|
12
|
+
Note that the input schema is modified in-place,
|
|
13
|
+
so the return value is a reference to the (now modified) input schema.
|
|
14
|
+
"""
|
|
15
|
+
if "required" in schema:
|
|
16
|
+
schema["required"] = schema.pop("required")
|
|
17
|
+
for key in ["anyOf", "allOf", "oneOf", "prefixItems"]:
|
|
18
|
+
if key in schema:
|
|
19
|
+
for subschema in schema[key]:
|
|
20
|
+
required_last(subschema)
|
|
21
|
+
for key in ["if", "then", "else", "not", "items", "unevaluatedItems", "contains", "additionalProperties", "patternProperties", "unevaluatedProperties"]:
|
|
22
|
+
if key in schema and isinstance(schema[key], dict):
|
|
23
|
+
required_last(schema[key])
|
|
24
|
+
if "properties" in schema and isinstance(schema["properties"], dict):
|
|
25
|
+
for subschema in schema["properties"].values():
|
|
26
|
+
required_last(subschema)
|
|
27
|
+
return schema
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def add_property(schema: dict, prop: str, value: dict) -> dict:
|
|
31
|
+
"""Recursively add a property to a JSON schema.
|
|
32
|
+
|
|
33
|
+
Parameters
|
|
34
|
+
----------
|
|
35
|
+
schema : dict
|
|
36
|
+
The JSON schema to modify.
|
|
37
|
+
prop : str
|
|
38
|
+
The name of the property to add.
|
|
39
|
+
value : Any
|
|
40
|
+
The value of the property to add.
|
|
41
|
+
|
|
42
|
+
Returns
|
|
43
|
+
-------
|
|
44
|
+
dict
|
|
45
|
+
The modified schema.
|
|
46
|
+
"""
|
|
47
|
+
if "properties" in schema:
|
|
48
|
+
schema["properties"][prop] = value
|
|
49
|
+
for key in ["anyOf", "allOf", "oneOf", "prefixItems"]:
|
|
50
|
+
if key in schema:
|
|
51
|
+
for subschema in schema[key]:
|
|
52
|
+
add_property(subschema, prop, value)
|
|
53
|
+
for key in ["if", "then", "else", "not", "items", "unevaluatedItems", "contains", "additionalProperties", "patternProperties", "unevaluatedProperties"]:
|
|
54
|
+
if key in schema and isinstance(schema[key], dict):
|
|
55
|
+
add_property(schema[key], prop, value)
|
|
56
|
+
return schema
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
def required_last(schema: dict) -> dict:
|
|
2
|
-
"""Modify JSON schema to recursively put all 'required' fields at the end of the schema.
|
|
3
|
-
|
|
4
|
-
This is done because otherwise the 'required' fields
|
|
5
|
-
are checked by jsonschema before filling the defaults,
|
|
6
|
-
which can cause the validation to fail.
|
|
7
|
-
|
|
8
|
-
Returns
|
|
9
|
-
-------
|
|
10
|
-
dict
|
|
11
|
-
Modified schema.
|
|
12
|
-
Note that the input schema is modified in-place,
|
|
13
|
-
so the return value is a reference to the (now modified) input schema.
|
|
14
|
-
"""
|
|
15
|
-
if "required" in schema:
|
|
16
|
-
schema["required"] = schema.pop("required")
|
|
17
|
-
for key in ["anyOf", "allOf", "oneOf", "prefixItems"]:
|
|
18
|
-
if key in schema:
|
|
19
|
-
for subschema in schema[key]:
|
|
20
|
-
required_last(subschema)
|
|
21
|
-
for key in ["if", "then", "else", "not", "items", "additionalProperties"]:
|
|
22
|
-
if key in schema and isinstance(schema[key], dict):
|
|
23
|
-
required_last(schema[key])
|
|
24
|
-
if "properties" in schema and isinstance(schema["properties"], dict):
|
|
25
|
-
for subschema in schema["properties"].values():
|
|
26
|
-
required_last(subschema)
|
|
27
|
-
return schema
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/JSONSchemata.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/JSONSchemata.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/JSONSchemata.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/css-name.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/hex-string.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/hsl-array.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/hsl-string.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/hsla-array.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/rgb-array.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/rgb-string.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/color/rgba-array.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/date/yyyy-mm-dd.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/github/node.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/github/rest.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/github/user.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/linkedin.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/researchgate.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/spdx-license.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/id/twitter.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/path/dir-name.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/string/nonempty.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/string/oneline.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/uri/mailto.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/github/user.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/http-explicit.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/http-ftp-sftp.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/http-implicit.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/linkedin/user.yaml
RENAMED
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/orcid/user.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jsonschemata-0.0.0.dev22 → jsonschemata-0.0.0.dev24}/src/jsonschemata/_data/url/twitter/user.yaml
RENAMED
|
File without changes
|
|
File without changes
|