@@ -28,41 +28,37 @@ class InvalidAtomicAVURequest(Exception):
2828
2929class MetadataManager (Manager ):
3030
31+ def __init__ (self , * _ ):
32+ self ._opts = {'admin' :False , 'timestamps' :False }
33+ super ().__init__ (* _ )
34+
3135 @property
3236 def use_timestamps (self ):
33- return getattr ( self , "_use_ts" , False )
37+ return self . _opts [ 'timestamps' ]
3438
3539 __kw = {} # default (empty) keywords
36- _admin = False
37- _use_ts = False
3840
3941 def _updated_keywords (self , opts ):
4042 kw_ = self .__kw .copy ()
4143 kw_ .update (opts )
4244 return kw_
4345
44- __generate_new_options = staticmethod (lambda obj , from_kw : { 'admin' :obj ._admin ,
45- 'timestamps' :obj ._use_ts ,
46- ** from_kw })
47-
4846 def get_api_keywords (self ): return self .__kw .copy ()
4947
50- def __call__ (self , ** kw_opt ):
48+ def __call__ (self , ** flags ):
5149 # Make a new shallow copy of the manager object, but update options from parameter list.
5250 new_self = copy .copy (self )
53- new_options = new_self .__kw = self .__generate_new_options (new_self , kw_opt )
5451
5552 # Update the flags that do bookkeeping in the returned(new) manager object.
56- if (timestamps := new_options .pop ('timestamps' ,None )) is not None :
57- new_self ._use_ts = timestamps
58- if (admin := new_options .pop ('admin' ,None )) is not None :
59- new_self ._admin = admin
53+ new_self ._opts .update (
54+ (key ,val ) for key ,val in flags .items () if val is not None
55+ )
6056
6157 # Update the ADMIN_KW flag in the returned(new) object.
62- if new_self ._admin :
63- new_options [kw .ADMIN_KW ] = ""
58+ if new_self ._opts . get ( 'admin' ) :
59+ self . __kw [kw .ADMIN_KW ] = ""
6460 else :
65- new_options .pop (kw .ADMIN_KW , None )
61+ self . __kw .pop (kw .ADMIN_KW , None )
6662
6763 return new_self
6864
0 commit comments