4343@overload
4444def safe_decode (s : None ) -> None : ...
4545
46+
4647@overload
47- def safe_decode (s : Union [IO [str ], AnyStr ]) -> str : ...
48+ def safe_decode (s : AnyStr ) -> str : ...
49+
4850
49- def safe_decode (s : Union [IO [ str ], AnyStr , None ]) -> Optional [str ]:
51+ def safe_decode (s : Union [AnyStr , None ]) -> Optional [str ]:
5052 """Safely decodes a binary string to unicode"""
5153 if isinstance (s , str ):
5254 return s
@@ -61,9 +63,11 @@ def safe_decode(s: Union[IO[str], AnyStr, None]) -> Optional[str]:
6163@overload
6264def safe_encode (s : None ) -> None : ...
6365
66+
6467@overload
6568def safe_encode (s : AnyStr ) -> bytes : ...
6669
70+
6771def safe_encode (s : Optional [AnyStr ]) -> Optional [bytes ]:
6872 """Safely encodes a binary string to unicode"""
6973 if isinstance (s , str ):
@@ -79,9 +83,11 @@ def safe_encode(s: Optional[AnyStr]) -> Optional[bytes]:
7983@overload
8084def win_encode (s : None ) -> None : ...
8185
86+
8287@overload
8388def win_encode (s : AnyStr ) -> bytes : ...
8489
90+
8591def win_encode (s : Optional [AnyStr ]) -> Optional [bytes ]:
8692 """Encode unicodes for process arguments on Windows."""
8793 if isinstance (s , str ):
@@ -93,7 +99,8 @@ def win_encode(s: Optional[AnyStr]) -> Optional[bytes]:
9399 return None
94100
95101
96- def with_metaclass (meta : Type [Any ], * bases : Any ) -> TBD : # type: ignore ## mypy cannot understand dynamic class creation
102+ # type: ignore ## mypy cannot understand dynamic class creation
103+ def with_metaclass (meta : Type [Any ], * bases : Any ) -> TBD :
97104 """copied from https://github.com/Byron/bcore/blob/master/src/python/butility/future.py#L15"""
98105
99106 class metaclass (meta ): # type: ignore
@@ -105,4 +112,4 @@ def __new__(cls, name: str, nbases: Optional[Tuple[int, ...]], d: Dict[str, Any]
105112 return type .__new__ (cls , name , (), d )
106113 return meta (name , bases , d )
107114
108- return metaclass (meta .__name__ + 'Helper' , None , {}) # type: ignore
115+ return metaclass (meta .__name__ + 'Helper' , None , {}) # type: ignore
0 commit comments