chalk-remote-call-python 1.10.5__cp315-cp315-win_amd64.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 (45) hide show
  1. chalk_remote_call/__init__.py +4 -0
  2. chalk_remote_call/__main__.py +3 -0
  3. chalk_remote_call/_gen/__init__.py +0 -0
  4. chalk_remote_call/_gen/chalk/__init__.py +0 -0
  5. chalk_remote_call/_gen/chalk/auth/__init__.py +0 -0
  6. chalk_remote_call/_gen/chalk/auth/v1/__init__.py +0 -0
  7. chalk_remote_call/_gen/chalk/auth/v1/permissions_pb2.py +115 -0
  8. chalk_remote_call/_gen/chalk/auth/v1/permissions_pb2_grpc.py +4 -0
  9. chalk_remote_call/_gen/chalk/common/__init__.py +0 -0
  10. chalk_remote_call/_gen/chalk/common/v1/__init__.py +0 -0
  11. chalk_remote_call/_gen/chalk/common/v1/chalk_error_pb2.py +33 -0
  12. chalk_remote_call/_gen/chalk/common/v1/chalk_error_pb2_grpc.py +4 -0
  13. chalk_remote_call/_gen/chalk/runtime/__init__.py +0 -0
  14. chalk_remote_call/_gen/chalk/runtime/v1/__init__.py +0 -0
  15. chalk_remote_call/_gen/chalk/runtime/v1/fnq_consumer_pb2.py +53 -0
  16. chalk_remote_call/_gen/chalk/runtime/v1/fnq_consumer_pb2_grpc.py +138 -0
  17. chalk_remote_call/_gen/chalk/runtime/v1/remote_python_call_pb2.py +104 -0
  18. chalk_remote_call/_gen/chalk/runtime/v1/remote_python_call_pb2_grpc.py +363 -0
  19. chalk_remote_call/_gen/chalk/utils/__init__.py +0 -0
  20. chalk_remote_call/_gen/chalk/utils/v1/__init__.py +0 -0
  21. chalk_remote_call/_gen/chalk/utils/v1/encoding_pb2.py +32 -0
  22. chalk_remote_call/_gen/chalk/utils/v1/encoding_pb2_grpc.py +4 -0
  23. chalk_remote_call/_gen/chalk/utils/v1/field_change_pb2.py +29 -0
  24. chalk_remote_call/_gen/chalk/utils/v1/field_change_pb2_grpc.py +4 -0
  25. chalk_remote_call/_gen/chalk/utils/v1/large_pb2.py +26 -0
  26. chalk_remote_call/_gen/chalk/utils/v1/large_pb2_grpc.py +4 -0
  27. chalk_remote_call/_gen/chalk/utils/v1/sensitive_pb2.py +26 -0
  28. chalk_remote_call/_gen/chalk/utils/v1/sensitive_pb2_grpc.py +4 -0
  29. chalk_remote_call/_native.cp315-win_amd64.pyd +0 -0
  30. chalk_remote_call/_native.pyi +13 -0
  31. chalk_remote_call/_version.py +1 -0
  32. chalk_remote_call/arrow_utils.py +21 -0
  33. chalk_remote_call/cli.py +160 -0
  34. chalk_remote_call/errors.py +118 -0
  35. chalk_remote_call/handler_loader.py +57 -0
  36. chalk_remote_call/input_transform.py +50 -0
  37. chalk_remote_call/logging.py +29 -0
  38. chalk_remote_call/server.py +117 -0
  39. chalk_remote_call/servicer.py +400 -0
  40. chalk_remote_call/tracing.py +445 -0
  41. chalk_remote_call_python-1.10.5.dist-info/METADATA +288 -0
  42. chalk_remote_call_python-1.10.5.dist-info/RECORD +45 -0
  43. chalk_remote_call_python-1.10.5.dist-info/WHEEL +5 -0
  44. chalk_remote_call_python-1.10.5.dist-info/entry_points.txt +2 -0
  45. chalk_remote_call_python-1.10.5.dist-info/top_level.txt +1 -0
@@ -0,0 +1,288 @@
1
+ Metadata-Version: 2.4
2
+ Name: chalk-remote-call-python
3
+ Version: 1.10.5
4
+ Summary: Chalk remote call Python runtime interface client
5
+ Author: Chalk AI, Inc.
6
+ Project-URL: Homepage, https://chalk.ai
7
+ Project-URL: Documentation, https://docs.chalk.ai
8
+ Project-URL: Changelog, https://docs.chalk.ai/docs/changelog
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
15
+ Classifier: Programming Language :: Python :: 3.15
16
+ Classifier: Programming Language :: Python
17
+ Classifier: Typing :: Typed
18
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
19
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
20
+ Classifier: Topic :: Software Development :: Code Generators
21
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
22
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
+ Requires-Python: <3.16,>=3.10
24
+ Description-Content-Type: text/markdown
25
+ Requires-Dist: pyarrow>=14.0.0
26
+ Provides-Extra: dev
27
+ Requires-Dist: setuptools-rust>=1.7; extra == "dev"
28
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
29
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
30
+ Requires-Dist: grpcio>=1.60.0; extra == "dev"
31
+ Requires-Dist: grpcio-health-checking>=1.60.0; extra == "dev"
32
+ Requires-Dist: grpcio-reflection>=1.60.0; extra == "dev"
33
+ Requires-Dist: protobuf>=4.25.0; extra == "dev"
34
+ Requires-Dist: grpcio-tools>=1.60.0; extra == "dev"
35
+ Provides-Extra: tracing
36
+ Requires-Dist: opentelemetry-api>=1.20.0; extra == "tracing"
37
+ Requires-Dist: opentelemetry-sdk>=1.20.0; extra == "tracing"
38
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.20.0; extra == "tracing"
39
+
40
+ # chalk-remote-call-python
41
+
42
+ A Python runtime interface for Chalk's RemoteCallService. This package provides a gRPC server backed by a Rust implementation (tonic + PyO3) that lets you define a `handler(event, context)` function to process incoming Arrow-serialized requests.
43
+
44
+ The server receives Arrow IPC record batches over a bidirectional gRPC stream, transforms them into a Python dict, invokes your handler, and streams the results back as Arrow IPC.
45
+
46
+ ## Requirements
47
+
48
+ - Python >= 3.10
49
+ - Rust 1.99.0 (for building the native extension)
50
+ - `pyarrow >= 14.0.0`
51
+
52
+ ## Usage
53
+
54
+ ### 1. Write a handler
55
+
56
+ Create a Python module with a `handler` function:
57
+
58
+ ```python
59
+ # my_handler.py
60
+ import pyarrow as pa
61
+ import pyarrow.compute as pc
62
+
63
+
64
+ def on_startup():
65
+ """Optional -- runs once before the server starts accepting requests."""
66
+ print("Loading model weights...")
67
+
68
+
69
+ def handler(event: dict[str, pa.Array], context: dict) -> pa.Array:
70
+ """Called for each incoming request.
71
+
72
+ Args:
73
+ event: dict mapping column names to pyarrow.Array values.
74
+ context: dict with request metadata
75
+
76
+ Returns:
77
+ A pyarrow.Array, pyarrow.RecordBatch, pyarrow.Table, list, dict, or scalar.
78
+ The framework auto-converts the result to Arrow IPC for the response.
79
+ """
80
+ return pc.multiply(event["x"], event["y"])
81
+
82
+
83
+ def on_shutdown():
84
+ """Optional -- runs once after the server stops accepting requests."""
85
+ print("Releasing resources...")
86
+ ```
87
+
88
+ ### 2. Start the server
89
+
90
+ ```bash
91
+ chalk-remote-call --handler my_handler.handler
92
+ ```
93
+
94
+ Or via `python -m`:
95
+
96
+ ```bash
97
+ python -m chalk_remote_call --handler my_handler.handler
98
+ ```
99
+
100
+ ### CLI options
101
+
102
+ | Flag | Env var | Default | Description |
103
+ |------|---------|---------|-------------|
104
+ | `--handler` | | *(required)* | Dotted path to handler function |
105
+ | `--port` | `CHALK_REMOTE_CALL_PORT` | `6666` | Port to listen on |
106
+ | `--host` | `CHALK_REMOTE_CALL_HOST` | `[::]` | Host to bind to |
107
+ | `--workers` | `CHALK_REMOTE_CALL_WORKERS` | `10` | Tokio runtime worker threads |
108
+ | `--on-startup` | | | Dotted path to a startup function |
109
+ | `--on-shutdown` | | | Dotted path to a shutdown function |
110
+ | `--log-level` | | `INFO` | `DEBUG`, `INFO`, `WARNING`, or `ERROR` |
111
+
112
+ The CLI writes Python logs to stderr as one JSON object per line, with separate
113
+ `timestamp`, `severity`, `logger`, and `message` fields. Exceptions include an
114
+ `exception.stacktrace` field, which the log collector uses for the traceback.
115
+ CLI logging is configured before importing runtime dependencies. Import failures,
116
+ invalid environment configuration, and exceptions escaping startup or the server
117
+ emit a single ERROR record with the full traceback and exit with status 1.
118
+ Calls to `serve()` from Python retain the embedding application's logging configuration.
119
+
120
+ On Linux, server shutdown drains buffered function-call metrics before the runtime exits,
121
+ including when the server returns an error. Draining waits up to 10 seconds; a timeout or
122
+ publisher failure is logged as a warning.
123
+ Routine drain messages are logged at DEBUG; set `RUST_LOG=info,_native::metrics=debug`
124
+ to include them.
125
+
126
+ Missing optional StatsD endpoints or a metrics-bus topic do not emit warnings.
127
+ Failures initializing configured metrics sinks still warn. Routine customer
128
+ StatsD configuration messages are emitted at DEBUG by the shared metrics library;
129
+ set `RUST_LOG=info,chalk_metrics::metrics::config=debug` to include them.
130
+
131
+ ### Environment variables
132
+
133
+ | Variable | Description |
134
+ |----------|-------------|
135
+ | `CHALK_INPUT_ARGS` | Comma-separated list of column names (e.g. `x,y,z`). Renames incoming RecordBatch columns by index. If unset, the original column names are used. Reserved columns (below) are held out of this mapping and keep their own name. |
136
+ | `CHALK_FNQ_CONSUMER_ENDPOINT` | Opt into DP API `FnqConsumerService` consumption (HTTP or HTTPS gRPC endpoint). Unset preserves direct Redis consumption. API errors never fall back to Redis. |
137
+ | `CHALK_FUNCTION_QUEUE_TOKEN_FILE` | Controller-mounted working JWT, reopened per RPC to observe rotation. Defaults to `/var/run/secrets/chalk-function-queue/identity-token`. The shim does not exchange credentials. |
138
+ | `CHALK_FNQ_QUEUE_PROTOCOL` | Self-consumer work transport: `list_v1` (default/backward compatible) or `stream_v1`. Deployment tooling sets this from immutable scaling-group revision metadata. |
139
+
140
+ #### Reserved columns
141
+
142
+ A caller may attach framework side-channel data to a request as an extra column. Reserved
143
+ columns are matched by name, are optional on any given request, and are excluded from the
144
+ positional `CHALK_INPUT_ARGS` mapping — so `CHALK_INPUT_ARGS` always lists exactly the
145
+ handler's declared arguments, whether or not the caller sent one.
146
+
147
+ | Column | Meaning |
148
+ |--------|---------|
149
+ | `__chalk_row_metadata__` | Per-row binary blob supplied by the caller (Chalk's engine sets it from `catalog_call(..., row_metadata => ...)`). Handlers read it via `chalkcompute.get_row_metadata()`. |
150
+
151
+ ### 3. Docker image
152
+
153
+ ```dockerfile
154
+ FROM python:3.11-slim
155
+
156
+ WORKDIR /app
157
+
158
+ RUN pip install chalk-remote-call-python
159
+
160
+ # Copy your handler code
161
+ COPY my_handler.py /app
162
+
163
+ EXPOSE 6666
164
+
165
+ ENTRYPOINT ["chalk-remote-call"]
166
+ CMD ["--handler", "handler.handler"]
167
+ ```
168
+
169
+ Build and run:
170
+
171
+ ```bash
172
+ docker build -t my-chalk-handler .
173
+ docker run -p 6666:6666 -e CHALK_INPUT_ARGS="x,y" my-chalk-handler
174
+ ```
175
+
176
+ ### Programmatic usage
177
+
178
+ You can also start the server from Python:
179
+
180
+ ```python
181
+ from chalk_remote_call import serve
182
+
183
+ def handler(event, context):
184
+ return list(event.values())[0]
185
+
186
+ serve(handler=handler, port=8080)
187
+ ```
188
+
189
+ ## Local Testing
190
+
191
+ Use `grpcurl` to verify the server is running:
192
+
193
+ ```bash
194
+ # Check health
195
+ grpcurl -plaintext localhost:6666 grpc.health.v1.Health/Check
196
+
197
+ # List services via reflection
198
+ grpcurl -plaintext localhost:6666 list
199
+ ```
200
+
201
+ ## Architecture
202
+
203
+ The server uses a Rust backend via PyO3:
204
+
205
+ - **tonic** — gRPC server with health checking and reflection
206
+ - **prost** — protobuf message handling
207
+ - **arrow-rs** — Arrow IPC validation
208
+ - **PyO3** — FFI bridge to call Python handler functions
209
+
210
+ The Rust server runs on a tokio async runtime. When a request arrives, Arrow IPC bytes are passed to Python via PyO3 (`spawn_blocking` + GIL acquisition), where the handler is invoked. Results are passed back as IPC bytes.
211
+
212
+ ## Development
213
+
214
+ ### Setup
215
+
216
+ ```bash
217
+ cd chalk-remote-call-python
218
+ uv venv --python 3.11
219
+ uv pip install -e ".[dev]"
220
+ ```
221
+
222
+ ### Running tests
223
+
224
+ ```bash
225
+ pytest tests/ -v
226
+ ```
227
+
228
+ The Linux metrics shutdown regression tests use an in-memory bus publisher:
229
+
230
+ ```bash
231
+ PYO3_PYTHON=python3 cargo test --manifest-path chalk-remote-call-rs/chalk-remote-call-server/Cargo.toml --no-default-features --lib metrics::tests
232
+ ```
233
+
234
+ `--no-default-features` links Python into the test executable; wheel builds retain
235
+ the default `extension-module` feature.
236
+
237
+ ### Rust code
238
+
239
+ Rust source lives in `chalk-remote-call-rs/`:
240
+
241
+ To check the Rust code independently:
242
+
243
+ ```bash
244
+ PYO3_PYTHON=python3 cargo check --manifest-path chalk-remote-call-rs/chalk-remote-call-server/Cargo.toml
245
+ ```
246
+
247
+ ## Remote exception transport
248
+
249
+ Handler failures retain their original exception type, message, traceback,
250
+ exception chains, and exception groups. Runtime dispatch frames are excluded
251
+ from the user traceback, along with callers above the handler dispatch boundary.
252
+ Handler frames and their downstream calls remain visible (except for Chalk SDK
253
+ and marked generated dispatch frames); full diagnostics are retained in server
254
+ logs and `internal_stacktrace`.
255
+
256
+ All call modes carry a JSON payload with `chalk_remote_error: 1` and an
257
+ `exception` object containing the `ChalkException` fields `kind`, `message`,
258
+ `stacktrace`, and `internal_stacktrace`. Direct calls carry the payload as the
259
+ unescaped gRPC status message; queued calls carry it in the error message. The
260
+ local async service additionally populates `ChalkError.exception`. This permits
261
+ existing queue transports to forward structured errors without a protobuf
262
+ migration. Clients must decode the versioned payload, not parse gRPC debug text
263
+ or classify user errors by their message. Unknown versions remain opaque.
264
+
265
+ Payloads are bounded for gRPC header limits. Truncation is marked explicitly,
266
+ with complete tracebacks kept in server logs. Exception objects and locals are
267
+ never pickled or sent. Chalk SDK-generated handlers identify their dispatch
268
+ frames, and notebook source maps identify the deployed snapshot's lines.
269
+
270
+ ### Fnq integration test
271
+
272
+ On Linux, build the native extension and the paired `chalk-private` test harness:
273
+
274
+ ```bash
275
+ # chalk-private, inside the Nix dev shell
276
+ bazel build //rust-crates/chalk/dataplane-api-server:fnq_test_server
277
+
278
+ # chalk-remote-call-python
279
+ uv pip install -e ".[dev]" redis PyJWT cryptography
280
+ FNQ_TEST_SERVER=/path/to/chalk-private/bazel-bin/rust-crates/chalk/dataplane-api-server/fnq_test_server \
281
+ REDIS_URL=redis://127.0.0.1:6379 .venv/bin/pytest tests/test_fnq_api_e2e.py -v
282
+ ```
283
+
284
+ Use an isolated Redis instance. The tests create temporary signing keys and start
285
+ the production JWT layer and Fnq service, then exercise real native-shim execution,
286
+ lease renewal, result writes, token rotation, and environment isolation. These tests
287
+ skip unless `FNQ_TEST_SERVER` and `REDIS_URL` are set. Deploy the service before
288
+ setting `CHALK_FNQ_CONSUMER_ENDPOINT` on a workload.
@@ -0,0 +1,45 @@
1
+ chalk_remote_call/__init__.py,sha256=RV-Gy1rR3Wpg7J5szNEITfX9UUFbDjrDcgBoORr6HK0,134
2
+ chalk_remote_call/__main__.py,sha256=Gw47QG564BmA-sV7Yo8J0_jHwJjHt1YJu9kRXsbajc8,50
3
+ chalk_remote_call/_native.cp315-win_amd64.pyd,sha256=wZxxu-lyii9dihW3MczLuUjj0g_O73jEsmzUtZ2wjHo,6797312
4
+ chalk_remote_call/_native.pyi,sha256=kTF8wh0P8_mWemwRWZ63Aa3l29o1HOKq7JP_fx5Dzyw,341
5
+ chalk_remote_call/_version.py,sha256=CKHegvkApa5CWTJbNvYefNnR9_yZW6PAmMc97wTOQxo,23
6
+ chalk_remote_call/arrow_utils.py,sha256=l4Mlq7Z3VYEAkuFYTU3eBXKIQs0RdIaf-QwIP3A8aak,684
7
+ chalk_remote_call/cli.py,sha256=xyJ-1Qfd-JfefrqhQ1LHk8vWABD4B9qEq29WUPRooKU,5442
8
+ chalk_remote_call/errors.py,sha256=W3iaCSZCDgn6CvRgdcDByQs4MQMUcKhCfqu3ZsL13MA,5078
9
+ chalk_remote_call/handler_loader.py,sha256=jiUIz8_iBoipTFm98KZgloQT9ykBbZP-0pdDquYP-MA,2186
10
+ chalk_remote_call/input_transform.py,sha256=VD8wi0hs2vw_OvrAPB7-_ycnZJkIrYz4WkCjZbNSrfI,2233
11
+ chalk_remote_call/logging.py,sha256=TTXx2m0BtRdLmdNh57bl1c3KBGfAru-gYmSs_vIZSac,1237
12
+ chalk_remote_call/server.py,sha256=pQo_7NIcPY6bfzYHtfUZezQACYTAQu97OPw4GOq7740,4784
13
+ chalk_remote_call/servicer.py,sha256=8xdqMPmnRdReDwWMwt5t5KHcdud4JRWBf6UnntKY64I,17062
14
+ chalk_remote_call/tracing.py,sha256=euHBFC60lE9ta_2NF0mKKotXBtowv7M2Kk9KgWvWbGE,16636
15
+ chalk_remote_call/_gen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ chalk_remote_call/_gen/chalk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ chalk_remote_call/_gen/chalk/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ chalk_remote_call/_gen/chalk/auth/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ chalk_remote_call/_gen/chalk/auth/v1/permissions_pb2.py,sha256=OJplIAXNqUVieqTO4yNyRv1J7JqnRTqUPXviceyWf_g,22010
20
+ chalk_remote_call/_gen/chalk/auth/v1/permissions_pb2_grpc.py,sha256=_bXoS025FcWrXR1E_3Mh4GHB1RMvgz8lIpit-Awnf-s,163
21
+ chalk_remote_call/_gen/chalk/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ chalk_remote_call/_gen/chalk/common/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ chalk_remote_call/_gen/chalk/common/v1/chalk_error_pb2.py,sha256=Eok4HEEnHEUMlu_y-lnIRFPs7zre8p22Gv86uB13YZY,3747
24
+ chalk_remote_call/_gen/chalk/common/v1/chalk_error_pb2_grpc.py,sha256=_bXoS025FcWrXR1E_3Mh4GHB1RMvgz8lIpit-Awnf-s,163
25
+ chalk_remote_call/_gen/chalk/runtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ chalk_remote_call/_gen/chalk/runtime/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ chalk_remote_call/_gen/chalk/runtime/v1/fnq_consumer_pb2.py,sha256=6MLRaTt0o7h6ASROnL6UxqkIkUbAunKrS_29CGtyKgg,6054
28
+ chalk_remote_call/_gen/chalk/runtime/v1/fnq_consumer_pb2_grpc.py,sha256=d2kcgi9KeuqxzdKqwCB0TvatAM5aSvQsp-QcP2dXlbg,6600
29
+ chalk_remote_call/_gen/chalk/runtime/v1/remote_python_call_pb2.py,sha256=Ccn5P1c-cXniPjij2DWpAclphY9VymQw4h0kM9QSBsY,14456
30
+ chalk_remote_call/_gen/chalk/runtime/v1/remote_python_call_pb2_grpc.py,sha256=Vh5A-kEtmGEQqhJzNoReTnCFewEU4u_AXskKjQ6MEJA,18350
31
+ chalk_remote_call/_gen/chalk/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
+ chalk_remote_call/_gen/chalk/utils/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
+ chalk_remote_call/_gen/chalk/utils/v1/encoding_pb2.py,sha256=DSInrR0-LJCUjWBGcVLC20IFAtZaHAJ9GfrTK9eIKww,2309
34
+ chalk_remote_call/_gen/chalk/utils/v1/encoding_pb2_grpc.py,sha256=_bXoS025FcWrXR1E_3Mh4GHB1RMvgz8lIpit-Awnf-s,163
35
+ chalk_remote_call/_gen/chalk/utils/v1/field_change_pb2.py,sha256=usD4v-WPFQt8RYoIeT5ojn5LI6SYvP60bR7AbqyOm6k,2255
36
+ chalk_remote_call/_gen/chalk/utils/v1/field_change_pb2_grpc.py,sha256=_bXoS025FcWrXR1E_3Mh4GHB1RMvgz8lIpit-Awnf-s,163
37
+ chalk_remote_call/_gen/chalk/utils/v1/large_pb2.py,sha256=sqdkKqvj_xDR2M_epUpQ61zVMZW_BZErhpeSNz7euXM,1624
38
+ chalk_remote_call/_gen/chalk/utils/v1/large_pb2_grpc.py,sha256=_bXoS025FcWrXR1E_3Mh4GHB1RMvgz8lIpit-Awnf-s,163
39
+ chalk_remote_call/_gen/chalk/utils/v1/sensitive_pb2.py,sha256=6RSNPSmRSoFEpPdRNWqdNHNIlfbwHvFCMQiEUYk1vZs,1652
40
+ chalk_remote_call/_gen/chalk/utils/v1/sensitive_pb2_grpc.py,sha256=_bXoS025FcWrXR1E_3Mh4GHB1RMvgz8lIpit-Awnf-s,163
41
+ chalk_remote_call_python-1.10.5.dist-info/METADATA,sha256=KY_RevkkNNdSPu5sfY_7cgBm-ODlvUpnHtxjRYq7Z98,11425
42
+ chalk_remote_call_python-1.10.5.dist-info/WHEEL,sha256=geuJoH1aW6kS7q0cKuoOBUdE-tpBsTvRf9l5rOGbxQs,101
43
+ chalk_remote_call_python-1.10.5.dist-info/entry_points.txt,sha256=WoD51W5JhGXL2L0AOnVMuyemd200PcnuZtTbvKyYwmQ,65
44
+ chalk_remote_call_python-1.10.5.dist-info/top_level.txt,sha256=7-CahbVI5EMhQktJ3IRLhTt03bmN93gfgRJX7zGyylc,18
45
+ chalk_remote_call_python-1.10.5.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp315-cp315-win_amd64
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ chalk-remote-call = chalk_remote_call.cli:main
@@ -0,0 +1 @@
1
+ chalk_remote_call