primitive 0.2.21__tar.gz → 0.2.25__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.
Files changed (114) hide show
  1. {primitive-0.2.21 → primitive-0.2.25}/PKG-INFO +2 -4
  2. {primitive-0.2.21 → primitive-0.2.25}/README.md +1 -2
  3. {primitive-0.2.21 → primitive-0.2.25}/pyproject.toml +1 -1
  4. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/__about__.py +1 -1
  5. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/auth/actions.py +0 -2
  6. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/auth/commands.py +13 -13
  7. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/hardware/commands.py +20 -4
  8. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/organizations/actions.py +28 -0
  9. {primitive-0.2.21 → primitive-0.2.25}/uv.lock +0 -34
  10. {primitive-0.2.21 → primitive-0.2.25}/.git-hooks/pre-commit +0 -0
  11. {primitive-0.2.21 → primitive-0.2.25}/.gitattributes +0 -0
  12. {primitive-0.2.21 → primitive-0.2.25}/.github/workflows/lint.yml +0 -0
  13. {primitive-0.2.21 → primitive-0.2.25}/.github/workflows/publish.yml +0 -0
  14. {primitive-0.2.21 → primitive-0.2.25}/.github/workflows/pyright.yml +0 -0
  15. {primitive-0.2.21 → primitive-0.2.25}/.gitignore +0 -0
  16. {primitive-0.2.21 → primitive-0.2.25}/.vscode/extensions.json +0 -0
  17. {primitive-0.2.21 → primitive-0.2.25}/.vscode/settings.json +0 -0
  18. {primitive-0.2.21 → primitive-0.2.25}/LICENSE.txt +0 -0
  19. {primitive-0.2.21 → primitive-0.2.25}/Makefile +0 -0
  20. {primitive-0.2.21 → primitive-0.2.25}/linux setup.md +0 -0
  21. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/__init__.py +0 -0
  22. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/agent/__init__.py +0 -0
  23. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/agent/actions.py +0 -0
  24. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/agent/commands.py +0 -0
  25. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/agent/runner.py +0 -0
  26. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/agent/uploader.py +0 -0
  27. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/auth/__init__.py +0 -0
  28. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/auth/graphql/__init__.py +0 -0
  29. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/auth/graphql/queries.py +0 -0
  30. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/cli.py +0 -0
  31. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/client.py +0 -0
  32. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/daemons/__init__.py +0 -0
  33. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/daemons/actions.py +0 -0
  34. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/daemons/commands.py +0 -0
  35. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/daemons/launch_agents.py +0 -0
  36. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/daemons/launch_service.py +0 -0
  37. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/daemons/ui.py +0 -0
  38. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/db/base.py +0 -0
  39. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/db/models.py +0 -0
  40. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/db/sqlite.py +0 -0
  41. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/exec/__init__.py +0 -0
  42. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/exec/actions.py +0 -0
  43. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/exec/commands.py +0 -0
  44. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/exec/interactive.py +0 -0
  45. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/files/__init__.py +0 -0
  46. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/files/actions.py +0 -0
  47. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/files/commands.py +0 -0
  48. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/files/graphql/__init__.py +0 -0
  49. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/files/graphql/fragments.py +0 -0
  50. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/files/graphql/mutations.py +0 -0
  51. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/files/graphql/queries.py +0 -0
  52. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/git/__init__.py +0 -0
  53. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/git/actions.py +0 -0
  54. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/git/commands.py +0 -0
  55. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/git/graphql/__init__.py +0 -0
  56. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/git/graphql/queries.py +0 -0
  57. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/graphql/__init__.py +0 -0
  58. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/graphql/relay.py +0 -0
  59. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/graphql/sdk.py +0 -0
  60. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/graphql/utility_fragments.py +0 -0
  61. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/hardware/__init__.py +0 -0
  62. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/hardware/actions.py +0 -0
  63. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/hardware/android.py +0 -0
  64. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/hardware/graphql/__init__.py +0 -0
  65. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/hardware/graphql/fragments.py +0 -0
  66. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/hardware/graphql/mutations.py +0 -0
  67. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/hardware/graphql/queries.py +0 -0
  68. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/hardware/ui.py +0 -0
  69. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/jobs/__init__.py +0 -0
  70. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/jobs/actions.py +0 -0
  71. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/jobs/commands.py +0 -0
  72. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/jobs/graphql/__init__.py +0 -0
  73. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/jobs/graphql/fragments.py +0 -0
  74. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/jobs/graphql/mutations.py +0 -0
  75. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/jobs/graphql/queries.py +0 -0
  76. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/monitor/actions.py +0 -0
  77. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/monitor/commands.py +0 -0
  78. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/organizations/__init__.py +0 -0
  79. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/organizations/commands.py +0 -0
  80. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/organizations/graphql/__init__.py +0 -0
  81. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/organizations/graphql/fragments.py +0 -0
  82. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/organizations/graphql/mutations.py +0 -0
  83. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/organizations/graphql/queries.py +0 -0
  84. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/projects/__init__.py +0 -0
  85. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/projects/actions.py +0 -0
  86. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/projects/commands.py +0 -0
  87. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/projects/graphql/__init__.py +0 -0
  88. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/projects/graphql/fragments.py +0 -0
  89. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/projects/graphql/mutations.py +0 -0
  90. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/projects/graphql/queries.py +0 -0
  91. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/provisioning/__init__.py +0 -0
  92. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/provisioning/actions.py +0 -0
  93. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/provisioning/graphql/__init__.py +0 -0
  94. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/provisioning/graphql/queries.py +0 -0
  95. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/reservations/__init__.py +0 -0
  96. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/reservations/actions.py +0 -0
  97. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/reservations/commands.py +0 -0
  98. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/reservations/graphql/__init__.py +0 -0
  99. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/reservations/graphql/fragments.py +0 -0
  100. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/reservations/graphql/mutations.py +0 -0
  101. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/reservations/graphql/queries.py +0 -0
  102. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/utils/__init__.py +0 -0
  103. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/utils/actions.py +0 -0
  104. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/utils/auth.py +0 -0
  105. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/utils/cache.py +0 -0
  106. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/utils/chunk_size.py +0 -0
  107. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/utils/config.py +0 -0
  108. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/utils/daemons.py +0 -0
  109. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/utils/exceptions.py +0 -0
  110. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/utils/memory_size.py +0 -0
  111. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/utils/printer.py +0 -0
  112. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/utils/shell.py +0 -0
  113. {primitive-0.2.21 → primitive-0.2.25}/src/primitive/utils/text.py +0 -0
  114. {primitive-0.2.21 → primitive-0.2.25}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: primitive
3
- Version: 0.2.21
3
+ Version: 0.2.25
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
@@ -127,10 +126,9 @@ source .venv/bin/activate
127
126
  source .venv/bin/activate.fish
128
127
 
129
128
  primitive --host localhost:8000 config --transport http
130
- Username []: <username> # find this on the frontend app at [http://localhost:3000](http://localhost:3000)
131
129
  You can find or create a Primitive API token at http://localhost:3000/account/tokens
132
130
  Please enter your Primitive API token: # create a token and copy the value here
133
- Config created at '/Users/<user>/.config/primitive/credentials.json' for user '<username>' on host 'localhost:8000'
131
+ Config created at '/Users/<user>/.config/primitive/credentials.json' on host 'localhost:8000'
134
132
 
135
133
  # verify the configuration worked via
136
134
  primitive --host localhost:8000 whoami
@@ -95,10 +95,9 @@ source .venv/bin/activate
95
95
  source .venv/bin/activate.fish
96
96
 
97
97
  primitive --host localhost:8000 config --transport http
98
- Username []: <username> # find this on the frontend app at [http://localhost:3000](http://localhost:3000)
99
98
  You can find or create a Primitive API token at http://localhost:3000/account/tokens
100
99
  Please enter your Primitive API token: # create a token and copy the value here
101
- Config created at '/Users/<user>/.config/primitive/credentials.json' for user '<username>' on host 'localhost:8000'
100
+ Config created at '/Users/<user>/.config/primitive/credentials.json' on host 'localhost:8000'
102
101
 
103
102
  # verify the configuration worked via
104
103
  primitive --host localhost:8000 whoami
@@ -31,7 +31,7 @@ dependencies = [
31
31
  "gql[all]",
32
32
  "loguru",
33
33
  "pyyaml",
34
- "primitive-pal == 0.1.4",
34
+ # "primitive-pal == 0.1.4",
35
35
  "paramiko[invoke]",
36
36
  "speedtest-cli",
37
37
  "rich>=13.9.4",
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2024-present Dylan Stein <dylan@primitive.tech>
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "0.2.21"
4
+ __version__ = "0.2.25"
@@ -18,14 +18,12 @@ class Auth(BaseAction):
18
18
 
19
19
  def setup_config(
20
20
  self,
21
- username: str,
22
21
  token: str,
23
22
  host: str = "api.primitive.tech",
24
23
  transport: str = "https",
25
24
  ):
26
25
  full_config = read_config_file()
27
26
  new_host_config = {
28
- "username": username,
29
27
  "token": token,
30
28
  "transport": transport,
31
29
  }
@@ -1,6 +1,6 @@
1
1
  import os
2
- import typing
3
2
  import webbrowser
3
+ from typing import TYPE_CHECKING, Optional
4
4
 
5
5
  import click
6
6
 
@@ -8,7 +8,7 @@ from ..utils.config import PRIMITIVE_CREDENTIALS_FILEPATH
8
8
  from ..utils.printer import print_result
9
9
  from .actions import Auth
10
10
 
11
- if typing.TYPE_CHECKING:
11
+ if TYPE_CHECKING:
12
12
  from ..client import Primitive
13
13
 
14
14
 
@@ -34,13 +34,6 @@ def whoami_command(context):
34
34
 
35
35
  @cli.command("config")
36
36
  @click.pass_context
37
- @click.option(
38
- "--username",
39
- prompt=True,
40
- default=lambda: os.environ.get("PRIMITIVE_USER", ""),
41
- show_default="current user",
42
- help="Username for Primitive API",
43
- )
44
37
  @click.option(
45
38
  "--transport",
46
39
  required=False,
@@ -48,9 +41,16 @@ def whoami_command(context):
48
41
  show_default="https",
49
42
  help="Transport protocol for Primitive API",
50
43
  )
51
- def config_command(context, username: str, transport: str):
44
+ @click.option(
45
+ "--auth-token",
46
+ prompt=True,
47
+ default=lambda: os.environ.get("PRIMITIVE_TOKEN", ""),
48
+ hide_input=True,
49
+ help="Authentication token for Primitive API",
50
+ )
51
+ def config_command(context, transport: str, auth_token: Optional[str] = None):
52
52
  """Configure the CLI"""
53
- token = os.environ.get("PRIMITIVE_TOKEN", "")
53
+ token = os.environ.get("PRIMITIVE_TOKEN", auth_token)
54
54
  if not token and context.obj.get("YES"):
55
55
  raise click.ClickException(
56
56
  "PRIMITIVE_TOKEN environment variable is required for non-interactive mode"
@@ -73,6 +73,6 @@ def config_command(context, username: str, transport: str):
73
73
  )
74
74
 
75
75
  auth = Auth(primitive=None)
76
- auth.setup_config(username=username, token=token, host=host, transport=transport)
77
- message = f"Config created at '{PRIMITIVE_CREDENTIALS_FILEPATH}' for user '{username}' on host '{host}'" # noqa
76
+ auth.setup_config(token=token, host=host, transport=transport)
77
+ message = f"Config created at '{PRIMITIVE_CREDENTIALS_FILEPATH}' on host '{host}'" # noqa
78
78
  print_result(message=message, context=context, fg="green")
@@ -1,13 +1,15 @@
1
- import typing
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 typing.TYPE_CHECKING:
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
- result = primitive.hardware.register()
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"
@@ -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"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes