Show errors when misusing env variables (#14154)
This commit is contained in:
@@ -74,6 +74,16 @@ class EnvField:
|
|||||||
def value(self):
|
def value(self):
|
||||||
return self.get()
|
return self.get()
|
||||||
|
|
||||||
|
def __bool__(self):
|
||||||
|
raise RuntimeError(
|
||||||
|
"Please use `envs.YOUR_FLAG.get()` instead of `envs.YOUR_FLAG`"
|
||||||
|
)
|
||||||
|
|
||||||
|
def __len__(self):
|
||||||
|
raise RuntimeError(
|
||||||
|
"Please use `envs.YOUR_FLAG.get()` instead of `envs.YOUR_FLAG`"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class EnvTuple(EnvField):
|
class EnvTuple(EnvField):
|
||||||
def parse(self, value: str) -> tuple[str, ...]:
|
def parse(self, value: str) -> tuple[str, ...]:
|
||||||
@@ -143,6 +153,7 @@ class Envs:
|
|||||||
SGLANG_SET_CPU_AFFINITY = EnvBool(False)
|
SGLANG_SET_CPU_AFFINITY = EnvBool(False)
|
||||||
SGLANG_PROFILE_WITH_STACK = EnvBool(True)
|
SGLANG_PROFILE_WITH_STACK = EnvBool(True)
|
||||||
SGLANG_PROFILE_RECORD_SHAPES = EnvBool(True)
|
SGLANG_PROFILE_RECORD_SHAPES = EnvBool(True)
|
||||||
|
SGLANG_PROFILE_V2 = EnvBool(False)
|
||||||
SGLANG_RECORD_STEP_TIME = EnvBool(False)
|
SGLANG_RECORD_STEP_TIME = EnvBool(False)
|
||||||
SGLANG_FORCE_SHUTDOWN = EnvBool(False)
|
SGLANG_FORCE_SHUTDOWN = EnvBool(False)
|
||||||
SGLANG_DEBUG_MEMORY_POOL = EnvBool(False)
|
SGLANG_DEBUG_MEMORY_POOL = EnvBool(False)
|
||||||
@@ -383,6 +394,30 @@ def example_with_subprocess():
|
|||||||
assert output == "None"
|
assert output == "None"
|
||||||
|
|
||||||
|
|
||||||
|
def example_with_implicit_bool_avoidance():
|
||||||
|
@contextmanager
|
||||||
|
def assert_throws(message_matcher: str):
|
||||||
|
try:
|
||||||
|
yield
|
||||||
|
except Exception as e:
|
||||||
|
assert message_matcher in str(e), f"{e=}"
|
||||||
|
print(f"assert_throws find expected error: {e}")
|
||||||
|
return
|
||||||
|
raise AssertionError(f"assert_throws do not see exceptions")
|
||||||
|
|
||||||
|
with assert_throws("Please use `envs.YOUR_FLAG.get()` instead of `envs.YOUR_FLAG`"):
|
||||||
|
if envs.SGLANG_TEST_RETRACT:
|
||||||
|
pass
|
||||||
|
|
||||||
|
with assert_throws("Please use `envs.YOUR_FLAG.get()` instead of `envs.YOUR_FLAG`"):
|
||||||
|
if (1 != 1) or envs.SGLANG_TEST_RETRACT:
|
||||||
|
pass
|
||||||
|
|
||||||
|
with assert_throws("Please use `envs.YOUR_FLAG.get()` instead of `envs.YOUR_FLAG`"):
|
||||||
|
if envs.SGLANG_TEST_RETRACT or (1 == 1):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def examples():
|
def examples():
|
||||||
# Example usage for envs
|
# Example usage for envs
|
||||||
envs.SGLANG_TEST_RETRACT.clear()
|
envs.SGLANG_TEST_RETRACT.clear()
|
||||||
@@ -412,6 +447,7 @@ def examples():
|
|||||||
|
|
||||||
example_with_exit_stack()
|
example_with_exit_stack()
|
||||||
example_with_subprocess()
|
example_with_subprocess()
|
||||||
|
example_with_implicit_bool_avoidance()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user