gpp-client 26.7.3.dev7__tar.gz → 26.7.3.dev8__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 (112) hide show
  1. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/PKG-INFO +1 -1
  2. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/domains/scheduler.py +5 -7
  3. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/rest/client.py +15 -2
  4. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/.gitignore +0 -0
  5. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/LICENSE +0 -0
  6. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/README.md +0 -0
  7. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/graphql/README.md +0 -0
  8. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/pyproject.toml +0 -0
  9. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/__init__.py +0 -0
  10. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/__init__.py +0 -0
  11. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/cli.py +0 -0
  12. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/commands/__init__.py +0 -0
  13. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/commands/attachment.py +0 -0
  14. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/commands/goats.py +0 -0
  15. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/commands/observation.py +0 -0
  16. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/commands/program.py +0 -0
  17. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/commands/scheduler.py +0 -0
  18. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/commands/site_status.py +0 -0
  19. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/commands/target.py +0 -0
  20. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/commands/workflow_state.py +0 -0
  21. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/console.py +0 -0
  22. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/output.py +0 -0
  23. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/cli/utils.py +0 -0
  24. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/client.py +0 -0
  25. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/constants.py +0 -0
  26. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/domains/__init__.py +0 -0
  27. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/domains/atom.py +0 -0
  28. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/domains/attachment.py +0 -0
  29. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/domains/base.py +0 -0
  30. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/domains/goats.py +0 -0
  31. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/domains/observation.py +0 -0
  32. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/domains/program.py +0 -0
  33. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/domains/site_status.py +0 -0
  34. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/domains/target.py +0 -0
  35. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/domains/workflow_state.py +0 -0
  36. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/environment.py +0 -0
  37. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/exceptions.py +0 -0
  38. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/__init__.py +0 -0
  39. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/async_base_client.py +0 -0
  40. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/base_model.py +0 -0
  41. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/base_operation.py +0 -0
  42. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/client.py +0 -0
  43. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/clone_observation.py +0 -0
  44. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/clone_target.py +0 -0
  45. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/create_call_for_proposals.py +0 -0
  46. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/create_observation.py +0 -0
  47. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/create_program.py +0 -0
  48. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/create_target_by_program_id.py +0 -0
  49. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/create_target_by_program_reference.py +0 -0
  50. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/create_target_by_proposal_reference.py +0 -0
  51. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/custom_fields.py +0 -0
  52. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/custom_mutations.py +0 -0
  53. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/custom_queries.py +0 -0
  54. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/custom_typing_fields.py +0 -0
  55. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/delete_call_for_proposals_by_id.py +0 -0
  56. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/delete_observation_by_id.py +0 -0
  57. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/delete_observation_by_reference.py +0 -0
  58. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/delete_program_by_id.py +0 -0
  59. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/delete_target_by_id.py +0 -0
  60. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/enums.py +0 -0
  61. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/exceptions.py +0 -0
  62. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/fragments.py +0 -0
  63. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_call_for_proposals.py +0 -0
  64. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_calls_for_proposals.py +0 -0
  65. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_goats_observations.py +0 -0
  66. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_goats_programs.py +0 -0
  67. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_observation.py +0 -0
  68. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_observation_attachments_by_id.py +0 -0
  69. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_observation_attachments_by_reference.py +0 -0
  70. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_observation_workflow_state_by_id.py +0 -0
  71. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_observation_workflow_state_by_reference.py +0 -0
  72. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_observations.py +0 -0
  73. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_program_attachments_by_id.py +0 -0
  74. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_program_attachments_by_proposal_reference.py +0 -0
  75. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_program_attachments_by_reference.py +0 -0
  76. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_program_by_id.py +0 -0
  77. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_program_by_proposal_reference.py +0 -0
  78. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_program_by_reference.py +0 -0
  79. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_programs.py +0 -0
  80. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_scheduler_all_programs_id.py +0 -0
  81. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_scheduler_programs.py +0 -0
  82. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_target_by_id.py +0 -0
  83. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/get_targets.py +0 -0
  84. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/input_types.py +0 -0
  85. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/obs_calculation_update.py +0 -0
  86. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/observation_edit.py +0 -0
  87. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/package_environment.py +0 -0
  88. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/ping.py +0 -0
  89. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/program_edit.py +0 -0
  90. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/restore_call_for_proposals_by_id.py +0 -0
  91. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/restore_observation_by_id.py +0 -0
  92. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/restore_observation_by_reference.py +0 -0
  93. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/restore_program_by_id.py +0 -0
  94. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/restore_target_by_id.py +0 -0
  95. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/scheduler_observations_updates.py +0 -0
  96. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/set_observation_workflow_state.py +0 -0
  97. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/target_edit.py +0 -0
  98. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/update_call_for_proposals_by_id.py +0 -0
  99. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/update_calls_for_proposals.py +0 -0
  100. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/update_observation_by_id.py +0 -0
  101. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/update_observation_by_reference.py +0 -0
  102. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/update_observations.py +0 -0
  103. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/update_program_by_id.py +0 -0
  104. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/update_programs.py +0 -0
  105. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/update_target_by_id.py +0 -0
  106. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/generated/update_targets.py +0 -0
  107. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/logging_utils.py +0 -0
  108. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/rest/__init__.py +0 -0
  109. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/rest/models.py +0 -0
  110. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/rest/utils.py +0 -0
  111. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/settings.py +0 -0
  112. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev8}/src/gpp_client/urls.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: gpp-client
3
- Version: 26.7.3.dev7
3
+ Version: 26.7.3.dev8
4
4
  Summary: Gemini Program Platform client.
5
5
  Project-URL: Homepage, https://github.com/gemini-hlsw/gpp-client
6
6
  Project-URL: Source, https://github.com/gemini-hlsw/gpp-client
@@ -269,10 +269,9 @@ class SchedulerDomain(BaseDomain):
269
269
 
270
270
  # Get sequence
271
271
  if observations:
272
- async with self._rest as client:
273
- atom_digest_response = (
274
- await client.get_atom_digests(observations)
275
- ).split("\n")
272
+ atom_digest_response = (
273
+ await self._rest.get_atom_digests(observations)
274
+ ).split("\n")
276
275
  obs_atoms_mapping = self._parse_atom_digest(atom_digest_response)
277
276
  else:
278
277
  obs_atoms_mapping = {}
@@ -332,9 +331,8 @@ class SchedulerDomain(BaseDomain):
332
331
  aiohttp.ClientError
333
332
  For HTTP errors, connection failures, or timeouts.
334
333
  """
335
- async with self._rest as client:
336
- body = await client.get_visibility_changes(since)
337
- return parse_visibility_changes(body)
334
+ body = await self._rest.get_visibility_changes(since)
335
+ return parse_visibility_changes(body)
338
336
 
339
337
  async def subscribe_to_calculation_updates(
340
338
  self,
@@ -21,6 +21,13 @@ class RESTClient:
21
21
  REST API client to non-GraphQL requests that help with the function of managers and
22
22
  coordinators.
23
23
 
24
+ The ``aiohttp`` session is created on first use and shared by every caller that
25
+ goes through :meth:`get_session`, so closing it is the job of whoever built the
26
+ client -- normally ``GPPClient.close()``. Code that was handed a client (the
27
+ domain classes, for instance) must use :meth:`get_session` and leave the session
28
+ open: closing it mid-flight aborts other callers' in-progress requests with
29
+ ``ClientConnectionError("Connector is closed.")``.
30
+
24
31
  Parameters
25
32
  ----------
26
33
  base_url : str
@@ -93,9 +100,15 @@ class RESTClient:
93
100
  async def close(self) -> None:
94
101
  """
95
102
  Close the session if it exists and is not already closed.
103
+
104
+ Call this only on a client you own; see the class docstring. The lock is
105
+ held so a concurrent :meth:`get_session` cannot hand out the session being
106
+ closed, and the reference is dropped so the next call builds a fresh one.
96
107
  """
97
- if self._session and not self._session.closed:
98
- await self._session.close()
108
+ async with self._lock:
109
+ if self._session and not self._session.closed:
110
+ await self._session.close()
111
+ self._session = None
99
112
 
100
113
  async def __aenter__(self):
101
114
  return self