livepeer-frameworks 0.1.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 (82) hide show
  1. livepeer_frameworks/__init__.py +81 -0
  2. livepeer_frameworks/_forward.py +97 -0
  3. livepeer_frameworks/_generated/__init__.py +3 -0
  4. livepeer_frameworks/_generated/events.py +67 -0
  5. livepeer_frameworks/_generated/graphql/__init__.py +673 -0
  6. livepeer_frameworks/_generated/graphql/abort_vod_upload.py +34 -0
  7. livepeer_frameworks/_generated/graphql/async_base_client.py +12 -0
  8. livepeer_frameworks/_generated/graphql/async_client.py +2567 -0
  9. livepeer_frameworks/_generated/graphql/base_model.py +19 -0
  10. livepeer_frameworks/_generated/graphql/client.py +2376 -0
  11. livepeer_frameworks/_generated/graphql/complete_vod_upload.py +47 -0
  12. livepeer_frameworks/_generated/graphql/create_clip.py +47 -0
  13. livepeer_frameworks/_generated/graphql/create_developer_token.py +44 -0
  14. livepeer_frameworks/_generated/graphql/create_push_target.py +14 -0
  15. livepeer_frameworks/_generated/graphql/create_signing_key.py +52 -0
  16. livepeer_frameworks/_generated/graphql/create_stream.py +41 -0
  17. livepeer_frameworks/_generated/graphql/create_stream_key.py +44 -0
  18. livepeer_frameworks/_generated/graphql/create_vod_upload.py +48 -0
  19. livepeer_frameworks/_generated/graphql/delete_clip.py +34 -0
  20. livepeer_frameworks/_generated/graphql/delete_dvr.py +34 -0
  21. livepeer_frameworks/_generated/graphql/delete_push_target.py +14 -0
  22. livepeer_frameworks/_generated/graphql/delete_stream.py +34 -0
  23. livepeer_frameworks/_generated/graphql/delete_stream_key.py +34 -0
  24. livepeer_frameworks/_generated/graphql/delete_vod_asset.py +34 -0
  25. livepeer_frameworks/_generated/graphql/enums.py +210 -0
  26. livepeer_frameworks/_generated/graphql/fragments.py +396 -0
  27. livepeer_frameworks/_generated/graphql/get_clip.py +12 -0
  28. livepeer_frameworks/_generated/graphql/get_dvr_chapter.py +26 -0
  29. livepeer_frameworks/_generated/graphql/get_signing_key.py +14 -0
  30. livepeer_frameworks/_generated/graphql/get_stream.py +12 -0
  31. livepeer_frameworks/_generated/graphql/get_tenant_usage.py +51 -0
  32. livepeer_frameworks/_generated/graphql/get_usage_aggregates.py +23 -0
  33. livepeer_frameworks/_generated/graphql/get_vod_asset.py +14 -0
  34. livepeer_frameworks/_generated/graphql/get_vod_upload_status.py +59 -0
  35. livepeer_frameworks/_generated/graphql/input_types.py +324 -0
  36. livepeer_frameworks/_generated/graphql/list_artifacts.py +23 -0
  37. livepeer_frameworks/_generated/graphql/list_developer_tokens.py +24 -0
  38. livepeer_frameworks/_generated/graphql/list_dvr_chapters.py +20 -0
  39. livepeer_frameworks/_generated/graphql/list_push_targets.py +20 -0
  40. livepeer_frameworks/_generated/graphql/list_signing_keys.py +22 -0
  41. livepeer_frameworks/_generated/graphql/list_stream_keys.py +22 -0
  42. livepeer_frameworks/_generated/graphql/list_streams.py +22 -0
  43. livepeer_frameworks/_generated/graphql/list_usage_records.py +40 -0
  44. livepeer_frameworks/_generated/graphql/refresh_stream_key.py +47 -0
  45. livepeer_frameworks/_generated/graphql/resolve_ingest_endpoint.py +33 -0
  46. livepeer_frameworks/_generated/graphql/resolve_viewer_endpoint.py +49 -0
  47. livepeer_frameworks/_generated/graphql/revoke_developer_token.py +34 -0
  48. livepeer_frameworks/_generated/graphql/revoke_signing_key.py +34 -0
  49. livepeer_frameworks/_generated/graphql/server_info.py +15 -0
  50. livepeer_frameworks/_generated/graphql/set_playback_policy.py +78 -0
  51. livepeer_frameworks/_generated/graphql/start_dvr.py +44 -0
  52. livepeer_frameworks/_generated/graphql/stop_dvr.py +34 -0
  53. livepeer_frameworks/_generated/graphql/sync_base_client.py +12 -0
  54. livepeer_frameworks/_generated/graphql/tenant_events.py +303 -0
  55. livepeer_frameworks/_generated/graphql/test_playback_access.py +48 -0
  56. livepeer_frameworks/_generated/graphql/update_push_target.py +14 -0
  57. livepeer_frameworks/_generated/graphql/update_stream.py +47 -0
  58. livepeer_frameworks/_generated/manifest.py +60 -0
  59. livepeer_frameworks/_generated/proto/__init__.py +0 -0
  60. livepeer_frameworks/_generated/proto/frameworks/__init__.py +0 -0
  61. livepeer_frameworks/_generated/proto/frameworks/events/__init__.py +106 -0
  62. livepeer_frameworks/_generated/proto/frameworks/events/public/__init__.py +0 -0
  63. livepeer_frameworks/_generated/proto/frameworks/events/public/v1/__init__.py +818 -0
  64. livepeer_frameworks/_generated/proto/google/__init__.py +0 -0
  65. livepeer_frameworks/_generated/proto/google/protobuf/__init__.py +2405 -0
  66. livepeer_frameworks/_generated/proto/message_pool.py +3 -0
  67. livepeer_frameworks/_generated/proto/py.typed +0 -0
  68. livepeer_frameworks/_server_info.py +106 -0
  69. livepeer_frameworks/_transport.py +799 -0
  70. livepeer_frameworks/client.py +28 -0
  71. livepeer_frameworks/errors.py +150 -0
  72. livepeer_frameworks/graphql.py +9 -0
  73. livepeer_frameworks/pagination.py +167 -0
  74. livepeer_frameworks/playback_token.py +110 -0
  75. livepeer_frameworks/py.typed +0 -0
  76. livepeer_frameworks/results.py +40 -0
  77. livepeer_frameworks/retry.py +57 -0
  78. livepeer_frameworks/upload.py +316 -0
  79. livepeer_frameworks/webhooks.py +141 -0
  80. livepeer_frameworks-0.1.0.dist-info/METADATA +75 -0
  81. livepeer_frameworks-0.1.0.dist-info/RECORD +82 -0
  82. livepeer_frameworks-0.1.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,81 @@
1
+ """Typed client for the FrameWorks GraphQL API."""
2
+
3
+ from ._forward import OpenEnum, UnknownMember
4
+ from ._generated.manifest import MIN_SERVER_VERSION, OPERATIONS, SDK_LINE, SDK_VERSION
5
+ from ._server_info import ServerStatus
6
+ from .client import AsyncFrameWorksClient, FrameWorksClient
7
+ from .errors import (
8
+ AuthenticationError,
9
+ FrameWorksError,
10
+ GraphQLError,
11
+ HTTPError,
12
+ NetworkError,
13
+ PaymentRequiredError,
14
+ ProtocolError,
15
+ RateLimitError,
16
+ ResultError,
17
+ SchemaMismatchError,
18
+ ServerError,
19
+ ServerTooOldError,
20
+ UnsupportedOperationError,
21
+ UploadError,
22
+ WebhookVerificationError,
23
+ )
24
+ from .pagination import (
25
+ apaginate_offset,
26
+ apaginate_page_token,
27
+ apaginate_relay,
28
+ paginate_offset,
29
+ paginate_page_token,
30
+ paginate_relay,
31
+ )
32
+ from .playback_token import sign_playback_token
33
+ from .results import expect_result
34
+ from .retry import DEFAULT_RETRY_POLICY, RetryPolicy
35
+ from .upload import async_upload_vod, upload_vod
36
+ from .webhooks import WebhookEvent, WebhookReceiver, parse_webhook_event
37
+
38
+ __version__ = SDK_VERSION
39
+
40
+ __all__ = [
41
+ "AsyncFrameWorksClient",
42
+ "AuthenticationError",
43
+ "DEFAULT_RETRY_POLICY",
44
+ "FrameWorksClient",
45
+ "FrameWorksError",
46
+ "GraphQLError",
47
+ "HTTPError",
48
+ "MIN_SERVER_VERSION",
49
+ "NetworkError",
50
+ "OPERATIONS",
51
+ "OpenEnum",
52
+ "PaymentRequiredError",
53
+ "ProtocolError",
54
+ "RateLimitError",
55
+ "ResultError",
56
+ "RetryPolicy",
57
+ "SDK_LINE",
58
+ "SDK_VERSION",
59
+ "SchemaMismatchError",
60
+ "ServerError",
61
+ "ServerStatus",
62
+ "ServerTooOldError",
63
+ "UnknownMember",
64
+ "UnsupportedOperationError",
65
+ "UploadError",
66
+ "WebhookEvent",
67
+ "WebhookReceiver",
68
+ "WebhookVerificationError",
69
+ "__version__",
70
+ "apaginate_offset",
71
+ "apaginate_page_token",
72
+ "apaginate_relay",
73
+ "async_upload_vod",
74
+ "expect_result",
75
+ "paginate_offset",
76
+ "paginate_page_token",
77
+ "paginate_relay",
78
+ "parse_webhook_event",
79
+ "sign_playback_token",
80
+ "upload_vod",
81
+ ]
@@ -0,0 +1,97 @@
1
+ """Decoding of result union members and enum values a newer server adds.
2
+
3
+ The SDK supports a range of server releases, and a later release may add a
4
+ member to a union or a value to an enum. The generated models use the types
5
+ below (codegen/forward_compat.py rewrites them), so such a response decodes
6
+ instead of failing validation."""
7
+
8
+ from __future__ import annotations
9
+
10
+ from enum import Enum
11
+ from typing import Any, get_args
12
+
13
+ from pydantic import BaseModel, ConfigDict, GetCoreSchemaHandler, model_serializer
14
+ from pydantic_core import core_schema
15
+
16
+ # The tag the discriminator returns for a __typename no member declares. It
17
+ # cannot collide with a GraphQL type name.
18
+ _UNKNOWN_TAG = "<unknown>"
19
+
20
+
21
+ class UnknownMember(BaseModel):
22
+ """A union member this SDK does not know: a type a newer server added.
23
+
24
+ typename__ is its __typename and raw its JSON exactly as the server sent
25
+ it; dumping the member returns raw. expect_result raises it as a
26
+ ResultError carrying its __typename, message, and code."""
27
+
28
+ model_config = ConfigDict(frozen=True)
29
+
30
+ typename__: str
31
+ raw: dict[str, Any]
32
+
33
+ @model_serializer
34
+ def _dump_raw(self) -> dict[str, Any]:
35
+ return self.raw
36
+
37
+
38
+ class OpenUnion:
39
+ """Annotated metadata for a generated union field: members are chosen by
40
+ __typename, and a __typename no member declares becomes an UnknownMember.
41
+
42
+ The annotated type is Union[<generated members>, UnknownMember]; each
43
+ generated member declares its __typename as typename__: Literal[...]."""
44
+
45
+ def __get_pydantic_core_schema__(self, source: Any, handler: GetCoreSchemaHandler) -> core_schema.CoreSchema:
46
+ choices: dict[str, core_schema.CoreSchema] = {}
47
+ for member in get_args(source):
48
+ if member is UnknownMember:
49
+ continue
50
+ field = member.model_fields.get("typename__") if isinstance(member, type) and issubclass(member, BaseModel) else None
51
+ tags = get_args(field.annotation) if field is not None else ()
52
+ if not tags:
53
+ raise TypeError(f"union member {member!r} does not declare typename__ as a Literal")
54
+ for typename in tags:
55
+ choices[typename] = handler.generate_schema(member)
56
+ choices[_UNKNOWN_TAG] = core_schema.no_info_before_validator_function(
57
+ _unknown_member_input, handler.generate_schema(UnknownMember)
58
+ )
59
+ known = frozenset(choices) - {_UNKNOWN_TAG}
60
+
61
+ def tag(value: Any) -> str | None:
62
+ if isinstance(value, UnknownMember):
63
+ return _UNKNOWN_TAG
64
+ typename = value.get("__typename") if isinstance(value, dict) else getattr(value, "typename__", None)
65
+ if not isinstance(typename, str):
66
+ return None
67
+ return typename if typename in known else _UNKNOWN_TAG
68
+
69
+ return core_schema.tagged_union_schema(choices, tag)
70
+
71
+
72
+ def _unknown_member_input(value: Any) -> Any:
73
+ if isinstance(value, dict):
74
+ return {"typename__": value["__typename"], "raw": dict(value)}
75
+ return value
76
+
77
+
78
+ class OpenEnum(str, Enum):
79
+ """Base of the generated enums. A value this SDK does not know, which a
80
+ newer server added, decodes to a member of the enum whose value and name
81
+ are the server's string and whose is_unknown is True; it is not one of
82
+ the enum's declared members, so an exhaustive match falls through to its
83
+ default case."""
84
+
85
+ @classmethod
86
+ def _missing_(cls, value: object) -> Any:
87
+ if not isinstance(value, str):
88
+ return None
89
+ member = str.__new__(cls, value)
90
+ member._name_ = value
91
+ member._value_ = value
92
+ return member
93
+
94
+ @property
95
+ def is_unknown(self) -> bool:
96
+ """Whether the value is one this SDK does not know."""
97
+ return self._value_ not in type(self)._value2member_map_
@@ -0,0 +1,3 @@
1
+ """Code generated by make graphql-sdk-py: the operation manifest, the event
2
+ registry, the GraphQL clients and models (graphql/), and the public event
3
+ payload types (proto/)."""
@@ -0,0 +1,67 @@
1
+ # Code generated by scripts/sdkcontract from pkg/graphql/public and the event registry. DO NOT EDIT.
2
+
3
+ from typing import Final
4
+
5
+ import betterproto2
6
+
7
+ from .proto.frameworks.events.public.v1 import (
8
+ AccountSuspended,
9
+ ApiTokenCreated,
10
+ ApiTokenRevoked,
11
+ BillingDetailsUpdated,
12
+ ClipFailed,
13
+ ClipReady,
14
+ ClipRequested,
15
+ CustomDomainFailed,
16
+ CustomDomainVerified,
17
+ InvoiceCreated,
18
+ InvoicePaid,
19
+ MultistreamStatusChanged,
20
+ PaymentFailed,
21
+ RecordingFailed,
22
+ RecordingReady,
23
+ StreamConnected,
24
+ StreamCreated,
25
+ StreamDeleted,
26
+ StreamIdle,
27
+ StreamKeyRotated,
28
+ StreamLive,
29
+ StreamUpdated,
30
+ TopupCredited,
31
+ UploadAborted,
32
+ UploadCompleted,
33
+ UploadCreated,
34
+ UploadFailed,
35
+ UploadReady,
36
+ )
37
+
38
+ PUBLIC_EVENT_MESSAGES: Final[dict[str, type[betterproto2.Message]]] = {
39
+ "account.suspended": AccountSuspended,
40
+ "api_token.created": ApiTokenCreated,
41
+ "api_token.revoked": ApiTokenRevoked,
42
+ "billing.details_updated": BillingDetailsUpdated,
43
+ "billing.invoice_created": InvoiceCreated,
44
+ "billing.invoice_paid": InvoicePaid,
45
+ "billing.payment_failed": PaymentFailed,
46
+ "billing.topup_credited": TopupCredited,
47
+ "clip.failed": ClipFailed,
48
+ "clip.ready": ClipReady,
49
+ "clip.requested": ClipRequested,
50
+ "custom_domain.failed": CustomDomainFailed,
51
+ "custom_domain.verified": CustomDomainVerified,
52
+ "multistream.status_changed": MultistreamStatusChanged,
53
+ "recording.failed": RecordingFailed,
54
+ "recording.ready": RecordingReady,
55
+ "stream.connected": StreamConnected,
56
+ "stream.created": StreamCreated,
57
+ "stream.deleted": StreamDeleted,
58
+ "stream.idle": StreamIdle,
59
+ "stream.key_rotated": StreamKeyRotated,
60
+ "stream.live": StreamLive,
61
+ "stream.updated": StreamUpdated,
62
+ "upload.aborted": UploadAborted,
63
+ "upload.completed": UploadCompleted,
64
+ "upload.created": UploadCreated,
65
+ "upload.failed": UploadFailed,
66
+ "upload.ready": UploadReady,
67
+ }