sg-python-api 0.1.2__py3-none-any.whl → 0.2.0__py3-none-any.whl

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 (56) hide show
  1. {sg_python_api-0.1.2.dist-info → sg_python_api-0.2.0.dist-info}/METADATA +21 -24
  2. sg_python_api-0.2.0.dist-info/RECORD +58 -0
  3. shotgun_api3/__init__.py +4 -0
  4. shotgun_api3/_async_client.py +347 -281
  5. shotgun_api3/_async_driver.py +25 -55
  6. shotgun_api3/_async_httpx2.py +92 -59
  7. shotgun_api3/_async_transport.py +38 -3
  8. shotgun_api3/_capabilities.py +4 -3
  9. shotgun_api3/_client.py +296 -422
  10. shotgun_api3/_config.py +245 -120
  11. shotgun_api3/_connections.py +144 -0
  12. shotgun_api3/_crud.py +25 -250
  13. shotgun_api3/_driver.py +29 -54
  14. shotgun_api3/_execution.py +1 -3
  15. shotgun_api3/_files.py +193 -21
  16. shotgun_api3/_methods.py +59 -411
  17. shotgun_api3/_protocol.py +27 -53
  18. shotgun_api3/_transport.py +82 -407
  19. shotgun_api3/_version.py +7 -2
  20. shotgun_api3/lib/mockgun/__init__.py +20 -7
  21. shotgun_api3/lib/mockgun/_activity.py +510 -0
  22. shotgun_api3/lib/mockgun/_async_client.py +196 -0
  23. shotgun_api3/lib/mockgun/_dates.py +164 -0
  24. shotgun_api3/lib/mockgun/_errors.py +18 -0
  25. shotgun_api3/lib/mockgun/_events.py +1031 -0
  26. shotgun_api3/lib/mockgun/_follows.py +217 -0
  27. shotgun_api3/lib/mockgun/_handlers.py +558 -0
  28. shotgun_api3/lib/mockgun/_links.py +440 -0
  29. shotgun_api3/lib/mockgun/_new_client.py +92 -0
  30. shotgun_api3/lib/mockgun/_presets.py +492 -0
  31. shotgun_api3/lib/mockgun/_query.py +2163 -0
  32. shotgun_api3/lib/mockgun/_retirement.py +368 -0
  33. shotgun_api3/lib/mockgun/_schema.py +172 -0
  34. shotgun_api3/lib/mockgun/_schema_writes.py +425 -0
  35. shotgun_api3/lib/mockgun/_search.py +378 -0
  36. shotgun_api3/lib/mockgun/_server.py +169 -0
  37. shotgun_api3/lib/mockgun/_sessions.py +206 -0
  38. shotgun_api3/lib/mockgun/_site.py +150 -0
  39. shotgun_api3/lib/mockgun/_site_data.py +584 -0
  40. shotgun_api3/lib/mockgun/_storage.py +208 -0
  41. shotgun_api3/lib/mockgun/_store.py +1446 -0
  42. shotgun_api3/lib/mockgun/_summaries.py +964 -0
  43. shotgun_api3/lib/mockgun/_sync_client.py +190 -0
  44. shotgun_api3/lib/mockgun/_threads.py +226 -0
  45. shotgun_api3/lib/mockgun/_thumbnails.py +146 -0
  46. shotgun_api3/lib/mockgun/_transport.py +145 -0
  47. shotgun_api3/lib/mockgun/_uploads.py +417 -0
  48. shotgun_api3/lib/mockgun/_wire.py +120 -0
  49. shotgun_api3/lib/mockgun/mockgun.py +14 -0
  50. shotgun_api3/lib/sgtimezone.py +24 -1
  51. sg_python_api-0.1.2.dist-info/RECORD +0 -31
  52. shotgun_api3/_signatures.py +0 -53
  53. shotgun_api3/lib/mockgun/_async.py +0 -315
  54. shotgun_api3/lib/mockgun/_mockgun.py +0 -1666
  55. {sg_python_api-0.1.2.dist-info → sg_python_api-0.2.0.dist-info}/WHEEL +0 -0
  56. {sg_python_api-0.1.2.dist-info → sg_python_api-0.2.0.dist-info}/licenses/LICENSE +0 -0
shotgun_api3/_methods.py CHANGED
@@ -2,245 +2,27 @@
2
2
 
3
3
  import dataclasses
4
4
  import datetime
5
- import inspect
6
- from collections.abc import Callable, Mapping
7
- from typing import Any, NotRequired, TypedDict, cast
5
+ from collections.abc import Mapping
6
+ from typing import cast
8
7
 
9
8
  from . import _crud, _protocol
10
9
  from ._errors import ShotgunError
11
- from ._signatures import bind_arguments, expose_signature
12
-
13
- _ACTIVITY_STREAM_READ_DOCSTRING = """Read the activity stream for one entity.
14
-
15
- Args:
16
- entity_type: Entity type whose activity stream to read.
17
- entity_id: Numeric identifier of the entity.
18
- entity_fields: Optional fields to return for linked entity types.
19
- min_id: Optional minimum activity identifier.
20
- max_id: Optional maximum activity identifier.
21
- limit: Optional maximum number of activity records.
22
-
23
- Returns:
24
- Activity stream data returned by the server.
25
-
26
- Raises:
27
- TypeError: If arguments do not match the documented signature.
28
- ShotgunError: If an RPC fault or terminal transport failure
29
- occurs, or if the server result has the wrong type.
30
- ProtocolError: If a server request returns an HTTP error.
31
- ValueError: If authenticated HTTP violates the configured origin policy.
32
- """
33
- _ACTIVITY_STREAM_READ_PARAMETERS = (
34
- inspect.Parameter('entity_type', inspect.Parameter.POSITIONAL_OR_KEYWORD, annotation=str),
35
- inspect.Parameter('entity_id', inspect.Parameter.POSITIONAL_OR_KEYWORD, annotation=int),
36
- inspect.Parameter(
37
- 'entity_fields',
38
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
39
- default=None,
40
- annotation=dict[str, list[str]] | None,
41
- ),
42
- inspect.Parameter(
43
- 'min_id',
44
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
45
- default=None,
46
- annotation=int | None,
47
- ),
48
- inspect.Parameter(
49
- 'max_id',
50
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
51
- default=None,
52
- annotation=int | None,
53
- ),
54
- inspect.Parameter(
55
- 'limit',
56
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
57
- default=None,
58
- annotation=int | None,
59
- ),
60
- )
61
- _ACTIVITY_STREAM_READ_SIGNATURE = inspect.Signature(
62
- _ACTIVITY_STREAM_READ_PARAMETERS,
63
- return_annotation=dict[str, object],
64
- )
65
- _EXPORT_PAGE_DOCSTRING = """Export a page using the documented arguments.
66
-
67
- The Page or its layout must be marked API Exportable in the web UI,
68
- or the server rejects the export.
69
-
70
- Args:
71
- page_id: Numeric page identifier.
72
- format: Required nonempty export format name.
73
- layout_name: Optional layout name, including an empty name.
74
-
75
- Returns:
76
- Exported page text returned by the server.
77
-
78
- Raises:
79
- TypeError: If arguments do not match the documented signature.
80
- ShotgunError: If an RPC fault or terminal transport failure
81
- occurs, or if `page_id`, `format`, or the server result is invalid.
82
- ProtocolError: If a server request returns an HTTP error.
83
- ValueError: If authenticated HTTP violates the configured origin policy.
84
- """
85
- _EXPORT_PAGE_PARAMETERS = (
86
- inspect.Parameter('page_id', inspect.Parameter.POSITIONAL_OR_KEYWORD, annotation=int),
87
- inspect.Parameter('format', inspect.Parameter.POSITIONAL_OR_KEYWORD, annotation=str),
88
- inspect.Parameter(
89
- 'layout_name',
90
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
91
- default=None,
92
- annotation=str | None,
93
- ),
94
- )
95
- _EXPORT_PAGE_SIGNATURE = inspect.Signature(
96
- _EXPORT_PAGE_PARAMETERS,
97
- return_annotation=str,
98
- )
99
- _METHOD_ACTIVITY_STREAM_READ_SIGNATURE = inspect.Signature(
100
- (
101
- inspect.Parameter('self', inspect.Parameter.POSITIONAL_OR_KEYWORD),
102
- *_ACTIVITY_STREAM_READ_PARAMETERS,
103
- ),
104
- return_annotation=dict[str, object],
105
- )
106
- _METHOD_EXPORT_PAGE_SIGNATURE = inspect.Signature(
107
- (
108
- inspect.Parameter('self', inspect.Parameter.POSITIONAL_OR_KEYWORD),
109
- *_EXPORT_PAGE_PARAMETERS,
110
- ),
111
- return_annotation=str,
112
- )
10
+
113
11
  _SCHEDULE_DATE_LENGTH = 10
114
- _SUMMARIZE_DOCSTRING = """Summarize field data returned by a query.
115
-
116
- Args:
117
- entity_type: Entity type to summarize.
118
- filters: Filters in list or dict syntax.
119
- summary_fields: List of `{'field': ..., 'type': ...}` summaries.
120
- filter_operator: `'all'` or `'any'` for list-syntax filters.
121
- grouping: Optional grouping specs.
122
- include_archived_projects: Include archived projects when `True`.
123
-
124
- Returns:
125
- Dict with `summaries` and (when grouped) `groups`.
126
-
127
- Raises:
128
- TypeError: If arguments do not match the documented signature.
129
- ShotgunError: If an RPC fault or terminal transport failure
130
- occurs, or if `filters`, `summary_fields`, or the server result has the
131
- wrong type.
132
- ProtocolError: If a server request returns an HTTP error.
133
- ValueError: If authenticated HTTP violates the configured origin policy.
134
- """
135
- _SUMMARIZE_PARAMETERS = (
136
- inspect.Parameter('entity_type', inspect.Parameter.POSITIONAL_OR_KEYWORD, annotation=str),
137
- inspect.Parameter(
138
- 'filters',
139
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
140
- annotation=list[Any] | tuple[Any, ...] | dict[str, Any],
141
- ),
142
- inspect.Parameter(
143
- 'summary_fields',
144
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
145
- annotation=list[dict[str, Any]],
146
- ),
147
- inspect.Parameter(
148
- 'filter_operator',
149
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
150
- default=None,
151
- annotation=str | None,
152
- ),
153
- inspect.Parameter(
154
- 'grouping',
155
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
156
- default=None,
157
- annotation=list[dict[str, Any]] | None,
158
- ),
159
- inspect.Parameter(
160
- 'include_archived_projects',
161
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
162
- default=True,
163
- annotation=bool,
164
- ),
165
- )
166
- _METHOD_SUMMARIZE_SIGNATURE = inspect.Signature(
167
- (
168
- inspect.Parameter('self', inspect.Parameter.POSITIONAL_OR_KEYWORD),
169
- *_SUMMARIZE_PARAMETERS,
170
- ),
171
- return_annotation=dict[str, object],
172
- )
173
- _SUMMARIZE_SIGNATURE = inspect.Signature(
174
- _SUMMARIZE_PARAMETERS,
175
- return_annotation=dict[str, object],
176
- )
177
- _WORK_SCHEDULE_UPDATE_DOCSTRING = """Update a work schedule.
178
-
179
- Args:
180
- date: Date or exact `YYYY-MM-DD` string to update.
181
- working: Whether the date is a working day.
182
- description: Optional schedule description.
183
- project: Optional project entity restriction.
184
- user: Optional user entity restriction.
185
- recalculate_field: Optional field to recalculate.
186
-
187
- Returns:
188
- Updated work schedule data returned by the server.
189
-
190
- Raises:
191
- TypeError: If arguments do not match the documented signature.
192
- ShotgunError: If an RPC fault or terminal transport failure
193
- occurs, or if the date, project/user exclusivity, or server result is
194
- invalid.
195
- ProtocolError: If a server request returns an HTTP error.
196
- ValueError: If authenticated HTTP violates the configured origin policy.
197
- """
198
- _WORK_SCHEDULE_UPDATE_PARAMETERS = (
199
- inspect.Parameter(
200
- 'date', inspect.Parameter.POSITIONAL_OR_KEYWORD, annotation=datetime.date | str
201
- ),
202
- inspect.Parameter('working', inspect.Parameter.POSITIONAL_OR_KEYWORD, annotation=bool),
203
- inspect.Parameter(
204
- 'description',
205
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
206
- default=None,
207
- annotation=str | None,
208
- ),
209
- inspect.Parameter(
210
- 'project',
211
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
212
- default=None,
213
- annotation=dict[str, Any] | None,
214
- ),
215
- inspect.Parameter(
216
- 'user',
217
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
218
- default=None,
219
- annotation=dict[str, Any] | None,
220
- ),
221
- inspect.Parameter(
222
- 'recalculate_field',
223
- inspect.Parameter.POSITIONAL_OR_KEYWORD,
224
- default=None,
225
- annotation=str | None,
226
- ),
227
- )
228
- _METHOD_WORK_SCHEDULE_UPDATE_SIGNATURE = inspect.Signature(
229
- (
230
- inspect.Parameter('self', inspect.Parameter.POSITIONAL_OR_KEYWORD),
231
- *_WORK_SCHEDULE_UPDATE_PARAMETERS,
232
- ),
233
- return_annotation=dict[str, object],
234
- )
235
- _WORK_SCHEDULE_UPDATE_SIGNATURE = inspect.Signature(
236
- _WORK_SCHEDULE_UPDATE_PARAMETERS,
237
- return_annotation=dict[str, object],
238
- )
239
12
 
240
13
 
241
14
  @dataclasses.dataclass(frozen=True)
242
- class _ActivityStreamReadOptions:
243
- """Collect exact public activity stream arguments for validation."""
15
+ class ActivityStreamReadOptions:
16
+ """Collect exact public activity stream arguments for validation.
17
+
18
+ Attributes:
19
+ entity_type: Entity type whose activity stream to read.
20
+ entity_id: Numeric identifier of the entity.
21
+ entity_fields: Optional fields to return for linked entity types.
22
+ min_id: Optional minimum activity identifier.
23
+ max_id: Optional maximum activity identifier.
24
+ limit: Optional maximum number of activity records.
25
+ """
244
26
 
245
27
  entity_type: str
246
28
  entity_id: int
@@ -258,30 +40,33 @@ class _AuthenticationPlan:
258
40
  params: dict[str, object]
259
41
 
260
42
 
261
- class ExportPageKeywordArguments(TypedDict):
262
- """Describe supported keyword calls to `export_page`.
43
+ @dataclasses.dataclass(frozen=True)
44
+ class ExportPageOptions:
45
+ """Collect exact public export-page arguments for validation.
263
46
 
264
47
  Attributes:
265
- format: Required nonempty export format.
266
- layout_name: Optional page layout name.
48
+ page_id: Numeric page identifier.
49
+ format: Required nonempty export format name.
50
+ layout_name: Optional layout name, including an empty name.
267
51
  """
268
52
 
269
- format: str
270
- layout_name: NotRequired[str | None]
271
-
272
-
273
- @dataclasses.dataclass(frozen=True)
274
- class _ExportPageOptions:
275
- """Collect exact public export-page arguments for validation."""
276
-
277
53
  page_id: int
278
54
  format: str
279
55
  layout_name: str | None = None
280
56
 
281
57
 
282
58
  @dataclasses.dataclass(frozen=True)
283
- class _SummarizeOptions:
284
- """Collect exact public `summarize` arguments for runtime validation."""
59
+ class SummarizeOptions:
60
+ """Collect exact public `summarize` arguments for runtime validation.
61
+
62
+ Attributes:
63
+ entity_type: Entity type to summarize.
64
+ filters: Filters in list or dict syntax.
65
+ summary_fields: List of `{'field': ..., 'type': ...}` summaries.
66
+ filter_operator: `'all'` or `'any'` for list-syntax filters.
67
+ grouping: Optional grouping specs.
68
+ include_archived_projects: Include archived projects when `True`.
69
+ """
285
70
 
286
71
  entity_type: str
287
72
  filters: object
@@ -292,8 +77,17 @@ class _SummarizeOptions:
292
77
 
293
78
 
294
79
  @dataclasses.dataclass(frozen=True)
295
- class _WorkScheduleUpdateOptions:
296
- """Collect exact public work-schedule update arguments for validation."""
80
+ class WorkScheduleUpdateOptions:
81
+ """Collect exact public work-schedule update arguments for validation.
82
+
83
+ Attributes:
84
+ date: Date or exact `YYYY-MM-DD` string to update.
85
+ working: Whether the date is a working day.
86
+ description: Optional schedule description.
87
+ project: Optional project entity restriction.
88
+ user: Optional user entity restriction.
89
+ recalculate_field: Optional field to recalculate.
90
+ """
297
91
 
298
92
  date: object
299
93
  working: bool
@@ -369,103 +163,7 @@ def _require_nonempty_string(value: object, message: str) -> str:
369
163
  return value
370
164
 
371
165
 
372
- def bind_activity_stream_read(
373
- args: tuple[object, ...],
374
- kwargs: dict[str, object],
375
- owner_name: str,
376
- ) -> _ActivityStreamReadOptions:
377
- """Bind runtime activity-stream arguments.
378
-
379
- Args:
380
- args: Positional arguments supplied by the caller.
381
- kwargs: Keyword arguments supplied by the caller.
382
- owner_name: Public client class name used in errors.
383
-
384
- Returns:
385
- Bound activity-stream options.
386
-
387
- Raises:
388
- TypeError: If the arguments do not match the public signature.
389
- """
390
- bound = bind_arguments(
391
- _ACTIVITY_STREAM_READ_SIGNATURE, args, kwargs, f'{owner_name}.activity_stream_read()'
392
- )
393
- options = cast('Callable[..., _ActivityStreamReadOptions]', _ActivityStreamReadOptions)
394
- return options(**bound.arguments)
395
-
396
-
397
- def bind_export_page(
398
- args: tuple[object, ...],
399
- kwargs: dict[str, object],
400
- owner_name: str,
401
- ) -> _ExportPageOptions:
402
- """Bind runtime export-page arguments.
403
-
404
- Args:
405
- args: Positional arguments supplied by the caller.
406
- kwargs: Keyword arguments supplied by the caller.
407
- owner_name: Public client class name used in errors.
408
-
409
- Returns:
410
- Bound export-page options.
411
-
412
- Raises:
413
- TypeError: If the arguments do not match the public signature.
414
- """
415
- bound = bind_arguments(_EXPORT_PAGE_SIGNATURE, args, kwargs, f'{owner_name}.export_page()')
416
- options = cast('Callable[..., _ExportPageOptions]', _ExportPageOptions)
417
- return options(**bound.arguments)
418
-
419
-
420
- def bind_summarize(
421
- args: tuple[object, ...],
422
- kwargs: dict[str, object],
423
- owner_name: str,
424
- ) -> _SummarizeOptions:
425
- """Bind runtime summarize arguments.
426
-
427
- Args:
428
- args: Positional arguments supplied by the caller.
429
- kwargs: Keyword arguments supplied by the caller.
430
- owner_name: Public client class name used in errors.
431
-
432
- Returns:
433
- Bound summarize options.
434
-
435
- Raises:
436
- TypeError: If the arguments do not match the public signature.
437
- """
438
- bound = bind_arguments(_SUMMARIZE_SIGNATURE, args, kwargs, f'{owner_name}.summarize()')
439
- options = cast('Callable[..., _SummarizeOptions]', _SummarizeOptions)
440
- return options(**bound.arguments)
441
-
442
-
443
- def bind_work_schedule_update(
444
- args: tuple[object, ...],
445
- kwargs: dict[str, object],
446
- owner_name: str,
447
- ) -> _WorkScheduleUpdateOptions:
448
- """Bind runtime work-schedule update arguments.
449
-
450
- Args:
451
- args: Positional arguments supplied by the caller.
452
- kwargs: Keyword arguments supplied by the caller.
453
- owner_name: Public client class name used in errors.
454
-
455
- Returns:
456
- Bound schedule-update options.
457
-
458
- Raises:
459
- TypeError: If the arguments do not match the public signature.
460
- """
461
- bound = bind_arguments(
462
- _WORK_SCHEDULE_UPDATE_SIGNATURE, args, kwargs, f'{owner_name}.work_schedule_update()'
463
- )
464
- options = cast('Callable[..., _WorkScheduleUpdateOptions]', _WorkScheduleUpdateOptions)
465
- return options(**bound.arguments)
466
-
467
-
468
- def build_activity_stream_read_params(options: _ActivityStreamReadOptions) -> dict[str, object]:
166
+ def build_activity_stream_read_params(options: ActivityStreamReadOptions) -> dict[str, object]:
469
167
  """Build activity-stream parameters.
470
168
 
471
169
  Args:
@@ -536,7 +234,7 @@ def build_authentication_plan(
536
234
  )
537
235
 
538
236
 
539
- def build_export_page_params(options: _ExportPageOptions) -> dict[str, object]:
237
+ def build_export_page_params(options: ExportPageOptions) -> dict[str, object]:
540
238
  """Build validated page-export parameters.
541
239
 
542
240
  Args:
@@ -826,7 +524,7 @@ def build_schema_field_update_params(
826
524
  return params
827
525
 
828
526
 
829
- def build_summarize_params(options: _SummarizeOptions) -> dict[str, object]:
527
+ def build_summarize_params(options: SummarizeOptions) -> dict[str, object]:
830
528
  """Build validated summarize parameters.
831
529
 
832
530
  Args:
@@ -882,7 +580,8 @@ def build_text_search_params(
882
580
  RPC parameters copied by the client before dispatch.
883
581
 
884
582
  Raises:
885
- ShotgunError: If `entity_types` is not a dictionary.
583
+ ShotgunError: If `entity_types` is not a dictionary or an entity filter
584
+ has invalid container or filter syntax.
886
585
  """
887
586
  validated_entity_types = _crud.require_dictionary(
888
587
  entity_types,
@@ -912,10 +611,19 @@ def build_update_project_last_accessed_params(
912
611
 
913
612
  Returns:
914
613
  RPC parameters copied by the client before dispatch.
614
+
615
+ Raises:
616
+ ShotgunError: If a project or user ID is missing or invalid.
915
617
  """
916
- params: dict[str, object] = {'project_id': project['id']}
618
+ params: dict[str, object] = {
619
+ 'project_id': _crud.require_entity_id(
620
+ project.get('id'), 'update_project_last_accessed project id must be an integer'
621
+ )
622
+ }
917
623
  if user is not None:
918
- params['user_id'] = user['id']
624
+ params['user_id'] = _crud.require_entity_id(
625
+ user.get('id'), 'update_project_last_accessed user id must be an integer'
626
+ )
919
627
  return params
920
628
 
921
629
 
@@ -1003,7 +711,7 @@ def build_work_schedule_read_params(
1003
711
 
1004
712
 
1005
713
  def build_work_schedule_update_params(
1006
- options: _WorkScheduleUpdateOptions,
714
+ options: WorkScheduleUpdateOptions,
1007
715
  ) -> dict[str, object]:
1008
716
  """Build validated schedule-update parameters.
1009
717
 
@@ -1044,66 +752,6 @@ def entity_types_alias_error() -> ShotgunError:
1044
752
  return ShotgunError('Deprecated: use schema_entity_read() instead')
1045
753
 
1046
754
 
1047
- def expose_activity_stream_read_signature(
1048
- function: Callable[..., object],
1049
- ) -> Callable[..., object]:
1050
- """Expose the documented activity-stream signature.
1051
-
1052
- Args:
1053
- function: Variadic implementation.
1054
-
1055
- Returns:
1056
- The implementation with public reflection metadata.
1057
- """
1058
- return expose_signature(
1059
- function, _METHOD_ACTIVITY_STREAM_READ_SIGNATURE, _ACTIVITY_STREAM_READ_DOCSTRING
1060
- )
1061
-
1062
-
1063
- def expose_export_page_signature(
1064
- function: Callable[..., object],
1065
- ) -> Callable[..., object]:
1066
- """Expose the documented page-export signature.
1067
-
1068
- Args:
1069
- function: Variadic implementation.
1070
-
1071
- Returns:
1072
- The implementation with public reflection metadata.
1073
- """
1074
- return expose_signature(function, _METHOD_EXPORT_PAGE_SIGNATURE, _EXPORT_PAGE_DOCSTRING)
1075
-
1076
-
1077
- def expose_summarize_signature(
1078
- function: Callable[..., object],
1079
- ) -> Callable[..., object]:
1080
- """Expose the documented summarize signature.
1081
-
1082
- Args:
1083
- function: Variadic implementation.
1084
-
1085
- Returns:
1086
- The implementation with public reflection metadata.
1087
- """
1088
- return expose_signature(function, _METHOD_SUMMARIZE_SIGNATURE, _SUMMARIZE_DOCSTRING)
1089
-
1090
-
1091
- def expose_work_schedule_update_signature(
1092
- function: Callable[..., object],
1093
- ) -> Callable[..., object]:
1094
- """Expose the documented schedule-update signature.
1095
-
1096
- Args:
1097
- function: Variadic implementation.
1098
-
1099
- Returns:
1100
- The implementation with public reflection metadata.
1101
- """
1102
- return expose_signature(
1103
- function, _METHOD_WORK_SCHEDULE_UPDATE_SIGNATURE, _WORK_SCHEDULE_UPDATE_DOCSTRING
1104
- )
1105
-
1106
-
1107
755
  def require_dictionary_list_result(
1108
756
  value: object,
1109
757
  method_name: str,