pyfds-evac 0.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
pyfds_evac/__init__.py ADDED
@@ -0,0 +1,91 @@
1
+ """fds-evac package.
2
+
3
+ The public names below are resolved lazily (PEP 562): ``import pyfds_evac``
4
+ stays cheap, and the first attribute access imports the defining module.
5
+ """
6
+
7
+ import importlib
8
+ from typing import TYPE_CHECKING
9
+
10
+ if TYPE_CHECKING:
11
+ from pyfds_evac.core.fed import (
12
+ DefaultFedConfig,
13
+ DefaultFedModel,
14
+ DefaultHeatFedModel,
15
+ FdsFedField,
16
+ FdsHeatField,
17
+ TenabilityConfig,
18
+ )
19
+ from pyfds_evac.core.route_graph import RerouteConfig, RouteCostConfig
20
+ from pyfds_evac.core.run_config import build_run_kwargs
21
+ from pyfds_evac.core.scenario import (
22
+ ProgressEvent,
23
+ Scenario,
24
+ ScenarioResult,
25
+ load_scenario,
26
+ run_scenario,
27
+ )
28
+ from pyfds_evac.core.smoke_speed import (
29
+ ConstantExtinctionField,
30
+ ExtinctionField,
31
+ SmokeSpeedConfig,
32
+ SmokeSpeedModel,
33
+ )
34
+ from pyfds_evac.core.visibility import VisibilityModel
35
+
36
+ _EXPORTS = {
37
+ "load_scenario": "pyfds_evac.core.scenario",
38
+ "run_scenario": "pyfds_evac.core.scenario",
39
+ "Scenario": "pyfds_evac.core.scenario",
40
+ "ScenarioResult": "pyfds_evac.core.scenario",
41
+ "ProgressEvent": "pyfds_evac.core.scenario",
42
+ "build_run_kwargs": "pyfds_evac.core.run_config",
43
+ "SmokeSpeedModel": "pyfds_evac.core.smoke_speed",
44
+ "SmokeSpeedConfig": "pyfds_evac.core.smoke_speed",
45
+ "ExtinctionField": "pyfds_evac.core.smoke_speed",
46
+ "ConstantExtinctionField": "pyfds_evac.core.smoke_speed",
47
+ "DefaultFedModel": "pyfds_evac.core.fed",
48
+ "DefaultFedConfig": "pyfds_evac.core.fed",
49
+ "FdsFedField": "pyfds_evac.core.fed",
50
+ "DefaultHeatFedModel": "pyfds_evac.core.fed",
51
+ "FdsHeatField": "pyfds_evac.core.fed",
52
+ "TenabilityConfig": "pyfds_evac.core.fed",
53
+ "RerouteConfig": "pyfds_evac.core.route_graph",
54
+ "RouteCostConfig": "pyfds_evac.core.route_graph",
55
+ "VisibilityModel": "pyfds_evac.core.visibility",
56
+ }
57
+
58
+ __all__ = [
59
+ "ConstantExtinctionField",
60
+ "DefaultFedConfig",
61
+ "DefaultFedModel",
62
+ "DefaultHeatFedModel",
63
+ "ExtinctionField",
64
+ "FdsFedField",
65
+ "FdsHeatField",
66
+ "ProgressEvent",
67
+ "RerouteConfig",
68
+ "RouteCostConfig",
69
+ "Scenario",
70
+ "ScenarioResult",
71
+ "SmokeSpeedConfig",
72
+ "SmokeSpeedModel",
73
+ "TenabilityConfig",
74
+ "VisibilityModel",
75
+ "build_run_kwargs",
76
+ "load_scenario",
77
+ "run_scenario",
78
+ ]
79
+
80
+
81
+ def __getattr__(name: str):
82
+ module_name = _EXPORTS.get(name)
83
+ if module_name is None:
84
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
85
+ value = getattr(importlib.import_module(module_name), name)
86
+ globals()[name] = value
87
+ return value
88
+
89
+
90
+ def __dir__() -> list[str]:
91
+ return sorted(set(globals()) | set(__all__))
pyfds_evac/__main__.py ADDED
@@ -0,0 +1,6 @@
1
+ """``python -m pyfds_evac``: the ``pyfds-evac`` command line interface."""
2
+
3
+ from pyfds_evac.cli import main
4
+
5
+ if __name__ == "__main__":
6
+ raise SystemExit(main())