1212import functools
1313import itertools
1414import logging
15- from collections .abc import Mapping
15+ from collections .abc import MutableMapping
1616from pathlib import Path
1717from typing import TYPE_CHECKING
1818
@@ -166,8 +166,8 @@ def __init__(self, init=None, **kwargs):
166166
167167 @classmethod
168168 def _creator_defaults (
169- cls , defaults : dict [str , Any ] | None = None , * , time : Time | None = None
170- ) -> dict [str , dict [ str , str | Time ] ]:
169+ cls , defaults : MutableMapping [str , Any ] | None = None , * , time : Time | None = None
170+ ) -> MutableMapping [str , Any ]:
171171 """
172172 The default values for the create constructors, `create_minimal` and `create_fake_data`.
173173
@@ -185,11 +185,11 @@ def _creator_defaults(
185185 some values that we want to always set to a specific value.
186186 """
187187
188- def merge_dicts (dict1 , dict2 ) :
188+ def merge_dicts (dict1 : MutableMapping [ str , Any ], dict2 : MutableMapping [ str , Any ]) -> MutableMapping [ str , Any ] :
189189 for key in dict2 :
190190 if key in dict1 :
191- dict1_is_mapping = isinstance (dict1 [key ], Mapping )
192- dict2_is_mapping = isinstance (dict2 [key ], Mapping )
191+ dict1_is_mapping = isinstance (dict1 [key ], MutableMapping )
192+ dict2_is_mapping = isinstance (dict2 [key ], MutableMapping )
193193
194194 if dict1_is_mapping and dict2_is_mapping :
195195 dict1 [key ] = merge_dicts (dict1 [key ], dict2 [key ])
@@ -215,7 +215,7 @@ def merge_dicts(dict1, dict2):
215215 )
216216
217217 @classmethod
218- def create_minimal (cls , defaults = None ):
218+ def create_minimal (cls , defaults = None , * , tag = None ):
219219 """
220220 Class method that constructs an "minimal" model.
221221
@@ -240,10 +240,10 @@ def create_minimal(cls, defaults=None):
240240 be incomplete (invalid) as not all required attributes
241241 can be guessed.
242242 """
243- return super ().create_minimal (defaults = cls ._creator_defaults (defaults ))
243+ return super ().create_minimal (defaults = cls ._creator_defaults (defaults ), tag = tag )
244244
245245 @classmethod
246- def create_fake_data (cls , defaults = None , shape = None ):
246+ def create_fake_data (cls , defaults = None , shape = None , * , tag = None ):
247247 """
248248 Class method that constructs a model filled with fake data.
249249
@@ -273,7 +273,9 @@ def create_fake_data(cls, defaults=None, shape=None):
273273 A valid model with fake data.
274274 """
275275 return super ().create_fake_data (
276- defaults = cls ._creator_defaults (defaults , time = Time ("2020-01-01T00:00:00.0" , format = "isot" , scale = "utc" )), shape = shape
276+ defaults = cls ._creator_defaults (defaults , time = Time ("2020-01-01T00:00:00.0" , format = "isot" , scale = "utc" )),
277+ shape = shape ,
278+ tag = tag ,
277279 )
278280
279281
0 commit comments