Tiny avoid EnvField misuse (#15612)
This commit is contained in:
@@ -7,6 +7,8 @@ from typing import Any
|
|||||||
|
|
||||||
|
|
||||||
class EnvField:
|
class EnvField:
|
||||||
|
_allow_set_name = True
|
||||||
|
|
||||||
def __init__(self, default: Any):
|
def __init__(self, default: Any):
|
||||||
self.default = default
|
self.default = default
|
||||||
# NOTE: we use None to indicate whether the value is set or not
|
# NOTE: we use None to indicate whether the value is set or not
|
||||||
@@ -15,6 +17,7 @@ class EnvField:
|
|||||||
self._set_to_none = False
|
self._set_to_none = False
|
||||||
|
|
||||||
def __set_name__(self, owner, name):
|
def __set_name__(self, owner, name):
|
||||||
|
assert EnvField._allow_set_name, "Usage like `a = envs.A` is not allowed"
|
||||||
self.name = name
|
self.name = name
|
||||||
|
|
||||||
def parse(self, value: str) -> Any:
|
def parse(self, value: str) -> Any:
|
||||||
@@ -379,6 +382,7 @@ class Envs:
|
|||||||
|
|
||||||
|
|
||||||
envs = Envs()
|
envs = Envs()
|
||||||
|
EnvField._allow_set_name = False
|
||||||
|
|
||||||
|
|
||||||
def _print_deprecated_env(new_name: str, old_name: str):
|
def _print_deprecated_env(new_name: str, old_name: str):
|
||||||
|
|||||||
Reference in New Issue
Block a user