23
23
# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
24
24
# Boston, MA 02110-1301, USA.
25
25
26
+ from __future__ import annotations
27
+
28
+ from typing import TYPE_CHECKING
29
+
26
30
from .enums import CredentialType
27
31
28
32
33
+ if TYPE_CHECKING :
34
+ from pathlib import Path
35
+
29
36
class Username :
30
37
"""Username credentials
31
38
32
39
This is an object suitable for passing to a remote's credentials
33
40
callback and for returning from said callback.
34
41
"""
35
42
36
- def __init__ (self , username ):
43
+ def __init__ (self , username : str ):
37
44
self ._username = username
38
45
39
46
@property
@@ -44,7 +51,9 @@ def credential_type(self) -> CredentialType:
44
51
def credential_tuple (self ):
45
52
return (self ._username ,)
46
53
47
- def __call__ (self , _url , _username , _allowed ):
54
+ def __call__ (
55
+ self , _url : str , _username : str | None , _allowed : CredentialType
56
+ ) -> Username :
48
57
return self
49
58
50
59
@@ -55,7 +64,7 @@ class UserPass:
55
64
callback and for returning from said callback.
56
65
"""
57
66
58
- def __init__ (self , username , password ):
67
+ def __init__ (self , username : str , password : str ):
59
68
self ._username = username
60
69
self ._password = password
61
70
@@ -67,7 +76,9 @@ def credential_type(self) -> CredentialType:
67
76
def credential_tuple (self ):
68
77
return (self ._username , self ._password )
69
78
70
- def __call__ (self , _url , _username , _allowed ):
79
+ def __call__ (
80
+ self , _url : str , _username : str | None , _allowed : CredentialType
81
+ ) -> UserPass :
71
82
return self
72
83
73
84
@@ -94,7 +105,7 @@ class Keypair:
94
105
no passphrase is required.
95
106
"""
96
107
97
- def __init__ (self , username , pubkey , privkey , passphrase ):
108
+ def __init__ (self , username : str , pubkey : str | Path , privkey : str | Path , passphrase : str ):
98
109
self ._username = username
99
110
self ._pubkey = pubkey
100
111
self ._privkey = privkey
@@ -108,12 +119,14 @@ def credential_type(self) -> CredentialType:
108
119
def credential_tuple (self ):
109
120
return (self ._username , self ._pubkey , self ._privkey , self ._passphrase )
110
121
111
- def __call__ (self , _url , _username , _allowed ):
122
+ def __call__ (
123
+ self , _url : str , _username : str | None , _allowed : CredentialType
124
+ ) -> Keypair :
112
125
return self
113
126
114
127
115
128
class KeypairFromAgent (Keypair ):
116
- def __init__ (self , username ):
129
+ def __init__ (self , username : str ):
117
130
super ().__init__ (username , None , None , None )
118
131
119
132
0 commit comments