2323# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
2424# Boston, MA 02110-1301, USA.
2525
26+ from __future__ import annotations
27+
28+ from typing import TYPE_CHECKING
29+
2630from .enums import CredentialType
2731
2832
33+ if TYPE_CHECKING :
34+ from pathlib import Path
35+
36+
2937class Username :
3038 """Username credentials
3139
3240 This is an object suitable for passing to a remote's credentials
3341 callback and for returning from said callback.
3442 """
3543
36- def __init__ (self , username ):
44+ def __init__ (self , username : str ):
3745 self ._username = username
3846
3947 @property
@@ -44,7 +52,9 @@ def credential_type(self) -> CredentialType:
4452 def credential_tuple (self ):
4553 return (self ._username ,)
4654
47- def __call__ (self , _url , _username , _allowed ):
55+ def __call__ (
56+ self , _url : str , _username : str | None , _allowed : CredentialType
57+ ) -> Username :
4858 return self
4959
5060
@@ -55,7 +65,7 @@ class UserPass:
5565 callback and for returning from said callback.
5666 """
5767
58- def __init__ (self , username , password ):
68+ def __init__ (self , username : str , password : str ):
5969 self ._username = username
6070 self ._password = password
6171
@@ -67,7 +77,9 @@ def credential_type(self) -> CredentialType:
6777 def credential_tuple (self ):
6878 return (self ._username , self ._password )
6979
70- def __call__ (self , _url , _username , _allowed ):
80+ def __call__ (
81+ self , _url : str , _username : str | None , _allowed : CredentialType
82+ ) -> UserPass :
7183 return self
7284
7385
@@ -94,7 +106,9 @@ class Keypair:
94106 no passphrase is required.
95107 """
96108
97- def __init__ (self , username , pubkey , privkey , passphrase ):
109+ def __init__ (
110+ self , username : str , pubkey : str | Path , privkey : str | Path , passphrase : str
111+ ):
98112 self ._username = username
99113 self ._pubkey = pubkey
100114 self ._privkey = privkey
@@ -108,12 +122,14 @@ def credential_type(self) -> CredentialType:
108122 def credential_tuple (self ):
109123 return (self ._username , self ._pubkey , self ._privkey , self ._passphrase )
110124
111- def __call__ (self , _url , _username , _allowed ):
125+ def __call__ (
126+ self , _url : str , _username : str | None , _allowed : CredentialType
127+ ) -> Keypair :
112128 return self
113129
114130
115131class KeypairFromAgent (Keypair ):
116- def __init__ (self , username ):
132+ def __init__ (self , username : str ):
117133 super ().__init__ (username , None , None , None )
118134
119135
0 commit comments