@@ -93,31 +93,26 @@ def __repr__(self) -> str:
93
93
94
94
95
95
class DeprecatedOption (Option [_O ]): # pragma: no cover
96
- def __init__ (self , new_name : str | None , * args : Any , ** kwargs : Any ) -> None :
97
- self .new_name = new_name
98
- with warnings .catch_warnings ():
99
- warnings .simplefilter ("ignore" , DeprecationWarning )
100
- super ().__init__ (* args , ** kwargs )
96
+ def __init__ (self , new_opt : Option | None , name : str ) -> None :
97
+ # copy over attrs
98
+ attrs = new_opt .__dict__ .copy ()
99
+ attrs .pop ("_current" , None )
100
+ self .__dict__ .update (new_opt .__dict__ )
101
+ # then set the ones needed here
102
+ self ._name = name
103
+ self ._new_opt = new_opt
101
104
102
105
@property
103
- def current (self ) -> _O :
104
- if self .new_name is None :
106
+ def _current (self ) -> _O :
107
+ if self ._new_opt . name is None :
105
108
warnings .warn (f"{ self .name !r} has been removed" , DeprecationWarning )
106
109
else :
107
110
warnings .warn (
108
- f"{ self .name !r} has been renamed to { self .new_name !r} " ,
111
+ f"{ self .name !r} has been renamed to { self ._new_opt . name !r} " ,
109
112
DeprecationWarning ,
110
113
)
111
- return super () .current
114
+ return self . _new_opt .current
112
115
113
- @current .setter
114
- def current (self , new : _O ) -> None :
115
- if self .new_name is None :
116
- warnings .warn (f"{ self .name !r} has been removed" , DeprecationWarning )
117
- else :
118
- warnings .warn (
119
- f"{ self .name !r} has been renamed to { self .new_name !r} " ,
120
- DeprecationWarning ,
121
- )
122
- self .set_current (new )
123
- return None
116
+ @_current .setter
117
+ def _current (self , new : _O ) -> None :
118
+ self ._new_opt .current = new
0 commit comments