chopflow 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.
chopflow/__init__.py ADDED
@@ -0,0 +1,35 @@
1
+ """ChopFlow Python SDK.
2
+
3
+ A producer client and worker SDK for ChopFlow, a durable distributed task
4
+ queue with a Rust core. Speaks gRPC to the broker.
5
+
6
+ Quickstart::
7
+
8
+ from chopflow import ChopFlowClient
9
+
10
+ with ChopFlowClient.connect("localhost:8000") as client:
11
+ result = (
12
+ client.enqueue("echo")
13
+ .payload({"hello": "world"})
14
+ .tags("default")
15
+ .enqueue()
16
+ )
17
+ task = result.get(timeout=30)
18
+ print(task.status, task.result)
19
+ """
20
+
21
+ from .client import AsyncResult, ChopFlowClient, QueueStats, Task
22
+ from .errors import ChopFlowError
23
+ from .worker import ChopFlowWorker, task
24
+
25
+ __all__ = [
26
+ "AsyncResult",
27
+ "ChopFlowClient",
28
+ "ChopFlowError",
29
+ "ChopFlowWorker",
30
+ "QueueStats",
31
+ "Task",
32
+ "task",
33
+ ]
34
+
35
+ __version__ = "0.1.0"
@@ -0,0 +1,2 @@
1
+ """Generated ChopFlow gRPC stubs. Regenerate via `python generate.py`.
2
+ """
@@ -0,0 +1,129 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: chopflow.proto
5
+ # Protobuf Python Version: 7.35.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 7,
15
+ 35,
16
+ 1,
17
+ '',
18
+ 'chopflow.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
26
+ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
27
+
28
+
29
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0e\x63hopflow.proto\x12\x08\x63hopflow\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\"\x85\x03\n\x04Task\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07payload\x18\x03 \x01(\t\x12\x0c\n\x04tags\x18\x04 \x03(\t\x12\x30\n\x0c\x65nqueue_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\x03\x65ta\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0bretry_count\x18\x07 \x01(\r\x12\x13\n\x0bmax_retries\x18\x08 \x01(\r\x12$\n\x06status\x18\t \x01(\x0e\x32\x14.chopflow.TaskStatus\x12\x30\n\tresources\x18\n \x03(\x0b\x32\x1d.chopflow.Task.ResourcesEntry\x12\x0e\n\x06result\x18\x0b \x01(\t\x12\x13\n\x0bschedule_id\x18\x0c \x01(\t\x12\x10\n\x08priority\x18\r \x01(\x05\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"\xb2\x01\n\x06Worker\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x0c\n\x04tags\x18\x03 \x03(\t\x12\x31\n\tresources\x18\x04 \x01(\x0b\x32\x1e.chopflow.ResourceAvailability\x12\x16\n\x0e\x61ssigned_tasks\x18\x05 \x03(\t\x12\x32\n\x0elast_heartbeat\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xf2\x01\n\x14ResourceAvailability\x12@\n\tavailable\x18\x01 \x03(\x0b\x32-.chopflow.ResourceAvailability.AvailableEntry\x12\x38\n\x05total\x18\x02 \x03(\x0b\x32).chopflow.ResourceAvailability.TotalEntry\x1a\x30\n\x0e\x41vailableEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a,\n\nTotalEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"\x83\x02\n\x12\x45nqueueTaskRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07payload\x18\x02 \x01(\t\x12\x0c\n\x04tags\x18\x03 \x03(\t\x12\'\n\x03\x65ta\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0bmax_retries\x18\x05 \x01(\r\x12>\n\tresources\x18\x06 \x03(\x0b\x32+.chopflow.EnqueueTaskRequest.ResourcesEntry\x12\x10\n\x08priority\x18\x07 \x01(\x05\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"&\n\x13\x45nqueueTaskResponse\x12\x0f\n\x07task_id\x18\x01 \x01(\t\"\'\n\x14GetTaskStatusRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\"5\n\x15GetTaskStatusResponse\x12\x1c\n\x04task\x18\x01 \x01(\x0b\x32\x0e.chopflow.Task\"$\n\x11\x43\x61ncelTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\"%\n\x12\x43\x61ncelTaskResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"\xab\x01\n\x15RegisterWorkerRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04tags\x18\x02 \x03(\t\x12\x41\n\tresources\x18\x03 \x03(\x0b\x32..chopflow.RegisterWorkerRequest.ResourcesEntry\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"+\n\x16RegisterWorkerResponse\x12\x11\n\tworker_id\x18\x01 \x01(\t\"^\n\x16WorkerHeartbeatRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x31\n\tresources\x18\x02 \x01(\x0b\x32\x1e.chopflow.ResourceAvailability\"*\n\x17WorkerHeartbeatResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"]\n\x16\x41\x63knowledgeTaskRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07success\x18\x03 \x01(\x08\x12\x0e\n\x06result\x18\x04 \x01(\t\"*\n\x17\x41\x63knowledgeTaskResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\"9\n\x11\x46\x65tchTasksRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x11\n\tmax_tasks\x18\x02 \x01(\r\"3\n\x12\x46\x65tchTasksResponse\x12\x1d\n\x05tasks\x18\x01 \x03(\x0b\x32\x0e.chopflow.Task\"\x16\n\x14GetQueueStatsRequest\"\x8e\x01\n\x15GetQueueStatsResponse\x12\x14\n\x0cqueue_length\x18\x01 \x01(\r\x12\x18\n\x10tasks_processing\x18\x02 \x01(\r\x12\x17\n\x0ftasks_completed\x18\x03 \x01(\r\x12\x14\n\x0ctasks_failed\x18\x04 \x01(\r\x12\x16\n\x0e\x61\x63tive_workers\x18\x05 \x01(\r\"^\n\x10ListTasksRequest\x12\r\n\x05limit\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12+\n\rfilter_status\x18\x03 \x03(\x0e\x32\x14.chopflow.TaskStatus\"G\n\x11ListTasksResponse\x12\x1d\n\x05tasks\x18\x01 \x03(\x0b\x32\x0e.chopflow.Task\x12\x13\n\x0btotal_count\x18\x02 \x01(\r\"8\n\x13ListWorkersResponse\x12!\n\x07workers\x18\x01 \x03(\x0b\x32\x10.chopflow.Worker\"\xce\x01\n\x0cTaskTemplate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07payload\x18\x02 \x01(\t\x12\x0c\n\x04tags\x18\x03 \x03(\t\x12\x38\n\tresources\x18\x04 \x03(\x0b\x32%.chopflow.TaskTemplate.ResourcesEntry\x12\x13\n\x0bmax_retries\x18\x05 \x01(\r\x12\x10\n\x08priority\x18\x06 \x01(\x05\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"Q\n\x0cScheduleKind\x12\x0e\n\x04\x63ron\x18\x01 \x01(\tH\x00\x12)\n\x03\x65ta\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x42\x06\n\x04kind\"\xca\x02\n\x08Schedule\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12-\n\rtask_template\x18\x03 \x01(\x0b\x32\x16.chopflow.TaskTemplate\x12$\n\x04kind\x18\x04 \x01(\x0b\x32\x16.chopflow.ScheduleKind\x12/\n\x0eoverlap_policy\x18\x05 \x01(\x0e\x32\x17.chopflow.OverlapPolicy\x12\x0f\n\x07\x65nabled\x18\x06 \x01(\x08\x12.\n\nlast_fired\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\tnext_fire\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"=\n\x15\x43reateScheduleRequest\x12$\n\x08schedule\x18\x01 \x01(\x0b\x32\x12.chopflow.Schedule\"-\n\x16\x43reateScheduleResponse\x12\x13\n\x0bschedule_id\x18\x01 \x01(\t\"\x16\n\x14ListSchedulesRequest\">\n\x15ListSchedulesResponse\x12%\n\tschedules\x18\x01 \x03(\x0b\x32\x12.chopflow.Schedule\"#\n\x15\x44\x65leteScheduleRequest\x12\n\n\x02id\x18\x01 \x01(\t\")\n\x16\x44\x65leteScheduleResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08*n\n\nTaskStatus\x12\x0b\n\x07\x43REATED\x10\x00\x12\n\n\x06QUEUED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\r\n\tCOMPLETED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x10\n\x0c\x44\x45\x41\x44LETTERED\x10\x05\x12\r\n\tCANCELLED\x10\x06*J\n\rOverlapPolicy\x12\x10\n\x0cOVERLAP_SKIP\x10\x00\x12\x14\n\x10OVERLAP_COALESCE\x10\x01\x12\x11\n\rOVERLAP_ALLOW\x10\x02\x32\x9f\x08\n\x0e\x43hopFlowBroker\x12J\n\x0b\x45nqueueTask\x12\x1c.chopflow.EnqueueTaskRequest\x1a\x1d.chopflow.EnqueueTaskResponse\x12P\n\rGetTaskStatus\x12\x1e.chopflow.GetTaskStatusRequest\x1a\x1f.chopflow.GetTaskStatusResponse\x12G\n\nCancelTask\x12\x1b.chopflow.CancelTaskRequest\x1a\x1c.chopflow.CancelTaskResponse\x12S\n\x0eRegisterWorker\x12\x1f.chopflow.RegisterWorkerRequest\x1a .chopflow.RegisterWorkerResponse\x12V\n\x0fWorkerHeartbeat\x12 .chopflow.WorkerHeartbeatRequest\x1a!.chopflow.WorkerHeartbeatResponse\x12V\n\x0f\x41\x63knowledgeTask\x12 .chopflow.AcknowledgeTaskRequest\x1a!.chopflow.AcknowledgeTaskResponse\x12G\n\nFetchTasks\x12\x1b.chopflow.FetchTasksRequest\x1a\x1c.chopflow.FetchTasksResponse\x12P\n\rGetQueueStats\x12\x1e.chopflow.GetQueueStatsRequest\x1a\x1f.chopflow.GetQueueStatsResponse\x12\x44\n\tListTasks\x12\x1a.chopflow.ListTasksRequest\x1a\x1b.chopflow.ListTasksResponse\x12\x44\n\x0bListWorkers\x12\x16.google.protobuf.Empty\x1a\x1d.chopflow.ListWorkersResponse\x12S\n\x0e\x43reateSchedule\x12\x1f.chopflow.CreateScheduleRequest\x1a .chopflow.CreateScheduleResponse\x12P\n\rListSchedules\x12\x1e.chopflow.ListSchedulesRequest\x1a\x1f.chopflow.ListSchedulesResponse\x12S\n\x0e\x44\x65leteSchedule\x12\x1f.chopflow.DeleteScheduleRequest\x1a .chopflow.DeleteScheduleResponseB2\n\x1f\x64\x65v.ricardoleal20.chopflow.grpcB\rChopFlowProtoP\x01\x62\x06proto3')
30
+
31
+ _globals = globals()
32
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
33
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chopflow_pb2', _globals)
34
+ if not _descriptor._USE_C_DESCRIPTORS:
35
+ _globals['DESCRIPTOR']._loaded_options = None
36
+ _globals['DESCRIPTOR']._serialized_options = b'\n\037dev.ricardoleal20.chopflow.grpcB\rChopFlowProtoP\001'
37
+ _globals['_TASK_RESOURCESENTRY']._loaded_options = None
38
+ _globals['_TASK_RESOURCESENTRY']._serialized_options = b'8\001'
39
+ _globals['_RESOURCEAVAILABILITY_AVAILABLEENTRY']._loaded_options = None
40
+ _globals['_RESOURCEAVAILABILITY_AVAILABLEENTRY']._serialized_options = b'8\001'
41
+ _globals['_RESOURCEAVAILABILITY_TOTALENTRY']._loaded_options = None
42
+ _globals['_RESOURCEAVAILABILITY_TOTALENTRY']._serialized_options = b'8\001'
43
+ _globals['_ENQUEUETASKREQUEST_RESOURCESENTRY']._loaded_options = None
44
+ _globals['_ENQUEUETASKREQUEST_RESOURCESENTRY']._serialized_options = b'8\001'
45
+ _globals['_REGISTERWORKERREQUEST_RESOURCESENTRY']._loaded_options = None
46
+ _globals['_REGISTERWORKERREQUEST_RESOURCESENTRY']._serialized_options = b'8\001'
47
+ _globals['_TASKTEMPLATE_RESOURCESENTRY']._loaded_options = None
48
+ _globals['_TASKTEMPLATE_RESOURCESENTRY']._serialized_options = b'8\001'
49
+ _globals['_TASKSTATUS']._serialized_start=3292
50
+ _globals['_TASKSTATUS']._serialized_end=3402
51
+ _globals['_OVERLAPPOLICY']._serialized_start=3404
52
+ _globals['_OVERLAPPOLICY']._serialized_end=3478
53
+ _globals['_TASK']._serialized_start=91
54
+ _globals['_TASK']._serialized_end=480
55
+ _globals['_TASK_RESOURCESENTRY']._serialized_start=432
56
+ _globals['_TASK_RESOURCESENTRY']._serialized_end=480
57
+ _globals['_WORKER']._serialized_start=483
58
+ _globals['_WORKER']._serialized_end=661
59
+ _globals['_RESOURCEAVAILABILITY']._serialized_start=664
60
+ _globals['_RESOURCEAVAILABILITY']._serialized_end=906
61
+ _globals['_RESOURCEAVAILABILITY_AVAILABLEENTRY']._serialized_start=812
62
+ _globals['_RESOURCEAVAILABILITY_AVAILABLEENTRY']._serialized_end=860
63
+ _globals['_RESOURCEAVAILABILITY_TOTALENTRY']._serialized_start=862
64
+ _globals['_RESOURCEAVAILABILITY_TOTALENTRY']._serialized_end=906
65
+ _globals['_ENQUEUETASKREQUEST']._serialized_start=909
66
+ _globals['_ENQUEUETASKREQUEST']._serialized_end=1168
67
+ _globals['_ENQUEUETASKREQUEST_RESOURCESENTRY']._serialized_start=432
68
+ _globals['_ENQUEUETASKREQUEST_RESOURCESENTRY']._serialized_end=480
69
+ _globals['_ENQUEUETASKRESPONSE']._serialized_start=1170
70
+ _globals['_ENQUEUETASKRESPONSE']._serialized_end=1208
71
+ _globals['_GETTASKSTATUSREQUEST']._serialized_start=1210
72
+ _globals['_GETTASKSTATUSREQUEST']._serialized_end=1249
73
+ _globals['_GETTASKSTATUSRESPONSE']._serialized_start=1251
74
+ _globals['_GETTASKSTATUSRESPONSE']._serialized_end=1304
75
+ _globals['_CANCELTASKREQUEST']._serialized_start=1306
76
+ _globals['_CANCELTASKREQUEST']._serialized_end=1342
77
+ _globals['_CANCELTASKRESPONSE']._serialized_start=1344
78
+ _globals['_CANCELTASKRESPONSE']._serialized_end=1381
79
+ _globals['_REGISTERWORKERREQUEST']._serialized_start=1384
80
+ _globals['_REGISTERWORKERREQUEST']._serialized_end=1555
81
+ _globals['_REGISTERWORKERREQUEST_RESOURCESENTRY']._serialized_start=432
82
+ _globals['_REGISTERWORKERREQUEST_RESOURCESENTRY']._serialized_end=480
83
+ _globals['_REGISTERWORKERRESPONSE']._serialized_start=1557
84
+ _globals['_REGISTERWORKERRESPONSE']._serialized_end=1600
85
+ _globals['_WORKERHEARTBEATREQUEST']._serialized_start=1602
86
+ _globals['_WORKERHEARTBEATREQUEST']._serialized_end=1696
87
+ _globals['_WORKERHEARTBEATRESPONSE']._serialized_start=1698
88
+ _globals['_WORKERHEARTBEATRESPONSE']._serialized_end=1740
89
+ _globals['_ACKNOWLEDGETASKREQUEST']._serialized_start=1742
90
+ _globals['_ACKNOWLEDGETASKREQUEST']._serialized_end=1835
91
+ _globals['_ACKNOWLEDGETASKRESPONSE']._serialized_start=1837
92
+ _globals['_ACKNOWLEDGETASKRESPONSE']._serialized_end=1879
93
+ _globals['_FETCHTASKSREQUEST']._serialized_start=1881
94
+ _globals['_FETCHTASKSREQUEST']._serialized_end=1938
95
+ _globals['_FETCHTASKSRESPONSE']._serialized_start=1940
96
+ _globals['_FETCHTASKSRESPONSE']._serialized_end=1991
97
+ _globals['_GETQUEUESTATSREQUEST']._serialized_start=1993
98
+ _globals['_GETQUEUESTATSREQUEST']._serialized_end=2015
99
+ _globals['_GETQUEUESTATSRESPONSE']._serialized_start=2018
100
+ _globals['_GETQUEUESTATSRESPONSE']._serialized_end=2160
101
+ _globals['_LISTTASKSREQUEST']._serialized_start=2162
102
+ _globals['_LISTTASKSREQUEST']._serialized_end=2256
103
+ _globals['_LISTTASKSRESPONSE']._serialized_start=2258
104
+ _globals['_LISTTASKSRESPONSE']._serialized_end=2329
105
+ _globals['_LISTWORKERSRESPONSE']._serialized_start=2331
106
+ _globals['_LISTWORKERSRESPONSE']._serialized_end=2387
107
+ _globals['_TASKTEMPLATE']._serialized_start=2390
108
+ _globals['_TASKTEMPLATE']._serialized_end=2596
109
+ _globals['_TASKTEMPLATE_RESOURCESENTRY']._serialized_start=432
110
+ _globals['_TASKTEMPLATE_RESOURCESENTRY']._serialized_end=480
111
+ _globals['_SCHEDULEKIND']._serialized_start=2598
112
+ _globals['_SCHEDULEKIND']._serialized_end=2679
113
+ _globals['_SCHEDULE']._serialized_start=2682
114
+ _globals['_SCHEDULE']._serialized_end=3012
115
+ _globals['_CREATESCHEDULEREQUEST']._serialized_start=3014
116
+ _globals['_CREATESCHEDULEREQUEST']._serialized_end=3075
117
+ _globals['_CREATESCHEDULERESPONSE']._serialized_start=3077
118
+ _globals['_CREATESCHEDULERESPONSE']._serialized_end=3122
119
+ _globals['_LISTSCHEDULESREQUEST']._serialized_start=3124
120
+ _globals['_LISTSCHEDULESREQUEST']._serialized_end=3146
121
+ _globals['_LISTSCHEDULESRESPONSE']._serialized_start=3148
122
+ _globals['_LISTSCHEDULESRESPONSE']._serialized_end=3210
123
+ _globals['_DELETESCHEDULEREQUEST']._serialized_start=3212
124
+ _globals['_DELETESCHEDULEREQUEST']._serialized_end=3247
125
+ _globals['_DELETESCHEDULERESPONSE']._serialized_start=3249
126
+ _globals['_DELETESCHEDULERESPONSE']._serialized_end=3290
127
+ _globals['_CHOPFLOWBROKER']._serialized_start=3481
128
+ _globals['_CHOPFLOWBROKER']._serialized_end=4536
129
+ # @@protoc_insertion_point(module_scope)