1010 Any ,
1111 Generic ,
1212 Literal ,
13+ SupportsIndex ,
1314 TypeVar ,
1415 cast ,
1516)
@@ -50,23 +51,31 @@ class StorageSchemeType(StringEnum):
5051
5152
5253class StorageScheme :
53- properties : dict [str , Any ]
54+ _properties : dict [str , Any ]
5455
5556 def __init__ (self , properties : dict [str , Any ]):
56- super ().__setattr__ ("properties " , properties )
57+ super ().__setattr__ ("_properties " , properties )
5758
5859 def __eq__ (self , other : object ) -> bool :
5960 if not isinstance (other , StorageScheme ):
60- raise NotImplementedError
61- return self .properties == other .properties
61+ return NotImplemented
62+
63+ return bool (self .__dict__ ["_properties" ] == other .__dict__ ["_properties" ])
6264
6365 def __getattr__ (self , name : str ) -> Any :
64- if name in self .properties :
65- return self .properties [name ]
66+ properties = self .__dict__ ["_properties" ]
67+ if name in properties :
68+ return properties [name ]
6669 raise AttributeError (f"StorageScheme does not have attribute '{ name } '" )
6770
6871 def __setattr__ (self , name : str , value : Any ) -> None :
69- self .properties [name ] = value
72+ if name .startswith ("_" ) or hasattr (type (self ), name ):
73+ super ().__setattr__ (name , value )
74+ else :
75+ self ._properties [name ] = value
76+
77+ def __reduce_ex__ (self , protocol : SupportsIndex ) -> Any :
78+ return (self .__class__ , (self .__dict__ ["_properties" ],), None )
7079
7180 def apply (
7281 self ,
@@ -80,7 +89,7 @@ def apply(
8089 self .platform = platform
8190 self .region = region
8291 self .requester_pays = requester_pays
83- self .properties .update (kwargs )
92+ self ._properties .update (kwargs )
8493
8594 @classmethod
8695 def create (
@@ -125,57 +134,57 @@ def type(self) -> str:
125134 Get or set the required type property
126135 """
127136 return get_required (
128- self .properties .get (TYPE_PROP ),
137+ self ._properties .get (TYPE_PROP ),
129138 self ,
130139 TYPE_PROP ,
131140 )
132141
133142 @type .setter
134143 def type (self , v : str ) -> None :
135- self .properties [TYPE_PROP ] = v
144+ self ._properties [TYPE_PROP ] = v
136145
137146 @property
138147 def platform (self ) -> str :
139148 """
140149 Get or set the required platform property
141150 """
142151 return get_required (
143- self .properties .get (PLATFORM_PROP ),
152+ self ._properties .get (PLATFORM_PROP ),
144153 self ,
145154 PLATFORM_PROP ,
146155 )
147156
148157 @platform .setter
149158 def platform (self , v : str ) -> None :
150- self .properties [PLATFORM_PROP ] = v
159+ self ._properties [PLATFORM_PROP ] = v
151160
152161 @property
153162 def region (self ) -> str | None :
154163 """
155164 Get or set the optional region property
156165 """
157- return self .properties .get (REGION_PROP )
166+ return self ._properties .get (REGION_PROP )
158167
159168 @region .setter
160169 def region (self , v : str ) -> None :
161170 if v is not None :
162- self .properties [REGION_PROP ] = v
171+ self ._properties [REGION_PROP ] = v
163172 else :
164- self .properties .pop (REGION_PROP , None )
173+ self ._properties .pop (REGION_PROP , None )
165174
166175 @property
167176 def requester_pays (self ) -> bool | None :
168177 """
169178 Get or set the optional requester_pays property
170179 """
171- return self .properties .get (REQUESTER_PAYS_PROP )
180+ return self ._properties .get (REQUESTER_PAYS_PROP )
172181
173182 @requester_pays .setter
174183 def requester_pays (self , v : bool ) -> None :
175184 if v is not None :
176- self .properties [REQUESTER_PAYS_PROP ] = v
185+ self ._properties [REQUESTER_PAYS_PROP ] = v
177186 else :
178- self .properties .pop (REQUESTER_PAYS_PROP , None )
187+ self ._properties .pop (REQUESTER_PAYS_PROP , None )
179188
180189 def to_dict (self ) -> dict [str , Any ]:
181190 """
@@ -184,7 +193,7 @@ def to_dict(self) -> dict[str, Any]:
184193 Returns:
185194 dict[str, Any
186195 """
187- return self .properties
196+ return self ._properties
188197
189198
190199class _StorageExtension (ABC ):
@@ -473,7 +482,6 @@ def schemes(self) -> list[dict[str, StorageScheme]] | None:
473482 self .summaries .get_list (SCHEMES_PROP ),
474483 )
475484
476- print (v )
477485 return v
478486
479487 @schemes .setter
0 commit comments