primitive 0.1.95__tar.gz → 0.1.96__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 (109) hide show
  1. {primitive-0.1.95 → primitive-0.1.96}/PKG-INFO +1 -1
  2. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/__about__.py +1 -1
  3. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/agent/actions.py +8 -1
  4. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/hardware/actions.py +8 -3
  5. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/auth.py +1 -0
  6. primitive-0.1.96/src/primitive/utils/exceptions.py +12 -0
  7. {primitive-0.1.95 → primitive-0.1.96}/uv.lock +1 -2
  8. {primitive-0.1.95 → primitive-0.1.96}/.git-hooks/pre-commit +0 -0
  9. {primitive-0.1.95 → primitive-0.1.96}/.gitattributes +0 -0
  10. {primitive-0.1.95 → primitive-0.1.96}/.github/workflows/lint.yml +0 -0
  11. {primitive-0.1.95 → primitive-0.1.96}/.github/workflows/publish.yml +0 -0
  12. {primitive-0.1.95 → primitive-0.1.96}/.gitignore +0 -0
  13. {primitive-0.1.95 → primitive-0.1.96}/.vscode/settings.json +0 -0
  14. {primitive-0.1.95 → primitive-0.1.96}/LICENSE.txt +0 -0
  15. {primitive-0.1.95 → primitive-0.1.96}/Makefile +0 -0
  16. {primitive-0.1.95 → primitive-0.1.96}/README.md +0 -0
  17. {primitive-0.1.95 → primitive-0.1.96}/linux setup.md +0 -0
  18. {primitive-0.1.95 → primitive-0.1.96}/pyproject.toml +0 -0
  19. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/__init__.py +0 -0
  20. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/agent/__init__.py +0 -0
  21. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/agent/commands.py +0 -0
  22. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/agent/process.py +0 -0
  23. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/agent/provision.py +0 -0
  24. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/agent/runner.py +0 -0
  25. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/agent/uploader.py +0 -0
  26. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/auth/__init__.py +0 -0
  27. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/auth/actions.py +0 -0
  28. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/auth/commands.py +0 -0
  29. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/auth/graphql/__init__.py +0 -0
  30. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/auth/graphql/queries.py +0 -0
  31. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/cli.py +0 -0
  32. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/client.py +0 -0
  33. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/daemons/__init__.py +0 -0
  34. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/daemons/actions.py +0 -0
  35. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/daemons/commands.py +0 -0
  36. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/daemons/launch_agents.py +0 -0
  37. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/daemons/launch_service.py +0 -0
  38. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/exec/__init__.py +0 -0
  39. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/exec/actions.py +0 -0
  40. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/exec/commands.py +0 -0
  41. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/exec/interactive.py +0 -0
  42. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/files/__init__.py +0 -0
  43. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/files/actions.py +0 -0
  44. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/files/commands.py +0 -0
  45. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/files/graphql/__init__.py +0 -0
  46. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/files/graphql/fragments.py +0 -0
  47. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/files/graphql/mutations.py +0 -0
  48. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/files/graphql/queries.py +0 -0
  49. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/git/__init__.py +0 -0
  50. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/git/actions.py +0 -0
  51. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/git/commands.py +0 -0
  52. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/git/graphql/__init__.py +0 -0
  53. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/git/graphql/queries.py +0 -0
  54. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/graphql/__init__.py +0 -0
  55. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/graphql/relay.py +0 -0
  56. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/graphql/sdk.py +0 -0
  57. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/graphql/utility_fragments.py +0 -0
  58. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/hardware/__init__.py +0 -0
  59. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/hardware/android.py +0 -0
  60. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/hardware/commands.py +0 -0
  61. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/hardware/graphql/__init__.py +0 -0
  62. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/hardware/graphql/fragments.py +0 -0
  63. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/hardware/graphql/mutations.py +0 -0
  64. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/hardware/graphql/queries.py +0 -0
  65. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/jobs/__init__.py +0 -0
  66. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/jobs/actions.py +0 -0
  67. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/jobs/commands.py +0 -0
  68. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/jobs/graphql/__init__.py +0 -0
  69. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/jobs/graphql/fragments.py +0 -0
  70. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/jobs/graphql/mutations.py +0 -0
  71. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/jobs/graphql/queries.py +0 -0
  72. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/organizations/__init__.py +0 -0
  73. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/organizations/actions.py +0 -0
  74. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/organizations/commands.py +0 -0
  75. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/organizations/graphql/__init__.py +0 -0
  76. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/organizations/graphql/fragments.py +0 -0
  77. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/organizations/graphql/mutations.py +0 -0
  78. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/organizations/graphql/queries.py +0 -0
  79. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/projects/__init__.py +0 -0
  80. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/projects/actions.py +0 -0
  81. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/projects/commands.py +0 -0
  82. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/projects/graphql/__init__.py +0 -0
  83. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/projects/graphql/fragments.py +0 -0
  84. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/projects/graphql/mutations.py +0 -0
  85. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/projects/graphql/queries.py +0 -0
  86. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/provisioning/__init__.py +0 -0
  87. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/provisioning/actions.py +0 -0
  88. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/provisioning/graphql/__init__.py +0 -0
  89. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/provisioning/graphql/queries.py +0 -0
  90. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/reservations/__init__.py +0 -0
  91. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/reservations/actions.py +0 -0
  92. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/reservations/commands.py +0 -0
  93. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/reservations/graphql/__init__.py +0 -0
  94. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/reservations/graphql/fragments.py +0 -0
  95. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/reservations/graphql/mutations.py +0 -0
  96. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/reservations/graphql/queries.py +0 -0
  97. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/__init__.py +0 -0
  98. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/actions.py +0 -0
  99. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/cache.py +0 -0
  100. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/chunk_size.py +0 -0
  101. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/config.py +0 -0
  102. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/files.py +0 -0
  103. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/git.py +0 -0
  104. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/memory_size.py +0 -0
  105. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/printer.py +0 -0
  106. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/shell.py +0 -0
  107. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/text.py +0 -0
  108. {primitive-0.1.95 → primitive-0.1.96}/src/primitive/utils/verible.py +0 -0
  109. {primitive-0.1.95 → primitive-0.1.96}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: primitive
3
- Version: 0.1.95
3
+ Version: 0.1.96
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: 2024-present Dylan Stein <dylan@primitive.tech>
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "0.1.95"
4
+ __version__ = "0.1.96"
@@ -8,6 +8,7 @@ from primitive.__about__ import __version__
8
8
  from primitive.utils.actions import BaseAction
9
9
 
10
10
  from ..utils.cache import get_sources_cache
11
+ from ..utils.exceptions import P_CLI_100
11
12
  from .runner import AgentRunner
12
13
  from .uploader import Uploader
13
14
 
@@ -181,5 +182,11 @@ class Agent(BaseAction):
181
182
  sleep(5)
182
183
  except KeyboardInterrupt:
183
184
  logger.info(" [*] Stopping primitive...")
184
- self.primitive.hardware.check_in_http(is_available=False, is_online=False)
185
+ try:
186
+ self.primitive.hardware.check_in_http(
187
+ is_available=False, is_online=False, stopping_agent=True
188
+ )
189
+ except P_CLI_100 as exception:
190
+ logger.error(" [*] Error stopping primitive.")
191
+ logger.error(str(exception))
185
192
  sys.exit()
@@ -17,6 +17,7 @@ from primitive.utils.memory_size import MemorySize
17
17
 
18
18
  from ..utils.auth import guard
19
19
  from ..utils.config import update_config_file
20
+ from ..utils.exceptions import P_CLI_100
20
21
  from .graphql.mutations import (
21
22
  hardware_checkin_mutation,
22
23
  hardware_update_mutation,
@@ -384,6 +385,7 @@ class Hardware(BaseAction):
384
385
  is_available: bool = False,
385
386
  is_online: bool = True,
386
387
  fingerprint: Optional[str] = None,
388
+ stopping_agent: Optional[bool] = False,
387
389
  ):
388
390
  # if no fingerprint supplied from argument try from the host_config
389
391
  if not fingerprint:
@@ -457,9 +459,12 @@ class Hardware(BaseAction):
457
459
  raise Exception(message)
458
460
  return result
459
461
  except client_exceptions.ClientConnectorError as exception:
460
- message = " [*] Failed to check in! "
461
- logger.exception(message)
462
- raise exception
462
+ if not stopping_agent:
463
+ message = " [*] Failed to check in! "
464
+ logger.error(message)
465
+ raise exception
466
+ else:
467
+ raise P_CLI_100
463
468
 
464
469
  @guard
465
470
  def get_hardware_list(
@@ -43,6 +43,7 @@ def guard(func):
43
43
  @backoff.on_exception(
44
44
  backoff.expo,
45
45
  (
46
+ ConnectionRefusedError,
46
47
  ClientConnectorError,
47
48
  TransportServerError,
48
49
  ),
@@ -0,0 +1,12 @@
1
+ from dataclasses import dataclass
2
+
3
+
4
+ @dataclass
5
+ class P_CLI_100(Exception):
6
+ """Check In Connection Failure while Stopping Agent"""
7
+
8
+ codename: str = "P_CLI_100"
9
+ message: str = "Check In Connection Failure while Stopping Agent"
10
+
11
+ def __str__(self):
12
+ return f"{self.codename}: {self.message}"
@@ -280,7 +280,7 @@ name = "click"
280
280
  version = "8.1.8"
281
281
  source = { registry = "https://pypi.org/simple" }
282
282
  dependencies = [
283
- { name = "colorama", marker = "platform_system == 'Windows'" },
283
+ { name = "colorama", marker = "sys_platform == 'win32'" },
284
284
  ]
285
285
  sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 }
286
286
  wheels = [
@@ -703,7 +703,6 @@ wheels = [
703
703
 
704
704
  [[package]]
705
705
  name = "primitive"
706
- version = "0.1.89"
707
706
  source = { editable = "." }
708
707
  dependencies = [
709
708
  { name = "click" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes