@@ -284,7 +284,9 @@ def is_absolute(self) -> bool:
284284 return self .__wrapped__ .is_absolute ()
285285
286286 def __eq__ (self , other : object ) -> bool :
287- return self .__wrapped__ .__eq__ (other )
287+ if not isinstance (other , type (self )):
288+ return NotImplemented
289+ return self .__wrapped__ .__eq__ (other .__wrapped__ )
288290
289291 def __hash__ (self ) -> int :
290292 return self .__wrapped__ .__hash__ ()
@@ -313,8 +315,11 @@ def lchmod(self, mode: int) -> None:
313315 def unlink (self , missing_ok : bool = False ) -> None :
314316 self .__wrapped__ .unlink (missing_ok = missing_ok )
315317
316- def rmdir (self , recursive : bool = True ) -> None : # fixme: non-standard
317- self .__wrapped__ .rmdir (recursive = recursive )
318+ def rmdir (self , recursive : bool = UNSET_DEFAULT ) -> None : # fixme: non-standard
319+ kwargs : dict [str , Any ] = {}
320+ if recursive is not UNSET_DEFAULT :
321+ kwargs ["recursive" ] = recursive
322+ self .__wrapped__ .rmdir (** kwargs )
318323
319324 def rename (
320325 self ,
@@ -324,9 +329,14 @@ def rename(
324329 maxdepth : int | None = UNSET_DEFAULT ,
325330 ** kwargs : Any ,
326331 ) -> Self :
332+ if recursive is not UNSET_DEFAULT :
333+ kwargs ["recursive" ] = recursive
334+ if maxdepth is not UNSET_DEFAULT :
335+ kwargs ["maxdepth" ] = maxdepth
327336 return self ._from_upath (
328337 self .__wrapped__ .rename (
329- target , recursive = recursive , maxdepth = maxdepth , ** kwargs
338+ target .__wrapped__ if isinstance (target , ProxyUPath ) else target ,
339+ ** kwargs ,
330340 )
331341 )
332342
0 commit comments