Skip to content

Commit f85950f

Browse files
committed
Resolve environment variables when loading architecture
Bump version
1 parent 25764d2 commit f85950f

7 files changed

Lines changed: 20 additions & 23 deletions

File tree

docs/index.html

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1373,17 +1373,14 @@ <h1>PyNinja - Executors<a class="headerlink" href="#pyninja-executors" title="Pe
13731373

13741374
<dl class="py function">
13751375
<dt class="sig sig-object py" id="pyninja.executors.squire.load_architecture">
1376-
<span class="sig-prename descclassname"><span class="pre">pyninja.executors.squire.</span></span><span class="sig-name descname"><span class="pre">load_architecture</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">env</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pyninja.modules.models.EnvConfig" title="pyninja.modules.models.EnvConfig"><span class="pre">EnvConfig</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="#pyninja.modules.models.Architecture" title="pyninja.modules.models.Architecture"><span class="pre">Architecture</span></a></span></span><a class="headerlink" href="#pyninja.executors.squire.load_architecture" title="Permalink to this definition"></a></dt>
1376+
<span class="sig-prename descclassname"><span class="pre">pyninja.executors.squire.</span></span><span class="sig-name descname"><span class="pre">load_architecture</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="#pyninja.modules.models.Architecture" title="pyninja.modules.models.Architecture"><span class="pre">Architecture</span></a></span></span><a class="headerlink" href="#pyninja.executors.squire.load_architecture" title="Permalink to this definition"></a></dt>
13771377
<dd><p>Load architecture details from environment variables.</p>
13781378
<dl class="field-list simple">
1379-
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
1380-
<dd class="field-odd"><p><strong>env</strong> – Environment variables.</p>
1381-
</dd>
1382-
<dt class="field-even">Returns<span class="colon">:</span></dt>
1383-
<dd class="field-even"><p>Returns a reference to the <code class="docutils literal notranslate"><span class="pre">Architecture</span></code> object.</p>
1379+
<dt class="field-odd">Returns<span class="colon">:</span></dt>
1380+
<dd class="field-odd"><p>Returns a reference to the <code class="docutils literal notranslate"><span class="pre">Architecture</span></code> object.</p>
13841381
</dd>
1385-
<dt class="field-odd">Return type<span class="colon">:</span></dt>
1386-
<dd class="field-odd"><p><a class="reference internal" href="#pyninja.modules.models.Architecture" title="pyninja.modules.models.Architecture">Architecture</a></p>
1382+
<dt class="field-even">Return type<span class="colon">:</span></dt>
1383+
<dd class="field-even"><p><a class="reference internal" href="#pyninja.modules.models.Architecture" title="pyninja.modules.models.Architecture">Architecture</a></p>
13871384
</dd>
13881385
</dl>
13891386
</dd></dl>

pyninja/executors/squire.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -267,20 +267,20 @@ def load_env(**kwargs) -> models.EnvConfig:
267267

268268

269269
@cache.timed_cache(60)
270-
def load_architecture(env: models.EnvConfig) -> models.Architecture:
270+
def load_architecture() -> models.Architecture:
271271
"""Load architecture details from environment variables.
272272
273-
Args:
274-
env: Environment variables.
275-
276273
Returns:
277274
Architecture:
278275
Returns a reference to the ``Architecture`` object.
279276
"""
277+
if not models.env:
278+
LOGGER.warning("Environment variables were not loaded. Loading with default settings.")
279+
models.env = load_env()
280280
return models.Architecture(
281-
gpu=pyarchitecture.gpu.get_gpu_info(env.gpu_lib),
282-
cpu=pyarchitecture.cpu.get_cpu_info(env.processor_lib),
283-
disks=pyarchitecture.disks.get_all_disks(env.disk_lib),
281+
gpu=pyarchitecture.gpu.get_gpu_info(models.env.gpu_lib),
282+
cpu=pyarchitecture.cpu.get_cpu_info(models.env.processor_lib),
283+
disks=pyarchitecture.disks.get_all_disks(models.env.disk_lib),
284284
)
285285

286286

pyninja/monitor/resources.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def landing_page() -> Dict[str, Any]:
3434
"CPU Cores": psutil.cpu_count(logical=True),
3535
"Uptime": squire.convert_seconds(int(timedelta(seconds=time.time() - psutil.boot_time()).total_seconds())),
3636
}
37-
architecture = squire.load_architecture(models.env)
37+
architecture = squire.load_architecture()
3838
if architecture.cpu:
3939
LOGGER.debug("Processor: %s", architecture.cpu)
4040
sys_info_basic["CPU"] = architecture.cpu
@@ -66,7 +66,7 @@ async def get_disk_info() -> List[Dict[str, str | int]]:
6666
Returns a list of key-value pairs with ID, name, and usage.
6767
"""
6868
usage_metrics = []
69-
architecture = squire.load_architecture(models.env)
69+
architecture = squire.load_architecture()
7070
for disk in architecture.disks:
7171
disk_usage: Dict[str, str | int | float | None] = {
7272
"name": disk.get("name"),

pyninja/routes/metrics.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
99

1010
from pyninja.executors import auth, squire
11-
from pyninja.modules import exceptions, models
11+
from pyninja.modules import exceptions
1212

1313
LOGGER = logging.getLogger("uvicorn.default")
1414
BEARER_AUTH = HTTPBearer()
@@ -145,5 +145,5 @@ async def get_all_disks(
145145
await auth.level_1(request, apikey)
146146
raise exceptions.APIResponse(
147147
status_code=HTTPStatus.OK.real,
148-
detail=squire.load_architecture(models.env),
148+
detail=squire.load_architecture(),
149149
)

pyninja/routes/namespace.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
from pyninja.executors import auth, squire
1010
from pyninja.features import application, operations, process, service
11-
from pyninja.modules import exceptions, models
11+
from pyninja.modules import exceptions
1212

1313
LOGGER = logging.getLogger("uvicorn.default")
1414
BEARER_AUTH = HTTPBearer()
@@ -278,7 +278,7 @@ async def get_processor_name(
278278
Raises the HTTPStatus object with a status code and detail as response.
279279
"""
280280
await auth.level_1(request, apikey)
281-
architecture = squire.load_architecture(models.env)
281+
architecture = squire.load_architecture()
282282
if architecture.cpu:
283283
raise exceptions.APIResponse(status_code=HTTPStatus.OK.real, detail=architecture.cpu)
284284
raise exceptions.APIResponse(

pyninja/routes/observability.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ async def get_observability(
5252
int(timedelta(seconds=time.time() - psutil.boot_time()).total_seconds())
5353
)
5454

55-
architecture = squire.load_architecture(models.env)
55+
architecture = squire.load_architecture()
5656
if architecture.cpu:
5757
base_payload["cpu_name"] = architecture.cpu
5858
if gpus := architecture.gpu:

pyninja/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "5.1.0"
1+
__version__ = "5.1.1"

0 commit comments

Comments
 (0)