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+
2936class Username :
3037 """Username credentials
3138
3239 This is an object suitable for passing to a remote's credentials
3340 callback and for returning from said callback.
3441 """
3542
36- def __init__ (self , username ):
43+ def __init__ (self , username : str ):
3744 self ._username = username
3845
3946 @property
@@ -44,7 +51,9 @@ def credential_type(self) -> CredentialType:
4451 def credential_tuple (self ):
4552 return (self ._username ,)
4653
47- def __call__ (self , _url , _username , _allowed ):
54+ def __call__ (
55+ self , _url : str , _username : str | None , _allowed : CredentialType
56+ ) -> Username :
4857 return self
4958
5059
@@ -55,7 +64,7 @@ class UserPass:
5564 callback and for returning from said callback.
5665 """
5766
58- def __init__ (self , username , password ):
67+ def __init__ (self , username : str , password : str ):
5968 self ._username = username
6069 self ._password = password
6170
@@ -67,7 +76,9 @@ def credential_type(self) -> CredentialType:
6776 def credential_tuple (self ):
6877 return (self ._username , self ._password )
6978
70- def __call__ (self , _url , _username , _allowed ):
79+ def __call__ (
80+ self , _url : str , _username : str | None , _allowed : CredentialType
81+ ) -> UserPass :
7182 return self
7283
7384
@@ -94,7 +105,7 @@ class Keypair:
94105 no passphrase is required.
95106 """
96107
97- def __init__ (self , username , pubkey , privkey , passphrase ):
108+ def __init__ (self , username : str , pubkey : str | Path , privkey : str | Path , passphrase : str ):
98109 self ._username = username
99110 self ._pubkey = pubkey
100111 self ._privkey = privkey
@@ -108,12 +119,14 @@ def credential_type(self) -> CredentialType:
108119 def credential_tuple (self ):
109120 return (self ._username , self ._pubkey , self ._privkey , self ._passphrase )
110121
111- def __call__ (self , _url , _username , _allowed ):
122+ def __call__ (
123+ self , _url : str , _username : str | None , _allowed : CredentialType
124+ ) -> Keypair :
112125 return self
113126
114127
115128class KeypairFromAgent (Keypair ):
116- def __init__ (self , username ):
129+ def __init__ (self , username : str ):
117130 super ().__init__ (username , None , None , None )
118131
119132
0 commit comments