primitive 0.1.31__tar.gz → 0.1.32__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 (60) hide show
  1. {primitive-0.1.31 → primitive-0.1.32}/Makefile +0 -2
  2. primitive-0.1.32/PKG-INFO +142 -0
  3. primitive-0.1.32/README.md +115 -0
  4. {primitive-0.1.31 → primitive-0.1.32}/pyproject.toml +2 -6
  5. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/__about__.py +1 -1
  6. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/sim/actions.py +8 -77
  7. {primitive-0.1.31 → primitive-0.1.32}/uv.lock +110 -56
  8. primitive-0.1.31/PKG-INFO +0 -62
  9. primitive-0.1.31/README.md +0 -36
  10. {primitive-0.1.31 → primitive-0.1.32}/.git-hooks/pre-commit +0 -0
  11. {primitive-0.1.31 → primitive-0.1.32}/.gitattributes +0 -0
  12. {primitive-0.1.31 → primitive-0.1.32}/.github/workflows/lint.yml +0 -0
  13. {primitive-0.1.31 → primitive-0.1.32}/.github/workflows/publish.yml +0 -0
  14. {primitive-0.1.31 → primitive-0.1.32}/.gitignore +0 -0
  15. {primitive-0.1.31 → primitive-0.1.32}/.vscode/settings.json +0 -0
  16. {primitive-0.1.31 → primitive-0.1.32}/LICENSE.txt +0 -0
  17. {primitive-0.1.31 → primitive-0.1.32}/linux setup.md +0 -0
  18. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/__init__.py +0 -0
  19. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/agent/actions.py +0 -0
  20. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/agent/commands.py +0 -0
  21. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/auth/__init__.py +0 -0
  22. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/auth/actions.py +0 -0
  23. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/auth/commands.py +0 -0
  24. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/cli.py +0 -0
  25. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/client.py +0 -0
  26. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/daemons/actions.py +0 -0
  27. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/daemons/commands.py +0 -0
  28. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/daemons/launch_agents.py +0 -0
  29. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/daemons/launch_service.py +0 -0
  30. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/files/actions.py +0 -0
  31. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/files/commands.py +0 -0
  32. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/git/__init__.py +0 -0
  33. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/git/actions.py +0 -0
  34. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/git/commands.py +0 -0
  35. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/graphql/__init__.py +0 -0
  36. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/graphql/sdk.py +0 -0
  37. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/hardware/actions.py +0 -0
  38. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/hardware/commands.py +0 -0
  39. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/jobs/actions.py +0 -0
  40. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/jobs/commands.py +0 -0
  41. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/lint/actions.py +0 -0
  42. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/lint/commands.py +0 -0
  43. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/organizations/actions.py +0 -0
  44. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/organizations/commands.py +0 -0
  45. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/projects/__init__.py +0 -0
  46. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/projects/actions.py +0 -0
  47. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/projects/commands.py +0 -0
  48. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/sim/__init__.py +0 -0
  49. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/sim/commands.py +0 -0
  50. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/sim/vcd.py +0 -0
  51. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/utils/actions.py +0 -0
  52. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/utils/config.py +0 -0
  53. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/utils/files.py +0 -0
  54. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/utils/git.py +0 -0
  55. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/utils/memory_size.py +0 -0
  56. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/utils/printer.py +0 -0
  57. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/utils/shell.py +0 -0
  58. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/utils/verible.py +0 -0
  59. {primitive-0.1.31 → primitive-0.1.32}/src/primitive/utils/yaml.py +0 -0
  60. {primitive-0.1.31 → primitive-0.1.32}/tests/__init__.py +0 -0
@@ -8,14 +8,12 @@ SHELL := /opt/homebrew/bin/fish
8
8
  # .SHELLFLAGS += -e
9
9
  setup : ## Setup Environment
10
10
  @make setup-git-hooks
11
- cp .env.example .env
12
11
  uv venv
13
12
  source .venv/bin/activate.fish
14
13
  uv sync
15
14
  uv pip install -e .
16
15
 
17
16
  setup-ci: ## Setup the environment for CI
18
- cp .env.example .env
19
17
  uv venv
20
18
  source .venv/bin/activate.fish
21
19
  uv sync
@@ -0,0 +1,142 @@
1
+ Metadata-Version: 2.3
2
+ Name: primitive
3
+ Version: 0.1.32
4
+ Project-URL: Documentation, https://github.com//primitivecorp/primitive-cli#readme
5
+ Project-URL: Issues, https://github.com//primitivecorp/primitive-cli/issues
6
+ Project-URL: Source, https://github.com//primitivecorp/primitive-cli
7
+ Author-email: Dylan Stein <dylan@primitive.tech>, Chase Zimmerman <chase@primitive.tech>
8
+ License-Expression: MIT
9
+ License-File: LICENSE.txt
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Programming Language :: Python
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: Implementation :: CPython
19
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
20
+ Requires-Python: >=3.11
21
+ Requires-Dist: click
22
+ Requires-Dist: gql[all]
23
+ Requires-Dist: loguru
24
+ Requires-Dist: primitive-pal==0.1.2
25
+ Requires-Dist: pyyaml
26
+ Description-Content-Type: text/markdown
27
+
28
+ # primitive
29
+
30
+ [![PyPI - Version](https://img.shields.io/pypi/v/primitive.svg)](https://pypi.org/project/primitive)
31
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/primitive.svg)](https://pypi.org/project/primitive)
32
+
33
+ ---
34
+
35
+ **Table of Contents**
36
+
37
+ - [Installation](#installation)
38
+ - [Configuration](#configuration)
39
+ - [License](#license)
40
+ - [Development Setup](#development-setup)
41
+
42
+ ## Installation
43
+
44
+ ```console
45
+ pip install primitive
46
+ ```
47
+
48
+ ## Configuration
49
+
50
+ ### Authenticate
51
+
52
+ ```console
53
+ primitive config
54
+ ```
55
+
56
+ ### Register your Hardware
57
+
58
+ ```console
59
+ primitive hardware register
60
+ ```
61
+
62
+ ## License
63
+
64
+ `primitive` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
65
+
66
+ ## Development Setup
67
+
68
+ For Primitive engineers, you may have these steps completed.
69
+
70
+ ### Python Setup
71
+
72
+ ```bash
73
+ # install required libs for macos
74
+ xcode-select --install
75
+
76
+ # install brew
77
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
78
+
79
+ # install fish
80
+ brew install fish
81
+ echo /usr/local/bin/fish | sudo tee -a /etc/shells
82
+ chsh -s /usr/local/bin/fish
83
+
84
+ # install fisher
85
+ brew install fisher
86
+ fisher install jorgebucaran/nvm.fish
87
+
88
+ # install git
89
+ brew install git
90
+
91
+ # set global info
92
+ git config --global user.email "<user@email.com>"
93
+ git config --global user.name “<firstName lastName>”
94
+
95
+ # install make
96
+ brew install make
97
+ fish_add_path /opt/homebrew/opt/make/libexec/gnubin
98
+
99
+ # install pyenv (python version manager)
100
+ brew install pyenv
101
+ set -Ux PYENV_ROOT $HOME/.pyenv
102
+ fish_add_path $PYENV_ROOT/bin
103
+ echo 'pyenv init - | source' >> ~/.config/fish/config.fish
104
+
105
+ # install the latest version of python
106
+ pyenv install 3.12.2
107
+ pyenv global 3.12.2
108
+ pip install --upgrade pip
109
+
110
+ # install uv
111
+ pip install uv
112
+ ```
113
+
114
+ ### Repository Setup
115
+
116
+ Clone and run setup.
117
+
118
+ ```bash
119
+ cd ~/Development/primitivecorp/
120
+ git clone git@github.com:primitivecorp/primitive-cli.git
121
+ cd primitive-cli
122
+ make setup
123
+ ```
124
+
125
+ With the backend and frontend development environments running, configure the CLI for local use.
126
+
127
+ ```bash
128
+ # bash or zsh
129
+ source .venv/bin/activate
130
+ # fish
131
+ source .venv/bin/activate.fish
132
+
133
+ primitive --host localhost:8000 config --transport http
134
+ Username []: <username> # find this on the frontend app at [http://localhost:3000](http://localhost:3000)
135
+ You can find or create a Primitive API token at http://localhost:3000/account/tokens
136
+ Please enter your Primitive API token: # create a token and copy the value here
137
+ Config created at '/Users/<user>/.config/primitive/credentials.json' for user '<username>' on host 'localhost:8000'
138
+
139
+ # verify the configuration worked via
140
+ primitive --host localhost:8000 whoami
141
+ Logged in as <username>
142
+ ```
@@ -0,0 +1,115 @@
1
+ # primitive
2
+
3
+ [![PyPI - Version](https://img.shields.io/pypi/v/primitive.svg)](https://pypi.org/project/primitive)
4
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/primitive.svg)](https://pypi.org/project/primitive)
5
+
6
+ ---
7
+
8
+ **Table of Contents**
9
+
10
+ - [Installation](#installation)
11
+ - [Configuration](#configuration)
12
+ - [License](#license)
13
+ - [Development Setup](#development-setup)
14
+
15
+ ## Installation
16
+
17
+ ```console
18
+ pip install primitive
19
+ ```
20
+
21
+ ## Configuration
22
+
23
+ ### Authenticate
24
+
25
+ ```console
26
+ primitive config
27
+ ```
28
+
29
+ ### Register your Hardware
30
+
31
+ ```console
32
+ primitive hardware register
33
+ ```
34
+
35
+ ## License
36
+
37
+ `primitive` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
38
+
39
+ ## Development Setup
40
+
41
+ For Primitive engineers, you may have these steps completed.
42
+
43
+ ### Python Setup
44
+
45
+ ```bash
46
+ # install required libs for macos
47
+ xcode-select --install
48
+
49
+ # install brew
50
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
51
+
52
+ # install fish
53
+ brew install fish
54
+ echo /usr/local/bin/fish | sudo tee -a /etc/shells
55
+ chsh -s /usr/local/bin/fish
56
+
57
+ # install fisher
58
+ brew install fisher
59
+ fisher install jorgebucaran/nvm.fish
60
+
61
+ # install git
62
+ brew install git
63
+
64
+ # set global info
65
+ git config --global user.email "<user@email.com>"
66
+ git config --global user.name “<firstName lastName>”
67
+
68
+ # install make
69
+ brew install make
70
+ fish_add_path /opt/homebrew/opt/make/libexec/gnubin
71
+
72
+ # install pyenv (python version manager)
73
+ brew install pyenv
74
+ set -Ux PYENV_ROOT $HOME/.pyenv
75
+ fish_add_path $PYENV_ROOT/bin
76
+ echo 'pyenv init - | source' >> ~/.config/fish/config.fish
77
+
78
+ # install the latest version of python
79
+ pyenv install 3.12.2
80
+ pyenv global 3.12.2
81
+ pip install --upgrade pip
82
+
83
+ # install uv
84
+ pip install uv
85
+ ```
86
+
87
+ ### Repository Setup
88
+
89
+ Clone and run setup.
90
+
91
+ ```bash
92
+ cd ~/Development/primitivecorp/
93
+ git clone git@github.com:primitivecorp/primitive-cli.git
94
+ cd primitive-cli
95
+ make setup
96
+ ```
97
+
98
+ With the backend and frontend development environments running, configure the CLI for local use.
99
+
100
+ ```bash
101
+ # bash or zsh
102
+ source .venv/bin/activate
103
+ # fish
104
+ source .venv/bin/activate.fish
105
+
106
+ primitive --host localhost:8000 config --transport http
107
+ Username []: <username> # find this on the frontend app at [http://localhost:3000](http://localhost:3000)
108
+ You can find or create a Primitive API token at http://localhost:3000/account/tokens
109
+ Please enter your Primitive API token: # create a token and copy the value here
110
+ Config created at '/Users/<user>/.config/primitive/credentials.json' for user '<username>' on host 'localhost:8000'
111
+
112
+ # verify the configuration worked via
113
+ primitive --host localhost:8000 whoami
114
+ Logged in as <username>
115
+ ```
@@ -31,15 +31,11 @@ dependencies = [
31
31
  "gql[all]",
32
32
  "loguru",
33
33
  "pyyaml",
34
+ "primitive-pal == 0.1.2",
34
35
  ]
35
36
 
36
37
  [tool.uv]
37
- dev-dependencies = [
38
- "ipdb",
39
- "ruff",
40
- "pyright",
41
- "isort",
42
- ]
38
+ dev-dependencies = ["ipdb", "ruff", "pyright", "isort"]
43
39
 
44
40
  [project.urls]
45
41
  Documentation = "https://github.com//primitivecorp/primitive-cli#readme"
@@ -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.1.31"
4
+ __version__ = "0.1.32"
@@ -5,11 +5,9 @@ import subprocess
5
5
  from typing import Tuple
6
6
  from ..utils.files import find_files_for_extension
7
7
  import os
8
- from .vcd import TokenKind, tokenize
9
- import io
10
- from collections import defaultdict
11
8
  import json
12
9
  import xml.etree.ElementTree as ET
10
+ from primitive_pal import process_vcd
13
11
 
14
12
 
15
13
  class Sim(BaseAction):
@@ -50,10 +48,12 @@ class Sim(BaseAction):
50
48
  return file_upload_response.json()["data"]["fileUpload"]["id"]
51
49
 
52
50
  def collect_artifacts(self, source: Path, job_run_id: str) -> None:
53
- # Parse VCD artifacts
54
- # files = find_files_for_extension(source, ".vcd")
55
- # for file in files:
56
- # self.parse_vcd(path=file)
51
+ # Parse VCD artifacts using rust binding
52
+ # TODO: eventually make this smarter, only parsing VCDs for failed tests
53
+ # For now we're uploading the last 10 MB of all VCD files
54
+ files = find_files_for_extension(source, ".vcd")
55
+ for file in files:
56
+ process_vcd(path=file)
57
57
 
58
58
  # Parse XML artifacts
59
59
  files = find_files_for_extension(source, "results.xml")
@@ -65,7 +65,7 @@ class Sim(BaseAction):
65
65
  file_ids = []
66
66
  files = find_files_for_extension(
67
67
  source, # ("results.xml", ".vcd", ".vcd.json", ".xml.json")
68
- ("results.xml", ".xml.json"),
68
+ ("results.xml", ".xml.json", ".vcd.json", ".vcd.parquet"),
69
69
  )
70
70
  for file_path in files:
71
71
  try:
@@ -128,72 +128,3 @@ class Sim(BaseAction):
128
128
  data_path = path.parent / f"{path.name}.json"
129
129
  with open(data_path, "w") as f:
130
130
  f.write(json.dumps(parsed_results))
131
-
132
- def parse_vcd(self, path: Path) -> None:
133
- logger.debug("Parsing VCD file...")
134
- with open(path, "rb") as f:
135
- tokens = tokenize(io.BytesIO(f.read()))
136
-
137
- metadata = defaultdict(dict)
138
- header = defaultdict(dict)
139
- data = defaultdict(list)
140
-
141
- active_scope = header
142
- previous_scope = None
143
-
144
- current_time = 0
145
-
146
- for token in tokens:
147
- match token.kind:
148
- case TokenKind.TIMESCALE:
149
- metadata["timescaleUnit"] = token.data.unit.value
150
- metadata["timescaleMagnitude"] = token.data.magnitude.value
151
- case TokenKind.SCOPE:
152
- scope_type = str(token.data.type_)
153
- scope_ident = token.data.ident
154
- key = f"{scope_type}:{scope_ident}"
155
- active_scope[key] = {}
156
-
157
- previous_scope = active_scope
158
- active_scope = active_scope[key]
159
- case TokenKind.UPSCOPE:
160
- active_scope = previous_scope
161
- case TokenKind.VAR:
162
- active_scope[token.data.id_code] = {
163
- "id_code": token.data.id_code,
164
- "var_type": str(token.data.type_),
165
- "var_size": token.data.size,
166
- "reference": token.data.reference,
167
- "bit_index": str(token.data.bit_index),
168
- }
169
- case TokenKind.CHANGE_TIME:
170
- current_time = int(token.data)
171
- case TokenKind.CHANGE_SCALAR:
172
- data[token.data.id_code].append(
173
- (str(current_time), str(token.data.value))
174
- )
175
- case TokenKind.CHANGE_VECTOR:
176
- data[token.data.id_code].append(
177
- (str(current_time), str(token.data.value))
178
- )
179
-
180
- # Add traces and write files
181
- logger.debug("Writing traces...")
182
-
183
- # Find name of file for json dumps
184
- file_name = path.name.split(".")[0]
185
-
186
- # Write metadata file
187
- metadata_path = path.parent / f"{file_name}.metadata.vcd.json"
188
- with open(metadata_path, "w") as f:
189
- f.write(json.dumps(metadata))
190
-
191
- # Write header file
192
- header_path = path.parent / f"{file_name}.header.vcd.json"
193
- with open(header_path, "w") as f:
194
- f.write(json.dumps(header))
195
-
196
- # Write data file
197
- data_path = path.parent / f"{file_name}.data.vcd.json"
198
- with open(data_path, "w") as f:
199
- f.write(json.dumps(data))
@@ -1,7 +1,11 @@
1
1
  version = 1
2
2
  requires-python = ">=3.11"
3
+ resolution-markers = [
4
+ "python_full_version < '3.12'",
5
+ "python_full_version >= '3.12'",
6
+ ]
3
7
 
4
- [[distribution]]
8
+ [[package]]
5
9
  name = "aiohappyeyeballs"
6
10
  version = "2.4.0"
7
11
  source = { registry = "https://pypi.org/simple" }
@@ -10,7 +14,7 @@ wheels = [
10
14
  { url = "https://files.pythonhosted.org/packages/18/b6/58ea188899950d759a837f9a58b2aee1d1a380ea4d6211ce9b1823748851/aiohappyeyeballs-2.4.0-py3-none-any.whl", hash = "sha256:7ce92076e249169a13c2f49320d1967425eaf1f407522d707d59cac7628d62bd", size = 12155 },
11
15
  ]
12
16
 
13
- [[distribution]]
17
+ [[package]]
14
18
  name = "aiohttp"
15
19
  version = "3.10.5"
16
20
  source = { registry = "https://pypi.org/simple" }
@@ -71,7 +75,7 @@ wheels = [
71
75
  { url = "https://files.pythonhosted.org/packages/65/28/aee9d04fb0b3b1f90622c338a08e54af5198e704a910e20947c473298fd0/aiohttp-3.10.5-cp313-cp313-win_amd64.whl", hash = "sha256:38172a70005252b6893088c0f5e8a47d173df7cc2b2bd88650957eb84fcf5022", size = 375697 },
72
76
  ]
73
77
 
74
- [[distribution]]
78
+ [[package]]
75
79
  name = "aiosignal"
76
80
  version = "1.3.1"
77
81
  source = { registry = "https://pypi.org/simple" }
@@ -83,7 +87,7 @@ wheels = [
83
87
  { url = "https://files.pythonhosted.org/packages/76/ac/a7305707cb852b7e16ff80eaf5692309bde30e2b1100a1fcacdc8f731d97/aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17", size = 7617 },
84
88
  ]
85
89
 
86
- [[distribution]]
90
+ [[package]]
87
91
  name = "anyio"
88
92
  version = "4.6.0"
89
93
  source = { registry = "https://pypi.org/simple" }
@@ -96,7 +100,7 @@ wheels = [
96
100
  { url = "https://files.pythonhosted.org/packages/9e/ef/7a4f225581a0d7886ea28359179cb861d7fbcdefad29663fc1167b86f69f/anyio-4.6.0-py3-none-any.whl", hash = "sha256:c7d2e9d63e31599eeb636c8c5c03a7e108d73b345f064f1c19fdc87b79036a9a", size = 89631 },
97
101
  ]
98
102
 
99
- [[distribution]]
103
+ [[package]]
100
104
  name = "asttokens"
101
105
  version = "2.4.1"
102
106
  source = { registry = "https://pypi.org/simple" }
@@ -108,7 +112,7 @@ wheels = [
108
112
  { url = "https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24", size = 27764 },
109
113
  ]
110
114
 
111
- [[distribution]]
115
+ [[package]]
112
116
  name = "attrs"
113
117
  version = "24.2.0"
114
118
  source = { registry = "https://pypi.org/simple" }
@@ -117,7 +121,7 @@ wheels = [
117
121
  { url = "https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2", size = 63001 },
118
122
  ]
119
123
 
120
- [[distribution]]
124
+ [[package]]
121
125
  name = "backoff"
122
126
  version = "2.2.1"
123
127
  source = { registry = "https://pypi.org/simple" }
@@ -126,7 +130,7 @@ wheels = [
126
130
  { url = "https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8", size = 15148 },
127
131
  ]
128
132
 
129
- [[distribution]]
133
+ [[package]]
130
134
  name = "botocore"
131
135
  version = "1.35.24"
132
136
  source = { registry = "https://pypi.org/simple" }
@@ -140,7 +144,7 @@ wheels = [
140
144
  { url = "https://files.pythonhosted.org/packages/f5/84/e8a1220f2fcf06c68970c8ddfe0687cc4eb967c0ad219de5dfed65dd3958/botocore-1.35.24-py3-none-any.whl", hash = "sha256:eb9ccc068255cc3d24c36693fda6aec7786db05ae6c2b13bcba66dce6a13e2e3", size = 12566821 },
141
145
  ]
142
146
 
143
- [[distribution]]
147
+ [[package]]
144
148
  name = "certifi"
145
149
  version = "2024.8.30"
146
150
  source = { registry = "https://pypi.org/simple" }
@@ -149,7 +153,7 @@ wheels = [
149
153
  { url = "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", size = 167321 },
150
154
  ]
151
155
 
152
- [[distribution]]
156
+ [[package]]
153
157
  name = "charset-normalizer"
154
158
  version = "3.3.2"
155
159
  source = { registry = "https://pypi.org/simple" }
@@ -188,7 +192,7 @@ wheels = [
188
192
  { url = "https://files.pythonhosted.org/packages/28/76/e6222113b83e3622caa4bb41032d0b1bf785250607392e1b778aca0b8a7d/charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", size = 48543 },
189
193
  ]
190
194
 
191
- [[distribution]]
195
+ [[package]]
192
196
  name = "click"
193
197
  version = "8.1.7"
194
198
  source = { registry = "https://pypi.org/simple" }
@@ -200,7 +204,7 @@ wheels = [
200
204
  { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941 },
201
205
  ]
202
206
 
203
- [[distribution]]
207
+ [[package]]
204
208
  name = "colorama"
205
209
  version = "0.4.6"
206
210
  source = { registry = "https://pypi.org/simple" }
@@ -209,7 +213,7 @@ wheels = [
209
213
  { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
210
214
  ]
211
215
 
212
- [[distribution]]
216
+ [[package]]
213
217
  name = "decorator"
214
218
  version = "5.1.1"
215
219
  source = { registry = "https://pypi.org/simple" }
@@ -218,7 +222,7 @@ wheels = [
218
222
  { url = "https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186", size = 9073 },
219
223
  ]
220
224
 
221
- [[distribution]]
225
+ [[package]]
222
226
  name = "executing"
223
227
  version = "2.1.0"
224
228
  source = { registry = "https://pypi.org/simple" }
@@ -227,7 +231,7 @@ wheels = [
227
231
  { url = "https://files.pythonhosted.org/packages/b5/fd/afcd0496feca3276f509df3dbd5dae726fcc756f1a08d9e25abe1733f962/executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf", size = 25805 },
228
232
  ]
229
233
 
230
- [[distribution]]
234
+ [[package]]
231
235
  name = "frozenlist"
232
236
  version = "1.4.1"
233
237
  source = { registry = "https://pypi.org/simple" }
@@ -266,7 +270,7 @@ wheels = [
266
270
  { url = "https://files.pythonhosted.org/packages/83/10/466fe96dae1bff622021ee687f68e5524d6392b0a2f80d05001cd3a451ba/frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7", size = 11552 },
267
271
  ]
268
272
 
269
- [[distribution]]
273
+ [[package]]
270
274
  name = "gql"
271
275
  version = "3.5.0"
272
276
  source = { registry = "https://pypi.org/simple" }
@@ -281,7 +285,7 @@ wheels = [
281
285
  { url = "https://files.pythonhosted.org/packages/74/fb/01a200e1c31b79690427c8e983014e4220d2652b4372a46fe4598e1d7a8e/gql-3.5.0-py2.py3-none-any.whl", hash = "sha256:70dda5694a5b194a8441f077aa5fb70cc94e4ec08016117523f013680901ecb7", size = 74001 },
282
286
  ]
283
287
 
284
- [distribution.optional-dependencies]
288
+ [package.optional-dependencies]
285
289
  all = [
286
290
  { name = "aiohttp" },
287
291
  { name = "botocore" },
@@ -291,7 +295,7 @@ all = [
291
295
  { name = "websockets" },
292
296
  ]
293
297
 
294
- [[distribution]]
298
+ [[package]]
295
299
  name = "graphql-core"
296
300
  version = "3.2.4"
297
301
  source = { registry = "https://pypi.org/simple" }
@@ -300,7 +304,7 @@ wheels = [
300
304
  { url = "https://files.pythonhosted.org/packages/d1/33/cc72c4c658c6316f188a60bc4e5a91cd4ceaaa8c3e7e691ac9297e4e72c7/graphql_core-3.2.4-py3-none-any.whl", hash = "sha256:1604f2042edc5f3114f49cac9d77e25863be51b23a54a61a23245cf32f6476f0", size = 203179 },
301
305
  ]
302
306
 
303
- [[distribution]]
307
+ [[package]]
304
308
  name = "h11"
305
309
  version = "0.14.0"
306
310
  source = { registry = "https://pypi.org/simple" }
@@ -309,7 +313,7 @@ wheels = [
309
313
  { url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", size = 58259 },
310
314
  ]
311
315
 
312
- [[distribution]]
316
+ [[package]]
313
317
  name = "httpcore"
314
318
  version = "1.0.5"
315
319
  source = { registry = "https://pypi.org/simple" }
@@ -322,7 +326,7 @@ wheels = [
322
326
  { url = "https://files.pythonhosted.org/packages/78/d4/e5d7e4f2174f8a4d63c8897d79eb8fe2503f7ecc03282fee1fa2719c2704/httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5", size = 77926 },
323
327
  ]
324
328
 
325
- [[distribution]]
329
+ [[package]]
326
330
  name = "httpx"
327
331
  version = "0.27.2"
328
332
  source = { registry = "https://pypi.org/simple" }
@@ -338,7 +342,7 @@ wheels = [
338
342
  { url = "https://files.pythonhosted.org/packages/56/95/9377bcb415797e44274b51d46e3249eba641711cf3348050f76ee7b15ffc/httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0", size = 76395 },
339
343
  ]
340
344
 
341
- [[distribution]]
345
+ [[package]]
342
346
  name = "idna"
343
347
  version = "3.10"
344
348
  source = { registry = "https://pypi.org/simple" }
@@ -347,7 +351,7 @@ wheels = [
347
351
  { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
348
352
  ]
349
353
 
350
- [[distribution]]
354
+ [[package]]
351
355
  name = "ipdb"
352
356
  version = "0.13.13"
353
357
  source = { registry = "https://pypi.org/simple" }
@@ -360,7 +364,7 @@ wheels = [
360
364
  { url = "https://files.pythonhosted.org/packages/0c/4c/b075da0092003d9a55cf2ecc1cae9384a1ca4f650d51b00fc59875fe76f6/ipdb-0.13.13-py3-none-any.whl", hash = "sha256:45529994741c4ab6d2388bfa5d7b725c2cf7fe9deffabdb8a6113aa5ed449ed4", size = 12130 },
361
365
  ]
362
366
 
363
- [[distribution]]
367
+ [[package]]
364
368
  name = "ipython"
365
369
  version = "8.27.0"
366
370
  source = { registry = "https://pypi.org/simple" }
@@ -374,14 +378,14 @@ dependencies = [
374
378
  { name = "pygments" },
375
379
  { name = "stack-data" },
376
380
  { name = "traitlets" },
377
- { name = "typing-extensions", marker = "python_version < '3.12'" },
381
+ { name = "typing-extensions", marker = "python_full_version < '3.12'" },
378
382
  ]
379
383
  sdist = { url = "https://files.pythonhosted.org/packages/57/24/d4fabaca03c8804bf0b8d994c8ae3a20e57e9330d277fb43d83e558dec5e/ipython-8.27.0.tar.gz", hash = "sha256:0b99a2dc9f15fd68692e898e5568725c6d49c527d36a9fb5960ffbdeaa82ff7e", size = 5494984 }
380
384
  wheels = [
381
385
  { url = "https://files.pythonhosted.org/packages/a8/a2/6c725958e6f135d8e5de081e69841bb2c1d84b3fc259d02eb092b8fc203a/ipython-8.27.0-py3-none-any.whl", hash = "sha256:f68b3cb8bde357a5d7adc9598d57e22a45dfbea19eb6b98286fa3b288c9cd55c", size = 818986 },
382
386
  ]
383
387
 
384
- [[distribution]]
388
+ [[package]]
385
389
  name = "isort"
386
390
  version = "5.13.2"
387
391
  source = { registry = "https://pypi.org/simple" }
@@ -390,7 +394,7 @@ wheels = [
390
394
  { url = "https://files.pythonhosted.org/packages/d1/b3/8def84f539e7d2289a02f0524b944b15d7c75dab7628bedf1c4f0992029c/isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6", size = 92310 },
391
395
  ]
392
396
 
393
- [[distribution]]
397
+ [[package]]
394
398
  name = "jedi"
395
399
  version = "0.19.1"
396
400
  source = { registry = "https://pypi.org/simple" }
@@ -402,7 +406,7 @@ wheels = [
402
406
  { url = "https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0", size = 1569361 },
403
407
  ]
404
408
 
405
- [[distribution]]
409
+ [[package]]
406
410
  name = "jmespath"
407
411
  version = "1.0.1"
408
412
  source = { registry = "https://pypi.org/simple" }
@@ -411,7 +415,7 @@ wheels = [
411
415
  { url = "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", size = 20256 },
412
416
  ]
413
417
 
414
- [[distribution]]
418
+ [[package]]
415
419
  name = "loguru"
416
420
  version = "0.7.2"
417
421
  source = { registry = "https://pypi.org/simple" }
@@ -424,7 +428,7 @@ wheels = [
424
428
  { url = "https://files.pythonhosted.org/packages/03/0a/4f6fed21aa246c6b49b561ca55facacc2a44b87d65b8b92362a8e99ba202/loguru-0.7.2-py3-none-any.whl", hash = "sha256:003d71e3d3ed35f0f8984898359d65b79e5b21943f78af86aa5491210429b8eb", size = 62549 },
425
429
  ]
426
430
 
427
- [[distribution]]
431
+ [[package]]
428
432
  name = "matplotlib-inline"
429
433
  version = "0.1.7"
430
434
  source = { registry = "https://pypi.org/simple" }
@@ -436,7 +440,7 @@ wheels = [
436
440
  { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899 },
437
441
  ]
438
442
 
439
- [[distribution]]
443
+ [[package]]
440
444
  name = "multidict"
441
445
  version = "6.1.0"
442
446
  source = { registry = "https://pypi.org/simple" }
@@ -490,7 +494,7 @@ wheels = [
490
494
  { url = "https://files.pythonhosted.org/packages/99/b7/b9e70fde2c0f0c9af4cc5277782a89b66d35948ea3369ec9f598358c3ac5/multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506", size = 10051 },
491
495
  ]
492
496
 
493
- [[distribution]]
497
+ [[package]]
494
498
  name = "nodeenv"
495
499
  version = "1.9.1"
496
500
  source = { registry = "https://pypi.org/simple" }
@@ -499,7 +503,7 @@ wheels = [
499
503
  { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314 },
500
504
  ]
501
505
 
502
- [[distribution]]
506
+ [[package]]
503
507
  name = "parso"
504
508
  version = "0.8.4"
505
509
  source = { registry = "https://pypi.org/simple" }
@@ -508,7 +512,7 @@ wheels = [
508
512
  { url = "https://files.pythonhosted.org/packages/c6/ac/dac4a63f978e4dcb3c6d3a78c4d8e0192a113d288502a1216950c41b1027/parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18", size = 103650 },
509
513
  ]
510
514
 
511
- [[distribution]]
515
+ [[package]]
512
516
  name = "pexpect"
513
517
  version = "4.9.0"
514
518
  source = { registry = "https://pypi.org/simple" }
@@ -520,7 +524,7 @@ wheels = [
520
524
  { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772 },
521
525
  ]
522
526
 
523
- [[distribution]]
527
+ [[package]]
524
528
  name = "primitive"
525
529
  version = "0.1.31"
526
530
  source = { editable = "." }
@@ -528,10 +532,28 @@ dependencies = [
528
532
  { name = "click" },
529
533
  { name = "gql", extra = ["all"] },
530
534
  { name = "loguru" },
535
+ { name = "primitive-pal" },
536
+ { name = "pyyaml" },
537
+ ]
538
+
539
+ [package.dev-dependencies]
540
+ dev = [
541
+ { name = "ipdb" },
542
+ { name = "isort" },
543
+ { name = "pyright" },
544
+ { name = "ruff" },
545
+ ]
546
+
547
+ [package.metadata]
548
+ requires-dist = [
549
+ { name = "click" },
550
+ { name = "gql", extras = ["all"] },
551
+ { name = "loguru" },
552
+ { name = "primitive-pal", specifier = "==0.1.2" },
531
553
  { name = "pyyaml" },
532
554
  ]
533
555
 
534
- [distribution.dev-dependencies]
556
+ [package.metadata.requires-dev]
535
557
  dev = [
536
558
  { name = "ipdb" },
537
559
  { name = "isort" },
@@ -539,7 +561,39 @@ dev = [
539
561
  { name = "ruff" },
540
562
  ]
541
563
 
542
- [[distribution]]
564
+ [[package]]
565
+ name = "primitive-pal"
566
+ version = "0.1.2"
567
+ source = { registry = "https://pypi.org/simple" }
568
+ sdist = { url = "https://files.pythonhosted.org/packages/b9/bf/bde9f671edf3e18cf6758a695a2533c8b9d55105539b4a7f8f54a8b49311/primitive_pal-0.1.2.tar.gz", hash = "sha256:62f035867082a006eb544b30f0a9dc6f1d3337fe93cf60e85d1b0b06dcc15225", size = 36743 }
569
+ wheels = [
570
+ { url = "https://files.pythonhosted.org/packages/47/27/e022e2d4e2fd4738a7bd7428b2fbe13bdaf1a1790875d0e9013bd71fa0bf/primitive_pal-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:7a91d643a825d65d0bf5575d2ac8b2c083a3516e08d8d94c8f640146aa0f8eff", size = 3104345 },
571
+ { url = "https://files.pythonhosted.org/packages/f6/3f/91bda2dd75c13bc4a107a9e3f920b7f52b7b4023de2ecf438a1bbb63ee71/primitive_pal-0.1.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d4c84dffbe6db01b3140863757194fac55145de2e963e86daf706bd31715b3aa", size = 2808614 },
572
+ { url = "https://files.pythonhosted.org/packages/11/73/331a56b734fdaa397e643046688603dabf9f1c8b1e2c65179848c4fe6acc/primitive_pal-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc2ead8faa3e5fd0bd47bd8437c2a7a9e95846d7605b78a7b6f6f6686e6b29f4", size = 3226331 },
573
+ { url = "https://files.pythonhosted.org/packages/4b/7c/b3567fb5de666f3123d190ae758108d3a7f231b761b9d4e193890c044cdf/primitive_pal-0.1.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aa2770d30db5a92e34dd6628018eed1e828eb9af63c7ab9f9643a593987e28d3", size = 3373757 },
574
+ { url = "https://files.pythonhosted.org/packages/b4/27/23bda1cd4e5050e8a57b1f2a168f9c3e29f451b3ab86ac34f54613e67600/primitive_pal-0.1.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f44766772f64c055703e553a883b03fbba25404c569e75726aae0aa74366558", size = 3555795 },
575
+ { url = "https://files.pythonhosted.org/packages/fd/f2/694625b842cdf3c7ef7bee357248371e5bcefd0ff5467e8eb2ed004a22fc/primitive_pal-0.1.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d8cc6a593a860e8fca6e5a75ce295f2aa27dd09e695e624d5bb7724cc8cbfccb", size = 3458200 },
576
+ { url = "https://files.pythonhosted.org/packages/61/e4/b79511ae704d48b7d17b324c65121f30ee87e5d955166d54e7787271c984/primitive_pal-0.1.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a936a6deb4826995e770fc31a32271929aa7e34f2872c36f2d32b36d4aea9605", size = 3803590 },
577
+ { url = "https://files.pythonhosted.org/packages/32/a3/cea4c1d5987ef16bc7938d14054052c0e73a1a39e07d505803bf8cc48733/primitive_pal-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:09b8cdd3f38567d4c3a27b117a2a18203aa2226981c20d63801537e4d40fd229", size = 3333811 },
578
+ { url = "https://files.pythonhosted.org/packages/65/38/6c5bb4d624cecfaedb88a5c4fde4cdfb9e13e917caa03f09ffbf0db27958/primitive_pal-0.1.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ce0b2b25217df8812358effba2918fa69952bb9cbee0b3aa56e2d3e911e3ba6a", size = 3386027 },
579
+ { url = "https://files.pythonhosted.org/packages/94/9f/cd55e5fc4148a6ebed2a67f4d7c0b0b6012bdf76597dac50feab7a927ede/primitive_pal-0.1.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:cc1bd3fcf454b3e8635100427101f9a251fa8b3eaa161f4366ef9b331011255b", size = 3626955 },
580
+ { url = "https://files.pythonhosted.org/packages/5a/a2/ad7d7f5d9d3a46fd584a3ca3f23deef244d9c0d5adf308c8105ea73ce385/primitive_pal-0.1.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ed3ee8d924330d42e558ff109d4f1e9402499e78bb6d9013b03acd927134220c", size = 3592642 },
581
+ { url = "https://files.pythonhosted.org/packages/35/26/f1a81fa7c5fa5f70d076587e6be529bbc48ff641f664f6ea6dcf563eb717/primitive_pal-0.1.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:32f3e29c700663d2790607463c1af7e533c4b9997e1604b68931b71828995eca", size = 3528582 },
582
+ { url = "https://files.pythonhosted.org/packages/dd/f0/a650f188c605de7d643212dee2e832510d4be17c8c549a8f1eae26c3645e/primitive_pal-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:75701b828d230fa6adf7e69d316a797efe9d341d5d3dee934f02e2738a95990a", size = 3104041 },
583
+ { url = "https://files.pythonhosted.org/packages/6d/27/921cbc727ed9b567c084246504e38a5ecf73c0bf7f2d5a443e902a8cd95a/primitive_pal-0.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f6ebcb46bfd4212cd4fac936261e6685b92e1089915c01c38edf83c00a4dbb6e", size = 2808275 },
584
+ { url = "https://files.pythonhosted.org/packages/72/23/bffd70c03dab7ec7fb57f0c32f794110713356ede784b3dd73b642697f72/primitive_pal-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b07f441fd34d290364114309223c9237de33b664260fa016271e0ea0f5bf9dff", size = 3225109 },
585
+ { url = "https://files.pythonhosted.org/packages/13/6f/b993f8741668b0de6e55d0b01ace17a684198d8d267126b3b7f3617af71a/primitive_pal-0.1.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4d504cbb038d1321a9471525f061b7c4d358e3f20f59cd5bd07392b0392ad6ae", size = 3373731 },
586
+ { url = "https://files.pythonhosted.org/packages/ce/e9/c571c98107f135f16718c01509e25ac90aa465adef90a9dbb67e02988dea/primitive_pal-0.1.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8eac6955e9f9c12b930b18191eb24f7b7374c8574accd682235767a3669228b3", size = 3553592 },
587
+ { url = "https://files.pythonhosted.org/packages/5e/f9/977a03fcd5e7f213b2c78573560214448e9b9f4abef6eb7a57ce529c8cff/primitive_pal-0.1.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5ee307814ea2ac2daaf221ba57aa09c41b5bd7a5f3a80f7b6c642b0dcce57b1", size = 3454970 },
588
+ { url = "https://files.pythonhosted.org/packages/b3/4e/8fd0d8dc22c2c4dd7cea13ed86f4e33874e5bbcfc322240e49159411ca2e/primitive_pal-0.1.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d91802340937279d4272ca9669ffa185ac2b984f99353fe988179d0ba150c291", size = 3803948 },
589
+ { url = "https://files.pythonhosted.org/packages/d1/cb/214ecbda915d89ace585dd734d08ef2da7b71e252edcde0610eb60e098e6/primitive_pal-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3fe177c1d03a7994af7fcea1cb36c04e77a928e43aa682c7bc7bf364a1ec079", size = 3333309 },
590
+ { url = "https://files.pythonhosted.org/packages/86/5c/65f87a8702a3f255256b4e14b78ea14a7f80506befc4bd393192914b5a38/primitive_pal-0.1.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:26da92a1aaf3071b685b653c5402fd49f356f5cea740b7174de979c254243676", size = 3386552 },
591
+ { url = "https://files.pythonhosted.org/packages/82/97/f1fc494d316a7f34d7b8a2a5b65552897eb80318601a5460aebd10bc200c/primitive_pal-0.1.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:db46a9fc102f9ad465613c2139e89fac36471e3d51ac787fa6d64002fa38c94b", size = 3626526 },
592
+ { url = "https://files.pythonhosted.org/packages/f6/ab/da400a1f827bf9a17467113879c001d1380f54c9df55b779378cdc23eb25/primitive_pal-0.1.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c5bababf87ef9d412a7afb9b7f9fab874006d3deae18631f32d2d5ad7932d2b", size = 3592492 },
593
+ { url = "https://files.pythonhosted.org/packages/ee/b8/a883b7025294ace919788e7d924337c85fb97ae4de9bf303d22c0ed3581a/primitive_pal-0.1.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:06e643766e0ae8025eb45c2957e54c34a624c85fd840b5894d940e14746d435b", size = 3529117 },
594
+ ]
595
+
596
+ [[package]]
543
597
  name = "prompt-toolkit"
544
598
  version = "3.0.47"
545
599
  source = { registry = "https://pypi.org/simple" }
@@ -551,7 +605,7 @@ wheels = [
551
605
  { url = "https://files.pythonhosted.org/packages/e8/23/22750c4b768f09386d1c3cc4337953e8936f48a888fa6dddfb669b2c9088/prompt_toolkit-3.0.47-py3-none-any.whl", hash = "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10", size = 386411 },
552
606
  ]
553
607
 
554
- [[distribution]]
608
+ [[package]]
555
609
  name = "ptyprocess"
556
610
  version = "0.7.0"
557
611
  source = { registry = "https://pypi.org/simple" }
@@ -560,7 +614,7 @@ wheels = [
560
614
  { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993 },
561
615
  ]
562
616
 
563
- [[distribution]]
617
+ [[package]]
564
618
  name = "pure-eval"
565
619
  version = "0.2.3"
566
620
  source = { registry = "https://pypi.org/simple" }
@@ -569,7 +623,7 @@ wheels = [
569
623
  { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842 },
570
624
  ]
571
625
 
572
- [[distribution]]
626
+ [[package]]
573
627
  name = "pygments"
574
628
  version = "2.18.0"
575
629
  source = { registry = "https://pypi.org/simple" }
@@ -578,7 +632,7 @@ wheels = [
578
632
  { url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 },
579
633
  ]
580
634
 
581
- [[distribution]]
635
+ [[package]]
582
636
  name = "pyright"
583
637
  version = "1.1.381"
584
638
  source = { registry = "https://pypi.org/simple" }
@@ -590,7 +644,7 @@ wheels = [
590
644
  { url = "https://files.pythonhosted.org/packages/2f/c0/fec7607edc2459816c49815cd5dac67b28c702ed497102118cdc2757cc8d/pyright-1.1.381-py3-none-any.whl", hash = "sha256:5dc0aa80a265675d36abab59c674ae01dbe476714f91845b61b841d34aa99081", size = 18221 },
591
645
  ]
592
646
 
593
- [[distribution]]
647
+ [[package]]
594
648
  name = "python-dateutil"
595
649
  version = "2.9.0.post0"
596
650
  source = { registry = "https://pypi.org/simple" }
@@ -602,7 +656,7 @@ wheels = [
602
656
  { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 },
603
657
  ]
604
658
 
605
- [[distribution]]
659
+ [[package]]
606
660
  name = "pyyaml"
607
661
  version = "6.0.2"
608
662
  source = { registry = "https://pypi.org/simple" }
@@ -637,7 +691,7 @@ wheels = [
637
691
  { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 },
638
692
  ]
639
693
 
640
- [[distribution]]
694
+ [[package]]
641
695
  name = "requests"
642
696
  version = "2.32.3"
643
697
  source = { registry = "https://pypi.org/simple" }
@@ -652,7 +706,7 @@ wheels = [
652
706
  { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 },
653
707
  ]
654
708
 
655
- [[distribution]]
709
+ [[package]]
656
710
  name = "requests-toolbelt"
657
711
  version = "1.0.0"
658
712
  source = { registry = "https://pypi.org/simple" }
@@ -664,7 +718,7 @@ wheels = [
664
718
  { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481 },
665
719
  ]
666
720
 
667
- [[distribution]]
721
+ [[package]]
668
722
  name = "ruff"
669
723
  version = "0.6.7"
670
724
  source = { registry = "https://pypi.org/simple" }
@@ -689,7 +743,7 @@ wheels = [
689
743
  { url = "https://files.pythonhosted.org/packages/8e/a8/4abb5a9f58f51e4b1ea386be5ab2e547035bc1ee57200d1eca2f8909a33e/ruff-0.6.7-py3-none-win_arm64.whl", hash = "sha256:b28f0d5e2f771c1fe3c7a45d3f53916fc74a480698c4b5731f0bea61e52137c8", size = 8618044 },
690
744
  ]
691
745
 
692
- [[distribution]]
746
+ [[package]]
693
747
  name = "six"
694
748
  version = "1.16.0"
695
749
  source = { registry = "https://pypi.org/simple" }
@@ -698,7 +752,7 @@ wheels = [
698
752
  { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053 },
699
753
  ]
700
754
 
701
- [[distribution]]
755
+ [[package]]
702
756
  name = "sniffio"
703
757
  version = "1.3.1"
704
758
  source = { registry = "https://pypi.org/simple" }
@@ -707,7 +761,7 @@ wheels = [
707
761
  { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
708
762
  ]
709
763
 
710
- [[distribution]]
764
+ [[package]]
711
765
  name = "stack-data"
712
766
  version = "0.6.3"
713
767
  source = { registry = "https://pypi.org/simple" }
@@ -721,7 +775,7 @@ wheels = [
721
775
  { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521 },
722
776
  ]
723
777
 
724
- [[distribution]]
778
+ [[package]]
725
779
  name = "traitlets"
726
780
  version = "5.14.3"
727
781
  source = { registry = "https://pypi.org/simple" }
@@ -730,7 +784,7 @@ wheels = [
730
784
  { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359 },
731
785
  ]
732
786
 
733
- [[distribution]]
787
+ [[package]]
734
788
  name = "typing-extensions"
735
789
  version = "4.12.2"
736
790
  source = { registry = "https://pypi.org/simple" }
@@ -739,7 +793,7 @@ wheels = [
739
793
  { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 },
740
794
  ]
741
795
 
742
- [[distribution]]
796
+ [[package]]
743
797
  name = "urllib3"
744
798
  version = "2.2.3"
745
799
  source = { registry = "https://pypi.org/simple" }
@@ -748,7 +802,7 @@ wheels = [
748
802
  { url = "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", size = 126338 },
749
803
  ]
750
804
 
751
- [[distribution]]
805
+ [[package]]
752
806
  name = "wcwidth"
753
807
  version = "0.2.13"
754
808
  source = { registry = "https://pypi.org/simple" }
@@ -757,7 +811,7 @@ wheels = [
757
811
  { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166 },
758
812
  ]
759
813
 
760
- [[distribution]]
814
+ [[package]]
761
815
  name = "websockets"
762
816
  version = "11.0.3"
763
817
  source = { registry = "https://pypi.org/simple" }
@@ -777,7 +831,7 @@ wheels = [
777
831
  { url = "https://files.pythonhosted.org/packages/47/96/9d5749106ff57629b54360664ae7eb9afd8302fad1680ead385383e33746/websockets-11.0.3-py3-none-any.whl", hash = "sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6", size = 118056 },
778
832
  ]
779
833
 
780
- [[distribution]]
834
+ [[package]]
781
835
  name = "win32-setctime"
782
836
  version = "1.1.0"
783
837
  source = { registry = "https://pypi.org/simple" }
@@ -786,7 +840,7 @@ wheels = [
786
840
  { url = "https://files.pythonhosted.org/packages/0a/e6/a7d828fef907843b2a5773ebff47fb79ac0c1c88d60c0ca9530ee941e248/win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad", size = 3604 },
787
841
  ]
788
842
 
789
- [[distribution]]
843
+ [[package]]
790
844
  name = "yarl"
791
845
  version = "1.11.1"
792
846
  source = { registry = "https://pypi.org/simple" }
primitive-0.1.31/PKG-INFO DELETED
@@ -1,62 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: primitive
3
- Version: 0.1.31
4
- Project-URL: Documentation, https://github.com//primitivecorp/primitive-cli#readme
5
- Project-URL: Issues, https://github.com//primitivecorp/primitive-cli/issues
6
- Project-URL: Source, https://github.com//primitivecorp/primitive-cli
7
- Author-email: Dylan Stein <dylan@primitive.tech>, Chase Zimmerman <chase@primitive.tech>
8
- License-Expression: MIT
9
- License-File: LICENSE.txt
10
- Classifier: Development Status :: 4 - Beta
11
- Classifier: Programming Language :: Python
12
- Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.8
14
- Classifier: Programming Language :: Python :: 3.9
15
- Classifier: Programming Language :: Python :: 3.10
16
- Classifier: Programming Language :: Python :: 3.11
17
- Classifier: Programming Language :: Python :: 3.12
18
- Classifier: Programming Language :: Python :: Implementation :: CPython
19
- Classifier: Programming Language :: Python :: Implementation :: PyPy
20
- Requires-Python: >=3.11
21
- Requires-Dist: click
22
- Requires-Dist: gql[all]
23
- Requires-Dist: loguru
24
- Requires-Dist: pyyaml
25
- Description-Content-Type: text/markdown
26
-
27
- # primitive
28
-
29
- [![PyPI - Version](https://img.shields.io/pypi/v/primitive-cli.svg)](https://pypi.org/project/primitive-cli)
30
- [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/primitive-cli.svg)](https://pypi.org/project/primitive-cli)
31
-
32
- ---
33
-
34
- **Table of Contents**
35
-
36
- - [Installation](#installation)
37
- - [Configuration](#configuration)
38
- - [License](#license)
39
-
40
- ## Installation
41
-
42
- ```console
43
- pip install primitive
44
- ```
45
-
46
- ## Configuration
47
-
48
- ### Authenticate
49
-
50
- ```console
51
- primitive config
52
- ```
53
-
54
- ### Register your Hardware
55
-
56
- ```console
57
- primitive hardware register
58
- ```
59
-
60
- ## License
61
-
62
- `primitive` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
@@ -1,36 +0,0 @@
1
- # primitive
2
-
3
- [![PyPI - Version](https://img.shields.io/pypi/v/primitive-cli.svg)](https://pypi.org/project/primitive-cli)
4
- [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/primitive-cli.svg)](https://pypi.org/project/primitive-cli)
5
-
6
- ---
7
-
8
- **Table of Contents**
9
-
10
- - [Installation](#installation)
11
- - [Configuration](#configuration)
12
- - [License](#license)
13
-
14
- ## Installation
15
-
16
- ```console
17
- pip install primitive
18
- ```
19
-
20
- ## Configuration
21
-
22
- ### Authenticate
23
-
24
- ```console
25
- primitive config
26
- ```
27
-
28
- ### Register your Hardware
29
-
30
- ```console
31
- primitive hardware register
32
- ```
33
-
34
- ## License
35
-
36
- `primitive` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
File without changes
File without changes
File without changes
File without changes
File without changes