1111from datetime import timedelta
1212from functools import cache
1313from pathlib import Path
14- from typing import Optional
1514
1615import jsonschema
1716
1817from .adapters .mapping import MapAdapter
1918from .media_type_registration import (
20- CompressionRegistry ,
21- SerializationRegistry ,
2219 default_compression_registry ,
2320 default_deserialization_registry ,
2421 default_serialization_registry ,
2522)
26- from .query_registration import QueryRegistry , default_query_registry
23+ from .query_registration import default_query_registry
2724from .utils import import_object , parse , prepend_to_sys_path
28- from .validation_registration import ValidationRegistry , default_validation_registry
25+ from .validation_registration import default_validation_registry
2926
3027
3128@cache
@@ -39,38 +36,17 @@ def schema():
3936 return yaml .safe_load (file )
4037
4138
42- def construct_build_app_kwargs (
43- config ,
44- * ,
45- source_filepath = None ,
46- query_registry : Optional [QueryRegistry ] = None ,
47- compression_registry : Optional [CompressionRegistry ] = None ,
48- serialization_registry : Optional [SerializationRegistry ] = None ,
49- deserialization_registry : Optional [SerializationRegistry ] = None ,
50- validation_registry : Optional [ValidationRegistry ] = None ,
51- ):
39+ def construct_build_app_kwargs (config , * , source_filepath = None ):
5240 """
5341 Given parsed configuration, construct arguments for build_app(...).
5442
55- The parameters query_registry, compression_registry, and
56- serialization_registry are used by the tests to inject separate registry
57- instances. By default, the singleton global instances of these registries
58- are used (and modified).
43+ The singleton global instances of the registries are used (and modified).
5944 """
6045 config = copy .deepcopy (config ) # Avoid mutating input.
6146 startup_tasks = []
6247 shutdown_tasks = []
6348 background_tasks = []
64- if query_registry is None :
65- query_registry = default_query_registry
66- if serialization_registry is None :
67- serialization_registry = default_serialization_registry
68- if deserialization_registry is None :
69- deserialization_registry = default_deserialization_registry
70- if compression_registry is None :
71- compression_registry = default_compression_registry
72- if validation_registry is None :
73- validation_registry = default_validation_registry
49+
7450 sys_path_additions = []
7551 if source_filepath :
7652 if os .path .isdir (source_filepath ):
@@ -186,30 +162,30 @@ def construct_build_app_kwargs(
186162 for structure_family , values in config .get ("media_types" , {}).items ():
187163 for media_type , import_path in values .items ():
188164 serializer = import_object (import_path , accept_live_object = True )
189- serialization_registry .register (
165+ default_serialization_registry .register (
190166 structure_family , media_type , serializer
191167 )
192168 for ext , media_type in config .get ("file_extensions" , {}).items ():
193- serialization_registry .register_alias (ext , media_type )
169+ default_serialization_registry .register_alias (ext , media_type )
194170
195171 for item in config .get ("specs" , []):
196172 if "validator" in item :
197173 validator = import_object (item ["validator" ])
198174 else :
199175 # no-op
200176 validator = _no_op_validator
201- validation_registry .register (item ["spec" ], validator )
177+ default_validation_registry .register (item ["spec" ], validator )
202178
203179 # TODO Make compression_registry extensible via configuration.
204180 return {
205181 "tree" : root_tree ,
206182 "authentication" : auth_spec ,
207183 "server_settings" : server_settings ,
208- "query_registry" : query_registry ,
209- "serialization_registry" : serialization_registry ,
210- "deserialization_registry" : deserialization_registry ,
211- "compression_registry" : compression_registry ,
212- "validation_registry" : validation_registry ,
184+ "query_registry" : default_query_registry ,
185+ "serialization_registry" : default_serialization_registry ,
186+ "deserialization_registry" : default_deserialization_registry ,
187+ "compression_registry" : default_compression_registry ,
188+ "validation_registry" : default_validation_registry ,
213189 "tasks" : {
214190 "startup" : startup_tasks ,
215191 "shutdown" : shutdown_tasks ,
0 commit comments