Skip to content

Commit 258a374

Browse files
committed
fixed linter error
1 parent f7443ea commit 258a374

3 files changed

Lines changed: 17 additions & 11 deletions

File tree

src/dotenv/crypt.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import base64
22
import re
3+
from typing import Optional
34

45
from cryptography.fernet import Fernet
56

@@ -13,8 +14,11 @@ def is_encrypted_value(cls, value) -> bool:
1314
return not not re.match(ENCRYPTION_REGEX, value)
1415

1516
@classmethod
16-
def _extract_encrypted_value(cls, value) -> str:
17-
return re.match(ENCRYPTION_REGEX, value).group(1)
17+
def _extract_encrypted_value(cls, value) -> Optional[str]:
18+
match = re.match(ENCRYPTION_REGEX, value)
19+
if match:
20+
return match.group(1)
21+
return None
1822

1923
@classmethod
2024
def generate_key(cls) -> str:
@@ -26,7 +30,10 @@ def decrypt_value(cls, value: str, key: str) -> str:
2630
if not key:
2731
return value
2832
key_bytes = base64.decodebytes(key.encode('utf-8'))
29-
value_bytes = base64.decodebytes(cls._extract_encrypted_value(value).encode('utf-8'))
33+
encrypted_value = cls._extract_encrypted_value(value)
34+
if not encrypted_value:
35+
return value
36+
value_bytes = base64.decodebytes(encrypted_value.encode('utf-8'))
3037
decrypted_bytes = Fernet(key=key_bytes).decrypt(value_bytes)
3138
return decrypted_bytes.decode('utf-8')
3239

src/dotenv/main.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def __init__(
4040
encoding: Optional[str] = None,
4141
interpolate: bool = True,
4242
override: bool = True,
43-
secret_key: str = None
43+
secret_key: Optional[str] = None
4444
) -> None:
4545
self.dotenv_path: Optional[StrPath] = dotenv_path
4646
self.stream: Optional[IO[str]] = stream
@@ -158,7 +158,7 @@ def set_key(
158158
quote_mode: str = "always",
159159
export: bool = False,
160160
encoding: Optional[str] = "utf-8",
161-
secret_key: str = None,
161+
secret_key: Optional[str] = None,
162162
) -> Tuple[Optional[bool], str, str]:
163163
"""
164164
Adds or Updates a key/value to the given .env
@@ -205,7 +205,7 @@ def unset_key(
205205
key_to_unset: str,
206206
quote_mode: str = "always",
207207
encoding: Optional[str] = "utf-8",
208-
secret_key: str = None
208+
secret_key: Optional[str] = None
209209
) -> Tuple[Optional[bool], str]:
210210
"""
211211
Removes a given key from the given `.env` file.

src/dotenv/parser.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def parse_unquoted_value(reader: Reader) -> str:
120120
return re.sub(r"\s+#.*", "", part).rstrip()
121121

122122

123-
def parse_value(reader: Reader, secret_key: str) -> str:
123+
def parse_value(reader: Reader, secret_key: Optional[str]) -> str:
124124
char = reader.peek(1)
125125
if char == u"'":
126126
(value,) = reader.read_regex(_single_quoted_value)
@@ -138,7 +138,7 @@ def parse_value(reader: Reader, secret_key: str) -> str:
138138
return value
139139

140140

141-
def parse_binding(reader: Reader, secret_key: str = None) -> Binding:
141+
def parse_binding(reader: Reader, secret_key: Optional[str] = None) -> Binding:
142142
reader.set_mark()
143143
try:
144144
reader.read_regex(_multiline_whitespace)
@@ -174,13 +174,12 @@ def parse_binding(reader: Reader, secret_key: str = None) -> Binding:
174174
error=True,
175175
)
176176

177-
def parse_secret_value(value: str) -> str:
178177

178+
def parse_secret_value(value: str) -> str:
179179
return value
180180

181181

182-
183-
def parse_stream(stream: IO[str], secret_key: str = None) -> Iterator[Binding]:
182+
def parse_stream(stream: IO[str], secret_key: Optional[str] = None) -> Iterator[Binding]:
184183
reader = Reader(stream)
185184
while reader.has_next():
186185
yield parse_binding(reader, secret_key)

0 commit comments

Comments
 (0)