Verified Commit 89a1738b authored by Dan Jones's avatar Dan Jones
Browse files

lint: fix black and flake8 errors

parent 76e6b18e
No related merge requests found
Pipeline #227533 passed with stages
in 51 seconds
......@@ -106,25 +106,25 @@ swagger_config = {
}
def resolve_ref(ref):
def resolve_ref(ref):
"""
Get schema URL, parse JSON
Get schema URL, parse JSON
Return None if either fails
"""
try:
res = requests.get(ref)
if res.status_code == 200:
return res.json()
else:
else:
return None
except (json.JSONDecodeError, ValueError):
return None
def rename_ref(ref):
def rename_ref(ref):
"""
Convert remote ref URL into a name that can
be used for a local ref in the schema
Convert remote ref URL into a name that can
be used for a local ref in the schema
Remote the URL scheme and replace / with .
"""
# remove url scheme
......@@ -135,10 +135,10 @@ def rename_ref(ref):
def nested_replace(source, key, value, replace_with):
"""
Find all instances of a key value pair in a nested
Find all instances of a key value pair in a nested
dictionary and replace the value with replace_with
"""
for k,v in source.items():
"""
for k, v in source.items():
if k == key and v == value:
source[k] = replace_with
elif type(v) is list:
......@@ -152,32 +152,32 @@ def nested_replace(source, key, value, replace_with):
def inject_schema(schema, remote_ref):
"""
Given a parent schema and a remote ref
1. get the remote ref schema
2. create a local reference name (without path separators)
3. insert into components.schemas
4. replace remote references with local references
3. insert into components.schemas
4. replace remote references with local references
returns True if resolved and injected
"""
"""
local_name = rename_ref(remote_ref)
local_ref = f"#/components/schemas/{local_name}"
ref_schema = resolve_ref(remote_ref)
if (ref_schema is not None):
if ref_schema is not None:
nested_replace(schema, "$ref", remote_ref, local_ref)
schema["components"]["schemas"][local_name] = ref_schema
return True
else:
return False
else:
return False
def import_remote_refs():
"""
inject the following remote refs into the schema
inject the following remote refs into the schema
and replace the remote refs with local refs
returns True if all schemas resolved and injected
returns True if all schemas resolved and injected
"""
ref_imports = [
"https://geojson.org/schema/Feature.json",
......@@ -187,10 +187,7 @@ def import_remote_refs():
"https://geojson.org/schema/Polygon.json",
]
return all([
inject_schema(swagger_config, ref)
for ref in ref_imports
])
return all([inject_schema(swagger_config, ref) for ref in ref_imports])
import_remote_refs()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment