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
+
36
+
29
37
class Username :
30
38
"""Username credentials
31
39
32
40
This is an object suitable for passing to a remote's credentials
33
41
callback and for returning from said callback.
34
42
"""
35
43
36
- def __init__ (self , username ):
44
+ def __init__ (self , username : str ):
37
45
self ._username = username
38
46
39
47
@property
@@ -44,7 +52,9 @@ def credential_type(self) -> CredentialType:
44
52
def credential_tuple (self ):
45
53
return (self ._username ,)
46
54
47
- def __call__ (self , _url , _username , _allowed ):
55
+ def __call__ (
56
+ self , _url : str , _username : str | None , _allowed : CredentialType
57
+ ) -> Username :
48
58
return self
49
59
50
60
@@ -55,7 +65,7 @@ class UserPass:
55
65
callback and for returning from said callback.
56
66
"""
57
67
58
- def __init__ (self , username , password ):
68
+ def __init__ (self , username : str , password : str ):
59
69
self ._username = username
60
70
self ._password = password
61
71
@@ -67,7 +77,9 @@ def credential_type(self) -> CredentialType:
67
77
def credential_tuple (self ):
68
78
return (self ._username , self ._password )
69
79
70
- def __call__ (self , _url , _username , _allowed ):
80
+ def __call__ (
81
+ self , _url : str , _username : str | None , _allowed : CredentialType
82
+ ) -> UserPass :
71
83
return self
72
84
73
85
@@ -94,7 +106,9 @@ class Keypair:
94
106
no passphrase is required.
95
107
"""
96
108
97
- def __init__ (self , username , pubkey , privkey , passphrase ):
109
+ def __init__ (
110
+ self , username : str , pubkey : str | Path , privkey : str | Path , passphrase : str
111
+ ):
98
112
self ._username = username
99
113
self ._pubkey = pubkey
100
114
self ._privkey = privkey
@@ -108,12 +122,14 @@ def credential_type(self) -> CredentialType:
108
122
def credential_tuple (self ):
109
123
return (self ._username , self ._pubkey , self ._privkey , self ._passphrase )
110
124
111
- def __call__ (self , _url , _username , _allowed ):
125
+ def __call__ (
126
+ self , _url : str , _username : str | None , _allowed : CredentialType
127
+ ) -> Keypair :
112
128
return self
113
129
114
130
115
131
class KeypairFromAgent (Keypair ):
116
- def __init__ (self , username ):
132
+ def __init__ (self , username : str ):
117
133
super ().__init__ (username , None , None , None )
118
134
119
135
0 commit comments