chalkpy 2.93.7__py3-none-any.whl → 2.93.9__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.
@@ -18,7 +18,7 @@ from chalk._gen.chalk.expression.v1 import expression_pb2 as chalk_dot_expressio
18
18
 
19
19
 
20
20
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
21
- b'\n"chalk/dataframe/v1/dataframe.proto\x12\x12\x63halk.dataframe.v1\x1a\x1a\x63halk/arrow/v1/arrow.proto\x1a$chalk/expression/v1/expression.proto"\xe7\x04\n\x10\x44\x61taFrameOperand\x12#\n\x0cvalue_string\x18\x01 \x01(\tH\x00R\x0bvalueString\x12\x1d\n\tvalue_int\x18\x02 \x01(\x03H\x00R\x08valueInt\x12\x1f\n\nvalue_bool\x18\x03 \x01(\x08H\x00R\tvalueBool\x12;\n\nvalue_none\x18\x04 \x01(\x0b\x32\x1a.chalk.dataframe.v1.PyNoneH\x00R\tvalueNone\x12;\n\nvalue_list\x18\x05 \x01(\x0b\x32\x1a.chalk.dataframe.v1.PyListH\x00R\tvalueList\x12;\n\nvalue_dict\x18\x06 \x01(\x0b\x32\x1a.chalk.dataframe.v1.PyDictH\x00R\tvalueDict\x12X\n\x15value_dataframe_index\x18\x07 \x01(\x0b\x32".chalk.dataframe.v1.DataFrameIndexH\x00R\x13valueDataframeIndex\x12;\n\x0c\x61rrow_schema\x18\x08 \x01(\x0b\x32\x16.chalk.arrow.v1.SchemaH\x00R\x0b\x61rrowSchema\x12\x44\n\x0b\x61rrow_table\x18\t \x01(\x0b\x32!.chalk.arrow.v1.TableParquetBytesH\x00R\narrowTable\x12O\n\x0funderscore_expr\x18\n \x01(\x0b\x32$.chalk.expression.v1.LogicalExprNodeH\x00R\x0eunderscoreExprB\t\n\x07operand">\n\x0e\x44\x61taFrameIndex\x12,\n\x12\x64\x61taframe_op_index\x18\x01 \x01(\x05R\x10\x64\x61taframeOpIndex"\x08\n\x06PyNone"M\n\x06PyList\x12\x43\n\nlist_items\x18\x01 \x03(\x0b\x32$.chalk.dataframe.v1.DataFrameOperandR\tlistItems"\x97\x01\n\x0bPyDictEntry\x12\x41\n\tentry_key\x18\x01 \x01(\x0b\x32$.chalk.dataframe.v1.DataFrameOperandR\x08\x65ntryKey\x12\x45\n\x0b\x65ntry_value\x18\x02 \x01(\x0b\x32$.chalk.dataframe.v1.DataFrameOperandR\nentryValue"L\n\x06PyDict\x12\x42\n\x0c\x64ict_entries\x18\x01 \x03(\x0b\x32\x1f.chalk.dataframe.v1.PyDictEntryR\x0b\x64ictEntries"\xfc\x01\n\x14\x44\x61taFrameConstructor\x12J\n\x0cself_operand\x18\x01 \x01(\x0b\x32".chalk.dataframe.v1.DataFrameIndexH\x00R\x0bselfOperand\x88\x01\x01\x12#\n\rfunction_name\x18\x02 \x01(\tR\x0c\x66unctionName\x12.\n\x04\x61rgs\x18\x03 \x01(\x0b\x32\x1a.chalk.dataframe.v1.PyListR\x04\x61rgs\x12\x32\n\x06kwargs\x18\x04 \x01(\x0b\x32\x1a.chalk.dataframe.v1.PyDictR\x06kwargsB\x0f\n\r_self_operand"]\n\rDataFramePlan\x12L\n\x0c\x63onstructors\x18\x01 \x03(\x0b\x32(.chalk.dataframe.v1.DataFrameConstructorR\x0c\x63onstructorsB\x92\x01\n\x16\x63om.chalk.dataframe.v1B\x0e\x44\x61taframeProtoP\x01\xa2\x02\x03\x43\x44X\xaa\x02\x12\x43halk.Dataframe.V1\xca\x02\x12\x43halk\\Dataframe\\V1\xe2\x02\x1e\x43halk\\Dataframe\\V1\\GPBMetadata\xea\x02\x14\x43halk::Dataframe::V1b\x06proto3'
21
+ b'\n"chalk/dataframe/v1/dataframe.proto\x12\x12\x63halk.dataframe.v1\x1a\x1a\x63halk/arrow/v1/arrow.proto\x1a$chalk/expression/v1/expression.proto"\xb4\x05\n\x10\x44\x61taFrameOperand\x12#\n\x0cvalue_string\x18\x01 \x01(\tH\x00R\x0bvalueString\x12\x1d\n\tvalue_int\x18\x02 \x01(\x03H\x00R\x08valueInt\x12\x1f\n\nvalue_bool\x18\x03 \x01(\x08H\x00R\tvalueBool\x12;\n\nvalue_none\x18\x04 \x01(\x0b\x32\x1a.chalk.dataframe.v1.PyNoneH\x00R\tvalueNone\x12;\n\nvalue_list\x18\x05 \x01(\x0b\x32\x1a.chalk.dataframe.v1.PyListH\x00R\tvalueList\x12;\n\nvalue_dict\x18\x06 \x01(\x0b\x32\x1a.chalk.dataframe.v1.PyDictH\x00R\tvalueDict\x12X\n\x15value_dataframe_index\x18\x07 \x01(\x0b\x32".chalk.dataframe.v1.DataFrameIndexH\x00R\x13valueDataframeIndex\x12;\n\x0c\x61rrow_schema\x18\x08 \x01(\x0b\x32\x16.chalk.arrow.v1.SchemaH\x00R\x0b\x61rrowSchema\x12\x44\n\x0b\x61rrow_table\x18\t \x01(\x0b\x32!.chalk.arrow.v1.TableParquetBytesH\x00R\narrowTable\x12O\n\x0funderscore_expr\x18\n \x01(\x0b\x32$.chalk.expression.v1.LogicalExprNodeH\x00R\x0eunderscoreExpr\x12K\n\rlibchalk_expr\x18\x0b \x01(\x0b\x32$.chalk.expression.v1.LogicalExprNodeH\x00R\x0clibchalkExprB\t\n\x07operand">\n\x0e\x44\x61taFrameIndex\x12,\n\x12\x64\x61taframe_op_index\x18\x01 \x01(\x05R\x10\x64\x61taframeOpIndex"\x08\n\x06PyNone"M\n\x06PyList\x12\x43\n\nlist_items\x18\x01 \x03(\x0b\x32$.chalk.dataframe.v1.DataFrameOperandR\tlistItems"\x97\x01\n\x0bPyDictEntry\x12\x41\n\tentry_key\x18\x01 \x01(\x0b\x32$.chalk.dataframe.v1.DataFrameOperandR\x08\x65ntryKey\x12\x45\n\x0b\x65ntry_value\x18\x02 \x01(\x0b\x32$.chalk.dataframe.v1.DataFrameOperandR\nentryValue"L\n\x06PyDict\x12\x42\n\x0c\x64ict_entries\x18\x01 \x03(\x0b\x32\x1f.chalk.dataframe.v1.PyDictEntryR\x0b\x64ictEntries"\xfc\x01\n\x14\x44\x61taFrameConstructor\x12J\n\x0cself_operand\x18\x01 \x01(\x0b\x32".chalk.dataframe.v1.DataFrameIndexH\x00R\x0bselfOperand\x88\x01\x01\x12#\n\rfunction_name\x18\x02 \x01(\tR\x0c\x66unctionName\x12.\n\x04\x61rgs\x18\x03 \x01(\x0b\x32\x1a.chalk.dataframe.v1.PyListR\x04\x61rgs\x12\x32\n\x06kwargs\x18\x04 \x01(\x0b\x32\x1a.chalk.dataframe.v1.PyDictR\x06kwargsB\x0f\n\r_self_operand"]\n\rDataFramePlan\x12L\n\x0c\x63onstructors\x18\x01 \x03(\x0b\x32(.chalk.dataframe.v1.DataFrameConstructorR\x0c\x63onstructorsB\x92\x01\n\x16\x63om.chalk.dataframe.v1B\x0e\x44\x61taframeProtoP\x01\xa2\x02\x03\x43\x44X\xaa\x02\x12\x43halk.Dataframe.V1\xca\x02\x12\x43halk\\Dataframe\\V1\xe2\x02\x1e\x43halk\\Dataframe\\V1\\GPBMetadata\xea\x02\x14\x43halk::Dataframe::V1b\x06proto3'
22
22
  )
23
23
 
24
24
  _globals = globals()
@@ -30,19 +30,19 @@ if _descriptor._USE_C_DESCRIPTORS == False:
30
30
  "DESCRIPTOR"
31
31
  ]._serialized_options = b"\n\026com.chalk.dataframe.v1B\016DataframeProtoP\001\242\002\003CDX\252\002\022Chalk.Dataframe.V1\312\002\022Chalk\\Dataframe\\V1\342\002\036Chalk\\Dataframe\\V1\\GPBMetadata\352\002\024Chalk::Dataframe::V1"
32
32
  _globals["_DATAFRAMEOPERAND"]._serialized_start = 125
33
- _globals["_DATAFRAMEOPERAND"]._serialized_end = 740
34
- _globals["_DATAFRAMEINDEX"]._serialized_start = 742
35
- _globals["_DATAFRAMEINDEX"]._serialized_end = 804
36
- _globals["_PYNONE"]._serialized_start = 806
37
- _globals["_PYNONE"]._serialized_end = 814
38
- _globals["_PYLIST"]._serialized_start = 816
39
- _globals["_PYLIST"]._serialized_end = 893
40
- _globals["_PYDICTENTRY"]._serialized_start = 896
41
- _globals["_PYDICTENTRY"]._serialized_end = 1047
42
- _globals["_PYDICT"]._serialized_start = 1049
43
- _globals["_PYDICT"]._serialized_end = 1125
44
- _globals["_DATAFRAMECONSTRUCTOR"]._serialized_start = 1128
45
- _globals["_DATAFRAMECONSTRUCTOR"]._serialized_end = 1380
46
- _globals["_DATAFRAMEPLAN"]._serialized_start = 1382
47
- _globals["_DATAFRAMEPLAN"]._serialized_end = 1475
33
+ _globals["_DATAFRAMEOPERAND"]._serialized_end = 817
34
+ _globals["_DATAFRAMEINDEX"]._serialized_start = 819
35
+ _globals["_DATAFRAMEINDEX"]._serialized_end = 881
36
+ _globals["_PYNONE"]._serialized_start = 883
37
+ _globals["_PYNONE"]._serialized_end = 891
38
+ _globals["_PYLIST"]._serialized_start = 893
39
+ _globals["_PYLIST"]._serialized_end = 970
40
+ _globals["_PYDICTENTRY"]._serialized_start = 973
41
+ _globals["_PYDICTENTRY"]._serialized_end = 1124
42
+ _globals["_PYDICT"]._serialized_start = 1126
43
+ _globals["_PYDICT"]._serialized_end = 1202
44
+ _globals["_DATAFRAMECONSTRUCTOR"]._serialized_start = 1205
45
+ _globals["_DATAFRAMECONSTRUCTOR"]._serialized_end = 1457
46
+ _globals["_DATAFRAMEPLAN"]._serialized_start = 1459
47
+ _globals["_DATAFRAMEPLAN"]._serialized_end = 1552
48
48
  # @@protoc_insertion_point(module_scope)
@@ -25,6 +25,7 @@ class DataFrameOperand(_message.Message):
25
25
  "arrow_schema",
26
26
  "arrow_table",
27
27
  "underscore_expr",
28
+ "libchalk_expr",
28
29
  )
29
30
  VALUE_STRING_FIELD_NUMBER: _ClassVar[int]
30
31
  VALUE_INT_FIELD_NUMBER: _ClassVar[int]
@@ -36,6 +37,7 @@ class DataFrameOperand(_message.Message):
36
37
  ARROW_SCHEMA_FIELD_NUMBER: _ClassVar[int]
37
38
  ARROW_TABLE_FIELD_NUMBER: _ClassVar[int]
38
39
  UNDERSCORE_EXPR_FIELD_NUMBER: _ClassVar[int]
40
+ LIBCHALK_EXPR_FIELD_NUMBER: _ClassVar[int]
39
41
  value_string: str
40
42
  value_int: int
41
43
  value_bool: bool
@@ -46,6 +48,7 @@ class DataFrameOperand(_message.Message):
46
48
  arrow_schema: _arrow_pb2.Schema
47
49
  arrow_table: _arrow_pb2.TableParquetBytes
48
50
  underscore_expr: _expression_pb2.LogicalExprNode
51
+ libchalk_expr: _expression_pb2.LogicalExprNode
49
52
  def __init__(
50
53
  self,
51
54
  value_string: _Optional[str] = ...,
@@ -58,6 +61,7 @@ class DataFrameOperand(_message.Message):
58
61
  arrow_schema: _Optional[_Union[_arrow_pb2.Schema, _Mapping]] = ...,
59
62
  arrow_table: _Optional[_Union[_arrow_pb2.TableParquetBytes, _Mapping]] = ...,
60
63
  underscore_expr: _Optional[_Union[_expression_pb2.LogicalExprNode, _Mapping]] = ...,
64
+ libchalk_expr: _Optional[_Union[_expression_pb2.LogicalExprNode, _Mapping]] = ...,
61
65
  ) -> None: ...
62
66
 
63
67
  class DataFrameIndex(_message.Message):
@@ -0,0 +1,44 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: chalk/server/v1/indexing_job.proto
4
+ # Protobuf Python Version: 4.25.3
5
+ """Generated protocol buffer code."""
6
+
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import symbol_database as _symbol_database
10
+ from google.protobuf.internal import builder as _builder
11
+ # @@protoc_insertion_point(imports)
12
+
13
+ _sym_db = _symbol_database.Default()
14
+
15
+
16
+ from chalk._gen.chalk.artifacts.v1 import export_pb2 as chalk_dot_artifacts_dot_v1_dot_export__pb2
17
+ from chalk._gen.chalk.auth.v1 import permissions_pb2 as chalk_dot_auth_dot_v1_dot_permissions__pb2
18
+
19
+
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
21
+ b'\n"chalk/server/v1/indexing_job.proto\x12\x0f\x63halk.server.v1\x1a\x1f\x63halk/artifacts/v1/export.proto\x1a\x1f\x63halk/auth/v1/permissions.proto"\x99\x01\n\x1bGetIndexingJobStatusRequest\x12#\n\rdeployment_id\x18\x01 \x01(\tR\x0c\x64\x65ploymentId\x12U\n\x15\x64irectory_prefix_enum\x18\x02 \x01(\x0e\x32!.chalk.server.v1.DirectoryOptionsR\x13\x64irectoryPrefixEnum"R\n\x1cGetIndexingJobStatusResponse\x12\x32\n\x06\x65xport\x18\x01 \x01(\x0b\x32\x1a.chalk.artifacts.v1.ExportR\x06\x65xport*\xb2\x01\n\x10\x44irectoryOptions\x12!\n\x1d\x44IRECTORY_OPTIONS_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x44IRECTORY_OPTIONS_MAIN\x10\x01\x12\x1c\n\x18\x44IRECTORY_OPTIONS_SHADOW\x10\x02\x12\x1d\n\x19\x44IRECTORY_OPTIONS_DRY_RUN\x10\x03\x12"\n\x1e\x44IRECTORY_OPTIONS_INDEXING_JOB\x10\x04\x32\x91\x01\n\x12IndexingJobService\x12{\n\x14GetIndexingJobStatus\x12,.chalk.server.v1.GetIndexingJobStatusRequest\x1a-.chalk.server.v1.GetIndexingJobStatusResponse"\x06\x90\x02\x01\x80}\x0b\x42\x99\x01\n\x13\x63om.chalk.server.v1B\x10IndexingJobProtoP\x01Z\x12server/v1;serverv1\xa2\x02\x03\x43SX\xaa\x02\x0f\x43halk.Server.V1\xca\x02\x0f\x43halk\\Server\\V1\xe2\x02\x1b\x43halk\\Server\\V1\\GPBMetadata\xea\x02\x11\x43halk::Server::V1b\x06proto3'
22
+ )
23
+
24
+ _globals = globals()
25
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
26
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "chalk.server.v1.indexing_job_pb2", _globals)
27
+ if _descriptor._USE_C_DESCRIPTORS == False:
28
+ _globals["DESCRIPTOR"]._options = None
29
+ _globals[
30
+ "DESCRIPTOR"
31
+ ]._serialized_options = b"\n\023com.chalk.server.v1B\020IndexingJobProtoP\001Z\022server/v1;serverv1\242\002\003CSX\252\002\017Chalk.Server.V1\312\002\017Chalk\\Server\\V1\342\002\033Chalk\\Server\\V1\\GPBMetadata\352\002\021Chalk::Server::V1"
32
+ _globals["_INDEXINGJOBSERVICE"].methods_by_name["GetIndexingJobStatus"]._options = None
33
+ _globals["_INDEXINGJOBSERVICE"].methods_by_name[
34
+ "GetIndexingJobStatus"
35
+ ]._serialized_options = b"\220\002\001\200}\013"
36
+ _globals["_DIRECTORYOPTIONS"]._serialized_start = 362
37
+ _globals["_DIRECTORYOPTIONS"]._serialized_end = 540
38
+ _globals["_GETINDEXINGJOBSTATUSREQUEST"]._serialized_start = 122
39
+ _globals["_GETINDEXINGJOBSTATUSREQUEST"]._serialized_end = 275
40
+ _globals["_GETINDEXINGJOBSTATUSRESPONSE"]._serialized_start = 277
41
+ _globals["_GETINDEXINGJOBSTATUSRESPONSE"]._serialized_end = 359
42
+ _globals["_INDEXINGJOBSERVICE"]._serialized_start = 543
43
+ _globals["_INDEXINGJOBSERVICE"]._serialized_end = 688
44
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,38 @@
1
+ from chalk._gen.chalk.artifacts.v1 import export_pb2 as _export_pb2
2
+ from chalk._gen.chalk.auth.v1 import permissions_pb2 as _permissions_pb2
3
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
4
+ from google.protobuf import descriptor as _descriptor
5
+ from google.protobuf import message as _message
6
+ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union
7
+
8
+ DESCRIPTOR: _descriptor.FileDescriptor
9
+
10
+ class DirectoryOptions(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
11
+ __slots__ = ()
12
+ DIRECTORY_OPTIONS_UNSPECIFIED: _ClassVar[DirectoryOptions]
13
+ DIRECTORY_OPTIONS_MAIN: _ClassVar[DirectoryOptions]
14
+ DIRECTORY_OPTIONS_SHADOW: _ClassVar[DirectoryOptions]
15
+ DIRECTORY_OPTIONS_DRY_RUN: _ClassVar[DirectoryOptions]
16
+ DIRECTORY_OPTIONS_INDEXING_JOB: _ClassVar[DirectoryOptions]
17
+
18
+ DIRECTORY_OPTIONS_UNSPECIFIED: DirectoryOptions
19
+ DIRECTORY_OPTIONS_MAIN: DirectoryOptions
20
+ DIRECTORY_OPTIONS_SHADOW: DirectoryOptions
21
+ DIRECTORY_OPTIONS_DRY_RUN: DirectoryOptions
22
+ DIRECTORY_OPTIONS_INDEXING_JOB: DirectoryOptions
23
+
24
+ class GetIndexingJobStatusRequest(_message.Message):
25
+ __slots__ = ("deployment_id", "directory_prefix_enum")
26
+ DEPLOYMENT_ID_FIELD_NUMBER: _ClassVar[int]
27
+ DIRECTORY_PREFIX_ENUM_FIELD_NUMBER: _ClassVar[int]
28
+ deployment_id: str
29
+ directory_prefix_enum: DirectoryOptions
30
+ def __init__(
31
+ self, deployment_id: _Optional[str] = ..., directory_prefix_enum: _Optional[_Union[DirectoryOptions, str]] = ...
32
+ ) -> None: ...
33
+
34
+ class GetIndexingJobStatusResponse(_message.Message):
35
+ __slots__ = ("export",)
36
+ EXPORT_FIELD_NUMBER: _ClassVar[int]
37
+ export: _export_pb2.Export
38
+ def __init__(self, export: _Optional[_Union[_export_pb2.Export, _Mapping]] = ...) -> None: ...
@@ -0,0 +1,78 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+
4
+ import grpc
5
+
6
+ from chalk._gen.chalk.server.v1 import indexing_job_pb2 as chalk_dot_server_dot_v1_dot_indexing__job__pb2
7
+
8
+
9
+ class IndexingJobServiceStub(object):
10
+ """Missing associated documentation comment in .proto file."""
11
+
12
+ def __init__(self, channel):
13
+ """Constructor.
14
+
15
+ Args:
16
+ channel: A grpc.Channel.
17
+ """
18
+ self.GetIndexingJobStatus = channel.unary_unary(
19
+ "/chalk.server.v1.IndexingJobService/GetIndexingJobStatus",
20
+ request_serializer=chalk_dot_server_dot_v1_dot_indexing__job__pb2.GetIndexingJobStatusRequest.SerializeToString,
21
+ response_deserializer=chalk_dot_server_dot_v1_dot_indexing__job__pb2.GetIndexingJobStatusResponse.FromString,
22
+ )
23
+
24
+
25
+ class IndexingJobServiceServicer(object):
26
+ """Missing associated documentation comment in .proto file."""
27
+
28
+ def GetIndexingJobStatus(self, request, context):
29
+ """GetIndexingStatus checks if the indexing job has completed successfully for a deployment"""
30
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
31
+ context.set_details("Method not implemented!")
32
+ raise NotImplementedError("Method not implemented!")
33
+
34
+
35
+ def add_IndexingJobServiceServicer_to_server(servicer, server):
36
+ rpc_method_handlers = {
37
+ "GetIndexingJobStatus": grpc.unary_unary_rpc_method_handler(
38
+ servicer.GetIndexingJobStatus,
39
+ request_deserializer=chalk_dot_server_dot_v1_dot_indexing__job__pb2.GetIndexingJobStatusRequest.FromString,
40
+ response_serializer=chalk_dot_server_dot_v1_dot_indexing__job__pb2.GetIndexingJobStatusResponse.SerializeToString,
41
+ ),
42
+ }
43
+ generic_handler = grpc.method_handlers_generic_handler("chalk.server.v1.IndexingJobService", rpc_method_handlers)
44
+ server.add_generic_rpc_handlers((generic_handler,))
45
+
46
+
47
+ # This class is part of an EXPERIMENTAL API.
48
+ class IndexingJobService(object):
49
+ """Missing associated documentation comment in .proto file."""
50
+
51
+ @staticmethod
52
+ def GetIndexingJobStatus(
53
+ request,
54
+ target,
55
+ options=(),
56
+ channel_credentials=None,
57
+ call_credentials=None,
58
+ insecure=False,
59
+ compression=None,
60
+ wait_for_ready=None,
61
+ timeout=None,
62
+ metadata=None,
63
+ ):
64
+ return grpc.experimental.unary_unary(
65
+ request,
66
+ target,
67
+ "/chalk.server.v1.IndexingJobService/GetIndexingJobStatus",
68
+ chalk_dot_server_dot_v1_dot_indexing__job__pb2.GetIndexingJobStatusRequest.SerializeToString,
69
+ chalk_dot_server_dot_v1_dot_indexing__job__pb2.GetIndexingJobStatusResponse.FromString,
70
+ options,
71
+ channel_credentials,
72
+ insecure,
73
+ call_credentials,
74
+ compression,
75
+ wait_for_ready,
76
+ timeout,
77
+ metadata,
78
+ )
@@ -0,0 +1,38 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ from abc import (
7
+ ABCMeta,
8
+ abstractmethod,
9
+ )
10
+ from chalk._gen.chalk.server.v1.indexing_job_pb2 import (
11
+ GetIndexingJobStatusRequest,
12
+ GetIndexingJobStatusResponse,
13
+ )
14
+ from grpc import (
15
+ Channel,
16
+ Server,
17
+ ServicerContext,
18
+ UnaryUnaryMultiCallable,
19
+ )
20
+
21
+ class IndexingJobServiceStub:
22
+ def __init__(self, channel: Channel) -> None: ...
23
+ GetIndexingJobStatus: UnaryUnaryMultiCallable[
24
+ GetIndexingJobStatusRequest,
25
+ GetIndexingJobStatusResponse,
26
+ ]
27
+ """GetIndexingStatus checks if the indexing job has completed successfully for a deployment"""
28
+
29
+ class IndexingJobServiceServicer(metaclass=ABCMeta):
30
+ @abstractmethod
31
+ def GetIndexingJobStatus(
32
+ self,
33
+ request: GetIndexingJobStatusRequest,
34
+ context: ServicerContext,
35
+ ) -> GetIndexingJobStatusResponse:
36
+ """GetIndexingStatus checks if the indexing job has completed successfully for a deployment"""
37
+
38
+ def add_IndexingJobServiceServicer_to_server(servicer: IndexingJobServiceServicer, server: Server) -> None: ...
@@ -19,7 +19,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__
19
19
 
20
20
 
21
21
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
22
- b'\n)chalk/server/v1/scheduled_query_run.proto\x12\x0f\x63halk.server.v1\x1a%chalk/server/v1/offline_queries.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xd1\x05\n\x11ScheduledQueryRun\x12\x0e\n\x02id\x18\x01 \x01(\x03R\x02id\x12%\n\x0e\x65nvironment_id\x18\x02 \x01(\tR\renvironmentId\x12(\n\rdeployment_id\x18\x03 \x01(\tH\x00R\x0c\x64\x65ploymentId\x88\x01\x01\x12\x1a\n\x06run_id\x18\x04 \x01(\tH\x01R\x05runId\x88\x01\x01\x12"\n\rcron_query_id\x18\x05 \x01(\x03R\x0b\x63ronQueryId\x12\x33\n\x16\x63ron_query_schedule_id\x18\x06 \x01(\x03R\x13\x63ronQueryScheduleId\x12\x1b\n\tcron_name\x18\x07 \x01(\tR\x08\x63ronName\x12-\n\x10gcr_execution_id\x18\x08 \x01(\tH\x02R\x0egcrExecutionId\x88\x01\x01\x12%\n\x0cgcr_job_name\x18\t \x01(\tH\x03R\ngcrJobName\x88\x01\x01\x12(\n\x10offline_query_id\x18\n \x01(\tR\x0eofflineQueryId\x12\x39\n\ncreated_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12@\n\x06status\x18\r \x01(\x0e\x32(.chalk.server.v1.ScheduledQueryRunStatusR\x06status\x12\x35\n\x14\x62locker_operation_id\x18\x0e \x01(\tH\x04R\x12\x62lockerOperationId\x88\x01\x01\x42\x10\n\x0e_deployment_idB\t\n\x07_run_idB\x13\n\x11_gcr_execution_idB\x0f\n\r_gcr_job_nameB\x17\n\x15_blocker_operation_id"\xa7\x01\n\x1bGetScheduledQueryRunRequest\x12\x17\n\x06run_id\x18\x01 \x01(\x03H\x00R\x05runId\x12*\n\x10offline_query_id\x18\x02 \x01(\tH\x00R\x0eofflineQueryId\x12\x35\n\x08get_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskR\x07getMaskB\x0c\n\nidentifier"\xd1\x01\n\x1cGetScheduledQueryRunResponse\x12R\n\x13scheduled_query_run\x18\x01 \x01(\x0b\x32".chalk.server.v1.ScheduledQueryRunR\x11scheduledQueryRun\x12K\n\roffline_query\x18\x02 \x01(\x0b\x32!.chalk.server.v1.OfflineQueryMetaH\x00R\x0cofflineQuery\x88\x01\x01\x42\x10\n\x0e_offline_query"p\n\x1cGetScheduledQueryRunsRequest\x12"\n\rcron_query_id\x18\x01 \x01(\x05R\x0b\x63ronQueryId\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor\x12\x14\n\x05limit\x18\x03 \x01(\x05R\x05limit"o\n\x1dGetScheduledQueryRunsResponse\x12\x36\n\x04runs\x18\x01 \x03(\x0b\x32".chalk.server.v1.ScheduledQueryRunR\x04runs\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor*\x8f\x03\n\x17ScheduledQueryRunStatus\x12*\n&SCHEDULED_QUERY_RUN_STATUS_UNSPECIFIED\x10\x00\x12+\n\'SCHEDULED_QUERY_RUN_STATUS_INITIALIZING\x10\x01\x12*\n&SCHEDULED_QUERY_RUN_STATUS_INIT_FAILED\x10\x02\x12&\n"SCHEDULED_QUERY_RUN_STATUS_SKIPPED\x10\x03\x12%\n!SCHEDULED_QUERY_RUN_STATUS_QUEUED\x10\x04\x12&\n"SCHEDULED_QUERY_RUN_STATUS_WORKING\x10\x05\x12(\n$SCHEDULED_QUERY_RUN_STATUS_COMPLETED\x10\x06\x12%\n!SCHEDULED_QUERY_RUN_STATUS_FAILED\x10\x07\x12\'\n#SCHEDULED_QUERY_RUN_STATUS_CANCELED\x10\x08\x42\x9f\x01\n\x13\x63om.chalk.server.v1B\x16ScheduledQueryRunProtoP\x01Z\x12server/v1;serverv1\xa2\x02\x03\x43SX\xaa\x02\x0f\x43halk.Server.V1\xca\x02\x0f\x43halk\\Server\\V1\xe2\x02\x1b\x43halk\\Server\\V1\\GPBMetadata\xea\x02\x11\x43halk::Server::V1b\x06proto3'
22
+ b'\n)chalk/server/v1/scheduled_query_run.proto\x12\x0f\x63halk.server.v1\x1a%chalk/server/v1/offline_queries.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xa4\x06\n\x11ScheduledQueryRun\x12\x0e\n\x02id\x18\x01 \x01(\x03R\x02id\x12%\n\x0e\x65nvironment_id\x18\x02 \x01(\tR\renvironmentId\x12(\n\rdeployment_id\x18\x03 \x01(\tH\x00R\x0c\x64\x65ploymentId\x88\x01\x01\x12\x1a\n\x06run_id\x18\x04 \x01(\tH\x01R\x05runId\x88\x01\x01\x12"\n\rcron_query_id\x18\x05 \x01(\x03R\x0b\x63ronQueryId\x12\x33\n\x16\x63ron_query_schedule_id\x18\x06 \x01(\x03R\x13\x63ronQueryScheduleId\x12\x1b\n\tcron_name\x18\x07 \x01(\tR\x08\x63ronName\x12-\n\x10gcr_execution_id\x18\x08 \x01(\tH\x02R\x0egcrExecutionId\x88\x01\x01\x12%\n\x0cgcr_job_name\x18\t \x01(\tH\x03R\ngcrJobName\x88\x01\x01\x12(\n\x10offline_query_id\x18\n \x01(\tR\x0eofflineQueryId\x12\x39\n\ncreated_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12@\n\x06status\x18\r \x01(\x0e\x32(.chalk.server.v1.ScheduledQueryRunStatusR\x06status\x12\x35\n\x14\x62locker_operation_id\x18\x0e \x01(\tH\x04R\x12\x62lockerOperationId\x88\x01\x01\x12\x37\n\x15workflow_execution_id\x18\x0f \x01(\tH\x05R\x13workflowExecutionId\x88\x01\x01\x42\x10\n\x0e_deployment_idB\t\n\x07_run_idB\x13\n\x11_gcr_execution_idB\x0f\n\r_gcr_job_nameB\x17\n\x15_blocker_operation_idB\x18\n\x16_workflow_execution_id"\xa7\x01\n\x1bGetScheduledQueryRunRequest\x12\x17\n\x06run_id\x18\x01 \x01(\x03H\x00R\x05runId\x12*\n\x10offline_query_id\x18\x02 \x01(\tH\x00R\x0eofflineQueryId\x12\x35\n\x08get_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskR\x07getMaskB\x0c\n\nidentifier"\xd1\x01\n\x1cGetScheduledQueryRunResponse\x12R\n\x13scheduled_query_run\x18\x01 \x01(\x0b\x32".chalk.server.v1.ScheduledQueryRunR\x11scheduledQueryRun\x12K\n\roffline_query\x18\x02 \x01(\x0b\x32!.chalk.server.v1.OfflineQueryMetaH\x00R\x0cofflineQuery\x88\x01\x01\x42\x10\n\x0e_offline_query"\x9d\x01\n\x1cGetScheduledQueryRunsRequest\x12"\n\rcron_query_id\x18\x01 \x01(\x05R\x0b\x63ronQueryId\x12\x1d\n\tcron_name\x18\x04 \x01(\tH\x00R\x08\x63ronName\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor\x12\x14\n\x05limit\x18\x03 \x01(\x05R\x05limitB\x0c\n\nidentifier"o\n\x1dGetScheduledQueryRunsResponse\x12\x36\n\x04runs\x18\x01 \x03(\x0b\x32".chalk.server.v1.ScheduledQueryRunR\x04runs\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor*\x8f\x03\n\x17ScheduledQueryRunStatus\x12*\n&SCHEDULED_QUERY_RUN_STATUS_UNSPECIFIED\x10\x00\x12+\n\'SCHEDULED_QUERY_RUN_STATUS_INITIALIZING\x10\x01\x12*\n&SCHEDULED_QUERY_RUN_STATUS_INIT_FAILED\x10\x02\x12&\n"SCHEDULED_QUERY_RUN_STATUS_SKIPPED\x10\x03\x12%\n!SCHEDULED_QUERY_RUN_STATUS_QUEUED\x10\x04\x12&\n"SCHEDULED_QUERY_RUN_STATUS_WORKING\x10\x05\x12(\n$SCHEDULED_QUERY_RUN_STATUS_COMPLETED\x10\x06\x12%\n!SCHEDULED_QUERY_RUN_STATUS_FAILED\x10\x07\x12\'\n#SCHEDULED_QUERY_RUN_STATUS_CANCELED\x10\x08\x42\x9f\x01\n\x13\x63om.chalk.server.v1B\x16ScheduledQueryRunProtoP\x01Z\x12server/v1;serverv1\xa2\x02\x03\x43SX\xaa\x02\x0f\x43halk.Server.V1\xca\x02\x0f\x43halk\\Server\\V1\xe2\x02\x1b\x43halk\\Server\\V1\\GPBMetadata\xea\x02\x11\x43halk::Server::V1b\x06proto3'
23
23
  )
24
24
 
25
25
  _globals = globals()
@@ -30,16 +30,16 @@ if _descriptor._USE_C_DESCRIPTORS == False:
30
30
  _globals[
31
31
  "DESCRIPTOR"
32
32
  ]._serialized_options = b"\n\023com.chalk.server.v1B\026ScheduledQueryRunProtoP\001Z\022server/v1;serverv1\242\002\003CSX\252\002\017Chalk.Server.V1\312\002\017Chalk\\Server\\V1\342\002\033Chalk\\Server\\V1\\GPBMetadata\352\002\021Chalk::Server::V1"
33
- _globals["_SCHEDULEDQUERYRUNSTATUS"]._serialized_start = 1502
34
- _globals["_SCHEDULEDQUERYRUNSTATUS"]._serialized_end = 1901
33
+ _globals["_SCHEDULEDQUERYRUNSTATUS"]._serialized_start = 1631
34
+ _globals["_SCHEDULEDQUERYRUNSTATUS"]._serialized_end = 2030
35
35
  _globals["_SCHEDULEDQUERYRUN"]._serialized_start = 169
36
- _globals["_SCHEDULEDQUERYRUN"]._serialized_end = 890
37
- _globals["_GETSCHEDULEDQUERYRUNREQUEST"]._serialized_start = 893
38
- _globals["_GETSCHEDULEDQUERYRUNREQUEST"]._serialized_end = 1060
39
- _globals["_GETSCHEDULEDQUERYRUNRESPONSE"]._serialized_start = 1063
40
- _globals["_GETSCHEDULEDQUERYRUNRESPONSE"]._serialized_end = 1272
41
- _globals["_GETSCHEDULEDQUERYRUNSREQUEST"]._serialized_start = 1274
42
- _globals["_GETSCHEDULEDQUERYRUNSREQUEST"]._serialized_end = 1386
43
- _globals["_GETSCHEDULEDQUERYRUNSRESPONSE"]._serialized_start = 1388
44
- _globals["_GETSCHEDULEDQUERYRUNSRESPONSE"]._serialized_end = 1499
36
+ _globals["_SCHEDULEDQUERYRUN"]._serialized_end = 973
37
+ _globals["_GETSCHEDULEDQUERYRUNREQUEST"]._serialized_start = 976
38
+ _globals["_GETSCHEDULEDQUERYRUNREQUEST"]._serialized_end = 1143
39
+ _globals["_GETSCHEDULEDQUERYRUNRESPONSE"]._serialized_start = 1146
40
+ _globals["_GETSCHEDULEDQUERYRUNRESPONSE"]._serialized_end = 1355
41
+ _globals["_GETSCHEDULEDQUERYRUNSREQUEST"]._serialized_start = 1358
42
+ _globals["_GETSCHEDULEDQUERYRUNSREQUEST"]._serialized_end = 1515
43
+ _globals["_GETSCHEDULEDQUERYRUNSRESPONSE"]._serialized_start = 1517
44
+ _globals["_GETSCHEDULEDQUERYRUNSRESPONSE"]._serialized_end = 1628
45
45
  # @@protoc_insertion_point(module_scope)
@@ -53,6 +53,7 @@ class ScheduledQueryRun(_message.Message):
53
53
  "updated_at",
54
54
  "status",
55
55
  "blocker_operation_id",
56
+ "workflow_execution_id",
56
57
  )
57
58
  ID_FIELD_NUMBER: _ClassVar[int]
58
59
  ENVIRONMENT_ID_FIELD_NUMBER: _ClassVar[int]
@@ -68,6 +69,7 @@ class ScheduledQueryRun(_message.Message):
68
69
  UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
69
70
  STATUS_FIELD_NUMBER: _ClassVar[int]
70
71
  BLOCKER_OPERATION_ID_FIELD_NUMBER: _ClassVar[int]
72
+ WORKFLOW_EXECUTION_ID_FIELD_NUMBER: _ClassVar[int]
71
73
  id: int
72
74
  environment_id: str
73
75
  deployment_id: str
@@ -82,6 +84,7 @@ class ScheduledQueryRun(_message.Message):
82
84
  updated_at: _timestamp_pb2.Timestamp
83
85
  status: ScheduledQueryRunStatus
84
86
  blocker_operation_id: str
87
+ workflow_execution_id: str
85
88
  def __init__(
86
89
  self,
87
90
  id: _Optional[int] = ...,
@@ -98,6 +101,7 @@ class ScheduledQueryRun(_message.Message):
98
101
  updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...,
99
102
  status: _Optional[_Union[ScheduledQueryRunStatus, str]] = ...,
100
103
  blocker_operation_id: _Optional[str] = ...,
104
+ workflow_execution_id: _Optional[str] = ...,
101
105
  ) -> None: ...
102
106
 
103
107
  class GetScheduledQueryRunRequest(_message.Message):
@@ -128,15 +132,21 @@ class GetScheduledQueryRunResponse(_message.Message):
128
132
  ) -> None: ...
129
133
 
130
134
  class GetScheduledQueryRunsRequest(_message.Message):
131
- __slots__ = ("cron_query_id", "cursor", "limit")
135
+ __slots__ = ("cron_query_id", "cron_name", "cursor", "limit")
132
136
  CRON_QUERY_ID_FIELD_NUMBER: _ClassVar[int]
137
+ CRON_NAME_FIELD_NUMBER: _ClassVar[int]
133
138
  CURSOR_FIELD_NUMBER: _ClassVar[int]
134
139
  LIMIT_FIELD_NUMBER: _ClassVar[int]
135
140
  cron_query_id: int
141
+ cron_name: str
136
142
  cursor: str
137
143
  limit: int
138
144
  def __init__(
139
- self, cron_query_id: _Optional[int] = ..., cursor: _Optional[str] = ..., limit: _Optional[int] = ...
145
+ self,
146
+ cron_query_id: _Optional[int] = ...,
147
+ cron_name: _Optional[str] = ...,
148
+ cursor: _Optional[str] = ...,
149
+ limit: _Optional[int] = ...,
140
150
  ) -> None: ...
141
151
 
142
152
  class GetScheduledQueryRunsResponse(_message.Message):
chalk/_version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "2.93.7"
1
+ __version__ = "2.93.9"
chalk/client/client.py CHANGED
@@ -19,7 +19,6 @@ from typing import (
19
19
 
20
20
  import requests
21
21
 
22
- from chalk._gen.chalk.server.v1.scheduler_pb2 import ManualTriggerScheduledQueryResponse
23
22
  from chalk.client.models import (
24
23
  BranchDeployResponse,
25
24
  BranchIdParam,
@@ -33,6 +32,7 @@ from chalk.client.models import (
33
32
  GetIncrementalProgressResponse,
34
33
  GetRegisteredModelResponse,
35
34
  GetRegisteredModelVersionResponse,
35
+ ManualTriggerScheduledQueryResponse,
36
36
  OfflineQueryInputUri,
37
37
  OnlineQuery,
38
38
  OnlineQueryContext,
@@ -41,6 +41,7 @@ from chalk.client.models import (
41
41
  RegisterModelVersionResponse,
42
42
  ResolverRunResponse,
43
43
  ResourceRequests,
44
+ ScheduledQueryRun,
44
45
  StreamResolverTestResponse,
45
46
  WhoAmIResponse,
46
47
  )
@@ -1132,6 +1133,36 @@ class ChalkClient:
1132
1133
  """
1133
1134
  ...
1134
1135
 
1136
+ def get_scheduled_query_run_history(
1137
+ self,
1138
+ name: str,
1139
+ limit: int = 10,
1140
+ ) -> List[ScheduledQueryRun]:
1141
+ """
1142
+ Get the run history for a scheduled query.
1143
+
1144
+ Parameters
1145
+ ----------
1146
+ name
1147
+ The name of the scheduled query.
1148
+ limit
1149
+ The maximum number of runs to return. Defaults to 10.
1150
+
1151
+ Returns
1152
+ -------
1153
+ list[ScheduledQueryRun]
1154
+ A response message containing the list of scheduled query runs.
1155
+
1156
+ Examples
1157
+ --------
1158
+ >>> from chalk.client import ChalkClient
1159
+ >>> ChalkClient().get_scheduled_query_run_history(
1160
+ ... name="my_scheduled_query",
1161
+ ... limit=20,
1162
+ ... )
1163
+ """
1164
+ ...
1165
+
1135
1166
  def prompt_evaluation(
1136
1167
  self,
1137
1168
  prompts: list[Prompt | str],
@@ -74,10 +74,9 @@ from chalk._gen.chalk.server.v1.model_registry_pb2 import (
74
74
  )
75
75
  from chalk._gen.chalk.server.v1.model_registry_pb2_grpc import ModelRegistryServiceStub
76
76
  from chalk._gen.chalk.server.v1.offline_queries_pb2_grpc import OfflineQueryMetadataServiceStub
77
- from chalk._gen.chalk.server.v1.scheduler_pb2 import (
78
- ManualTriggerScheduledQueryRequest,
79
- ManualTriggerScheduledQueryResponse,
80
- )
77
+ from chalk._gen.chalk.server.v1.scheduled_query_pb2_grpc import ScheduledQueryServiceStub
78
+ from chalk._gen.chalk.server.v1.scheduled_query_run_pb2 import GetScheduledQueryRunsRequest
79
+ from chalk._gen.chalk.server.v1.scheduler_pb2 import ManualTriggerScheduledQueryRequest
81
80
  from chalk._gen.chalk.server.v1.scheduler_pb2_grpc import SchedulerServiceStub
82
81
  from chalk._gen.chalk.server.v1.script_tasks_pb2 import CreateScriptTaskRequest, CreateScriptTaskResponse
83
82
  from chalk._gen.chalk.server.v1.script_tasks_pb2_grpc import ScriptTaskServiceStub
@@ -97,6 +96,9 @@ from chalk.client.models import (
97
96
  CreateBranchResponse,
98
97
  GetRegisteredModelResponse,
99
98
  GetRegisteredModelVersionResponse,
99
+ )
100
+ from chalk.client.models import ManualTriggerScheduledQueryResponse as ManualTriggerScheduledQueryResponseDataclass
101
+ from chalk.client.models import (
100
102
  ModelUploadUrlResponse,
101
103
  OnlineQuery,
102
104
  OnlineQueryResponse,
@@ -104,6 +106,7 @@ from chalk.client.models import (
104
106
  RegisterModelResponse,
105
107
  RegisterModelVersionResponse,
106
108
  ResourceRequests,
109
+ ScheduledQueryRun,
107
110
  UploadFeaturesResponse,
108
111
  )
109
112
  from chalk.client.serialization.model_serialization import ModelSerializer
@@ -292,6 +295,14 @@ class StubProvider:
292
295
  )
293
296
  return SchedulerServiceStub(self._server_channel)
294
297
 
298
+ @cached_property
299
+ def scheduled_query_run_stub(self) -> ScheduledQueryServiceStub:
300
+ if self._server_channel is None:
301
+ raise ValueError(
302
+ "The GRPC engine service is not available. If you would like to set up a GRPC service, please contact Chalk."
303
+ )
304
+ return ScheduledQueryServiceStub(self._server_channel)
305
+
295
306
  @cached_property
296
307
  def sql_stub(self) -> SqlServiceStub:
297
308
  if self._engine_channel is None:
@@ -539,6 +550,9 @@ class StubRefresher:
539
550
  def call_scheduled_query_stub(self, fn: Callable[[SchedulerServiceStub], T]) -> T:
540
551
  return self._retry_callable(fn, lambda: self._stub.scheduled_query_stub)
541
552
 
553
+ def call_scheduled_query_run_stub(self, fn: Callable[[ScheduledQueryServiceStub], T]) -> T:
554
+ return self._retry_callable(fn, lambda: self._stub.scheduled_query_run_stub)
555
+
542
556
  def call_sql_stub(self, fn: Callable[[SqlServiceStub], T]) -> T:
543
557
  return self._retry_callable(fn, lambda: self._stub.sql_stub)
544
558
 
@@ -1252,7 +1266,7 @@ class ChalkGRPCClient:
1252
1266
  incremental_resolvers: Optional[Sequence[str]],
1253
1267
  max_samples: Optional[int],
1254
1268
  env_overrides: Optional[Mapping[str, str]],
1255
- ) -> ManualTriggerScheduledQueryResponse:
1269
+ ) -> ManualTriggerScheduledQueryResponseDataclass:
1256
1270
  """
1257
1271
  Manually trigger a scheduled query request.
1258
1272
 
@@ -1289,7 +1303,7 @@ class ChalkGRPCClient:
1289
1303
  ... name="my_scheduled_query",
1290
1304
  ... )
1291
1305
  """
1292
- return self._stub_refresher.call_scheduled_query_stub(
1306
+ proto_resp = self._stub_refresher.call_scheduled_query_stub(
1293
1307
  lambda x: x.ManualTriggerScheduledQuery(
1294
1308
  request=ManualTriggerScheduledQueryRequest(
1295
1309
  cron_query_name=name,
@@ -1300,6 +1314,45 @@ class ChalkGRPCClient:
1300
1314
  ),
1301
1315
  )
1302
1316
  )
1317
+ return ManualTriggerScheduledQueryResponseDataclass.from_proto(proto_resp)
1318
+
1319
+ def get_scheduled_query_run_history(
1320
+ self,
1321
+ name: str,
1322
+ limit: int = 10,
1323
+ ) -> List[ScheduledQueryRun]:
1324
+ """
1325
+ Get the run history for a scheduled query.
1326
+
1327
+ Parameters
1328
+ ----------
1329
+ name
1330
+ The name of the scheduled query.
1331
+ limit
1332
+ The maximum number of runs to return. Defaults to 10.
1333
+
1334
+ Returns
1335
+ -------
1336
+ list[ScheduledQueryRun]
1337
+ A response message containing the list of scheduled query runs.
1338
+
1339
+ Examples
1340
+ --------
1341
+ >>> from chalk.client.client_grpc import ChalkGRPCClient
1342
+ >>> ChalkGRPCClient().get_scheduled_query_run_history(
1343
+ ... name="my_scheduled_query",
1344
+ ... limit=20,
1345
+ ... )
1346
+ """
1347
+ proto_resp = self._stub_refresher.call_scheduled_query_run_stub(
1348
+ lambda x: x.GetScheduledQueryRuns(
1349
+ GetScheduledQueryRunsRequest(
1350
+ cron_name=name,
1351
+ limit=limit,
1352
+ )
1353
+ )
1354
+ )
1355
+ return [ScheduledQueryRun.from_proto(run) for run in proto_resp.runs]
1303
1356
 
1304
1357
  def get_graph(self, deployment: DeploymentId | None = None) -> Graph:
1305
1358
  """Get the graph for a given deployment.
@@ -51,7 +51,6 @@ from typing_extensions import NoReturn, override
51
51
  from urllib3 import Retry
52
52
 
53
53
  import chalk._repr.utils as repr_utils
54
- from chalk._gen.chalk.server.v1.scheduler_pb2 import ManualTriggerScheduledQueryResponse
55
54
  from chalk._reporting.models import BatchReport, BatchReportResponse
56
55
  from chalk._reporting.progress import ProgressService
57
56
  from chalk._upload_features.utils import to_multi_upload_inputs
@@ -100,6 +99,7 @@ from chalk.client.models import (
100
99
  GetRegisteredModelResponse,
101
100
  GetRegisteredModelVersionResponse,
102
101
  IngestDatasetRequest,
102
+ ManualTriggerScheduledQueryResponse,
103
103
  MultiUploadFeaturesRequest,
104
104
  MultiUploadFeaturesResponse,
105
105
  OfflineQueryContext,
@@ -126,6 +126,7 @@ from chalk.client.models import (
126
126
  ResolverReplayResponse,
127
127
  ResolverRunResponse,
128
128
  ResourceRequests,
129
+ ScheduledQueryRun,
129
130
  SetDatasetRevisionMetadataRequest,
130
131
  SetDatasetRevisionMetadataResponse,
131
132
  SetIncrementalProgressRequest,
@@ -2473,6 +2474,48 @@ https://docs.chalk.ai/cli/apply
2473
2474
 
2474
2475
  return resp
2475
2476
 
2477
+ def get_scheduled_query_run_history(
2478
+ self,
2479
+ name: str,
2480
+ limit: int = 10,
2481
+ ) -> List[ScheduledQueryRun]:
2482
+ """
2483
+ Get the run history for a scheduled query.
2484
+
2485
+ Parameters
2486
+ ----------
2487
+ name
2488
+ The name of the scheduled query.
2489
+ limit
2490
+ The maximum number of runs to return. Defaults to 10.
2491
+
2492
+ Returns
2493
+ -------
2494
+ list[ScheduledQueryRun]
2495
+ A response message containing the list of scheduled query runs.
2496
+
2497
+ Examples
2498
+ --------
2499
+ >>> from chalk.client import ChalkClient
2500
+ >>> ChalkClient().get_scheduled_query_run_history(
2501
+ ... name="my_scheduled_query",
2502
+ ... limit=20,
2503
+ ... )
2504
+ """
2505
+ from chalk.client.client_grpc import ChalkGRPCClient
2506
+
2507
+ client_grpc = ChalkGRPCClient(
2508
+ client_id=self._client_id,
2509
+ client_secret=self._client_secret,
2510
+ environment=self._primary_environment,
2511
+ api_server=self._api_server,
2512
+ )
2513
+
2514
+ return client_grpc.get_scheduled_query_run_history(
2515
+ name=name,
2516
+ limit=limit,
2517
+ )
2518
+
2476
2519
  def prompt_evaluation(
2477
2520
  self,
2478
2521
  prompts: list[Prompt | str],
chalk/client/models.py CHANGED
@@ -1793,3 +1793,90 @@ class GetRegisteredModelVersionResponse(BaseModel):
1793
1793
 
1794
1794
  class CreateModelTrainingJobResponse(BaseModel):
1795
1795
  success: bool
1796
+
1797
+
1798
+ class ScheduledQueryRunStatus(str, Enum):
1799
+ """Status of a scheduled query run."""
1800
+
1801
+ UNSPECIFIED = "UNSPECIFIED"
1802
+ INITIALIZING = "INITIALIZING"
1803
+ INIT_FAILED = "INIT_FAILED"
1804
+ SKIPPED = "SKIPPED"
1805
+ QUEUED = "QUEUED"
1806
+ WORKING = "WORKING"
1807
+ COMPLETED = "COMPLETED"
1808
+ FAILED = "FAILED"
1809
+ CANCELED = "CANCELED"
1810
+
1811
+
1812
+ @dataclasses.dataclass
1813
+ class ScheduledQueryRun:
1814
+ """A single scheduled query run."""
1815
+
1816
+ id: int
1817
+ environment_id: str
1818
+ deployment_id: str
1819
+ run_id: str
1820
+ cron_query_id: int
1821
+ cron_query_schedule_id: int
1822
+ cron_name: str
1823
+ gcr_execution_id: str
1824
+ gcr_job_name: str
1825
+ offline_query_id: str
1826
+ created_at: datetime
1827
+ updated_at: datetime
1828
+ status: ScheduledQueryRunStatus
1829
+ blocker_operation_id: str
1830
+
1831
+ @staticmethod
1832
+ def from_proto(proto_run: Any) -> "ScheduledQueryRun":
1833
+ """Convert a proto ScheduledQueryRun to the dataclass version."""
1834
+ from datetime import timezone
1835
+
1836
+ # Map proto status enum to our enum
1837
+ status_map = {
1838
+ 0: ScheduledQueryRunStatus.UNSPECIFIED,
1839
+ 1: ScheduledQueryRunStatus.INITIALIZING,
1840
+ 2: ScheduledQueryRunStatus.INIT_FAILED,
1841
+ 3: ScheduledQueryRunStatus.SKIPPED,
1842
+ 4: ScheduledQueryRunStatus.QUEUED,
1843
+ 5: ScheduledQueryRunStatus.WORKING,
1844
+ 6: ScheduledQueryRunStatus.COMPLETED,
1845
+ 7: ScheduledQueryRunStatus.FAILED,
1846
+ 8: ScheduledQueryRunStatus.CANCELED,
1847
+ }
1848
+
1849
+ # Helper to convert proto Timestamp to datetime
1850
+ def _timestamp_to_datetime(ts: Any) -> datetime:
1851
+ return datetime.fromtimestamp(ts.seconds + ts.nanos / 1e9, tz=timezone.utc)
1852
+
1853
+ return ScheduledQueryRun(
1854
+ id=proto_run.id,
1855
+ environment_id=proto_run.environment_id,
1856
+ deployment_id=proto_run.deployment_id,
1857
+ run_id=proto_run.run_id,
1858
+ cron_query_id=proto_run.cron_query_id,
1859
+ cron_query_schedule_id=proto_run.cron_query_schedule_id,
1860
+ cron_name=proto_run.cron_name,
1861
+ gcr_execution_id=proto_run.gcr_execution_id,
1862
+ gcr_job_name=proto_run.gcr_job_name,
1863
+ offline_query_id=proto_run.offline_query_id,
1864
+ created_at=_timestamp_to_datetime(proto_run.created_at),
1865
+ updated_at=_timestamp_to_datetime(proto_run.updated_at),
1866
+ status=status_map.get(proto_run.status, ScheduledQueryRunStatus.UNSPECIFIED),
1867
+ blocker_operation_id=proto_run.blocker_operation_id,
1868
+ )
1869
+
1870
+
1871
+ @dataclasses.dataclass
1872
+ class ManualTriggerScheduledQueryResponse:
1873
+ """Response from manually triggering a scheduled query."""
1874
+
1875
+ scheduled_query_run: ScheduledQueryRun
1876
+
1877
+ @staticmethod
1878
+ def from_proto(proto_response: Any) -> "ManualTriggerScheduledQueryResponse":
1879
+ """Convert a proto ManualTriggerScheduledQueryResponse to the dataclass version."""
1880
+ return ManualTriggerScheduledQueryResponse(
1881
+ scheduled_query_run=ScheduledQueryRun.from_proto(proto_response.scheduled_query_run),
1882
+ )
@@ -16,6 +16,7 @@ from typing import TYPE_CHECKING, Any, Optional, TypeAlias
16
16
  import pyarrow
17
17
 
18
18
  import chalk._gen.chalk.dataframe.v1.dataframe_pb2 as dataframe_pb2
19
+ import chalk._gen.chalk.expression.v1.expression_pb2 as expression_pb2
19
20
  from chalk.features._encoding.converter import PrimitiveFeatureConverter
20
21
  from chalk.features.underscore import (
21
22
  Underscore,
@@ -1049,6 +1050,19 @@ def _convert_to_dataframe_proto(
1049
1050
  arrow_table=PrimitiveFeatureConverter.convert_arrow_table_to_proto(value),
1050
1051
  )
1051
1052
 
1053
+ # If libchalk.chalktable is available in the current environment, then we might encounter
1054
+ # a libchalk.chalktable.Expr value which needs to be proto-serialized.
1055
+ LibchalkExpr = None
1056
+ try:
1057
+ from libchalk.chalktable import Expr as LibchalkExpr # pyright: ignore
1058
+ except ImportError:
1059
+ pass
1060
+ if LibchalkExpr and isinstance(value, LibchalkExpr):
1061
+ value_expr_encoded = value.to_proto_bytes()
1062
+ return dataframe_pb2.DataFrameOperand(
1063
+ libchalk_expr=expression_pb2.LogicalExprNode.FromString(value_expr_encoded),
1064
+ )
1065
+
1052
1066
  raise ValueError(f"LazyFramePlaceholder function operand is of unsupported type {type(value)}")
1053
1067
 
1054
1068
  _convert_arg(lazy_frame)
@@ -1115,6 +1129,15 @@ def _convert_from_dataframe_proto(
1115
1129
  return PrimitiveFeatureConverter.convert_arrow_table_from_proto(value.arrow_table)
1116
1130
  if value.HasField("underscore_expr"):
1117
1131
  return Underscore._from_proto(value.underscore_expr) # pyright: ignore[reportPrivateUsage]
1132
+ if value.HasField("libchalk_expr"):
1133
+ # In order to decode `libchalk_expr` vlaues, `libchalk` must be available as a module.
1134
+ try:
1135
+ from libchalk.chalktable import Expr as LibchalkExpr # pyright: ignore
1136
+ except ImportError:
1137
+ raise ValueError(
1138
+ "A dataframe parameter was encoded holding a libchalk.chalktable.Expr value, but the `libchalk` module is not available in the current environment. To decode this dataframe expression, import libchalk."
1139
+ )
1140
+ return LibchalkExpr.from_proto_bytes(value.libchalk_expr.SerializeToString())
1118
1141
 
1119
1142
  raise ValueError(f"DataFrame operand expression {value} does not have any value set")
1120
1143
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chalkpy
3
- Version: 2.93.7
3
+ Version: 2.93.9
4
4
  Summary: Python SDK for Chalk
5
5
  Author: Chalk AI, Inc.
6
6
  Project-URL: Homepage, https://chalk.ai
@@ -1,5 +1,5 @@
1
1
  chalk/__init__.py,sha256=9YxwkAt3Im0OCMfpmnIB_4PKjZfBCcRmwATLXdHNRm4,2609
2
- chalk/_version.py,sha256=dhRKIv2zUq6x8xflLPE2dsInFRTqWqvB0s27C4StTFo,23
2
+ chalk/_version.py,sha256=-Jg09nMIyHtBExF977CnRQ9XDbLyN5M_V0P6uwzeUEw,23
3
3
  chalk/cli.py,sha256=ckqqfOI-A2mT23-rnZzDMmblYj-2x1VBX8ebHlIEn9A,5873
4
4
  chalk/importer.py,sha256=hCEo7eqSfXZWklkFB2geeipGhiD0qNjPBpQJvOBW6N0,63083
5
5
  chalk/prompts.py,sha256=2H9UomLAamdfRTNUdKs9i3VTpiossuyRhntqsAXUhhg,16117
@@ -154,8 +154,8 @@ chalk/_gen/chalk/common/v2/table_pb2_grpc.py,sha256=VCyAf0skoHSgQPkD4n8rKQPYesin
154
154
  chalk/_gen/chalk/common/v2/table_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
155
155
  chalk/_gen/chalk/dataframe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
156
  chalk/_gen/chalk/dataframe/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
- chalk/_gen/chalk/dataframe/v1/dataframe_pb2.py,sha256=d8F_kC3GuWfcDVE16hvgOP305WNnSuISW14zsf090Z8,4626
158
- chalk/_gen/chalk/dataframe/v1/dataframe_pb2.pyi,sha256=C8dGdriuweYuA7A4hx4qzWMfuTXyzo3prM6PBs64xR0,4605
157
+ chalk/_gen/chalk/dataframe/v1/dataframe_pb2.py,sha256=_CfvLT4FIKPK4RGhT5TOQsEm3be7cLBm_z1YkeBpG7E,4729
158
+ chalk/_gen/chalk/dataframe/v1/dataframe_pb2.pyi,sha256=_0wCIVdyEVtEbw9jBFmSDioJCHfv6pPugQAj3S5vhFY,4819
159
159
  chalk/_gen/chalk/dataframe/v1/dataframe_pb2_grpc.py,sha256=VCyAf0skoHSgQPkD4n8rKQPYesinqHqN8TEwyu7XGUo,159
160
160
  chalk/_gen/chalk/dataframe/v1/dataframe_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
161
161
  chalk/_gen/chalk/engine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -412,6 +412,10 @@ chalk/_gen/chalk/server/v1/incident_pb2.py,sha256=4-uejdKheTLIk90OqClCAxb6esH8hM
412
412
  chalk/_gen/chalk/server/v1/incident_pb2.pyi,sha256=eP3FEl3eHkIRXfXLr_2cn-_GlHHirKQZv87DBg2jLaU,6861
413
413
  chalk/_gen/chalk/server/v1/incident_pb2_grpc.py,sha256=VCyAf0skoHSgQPkD4n8rKQPYesinqHqN8TEwyu7XGUo,159
414
414
  chalk/_gen/chalk/server/v1/incident_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
415
+ chalk/_gen/chalk/server/v1/indexing_job_pb2.py,sha256=n4Ton8_7Ut_XI9jFHqPWw-9knZnC3ft_hBQ8fh8M7Hc,3338
416
+ chalk/_gen/chalk/server/v1/indexing_job_pb2.pyi,sha256=Pd9_NlR8zWPydV3w774swd3EB1OSKrq0fs7k8V2jNfs,1776
417
+ chalk/_gen/chalk/server/v1/indexing_job_pb2_grpc.py,sha256=JJrXQ7mZHAzCv2EuJTuZCz0cybxqZWzGrrTXRRUrK6s,2989
418
+ chalk/_gen/chalk/server/v1/indexing_job_pb2_grpc.pyi,sha256=mJ-rMUy8LlS33MB83EgWMRe89HjeVVrCZ-TC9wm4oH8,1122
415
419
  chalk/_gen/chalk/server/v1/integrations_pb2.py,sha256=BSgvuWniq6oyJhoBz1Ptcov3Q9G1u8NdpQp_ogRWbDE,14216
416
420
  chalk/_gen/chalk/server/v1/integrations_pb2.pyi,sha256=_EJVXKyY75KI9xu32ZmHkew2APzNf8IWHrc2cAayfSM,11977
417
421
  chalk/_gen/chalk/server/v1/integrations_pb2_grpc.py,sha256=bWarXrUn1O7t6RhGCCKo0X0IIXaA9SKln7AQDVEY8vM,16185
@@ -480,8 +484,8 @@ chalk/_gen/chalk/server/v1/scheduled_query_pb2.py,sha256=aU7YjTJ2H9dp_ZRNmh_91NC
480
484
  chalk/_gen/chalk/server/v1/scheduled_query_pb2.pyi,sha256=4o__cQ3plq1LucDRH03pMf9LBSjk1eE7XY51gyv435c,299
481
485
  chalk/_gen/chalk/server/v1/scheduled_query_pb2_grpc.py,sha256=Pb0WD51FjkvUmPcYINjkSgYX7Z2HCmakFb5wp_Ulqxw,5037
482
486
  chalk/_gen/chalk/server/v1/scheduled_query_pb2_grpc.pyi,sha256=w98vRRLSiFl6Z_8c06DDAVH2593_dAgbhdlI-vY0tJw,1337
483
- chalk/_gen/chalk/server/v1/scheduled_query_run_pb2.py,sha256=ykS7SrO0bu74O55qu6EFrnC118gV-iekJVHnNLck8I0,5330
484
- chalk/_gen/chalk/server/v1/scheduled_query_run_pb2.pyi,sha256=M9JNVrg74MI-ay5bOzJU-BdC8h-jUkrAmlssiCFTln4,6113
487
+ chalk/_gen/chalk/server/v1/scheduled_query_run_pb2.py,sha256=ga7XCuptDqkJFNmMkwq7UBnGoLlhgqQKWbgqEbUhn20,5539
488
+ chalk/_gen/chalk/server/v1/scheduled_query_run_pb2.pyi,sha256=P7BSBTV5xIHPcz3sPVtHWBQxZUzQUAzxwvSE9dSxC1I,6426
485
489
  chalk/_gen/chalk/server/v1/scheduled_query_run_pb2_grpc.py,sha256=VCyAf0skoHSgQPkD4n8rKQPYesinqHqN8TEwyu7XGUo,159
486
490
  chalk/_gen/chalk/server/v1/scheduled_query_run_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
487
491
  chalk/_gen/chalk/server/v1/scheduler_pb2.py,sha256=51WGM0OLvEzZBvgy7gubBGkUH3NSDwEHRZ1P1enkz0c,8061
@@ -580,14 +584,14 @@ chalk/_validation/validation.py,sha256=9cCMfZa9-1wxkXLme_ylmD5vIA1qExJD6aqbYvbmK
580
584
  chalk/byte_transmit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
581
585
  chalk/byte_transmit/model.py,sha256=LFX8pj9X_CWXeap7fDnMl9YmXsYTgq7jBAbEWkxoYoE,13048
582
586
  chalk/client/__init__.py,sha256=wu3WQVzE5gRj6noQQDOdYJUgDaz_9QtbjXH4KuoIlXQ,1782
583
- chalk/client/client.py,sha256=aIOIB7OTLZ6jWfesAVRqeT6mFqtsjeAk0e8UE29bzRI,102940
587
+ chalk/client/client.py,sha256=gdGHrC73xyC4boE8z54BDD3-7FMJ4WCv6o2I_ii8obI,103680
584
588
  chalk/client/client_async.py,sha256=nFFTWJbdBlb7zksyjOMBY566tZTAyNXQhCnq06LHWl0,50803
585
589
  chalk/client/client_async_impl.py,sha256=ZphhgTB49JBWHCGXe-dI0wWWKc9zPcOczy02q_gFy50,6925
586
- chalk/client/client_grpc.py,sha256=86W32GXemHb0xt78sUKhgorY2Me3ud53YNzEr09NcDg,93683
587
- chalk/client/client_impl.py,sha256=smNVo-vItnjbuN-8beFNb986uOVDaPTCkd6JTfT76WY,210503
590
+ chalk/client/client_grpc.py,sha256=7DzSUdYf7P2Y2lAo6AdLALEwwQ5YUNSeJU2rfk3KOec,95763
591
+ chalk/client/client_impl.py,sha256=R2ZUiEQf662q3O1eo_NjzYqLGB71B5mWzcx8opC3Os0,211639
588
592
  chalk/client/dataset.py,sha256=LneWwaAOHCjtj7gaJjsSeVNruj-QJ51hjRi62zrFNVE,77561
589
593
  chalk/client/exc.py,sha256=kZJ80YbSeSRDmTLTh240j_eRdJFZBa7IaDsNSRoDroU,4145
590
- chalk/client/models.py,sha256=CqJ8vdMAPrjOo--GWQVr2WF3zfP5bfhULho0_YL0p6o,60883
594
+ chalk/client/models.py,sha256=FDgEqIeBJq25T9AH38jdWkeyRLiAXfLXfXHpomFJM08,63923
591
595
  chalk/client/response.py,sha256=m8sQCOj7YVv3mZSZMIC1rIMzFMQ9rfMdBRLg5NRmOOE,53257
592
596
  chalk/client/_internal_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
593
597
  chalk/client/_internal_models/check.py,sha256=3Xfo4Ws4rvwjeVg0-5-kejfRfRBJeqHmnRhW-WEz784,917
@@ -604,7 +608,7 @@ chalk/config/_validator.py,sha256=QC1y52m704_bV_TYjq0sdZJ-km8iSkDX1V4sHgw4RJk,13
604
608
  chalk/config/auth_config.py,sha256=HAALkQrvDD0i7gaZK5iufS8vDDVbzLIpHLOpcJO1kmw,4498
605
609
  chalk/config/project_config.py,sha256=YHB3upvtBJu-tWfNOchBRSc9xGebDbrIpCVmKbBzJ8Q,7217
606
610
  chalk/df/ChalkDataFrameImpl.py,sha256=BRwnjQcie3gxaKhKau8HG17NWzS1zdr8SnNVurxF8QY,133
607
- chalk/df/LazyFramePlaceholder.py,sha256=4veohGgt6WvKdbE4Qn3qVobfsJsB1yDuWnIhCfq4How,37728
611
+ chalk/df/LazyFramePlaceholder.py,sha256=-qPtf-xqhIhrF6Mbx-WcXxPqGchWgmf0FbSQ5VpJCkg,39067
608
612
  chalk/df/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
609
613
  chalk/df/ast_parser.py,sha256=t-DwUxd2hN8LECRSBx85DIv9FtILgMiHyGyCTINfgQw,11199
610
614
  chalk/features/__init__.py,sha256=5doD7bFwRthzwdmizbRaPVHiCABiNpiOiAJVFlwqNnA,6943
@@ -795,8 +799,8 @@ chalk/utils/tracing.py,sha256=Glx8YrtjWy0zE5YbpgfgcsLDshAKnnYm9poiWNeCxXs,11075
795
799
  chalk/utils/weak_set_by_identity.py,sha256=VmikA_laYwFeOphCwXJIuyOIkrdlQe0bSzaXq7onoQw,953
796
800
  chalk/utils/pydanticutil/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
797
801
  chalk/utils/pydanticutil/pydantic_compat.py,sha256=O575lLYJ5GvZC4HMzR9yATxf9XwjC6NrDUXbNwZidlE,3031
798
- chalkpy-2.93.7.dist-info/METADATA,sha256=Uh4WHtrop4ydmzZR9uN5Cr4uQMad-JTFwSQ1IOy9BJs,27494
799
- chalkpy-2.93.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
800
- chalkpy-2.93.7.dist-info/entry_points.txt,sha256=Vg23sd8icwq-morJrljVFr-kQnMbm95rZfZj5wsZGis,42
801
- chalkpy-2.93.7.dist-info/top_level.txt,sha256=1Q6_19IGYfNxSw50W8tYKEJ2t5HKQ3W9Wiw4ia5yg2c,6
802
- chalkpy-2.93.7.dist-info/RECORD,,
802
+ chalkpy-2.93.9.dist-info/METADATA,sha256=Bldsmcc9CWN5Zho29uYPwc2AUYUFMbZGqXXM4cVJzSk,27494
803
+ chalkpy-2.93.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
804
+ chalkpy-2.93.9.dist-info/entry_points.txt,sha256=Vg23sd8icwq-morJrljVFr-kQnMbm95rZfZj5wsZGis,42
805
+ chalkpy-2.93.9.dist-info/top_level.txt,sha256=1Q6_19IGYfNxSw50W8tYKEJ2t5HKQ3W9Wiw4ia5yg2c,6
806
+ chalkpy-2.93.9.dist-info/RECORD,,