@@ -29,9 +29,13 @@ class InvalidAtomicAVURequest(Exception):
2929
3030class MetadataManager (Manager ):
3131
32+ def __init__ (self , * _ ):
33+ self ._opts = {'admin' :False , 'timestamps' :False }
34+ super ().__init__ (* _ )
35+
3236 @property
3337 def use_timestamps (self ):
34- return getattr ( self , "_use_ts" , False )
38+ return self . _opts [ 'timestamps' ]
3539
3640 __kw : Dict [str , Any ] = {} # default (empty) keywords
3741
@@ -40,28 +44,22 @@ def _updated_keywords(self, opts):
4044 kw_ .update (opts )
4145 return kw_
4246
43- __generate_new_options = staticmethod (lambda obj , from_kw : { 'admin' :obj ._admin ,
44- 'timestamps' :obj ._use_ts ,
45- ** from_kw })
46-
4747 def get_api_keywords (self ): return self .__kw .copy ()
4848
49- def __call__ (self , ** kw_opt ):
49+ def __call__ (self , ** flags ):
5050 # Make a new shallow copy of the manager object, but update options from parameter list.
5151 new_self = copy .copy (self )
52- new_options = new_self .__kw = self .__generate_new_options (new_self , kw_opt )
5352
5453 # Update the flags that do bookkeeping in the returned(new) manager object.
55- if (timestamps := new_options .pop ('timestamps' ,None )) is not None :
56- new_self ._use_ts = timestamps
57- if (admin := new_options .pop ('admin' ,None )) is not None :
58- new_self ._admin = admin
54+ new_self ._opts .update (
55+ (key ,val ) for key ,val in flags .items () if val is not None
56+ )
5957
6058 # Update the ADMIN_KW flag in the returned(new) object.
61- if new_self ._admin :
62- new_options [kw .ADMIN_KW ] = ""
59+ if new_self ._opts . get ( 'admin' ) :
60+ self . __kw [kw .ADMIN_KW ] = ""
6361 else :
64- new_options .pop (kw .ADMIN_KW , None )
62+ self . __kw .pop (kw .ADMIN_KW , None )
6563
6664 return new_self
6765
0 commit comments