Skip to content

Commit dd4d308

Browse files
authored
Add type hints (#546)
1 parent 3137c4f commit dd4d308

1 file changed

Lines changed: 17 additions & 16 deletions

File tree

environ/environ.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import re
2020
import sys
2121
import warnings
22+
from typing import Union, TypeVar, List, Tuple, Dict
2223
from urllib.parse import (
2324
parse_qs,
2425
ParseResult,
@@ -217,7 +218,7 @@ def __call__(self, var, cast=None, default=NOTSET, parse_default=False):
217218
def __contains__(self, var):
218219
return var in self.ENVIRON
219220

220-
def str(self, var, default=NOTSET, multiline=False):
221+
def str(self, var, default: Union[str, NoValue] = NOTSET, multiline=False) -> str:
221222
"""
222223
:rtype: str
223224
"""
@@ -226,7 +227,7 @@ def str(self, var, default=NOTSET, multiline=False):
226227
return re.sub(r'(\\r)?\\n', r'\n', value)
227228
return value
228229

229-
def bytes(self, var, default=NOTSET, encoding='utf8'):
230+
def bytes(self, var, default: Union[bytes, NoValue] = NOTSET, encoding='utf8') -> bytes:
230231
"""
231232
:rtype: bytes
232233
"""
@@ -235,19 +236,19 @@ def bytes(self, var, default=NOTSET, encoding='utf8'):
235236
return value.encode(encoding)
236237
return value
237238

238-
def bool(self, var, default=NOTSET):
239+
def bool(self, var, default: Union[bool, NoValue] = NOTSET) -> bool:
239240
"""
240241
:rtype: bool
241242
"""
242243
return self.get_value(var, cast=bool, default=default)
243244

244-
def int(self, var, default=NOTSET):
245+
def int(self, var, default: Union[int, NoValue] = NOTSET) -> int:
245246
"""
246247
:rtype: int
247248
"""
248249
return self.get_value(var, cast=int, default=default)
249250

250-
def float(self, var, default=NOTSET):
251+
def float(self, var, default: Union[float, NoValue] = NOTSET) -> float:
251252
"""
252253
:rtype: float
253254
"""
@@ -259,7 +260,7 @@ def json(self, var, default=NOTSET):
259260
"""
260261
return self.get_value(var, cast=json.loads, default=default)
261262

262-
def list(self, var, cast=None, default=NOTSET):
263+
def list(self, var, cast=None, default=NOTSET) -> List:
263264
"""
264265
:rtype: list
265266
"""
@@ -269,7 +270,7 @@ def list(self, var, cast=None, default=NOTSET):
269270
default=default
270271
)
271272

272-
def tuple(self, var, cast=None, default=NOTSET):
273+
def tuple(self, var, cast=None, default=NOTSET) -> Tuple:
273274
"""
274275
:rtype: tuple
275276
"""
@@ -279,13 +280,13 @@ def tuple(self, var, cast=None, default=NOTSET):
279280
default=default
280281
)
281282

282-
def dict(self, var, cast=dict, default=NOTSET):
283+
def dict(self, var, cast=dict, default=NOTSET) -> Dict:
283284
"""
284285
:rtype: dict
285286
"""
286287
return self.get_value(var, cast=cast, default=default)
287288

288-
def url(self, var, default=NOTSET):
289+
def url(self, var, default=NOTSET) -> ParseResult:
289290
"""
290291
:rtype: urllib.parse.ParseResult
291292
"""
@@ -296,7 +297,7 @@ def url(self, var, default=NOTSET):
296297
parse_default=True
297298
)
298299

299-
def db_url(self, var=DEFAULT_DATABASE_ENV, default=NOTSET, engine=None):
300+
def db_url(self, var=DEFAULT_DATABASE_ENV, default=NOTSET, engine=None) -> Dict:
300301
"""Returns a config dictionary, defaulting to DATABASE_URL.
301302
302303
The db method is an alias for db_url.
@@ -310,7 +311,7 @@ def db_url(self, var=DEFAULT_DATABASE_ENV, default=NOTSET, engine=None):
310311

311312
db = db_url
312313

313-
def cache_url(self, var=DEFAULT_CACHE_ENV, default=NOTSET, backend=None):
314+
def cache_url(self, var=DEFAULT_CACHE_ENV, default=NOTSET, backend=None) -> Dict:
314315
"""Returns a config dictionary, defaulting to CACHE_URL.
315316
316317
The cache method is an alias for cache_url.
@@ -324,7 +325,7 @@ def cache_url(self, var=DEFAULT_CACHE_ENV, default=NOTSET, backend=None):
324325

325326
cache = cache_url
326327

327-
def email_url(self, var=DEFAULT_EMAIL_ENV, default=NOTSET, backend=None):
328+
def email_url(self, var=DEFAULT_EMAIL_ENV, default=NOTSET, backend=None) -> Dict:
328329
"""Returns a config dictionary, defaulting to EMAIL_URL.
329330
330331
The email method is an alias for email_url.
@@ -338,7 +339,7 @@ def email_url(self, var=DEFAULT_EMAIL_ENV, default=NOTSET, backend=None):
338339

339340
email = email_url
340341

341-
def search_url(self, var=DEFAULT_SEARCH_ENV, default=NOTSET, engine=None):
342+
def search_url(self, var=DEFAULT_SEARCH_ENV, default: Union[Dict, NoValue] = NOTSET, engine=None) -> Dict:
342343
"""Returns a config dictionary, defaulting to SEARCH_URL.
343344
344345
:rtype: dict
@@ -348,8 +349,8 @@ def search_url(self, var=DEFAULT_SEARCH_ENV, default=NOTSET, engine=None):
348349
engine=engine
349350
)
350351

351-
def channels_url(self, var=DEFAULT_CHANNELS_ENV, default=NOTSET,
352-
backend=None):
352+
def channels_url(self, var=DEFAULT_CHANNELS_ENV, default: Union[Dict, NoValue] = NOTSET,
353+
backend=None) -> Dict:
353354
"""Returns a config dictionary, defaulting to CHANNELS_URL.
354355
355356
:rtype: dict
@@ -361,7 +362,7 @@ def channels_url(self, var=DEFAULT_CHANNELS_ENV, default=NOTSET,
361362

362363
channels = channels_url
363364

364-
def path(self, var, default=NOTSET, **kwargs):
365+
def path(self, var, default: Union['Path', NoValue] = NOTSET, **kwargs) -> 'Path':
365366
"""
366367
:rtype: Path
367368
"""

0 commit comments

Comments
 (0)