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 ):
@@ -184,30 +160,30 @@ def construct_build_app_kwargs(
184160 for structure_family , values in config .get ("media_types" , {}).items ():
185161 for media_type , import_path in values .items ():
186162 serializer = import_object (import_path , accept_live_object = True )
187- serialization_registry .register (
163+ default_serialization_registry .register (
188164 structure_family , media_type , serializer
189165 )
190166 for ext , media_type in config .get ("file_extensions" , {}).items ():
191- serialization_registry .register_alias (ext , media_type )
167+ default_serialization_registry .register_alias (ext , media_type )
192168
193169 for item in config .get ("specs" , []):
194170 if "validator" in item :
195171 validator = import_object (item ["validator" ])
196172 else :
197173 # no-op
198174 validator = _no_op_validator
199- validation_registry .register (item ["spec" ], validator )
175+ default_validation_registry .register (item ["spec" ], validator )
200176
201177 # TODO Make compression_registry extensible via configuration.
202178 return {
203179 "tree" : root_tree ,
204180 "authentication" : auth_spec ,
205181 "server_settings" : server_settings ,
206- "query_registry" : query_registry ,
207- "serialization_registry" : serialization_registry ,
208- "deserialization_registry" : deserialization_registry ,
209- "compression_registry" : compression_registry ,
210- "validation_registry" : validation_registry ,
182+ "query_registry" : default_query_registry ,
183+ "serialization_registry" : default_serialization_registry ,
184+ "deserialization_registry" : default_deserialization_registry ,
185+ "compression_registry" : default_compression_registry ,
186+ "validation_registry" : default_validation_registry ,
211187 "tasks" : {
212188 "startup" : startup_tasks ,
213189 "shutdown" : shutdown_tasks ,
0 commit comments