gpp-client 26.7.3.dev7__tar.gz → 26.7.3.dev9__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.dev9}/PKG-INFO +1 -1
  2. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/client.py +8 -0
  3. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/domains/base.py +3 -1
  4. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/domains/scheduler.py +5 -7
  5. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/__init__.py +8 -2
  6. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/client.py +3 -1
  7. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/custom_fields.py +2476 -27
  8. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/custom_mutations.py +111 -0
  9. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/custom_queries.py +57 -0
  10. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/custom_typing_fields.py +32 -2
  11. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/enums.py +4 -2
  12. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/input_types.py +2035 -10
  13. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/rest/client.py +15 -2
  14. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/rest/utils.py +6 -2
  15. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/.gitignore +0 -0
  16. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/LICENSE +0 -0
  17. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/README.md +0 -0
  18. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/graphql/README.md +0 -0
  19. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/pyproject.toml +0 -0
  20. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/__init__.py +0 -0
  21. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/__init__.py +0 -0
  22. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/cli.py +0 -0
  23. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/commands/__init__.py +0 -0
  24. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/commands/attachment.py +0 -0
  25. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/commands/goats.py +0 -0
  26. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/commands/observation.py +0 -0
  27. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/commands/program.py +0 -0
  28. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/commands/scheduler.py +0 -0
  29. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/commands/site_status.py +0 -0
  30. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/commands/target.py +0 -0
  31. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/commands/workflow_state.py +0 -0
  32. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/console.py +0 -0
  33. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/output.py +0 -0
  34. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/cli/utils.py +0 -0
  35. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/constants.py +0 -0
  36. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/domains/__init__.py +0 -0
  37. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/domains/atom.py +0 -0
  38. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/domains/attachment.py +0 -0
  39. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/domains/goats.py +0 -0
  40. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/domains/observation.py +0 -0
  41. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/domains/program.py +0 -0
  42. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/domains/site_status.py +0 -0
  43. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/domains/target.py +0 -0
  44. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/domains/workflow_state.py +0 -0
  45. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/environment.py +0 -0
  46. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/exceptions.py +0 -0
  47. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/async_base_client.py +0 -0
  48. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/base_model.py +0 -0
  49. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/base_operation.py +0 -0
  50. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/clone_observation.py +0 -0
  51. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/clone_target.py +0 -0
  52. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/create_call_for_proposals.py +0 -0
  53. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/create_observation.py +0 -0
  54. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/create_program.py +0 -0
  55. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/create_target_by_program_id.py +0 -0
  56. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/create_target_by_program_reference.py +0 -0
  57. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/create_target_by_proposal_reference.py +0 -0
  58. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/delete_call_for_proposals_by_id.py +0 -0
  59. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/delete_observation_by_id.py +0 -0
  60. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/delete_observation_by_reference.py +0 -0
  61. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/delete_program_by_id.py +0 -0
  62. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/delete_target_by_id.py +0 -0
  63. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/exceptions.py +0 -0
  64. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/fragments.py +0 -0
  65. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_call_for_proposals.py +0 -0
  66. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_calls_for_proposals.py +0 -0
  67. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_goats_observations.py +0 -0
  68. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_goats_programs.py +0 -0
  69. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_observation.py +0 -0
  70. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_observation_attachments_by_id.py +0 -0
  71. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_observation_attachments_by_reference.py +0 -0
  72. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_observation_workflow_state_by_id.py +0 -0
  73. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_observation_workflow_state_by_reference.py +0 -0
  74. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_observations.py +0 -0
  75. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_program_attachments_by_id.py +0 -0
  76. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_program_attachments_by_proposal_reference.py +0 -0
  77. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_program_attachments_by_reference.py +0 -0
  78. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_program_by_id.py +0 -0
  79. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_program_by_proposal_reference.py +0 -0
  80. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_program_by_reference.py +0 -0
  81. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_programs.py +0 -0
  82. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_scheduler_all_programs_id.py +0 -0
  83. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_scheduler_programs.py +0 -0
  84. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_target_by_id.py +0 -0
  85. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/get_targets.py +0 -0
  86. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/obs_calculation_update.py +0 -0
  87. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/observation_edit.py +0 -0
  88. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/package_environment.py +0 -0
  89. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/ping.py +0 -0
  90. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/program_edit.py +0 -0
  91. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/restore_call_for_proposals_by_id.py +0 -0
  92. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/restore_observation_by_id.py +0 -0
  93. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/restore_observation_by_reference.py +0 -0
  94. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/restore_program_by_id.py +0 -0
  95. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/restore_target_by_id.py +0 -0
  96. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/scheduler_observations_updates.py +0 -0
  97. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/set_observation_workflow_state.py +0 -0
  98. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/target_edit.py +0 -0
  99. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/update_call_for_proposals_by_id.py +0 -0
  100. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/update_calls_for_proposals.py +0 -0
  101. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/update_observation_by_id.py +0 -0
  102. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/update_observation_by_reference.py +0 -0
  103. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/update_observations.py +0 -0
  104. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/update_program_by_id.py +0 -0
  105. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/update_programs.py +0 -0
  106. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/update_target_by_id.py +0 -0
  107. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/generated/update_targets.py +0 -0
  108. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/logging_utils.py +0 -0
  109. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/rest/__init__.py +0 -0
  110. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/rest/models.py +0 -0
  111. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/src/gpp_client/settings.py +0 -0
  112. {gpp_client-26.7.3.dev7 → gpp_client-26.7.3.dev9}/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.dev9
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
@@ -7,6 +7,7 @@ __all__ = ["GPPClient"]
7
7
  import logging
8
8
  from typing import Any, Optional
9
9
 
10
+ import httpx
10
11
  from typing_extensions import Self
11
12
 
12
13
  from gpp_client.domains import (
@@ -29,6 +30,10 @@ from gpp_client.urls import get_graphql_url, get_ws_url
29
30
 
30
31
  logger = logging.getLogger(__name__)
31
32
 
33
+ # httpx defaults to 5 seconds, which is too aggressive for slow GPP operations
34
+ # such as cloning observations.
35
+ _HTTP_TIMEOUT = httpx.Timeout(60.0, connect=10.0)
36
+
32
37
 
33
38
  class GPPClient:
34
39
  """
@@ -141,6 +146,9 @@ class GPPClient:
141
146
  return GraphQLClient(
142
147
  url=graphql_url,
143
148
  headers=headers,
149
+ # The generated client only applies `headers` when it builds its own
150
+ # http client, so they must be set on the custom one as well.
151
+ http_client=httpx.AsyncClient(headers=headers, timeout=_HTTP_TIMEOUT),
144
152
  ws_url=ws_url,
145
153
  ws_headers=headers,
146
154
  ws_connection_init_payload=headers,
@@ -67,7 +67,9 @@ class BaseDomain:
67
67
  The raised exception of the specified type.
68
68
  """
69
69
  class_name = self.__class__.__name__
70
- message = f"{class_name}: {exc}"
70
+ # Fall back to the type name so an exception raised without a message
71
+ # does not end up as an empty error.
72
+ message = f"{class_name}: {str(exc) or type(exc).__name__}"
71
73
  logger.error(message, exc_info=include_traceback)
72
74
 
73
75
  if include_traceback:
@@ -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,
@@ -105,7 +105,6 @@ from .enums import (
105
105
  ExchangeObservingModeType,
106
106
  ExchangePartner,
107
107
  ExecutionEventType,
108
- ExecutionRequirement,
109
108
  ExecutionState,
110
109
  Existence,
111
110
  Flamingos2CustomSlitWidth,
@@ -197,6 +196,7 @@ from .enums import (
197
196
  ProgramUserSupportRoleType,
198
197
  ProposalStatus,
199
198
  QuasarSpectrum,
199
+ SchedulingMode,
200
200
  ScienceBand,
201
201
  ScienceMode,
202
202
  ScienceSubtype,
@@ -952,6 +952,8 @@ from .input_types import (
952
952
  Flamingos2ImagingInput,
953
953
  Flamingos2LongSlitAcquisitionInput,
954
954
  Flamingos2LongSlitInput,
955
+ Flamingos2MosAcquisitionInput,
956
+ Flamingos2MosInput,
955
957
  Flamingos2StaticInput,
956
958
  Flamingos2StepInput,
957
959
  FluxDensity,
@@ -1107,6 +1109,7 @@ from .input_types import (
1107
1109
  TargetEditInput,
1108
1110
  TargetEnvironmentInput,
1109
1111
  TargetPropertiesInput,
1112
+ TargetResolutionInput,
1110
1113
  TelescopeConfigAlongSlitInput,
1111
1114
  TelescopeConfigGeneratorInput,
1112
1115
  TelescopeConfigInput,
@@ -1570,7 +1573,6 @@ __all__ = [
1570
1573
  "ExchangePartner",
1571
1574
  "ExecutionEventAddedInput",
1572
1575
  "ExecutionEventType",
1573
- "ExecutionRequirement",
1574
1576
  "ExecutionState",
1575
1577
  "Existence",
1576
1578
  "ExposureTimeModeInput",
@@ -1618,6 +1620,8 @@ __all__ = [
1618
1620
  "Flamingos2LongSlitDetailsTelluricType",
1619
1621
  "Flamingos2LongSlitInput",
1620
1622
  "Flamingos2LyotWheel",
1623
+ "Flamingos2MosAcquisitionInput",
1624
+ "Flamingos2MosInput",
1621
1625
  "Flamingos2ReadMode",
1622
1626
  "Flamingos2ReadoutMode",
1623
1627
  "Flamingos2Reads",
@@ -2479,6 +2483,7 @@ __all__ = [
2479
2483
  "SchedulerProposalCallSubaru",
2480
2484
  "SchedulerProposalGemini",
2481
2485
  "SchedulingConstraintsInput",
2486
+ "SchedulingMode",
2482
2487
  "ScienceBand",
2483
2488
  "ScienceMode",
2484
2489
  "ScienceRequirementsDetails",
@@ -2551,6 +2556,7 @@ __all__ = [
2551
2556
  "TargetProgramSummary",
2552
2557
  "TargetProgramSummaryProgram",
2553
2558
  "TargetPropertiesInput",
2559
+ "TargetResolutionInput",
2554
2560
  "TelescopeConfigAlongSlitInput",
2555
2561
  "TelescopeConfigGeneratorInput",
2556
2562
  "TelescopeConfigGeneratorType",
@@ -10303,7 +10303,9 @@ class GraphQLClient(AsyncBaseClient):
10303
10303
  ) -> AsyncIterator[SchedulerObservationsUpdates]:
10304
10304
  query = gql("""
10305
10305
  subscription SchedulerObservationsUpdates($executableOnly: Boolean) {
10306
- obscalcUpdate(input: {executableOnly: $executableOnly}) {
10306
+ obscalcUpdate(
10307
+ input: {executableOnly: $executableOnly, newCalculationState: {EQ: READY}}
10308
+ ) {
10307
10309
  oldCalculationState
10308
10310
  newCalculationState
10309
10311
  editType