primitive 0.2.53__tar.gz → 0.2.56__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 (113) hide show
  1. {primitive-0.2.53 → primitive-0.2.56}/.vscode/settings.json +1 -0
  2. {primitive-0.2.53 → primitive-0.2.56}/PKG-INFO +1 -1
  3. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/__about__.py +1 -1
  4. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/agent/actions.py +4 -4
  5. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/agent/runner.py +7 -1
  6. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/jobs/graphql/fragments.py +1 -0
  7. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/monitor/actions.py +0 -1
  8. {primitive-0.2.53 → primitive-0.2.56}/.git-hooks/pre-commit +0 -0
  9. {primitive-0.2.53 → primitive-0.2.56}/.gitattributes +0 -0
  10. {primitive-0.2.53 → primitive-0.2.56}/.github/workflows/lint.yml +0 -0
  11. {primitive-0.2.53 → primitive-0.2.56}/.github/workflows/publish.yml +0 -0
  12. {primitive-0.2.53 → primitive-0.2.56}/.github/workflows/pyright.yml +0 -0
  13. {primitive-0.2.53 → primitive-0.2.56}/.gitignore +0 -0
  14. {primitive-0.2.53 → primitive-0.2.56}/.vscode/extensions.json +0 -0
  15. {primitive-0.2.53 → primitive-0.2.56}/LICENSE.txt +0 -0
  16. {primitive-0.2.53 → primitive-0.2.56}/Makefile +0 -0
  17. {primitive-0.2.53 → primitive-0.2.56}/README.md +0 -0
  18. {primitive-0.2.53 → primitive-0.2.56}/linux setup.md +0 -0
  19. {primitive-0.2.53 → primitive-0.2.56}/pyproject.toml +0 -0
  20. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/__init__.py +0 -0
  21. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/agent/__init__.py +0 -0
  22. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/agent/commands.py +0 -0
  23. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/agent/uploader.py +0 -0
  24. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/auth/__init__.py +0 -0
  25. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/auth/actions.py +0 -0
  26. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/auth/commands.py +0 -0
  27. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/auth/graphql/__init__.py +0 -0
  28. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/auth/graphql/queries.py +0 -0
  29. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/cli.py +0 -0
  30. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/client.py +0 -0
  31. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/daemons/__init__.py +0 -0
  32. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/daemons/actions.py +0 -0
  33. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/daemons/commands.py +0 -0
  34. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/daemons/launch_agents.py +0 -0
  35. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/daemons/launch_service.py +0 -0
  36. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/daemons/ui.py +0 -0
  37. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/exec/__init__.py +0 -0
  38. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/exec/actions.py +0 -0
  39. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/exec/commands.py +0 -0
  40. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/exec/interactive.py +0 -0
  41. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/files/__init__.py +0 -0
  42. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/files/actions.py +0 -0
  43. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/files/commands.py +0 -0
  44. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/files/graphql/__init__.py +0 -0
  45. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/files/graphql/fragments.py +0 -0
  46. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/files/graphql/mutations.py +0 -0
  47. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/files/graphql/queries.py +0 -0
  48. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/git/__init__.py +0 -0
  49. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/git/actions.py +0 -0
  50. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/git/commands.py +0 -0
  51. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/git/graphql/__init__.py +0 -0
  52. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/git/graphql/queries.py +0 -0
  53. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/graphql/__init__.py +0 -0
  54. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/graphql/relay.py +0 -0
  55. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/graphql/sdk.py +0 -0
  56. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/graphql/utility_fragments.py +0 -0
  57. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/hardware/__init__.py +0 -0
  58. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/hardware/actions.py +0 -0
  59. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/hardware/android.py +0 -0
  60. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/hardware/commands.py +0 -0
  61. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/hardware/graphql/__init__.py +0 -0
  62. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/hardware/graphql/fragments.py +0 -0
  63. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/hardware/graphql/mutations.py +0 -0
  64. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/hardware/graphql/queries.py +0 -0
  65. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/hardware/ui.py +0 -0
  66. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/jobs/__init__.py +0 -0
  67. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/jobs/actions.py +0 -0
  68. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/jobs/commands.py +0 -0
  69. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/jobs/graphql/__init__.py +0 -0
  70. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/jobs/graphql/mutations.py +0 -0
  71. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/jobs/graphql/queries.py +0 -0
  72. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/monitor/commands.py +0 -0
  73. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/organizations/__init__.py +0 -0
  74. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/organizations/actions.py +0 -0
  75. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/organizations/commands.py +0 -0
  76. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/organizations/graphql/__init__.py +0 -0
  77. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/organizations/graphql/fragments.py +0 -0
  78. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/organizations/graphql/mutations.py +0 -0
  79. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/organizations/graphql/queries.py +0 -0
  80. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/projects/__init__.py +0 -0
  81. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/projects/actions.py +0 -0
  82. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/projects/commands.py +0 -0
  83. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/projects/graphql/__init__.py +0 -0
  84. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/projects/graphql/fragments.py +0 -0
  85. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/projects/graphql/mutations.py +0 -0
  86. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/projects/graphql/queries.py +0 -0
  87. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/provisioning/__init__.py +0 -0
  88. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/provisioning/actions.py +0 -0
  89. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/provisioning/graphql/__init__.py +0 -0
  90. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/provisioning/graphql/queries.py +0 -0
  91. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/reservations/__init__.py +0 -0
  92. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/reservations/actions.py +0 -0
  93. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/reservations/commands.py +0 -0
  94. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/reservations/graphql/__init__.py +0 -0
  95. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/reservations/graphql/fragments.py +0 -0
  96. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/reservations/graphql/mutations.py +0 -0
  97. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/reservations/graphql/queries.py +0 -0
  98. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/__init__.py +0 -0
  99. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/actions.py +0 -0
  100. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/auth.py +0 -0
  101. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/cache.py +0 -0
  102. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/chunk_size.py +0 -0
  103. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/config.py +0 -0
  104. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/daemons.py +0 -0
  105. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/exceptions.py +0 -0
  106. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/logging.py +0 -0
  107. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/memory_size.py +0 -0
  108. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/printer.py +0 -0
  109. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/psutil.py +0 -0
  110. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/shell.py +0 -0
  111. {primitive-0.2.53 → primitive-0.2.56}/src/primitive/utils/text.py +0 -0
  112. {primitive-0.2.53 → primitive-0.2.56}/tests/__init__.py +0 -0
  113. {primitive-0.2.53 → primitive-0.2.56}/uv.lock +0 -0
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "cSpell.words": [
3
+ "ajob",
3
4
  "Checkin",
4
5
  "loguru",
5
6
  "machdep",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: primitive
3
- Version: 0.2.53
3
+ Version: 0.2.56
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
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2025-present Dylan Stein <dylan@primitive.tech>
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "0.2.53"
4
+ __version__ = "0.2.56"
@@ -116,7 +116,7 @@ class Agent(BaseAction):
116
116
  or job_run_status == "completed"
117
117
  ):
118
118
  logger.error(
119
- f"JobRun {job_run_data.get('name')} is already completed with conclusion {job_run_data.get('jobRun', {}).get('conclusion', 'unknown')}. Exiting."
119
+ f"JobRun {job_run_data.get('jobRunNumber')} is already completed with status {job_run_data.get('status', 'unknown')} conclusion {job_run_data.get('conclusion', 'unknown')}. Exiting."
120
120
  )
121
121
  break
122
122
 
@@ -164,9 +164,9 @@ class Agent(BaseAction):
164
164
  # This should probably eventually be another daemon?
165
165
  uploader.scan()
166
166
 
167
- if RUNNING_IN_CONTAINER:
168
- logger.info("Running in container, exiting after job run")
169
- break
167
+ if RUNNING_IN_CONTAINER:
168
+ logger.info("Running in container, exiting after job run")
169
+ break
170
170
 
171
171
  sleep(5)
172
172
  except KeyboardInterrupt:
@@ -242,8 +242,14 @@ class Runner:
242
242
  )
243
243
 
244
244
  try:
245
+ while process.pid is None:
246
+ logger.debug(
247
+ f"Waiting for process PID to be set for command {i + 1}/{len(commands)}: {cmd}"
248
+ )
249
+ await asyncio.sleep(1)
250
+ logger.debug(f"Process started with PID {process.pid} for command")
245
251
  await self.primitive.jobs.ajob_run_update(
246
- self.job_run["id"],
252
+ id=self.job_run["id"],
247
253
  parent_pid=process.pid,
248
254
  )
249
255
  except ValueError:
@@ -51,5 +51,6 @@ fragment JobRunStatusFragment on JobRun {
51
51
  status
52
52
  conclusion
53
53
  parentPid
54
+ jobRunNumber
54
55
  }
55
56
  """
@@ -67,7 +67,6 @@ class Monitor(BaseAction):
67
67
  # handles cleanup of old reservations
68
68
  # obtains an active JobRun's ID
69
69
  if not RUNNING_IN_CONTAINER:
70
- self.primitive.hardware.check_in_http(is_online=True)
71
70
  hardware = self.primitive.hardware.get_own_hardware_details()
72
71
  # fetch the latest hardware and activeReservation details
73
72
  if active_reservation_data := hardware["activeReservation"]:
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