primitive 0.2.22__tar.gz → 0.2.26__tar.gz
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.
- {primitive-0.2.22 → primitive-0.2.26}/PKG-INFO +1 -2
- {primitive-0.2.22 → primitive-0.2.26}/pyproject.toml +1 -1
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/__about__.py +1 -1
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/hardware/commands.py +20 -4
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/monitor/actions.py +35 -14
- primitive-0.2.26/src/primitive/monitor/commands.py +15 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/organizations/actions.py +28 -0
- {primitive-0.2.22 → primitive-0.2.26}/uv.lock +0 -34
- primitive-0.2.22/src/primitive/monitor/commands.py +0 -13
- {primitive-0.2.22 → primitive-0.2.26}/.git-hooks/pre-commit +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/.gitattributes +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/.github/workflows/lint.yml +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/.github/workflows/publish.yml +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/.github/workflows/pyright.yml +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/.gitignore +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/.vscode/extensions.json +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/.vscode/settings.json +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/LICENSE.txt +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/Makefile +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/README.md +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/linux setup.md +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/agent/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/agent/actions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/agent/commands.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/agent/runner.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/agent/uploader.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/auth/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/auth/actions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/auth/commands.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/auth/graphql/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/auth/graphql/queries.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/cli.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/client.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/daemons/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/daemons/actions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/daemons/commands.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/daemons/launch_agents.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/daemons/launch_service.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/daemons/ui.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/db/base.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/db/models.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/db/sqlite.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/exec/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/exec/actions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/exec/commands.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/exec/interactive.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/files/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/files/actions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/files/commands.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/files/graphql/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/files/graphql/fragments.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/files/graphql/mutations.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/files/graphql/queries.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/git/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/git/actions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/git/commands.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/git/graphql/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/git/graphql/queries.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/graphql/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/graphql/relay.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/graphql/sdk.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/graphql/utility_fragments.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/hardware/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/hardware/actions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/hardware/android.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/hardware/graphql/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/hardware/graphql/fragments.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/hardware/graphql/mutations.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/hardware/graphql/queries.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/hardware/ui.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/jobs/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/jobs/actions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/jobs/commands.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/jobs/graphql/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/jobs/graphql/fragments.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/jobs/graphql/mutations.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/jobs/graphql/queries.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/organizations/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/organizations/commands.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/organizations/graphql/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/organizations/graphql/fragments.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/organizations/graphql/mutations.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/organizations/graphql/queries.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/projects/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/projects/actions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/projects/commands.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/projects/graphql/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/projects/graphql/fragments.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/projects/graphql/mutations.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/projects/graphql/queries.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/provisioning/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/provisioning/actions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/provisioning/graphql/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/provisioning/graphql/queries.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/reservations/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/reservations/actions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/reservations/commands.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/reservations/graphql/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/reservations/graphql/fragments.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/reservations/graphql/mutations.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/reservations/graphql/queries.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/utils/__init__.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/utils/actions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/utils/auth.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/utils/cache.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/utils/chunk_size.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/utils/config.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/utils/daemons.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/utils/exceptions.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/utils/memory_size.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/utils/printer.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/utils/shell.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/src/primitive/utils/text.py +0 -0
- {primitive-0.2.22 → primitive-0.2.26}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: primitive
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.26
|
4
4
|
Project-URL: Documentation, https://github.com//primitivecorp/primitive-cli#readme
|
5
5
|
Project-URL: Issues, https://github.com//primitivecorp/primitive-cli/issues
|
6
6
|
Project-URL: Source, https://github.com//primitivecorp/primitive-cli
|
@@ -22,7 +22,6 @@ Requires-Dist: click
|
|
22
22
|
Requires-Dist: gql[all]
|
23
23
|
Requires-Dist: loguru
|
24
24
|
Requires-Dist: paramiko[invoke]
|
25
|
-
Requires-Dist: primitive-pal==0.1.4
|
26
25
|
Requires-Dist: psutil>=7.0.0
|
27
26
|
Requires-Dist: pyyaml
|
28
27
|
Requires-Dist: rich>=13.9.4
|
@@ -1,13 +1,15 @@
|
|
1
|
-
import
|
1
|
+
from typing import TYPE_CHECKING, Optional
|
2
2
|
|
3
3
|
import click
|
4
4
|
|
5
5
|
from ..utils.printer import print_result
|
6
6
|
from .ui import render_hardware_table
|
7
7
|
|
8
|
-
if
|
8
|
+
if TYPE_CHECKING:
|
9
9
|
from ..client import Primitive
|
10
10
|
|
11
|
+
from loguru import logger
|
12
|
+
|
11
13
|
|
12
14
|
@click.group()
|
13
15
|
@click.pass_context
|
@@ -26,11 +28,25 @@ def systeminfo_command(context):
|
|
26
28
|
|
27
29
|
|
28
30
|
@cli.command("register")
|
31
|
+
@click.option(
|
32
|
+
"--organization",
|
33
|
+
type=str,
|
34
|
+
help="Organization [slug] to register hardware with",
|
35
|
+
)
|
29
36
|
@click.pass_context
|
30
|
-
def register_command(context):
|
37
|
+
def register_command(context, organization: Optional[str] = None):
|
31
38
|
"""Register Hardware with Primitive"""
|
32
39
|
primitive: Primitive = context.obj.get("PRIMITIVE")
|
33
|
-
|
40
|
+
|
41
|
+
organization_id = None
|
42
|
+
if organization:
|
43
|
+
organization_data = primitive.organizations.get_organization(slug=organization)
|
44
|
+
organization_id = organization_data.get("id")
|
45
|
+
|
46
|
+
if not organization_id:
|
47
|
+
logger.info("Registering hardware with the default organization.")
|
48
|
+
|
49
|
+
result = primitive.hardware.register(organization_id=organization_id)
|
34
50
|
color = "green" if result else "red"
|
35
51
|
if result.data.get("registerHardware"):
|
36
52
|
message = "Hardware registered successfully"
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import sys
|
2
2
|
from time import sleep
|
3
|
+
from typing import Optional
|
3
4
|
|
4
5
|
import psutil
|
5
6
|
from loguru import logger
|
@@ -12,7 +13,7 @@ from primitive.utils.exceptions import P_CLI_100
|
|
12
13
|
|
13
14
|
|
14
15
|
class Monitor(BaseAction):
|
15
|
-
def start(self):
|
16
|
+
def start(self, job_run_id: Optional[str] = None):
|
16
17
|
logger.remove()
|
17
18
|
logger.add(
|
18
19
|
sink=sys.stderr,
|
@@ -24,21 +25,33 @@ class Monitor(BaseAction):
|
|
24
25
|
logger.info("[*] primitive monitor")
|
25
26
|
logger.info(f"[*] Version: {__version__}")
|
26
27
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
# TODO: tighten logic for determining if we're running in a container
|
29
|
+
RUNNING_IN_CONTAINER = False
|
30
|
+
if job_run_id is not None:
|
31
|
+
logger.info("[*] Running in container...")
|
32
|
+
RUNNING_IN_CONTAINER = True
|
33
|
+
|
34
|
+
# can't check if if it is a container
|
35
|
+
if not RUNNING_IN_CONTAINER:
|
36
|
+
try:
|
37
|
+
# hey stupid:
|
38
|
+
# do not set is_available to True here, it will mess up the reservation logic
|
39
|
+
# only set is_available after we've checked that no active reservation is present
|
40
|
+
# setting is_available of the parent also effects the children,
|
41
|
+
# which may have active reservations as well
|
42
|
+
self.primitive.hardware.check_in_http(is_online=True)
|
43
|
+
except Exception as exception:
|
44
|
+
logger.exception(f"Error checking in hardware: {exception}")
|
45
|
+
sys.exit(1)
|
37
46
|
|
38
47
|
# Initialize the database
|
39
48
|
sqlite.init()
|
40
49
|
|
41
50
|
try:
|
51
|
+
if job_run_id is not None:
|
52
|
+
JobRun.objects.create(job_run_id=job_run_id, pid=None)
|
53
|
+
logger.debug(f"Creating job run in database: {job_run_id}")
|
54
|
+
|
42
55
|
active_reservation_id = None
|
43
56
|
active_reservation_pk = None
|
44
57
|
|
@@ -95,6 +108,13 @@ class Monitor(BaseAction):
|
|
95
108
|
sleep(1)
|
96
109
|
continue
|
97
110
|
|
111
|
+
if RUNNING_IN_CONTAINER:
|
112
|
+
# if we get here and we're running in a container,
|
113
|
+
# it means the job run is complete and there is nothing left in the database
|
114
|
+
# so we can exit
|
115
|
+
logger.debug("Running in container, initial job complete.")
|
116
|
+
sys.exit(0)
|
117
|
+
|
98
118
|
# Second, check for active reservations
|
99
119
|
hardware = self.primitive.hardware.get_own_hardware_details()
|
100
120
|
if hardware["activeReservation"]:
|
@@ -189,9 +209,10 @@ class Monitor(BaseAction):
|
|
189
209
|
except KeyboardInterrupt:
|
190
210
|
logger.info("[*] Stopping primitive monitor...")
|
191
211
|
try:
|
192
|
-
|
193
|
-
|
194
|
-
|
212
|
+
if not RUNNING_IN_CONTAINER:
|
213
|
+
self.primitive.hardware.check_in_http(
|
214
|
+
is_available=False, is_online=False, stopping_agent=True
|
215
|
+
)
|
195
216
|
|
196
217
|
except P_CLI_100 as exception:
|
197
218
|
logger.error("[*] Error stopping primitive monitor.")
|
@@ -0,0 +1,15 @@
|
|
1
|
+
from typing import TYPE_CHECKING, Optional
|
2
|
+
|
3
|
+
import click
|
4
|
+
|
5
|
+
if TYPE_CHECKING:
|
6
|
+
from ..client import Primitive
|
7
|
+
|
8
|
+
|
9
|
+
@click.command("monitor")
|
10
|
+
@click.option("--job-run-id", type=str, help="Explicit Job Run to pull")
|
11
|
+
@click.pass_context
|
12
|
+
def cli(context, job_run_id: Optional[str] = None):
|
13
|
+
"""monitor"""
|
14
|
+
primitive: Primitive = context.obj.get("PRIMITIVE")
|
15
|
+
primitive.monitor.start(job_run_id=job_run_id)
|
@@ -39,3 +39,31 @@ class Organizations(BaseAction):
|
|
39
39
|
)
|
40
40
|
organizations = [edge["node"] for edge in result.data["organizations"]["edges"]]
|
41
41
|
return organizations
|
42
|
+
|
43
|
+
@guard
|
44
|
+
def get_organization(
|
45
|
+
self,
|
46
|
+
organization_id: Optional[str] = None,
|
47
|
+
slug: Optional[str] = None,
|
48
|
+
):
|
49
|
+
query = gql(organizations_query)
|
50
|
+
|
51
|
+
filters = {}
|
52
|
+
if organization_id:
|
53
|
+
filters["organization"] = {"id": organization_id}
|
54
|
+
if slug:
|
55
|
+
filters["slug"] = {"exact": slug}
|
56
|
+
|
57
|
+
variables = {
|
58
|
+
"first": 1,
|
59
|
+
"filters": filters,
|
60
|
+
"order": {
|
61
|
+
"createdAt": "DESC",
|
62
|
+
},
|
63
|
+
}
|
64
|
+
|
65
|
+
result = self.primitive.session.execute(
|
66
|
+
query, variable_values=variables, get_execution_result=True
|
67
|
+
)
|
68
|
+
organizations = [edge["node"] for edge in result.data["organizations"]["edges"]]
|
69
|
+
return organizations[0]
|
@@ -846,7 +846,6 @@ dependencies = [
|
|
846
846
|
{ name = "gql", extra = ["all"] },
|
847
847
|
{ name = "loguru" },
|
848
848
|
{ name = "paramiko", extra = ["invoke"] },
|
849
|
-
{ name = "primitive-pal" },
|
850
849
|
{ name = "psutil" },
|
851
850
|
{ name = "pyyaml" },
|
852
851
|
{ name = "rich" },
|
@@ -868,7 +867,6 @@ requires-dist = [
|
|
868
867
|
{ name = "gql", extras = ["all"] },
|
869
868
|
{ name = "loguru" },
|
870
869
|
{ name = "paramiko", extras = ["invoke"] },
|
871
|
-
{ name = "primitive-pal", specifier = "==0.1.4" },
|
872
870
|
{ name = "psutil", specifier = ">=7.0.0" },
|
873
871
|
{ name = "pyyaml" },
|
874
872
|
{ name = "rich", specifier = ">=13.9.4" },
|
@@ -884,38 +882,6 @@ dev = [
|
|
884
882
|
{ name = "ruff" },
|
885
883
|
]
|
886
884
|
|
887
|
-
[[package]]
|
888
|
-
name = "primitive-pal"
|
889
|
-
version = "0.1.4"
|
890
|
-
source = { registry = "https://pypi.org/simple" }
|
891
|
-
sdist = { url = "https://files.pythonhosted.org/packages/4d/aa/ec3fa7ba0c007d4cb87c53fe2b200ee148772a949433b36c0f0f5cb637dd/primitive_pal-0.1.4.tar.gz", hash = "sha256:71372429a9f594f9f032789599e4d80790b5a118478a967f7a5e95f1b39966b0", size = 36244 }
|
892
|
-
wheels = [
|
893
|
-
{ url = "https://files.pythonhosted.org/packages/3c/72/c40ad4cf49b37788ad93ec59e66064789b827d9c1f13841ef1d1b62bd6cc/primitive_pal-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f179ddf100e413227a47fe109612a13a605745564eb961363f0cc346faf07229", size = 3086178 },
|
894
|
-
{ url = "https://files.pythonhosted.org/packages/5a/b2/9433f6aa74a8f0b866975376c5ad46035b9846b26af85332b34bad311240/primitive_pal-0.1.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:73ec5d3128eb5a497e9033e7549a688b67986f0d0b8ed1bad546d89c561652a2", size = 2776898 },
|
895
|
-
{ url = "https://files.pythonhosted.org/packages/30/4b/a1ecb322f5b6dbb7e4ce72d406e70de1920f411d9c3e2796874c4b33a6d9/primitive_pal-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:632b5d59b3aef2a43bed960878a01d45fff3389ec6541482636453b19dcc4ebc", size = 3201414 },
|
896
|
-
{ url = "https://files.pythonhosted.org/packages/81/39/59dbf9206d4132cd735a99ad159c399df262db2b74ed2d2efaa4bd447c99/primitive_pal-0.1.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5294f03d80edc931ca5418b1e16854ac54ecc3007a0eca97c8b9585a9675fbe3", size = 3347102 },
|
897
|
-
{ url = "https://files.pythonhosted.org/packages/96/06/e2148c3cd0c6d57bbdf2c99cb9d84a74a32a7e3ec283fe88ee854d181a74/primitive_pal-0.1.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f1208d7de98dca18a8165293f3849f80087b3297b9f4e1e166aa7eea1161f27", size = 3526373 },
|
898
|
-
{ url = "https://files.pythonhosted.org/packages/cf/84/f4e9138bd5be1eae3eadca256c73221055c9312d1277483497485d0ae99b/primitive_pal-0.1.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87b938e42c61afee3391361bd33c4b91b3f0cb1b19453d55542232e647124ba3", size = 3423374 },
|
899
|
-
{ url = "https://files.pythonhosted.org/packages/33/f8/a84d65748fd71d1947659a02d78fcef0887ea878df7cf7b57b6c3138a473/primitive_pal-0.1.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f034071a6e5df6b011a8bdf552fce13284b13e8b2e35974f38bb0aba1301f064", size = 3780519 },
|
900
|
-
{ url = "https://files.pythonhosted.org/packages/9a/0d/95938ce84ad5c60737178c74bac62797e5f2eec8b3e61004e8783a079dd3/primitive_pal-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97139e90ffb69bf0a7cee8f1c8006616dc142ae2622512ff5b8a309cd03f1e7b", size = 3301957 },
|
901
|
-
{ url = "https://files.pythonhosted.org/packages/c8/84/b46126ffd93df205785cb692b3a07661a289caebd5be19e3b8a9c1e83578/primitive_pal-0.1.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:710a4447da801d7dc131d1fafbacd3091f9dee2dddac7b041dbfd05b72492237", size = 3359015 },
|
902
|
-
{ url = "https://files.pythonhosted.org/packages/d4/a8/666fd2b4634d7151fcdd24ffb02a4fd270ff853c95ee52783c118c3dda57/primitive_pal-0.1.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:8512eb412f11f1122af9e0d4de167fa8a53160bcf1b4da6a84078b6c7f9ecc82", size = 3597120 },
|
903
|
-
{ url = "https://files.pythonhosted.org/packages/36/42/a83cff4b17c7a564b753eab2e6cf89e88276bb9ccadd63e2c7d6ae4e1945/primitive_pal-0.1.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:78776a42eb3f07a0d65673537977f77606c0b1036ea72ad97ece70f24ca163a7", size = 3564216 },
|
904
|
-
{ url = "https://files.pythonhosted.org/packages/84/e9/b3b0abdf95cf6ea491d8c4ba093ac56ffc364b2aff5a3d51342bf9eb90ac/primitive_pal-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3526f8fc6bb9bdff9bc5e29e31dcdb6b782c7b3badcd6fab18056cff82477b19", size = 3502739 },
|
905
|
-
{ url = "https://files.pythonhosted.org/packages/d8/00/6d9de344b413c1c5171172095d847a580d92db701e850d0b3ce06570ac36/primitive_pal-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:58506e4fc158955f0a467583168d1d7a8c724f1b4fcce7f9cfab3e804e40dcdd", size = 3085998 },
|
906
|
-
{ url = "https://files.pythonhosted.org/packages/52/c2/2e8e0ae4a0c02cfc9e64b4e48ac24e2ccaef9702707fe819af6f0e763cc6/primitive_pal-0.1.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76656c02374592d10db4d47fd0d51174f1c628a59ab09bebe79dbd1f2d126cc4", size = 2776014 },
|
907
|
-
{ url = "https://files.pythonhosted.org/packages/7f/0d/7afa6e64f8137f69ac268b9bff019bc25c4b674928c325ace6b4a74a7969/primitive_pal-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b52d9bc4e0e4c5beeb85b3acdef6fd4b8239fe38dba1f6a6378a18ce9c203e99", size = 3200906 },
|
908
|
-
{ url = "https://files.pythonhosted.org/packages/23/71/0dbd4a09e55007e2683ad13e35accb94c34e2d6ecd8c33f03015f9d2a71d/primitive_pal-0.1.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c313cf6fbb18a724e8db3eb7e8e44b49ccebe930fb76f296939518f893569f83", size = 3347447 },
|
909
|
-
{ url = "https://files.pythonhosted.org/packages/b9/97/67451c2bb4a4f80af9f8484d871a5cf4728ec2c6d59719c668653320270d/primitive_pal-0.1.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:af4a6138a564616414edc8d91fabdcf7a1162a8ae5dc4e21ae0865e70a5dba66", size = 3524468 },
|
910
|
-
{ url = "https://files.pythonhosted.org/packages/60/a7/62ba6365c05265a328352fa7985737ca02cc69d011505bfa358bd2babfe4/primitive_pal-0.1.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:925bedbae08fa802512e6360e05f4de0f58e28869243afb76209e5c3e87c8739", size = 3420887 },
|
911
|
-
{ url = "https://files.pythonhosted.org/packages/17/18/07e56ba349ebe0750af53b901c0119ca63e0ed1ede68f8ab764d6c6b1e89/primitive_pal-0.1.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f3073b9f3bff10b2272c5322e5c988222604f749f1e0baade106c395a9e873e", size = 3779720 },
|
912
|
-
{ url = "https://files.pythonhosted.org/packages/65/28/b21a093474177cd277426a3565febaabf2b78a0fc1e40a20b5ab3d405b49/primitive_pal-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:917943bda9e290ae6d8cbf4c5624d5a248258959f391ed9db2978b0afc96c098", size = 3303312 },
|
913
|
-
{ url = "https://files.pythonhosted.org/packages/16/4a/de29c694c9749fc7481d7c48c24ee6a3b09e8f58c0749d4a7f4e259a699f/primitive_pal-0.1.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cc3ef10b2a3fff99dd8c0346aac494e306be0aaa2a519b014ce083bb75e5e02d", size = 3358879 },
|
914
|
-
{ url = "https://files.pythonhosted.org/packages/a5/e6/81497a288c67de326ffaf02f82c4f4bb5adf895fe0f98f2c61c1ac57c2f0/primitive_pal-0.1.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:67547efde9fb0e5af239add966c75489de1bd925b7176ba729a1b064cefab72c", size = 3597011 },
|
915
|
-
{ url = "https://files.pythonhosted.org/packages/0a/75/821d17181f10d584b2c743f0edc7c2bd324ce953bc5d40392697356c0be6/primitive_pal-0.1.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d1dc0db559824d0b8aefe421cb0960186efad54a6b62ce7e54d5fb26135203c0", size = 3562739 },
|
916
|
-
{ url = "https://files.pythonhosted.org/packages/ce/3e/6d6ab1dd950c221b7a5e4a2dd1573f0e4d534ac5bdfd1729d281feb6ace2/primitive_pal-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9ca1a12b6b3e158273cbceaf33e28e3490d41421946f50efb2560245f00a4ec2", size = 3502645 },
|
917
|
-
]
|
918
|
-
|
919
885
|
[[package]]
|
920
886
|
name = "prompt-toolkit"
|
921
887
|
version = "3.0.51"
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import click
|
2
|
-
import typing
|
3
|
-
|
4
|
-
if typing.TYPE_CHECKING:
|
5
|
-
from ..client import Primitive
|
6
|
-
|
7
|
-
|
8
|
-
@click.command("monitor")
|
9
|
-
@click.pass_context
|
10
|
-
def cli(context):
|
11
|
-
"""monitor"""
|
12
|
-
primitive: Primitive = context.obj.get("PRIMITIVE")
|
13
|
-
primitive.monitor.start()
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|