2323
2424class _Access_LookupMeta (type ):
2525
26+ def __init__ (self ,* args ,** kwargs ):
27+ print (f"metaclass=_Access_LookupMeta used for defining class { args [0 ]!r} " )
28+ super ().__init__ (* args ,** kwargs )
29+
2630 @staticmethod
2731 def _codes ():
28- print ("inherit _Access_LookupMeta" )
2932 return collections .OrderedDict (
3033 (key_ , value_ )
3134 for key_ , value_ in sorted (
@@ -77,7 +80,7 @@ def items(self):
7780 return list (zip (self .keys (), self .values ()))
7881
7982
80- class iRODSAccess ( metaclass = _Access_LookupMeta ) :
83+ class _iRODSAccess_base :
8184 @classmethod
8285 def to_int (cls , key ):
8386 return cls .codes [key ]
@@ -86,10 +89,7 @@ def to_int(cls, key):
8689 def to_string (cls , key ):
8790 return cls .strings [key ]
8891
89-
90- def __init__ (self , access_name , path , user_name = "" , user_zone = "" , user_type = None ):
91- self .codes = self .__class__ .codes .copy ()
92- self .strings = self .__class__ .strings .copy ()
92+ def __init__ (self , access_name , path , user_name , user_zone , user_type ):
9393 self .access_name = access_name
9494 if isinstance (path , (iRODSCollection , iRODSDataObject )):
9595 self .path = path .path
@@ -149,6 +149,13 @@ def __repr__(self):
149149 return f"<iRODSAccess { access_name } { self .path } { self .user_name } { user_type_hint } { self .user_zone } >"
150150
151151
152+ class iRODSAccess (_iRODSAccess_base , metaclass = _Access_LookupMeta ):
153+ def __init__ (self , access_name , path , user_name = "" , user_zone = "" , user_type = None ):
154+ self .codes = self .__class__ .codes
155+ self .strings = self .__class__ .strings
156+ super ().__init__ (access_name , path , user_name , user_zone , user_type )
157+
158+
152159class ACLOperation (iRODSAccess ):
153160 def __init__ (self , access_name : str , user_name : str = "" , user_zone : str = "" ):
154161 super ().__init__ (
@@ -199,7 +206,8 @@ def __repr__(self):
199206}
200207
201208
202- class _iRODSAccess_pre_4_3_0 (iRODSAccess ):
209+ class _iRODSAccess_pre_4_3_0 (_iRODSAccess_base ):
210+
203211 codes = collections .OrderedDict (
204212 (key .replace ("_" , " " ), value )
205213 for key , value in iRODSAccess .codes .items ()
0 commit comments