chalkpy 2.96.6__py3-none-any.whl → 2.96.7__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.
chalk/_version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "2.96.6"
1
+ __version__ = "2.96.7"
chalk/client/client.py CHANGED
@@ -526,6 +526,7 @@ class ChalkClient:
526
526
  explain: bool = False,
527
527
  num_input_rows: Optional[int] = None,
528
528
  headers: Mapping[str, str] | None = None,
529
+ planner_options: Mapping[str, str | int | bool] | None = None,
529
530
  ) -> PlanQueryResponse:
530
531
  """Plan a query without executing it.
531
532
 
@@ -575,6 +576,10 @@ class ChalkClient:
575
576
  The number of input rows that this plan will be run with. If unknown, specify `None`.
576
577
  headers
577
578
  Additional headers to provide with the request
579
+ planner_options
580
+ Dictionary of additional options to pass to the Chalk query engine.
581
+ Values may be provided as part of conversations with Chalk support
582
+ to enable or disable specific functionality.
578
583
 
579
584
  Returns
580
585
  -------
@@ -486,6 +486,7 @@ class AsyncChalkClient:
486
486
  explain: bool = False,
487
487
  num_input_rows: Optional[int] = None,
488
488
  headers: Mapping[str, str] | None = None,
489
+ planner_options: Mapping[str, str | int | bool] | None = None,
489
490
  ) -> PlanQueryResponse:
490
491
  """Plan a query without executing it.
491
492
 
@@ -535,6 +536,10 @@ class AsyncChalkClient:
535
536
  The number of input rows that this plan will be run with. If unknown, specify `None`.
536
537
  headers
537
538
  Additional headers to provide with the request
539
+ planner_options
540
+ Dictionary of additional options to pass to the Chalk query engine.
541
+ Values may be provided as part of conversations with Chalk support
542
+ to enable or disable specific functionality.
538
543
 
539
544
  Returns
540
545
  -------
@@ -4438,6 +4438,7 @@ https://docs.chalk.ai/cli/apply
4438
4438
  explain: bool = False,
4439
4439
  num_input_rows: Optional[int] = None,
4440
4440
  headers: Mapping[str, str] | None = None,
4441
+ planner_options: Mapping[str, str | int | bool] | None = None,
4441
4442
  ) -> PlanQueryResponse:
4442
4443
  encoded_inputs = encode_outputs(input).string_outputs
4443
4444
  outputs = encode_outputs(output).string_outputs
@@ -4472,6 +4473,7 @@ https://docs.chalk.ai/cli/apply
4472
4473
  store_plan_stages=store_plan_stages,
4473
4474
  explain=explain,
4474
4475
  num_input_rows=num_input_rows,
4476
+ planner_options=planner_options,
4475
4477
  )
4476
4478
 
4477
4479
  extra_headers: dict[str, str] = {}
chalk/client/models.py CHANGED
@@ -915,7 +915,7 @@ class CreateOfflineQueryJobRequest(BaseModel):
915
915
  @root_validator
916
916
  def _validate_multiple_computers(cls, values: Dict[str, Any]):
917
917
  if values["input"] is None or isinstance(
918
- values["input"], (UploadedParquetShardedOfflineQueryInput, OfflineQueryInputUri)
918
+ values["input"], (UploadedParquetShardedOfflineQueryInput, OfflineQueryInputUri, OfflineQueryInputSql)
919
919
  ):
920
920
  return values
921
921
  expected_use_multiple_computers = isinstance(values["input"], tuple)
@@ -1653,6 +1653,7 @@ class PlanQueryRequest(BaseModel):
1653
1653
  explain: bool = False
1654
1654
  store_plan_stages: bool = False
1655
1655
  encoding_options: FeatureEncodingOptions = FeatureEncodingOptions()
1656
+ planner_options: Mapping[str, str | int | bool | float] | None = None
1656
1657
 
1657
1658
 
1658
1659
  class FeatureSchema(BaseModel):
@@ -101,6 +101,11 @@ class LazyFramePlaceholder:
101
101
 
102
102
  __str__ = __repr__
103
103
 
104
+ def _is_equal(self, other: LazyFramePlaceholder) -> bool:
105
+ # proto equality is janky but it's hard to write a good eq method here given
106
+ # we have dicts and the proto round trip is slightly lossy on tuples vs lists
107
+ return self._to_proto() == other._to_proto()
108
+
104
109
  def _to_proto(self) -> dataframe_pb2.DataFramePlan:
105
110
  """
106
111
  Convert this proto plan to a dataframe.
@@ -940,10 +940,9 @@ class PrimitiveFeatureConverter(Generic[_TPrim]):
940
940
 
941
941
  @staticmethod
942
942
  def convert_arrow_table_from_proto(proto: pb.TableParquetBytes) -> pa.Table:
943
- import pyarrow.parquet
943
+ import pyarrow.parquet as pq
944
944
 
945
- pf = pyarrow.parquet.ParquetFile(io.BytesIO(proto.encoded_parquet_bytes))
946
- return pyarrow.parquet.read_table(pf)
945
+ return pq.read_table(io.BytesIO(proto.encoded_parquet_bytes))
947
946
 
948
947
  @staticmethod
949
948
  def _serialize_pa_decimal_to_pb(value: Union[pa.Decimal128Scalar, pa.Decimal256Scalar]) -> pb.ScalarValue:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chalkpy
3
- Version: 2.96.6
3
+ Version: 2.96.7
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=vKsx9-cl5kImlVWGHVRYO6bweBm79NAzGs3l36u71wM,2657
2
- chalk/_version.py,sha256=Y-Kl04ucuWNOt_WOW6dvhcamZanMwDrSw7NrZ8zKeSs,23
2
+ chalk/_version.py,sha256=3_AK7WV-Cb97v3VLeqbWqWc5ckXI1N8Wm6F3FsWkhQI,23
3
3
  chalk/cli.py,sha256=ckqqfOI-A2mT23-rnZzDMmblYj-2x1VBX8ebHlIEn9A,5873
4
4
  chalk/importer.py,sha256=m4lMn1lSYj_euDq8CS7LYTBnek9JOcjGJf9-82dJHbA,64441
5
5
  chalk/prompts.py,sha256=2H9UomLAamdfRTNUdKs9i3VTpiossuyRhntqsAXUhhg,16117
@@ -612,14 +612,14 @@ chalk/_validation/validation.py,sha256=9cCMfZa9-1wxkXLme_ylmD5vIA1qExJD6aqbYvbmK
612
612
  chalk/byte_transmit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
613
613
  chalk/byte_transmit/model.py,sha256=LFX8pj9X_CWXeap7fDnMl9YmXsYTgq7jBAbEWkxoYoE,13048
614
614
  chalk/client/__init__.py,sha256=wu3WQVzE5gRj6noQQDOdYJUgDaz_9QtbjXH4KuoIlXQ,1782
615
- chalk/client/client.py,sha256=fqw75x4yiAk3CXryGbuF_qg09WDIlluhYeFdQ-BfTG8,103337
616
- chalk/client/client_async.py,sha256=nFFTWJbdBlb7zksyjOMBY566tZTAyNXQhCnq06LHWl0,50803
615
+ chalk/client/client.py,sha256=uu0S3bG0_6HG9S2seIH1oaww6Jz684fG9fIm3x2MwvI,103648
616
+ chalk/client/client_async.py,sha256=I-1igsjYgK6qFh-KN524QBSvtxc8Yntltgt5fRHpQvA,51114
617
617
  chalk/client/client_async_impl.py,sha256=ZphhgTB49JBWHCGXe-dI0wWWKc9zPcOczy02q_gFy50,6925
618
618
  chalk/client/client_grpc.py,sha256=skpSHYCyE8hg0T3Bcl5R8MMi92QjrFtxQRu_NxCSVlw,106952
619
- chalk/client/client_impl.py,sha256=rvT02yriRo7_WFqbUsHXRjm6DbRyXzw2QjcLwKaW10E,211844
619
+ chalk/client/client_impl.py,sha256=rHkVYn0jawWwlFYPLseGuSm8sHwuLlMGY9uf1KSa8wY,211960
620
620
  chalk/client/dataset.py,sha256=LneWwaAOHCjtj7gaJjsSeVNruj-QJ51hjRi62zrFNVE,77561
621
621
  chalk/client/exc.py,sha256=kZJ80YbSeSRDmTLTh240j_eRdJFZBa7IaDsNSRoDroU,4145
622
- chalk/client/models.py,sha256=FDgEqIeBJq25T9AH38jdWkeyRLiAXfLXfXHpomFJM08,63923
622
+ chalk/client/models.py,sha256=X3sq-kv4F601ABUcwE3Y7X-yF4sTHwbCk1HfX7xnhO0,64019
623
623
  chalk/client/response.py,sha256=m8sQCOj7YVv3mZSZMIC1rIMzFMQ9rfMdBRLg5NRmOOE,53257
624
624
  chalk/client/_internal_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
625
625
  chalk/client/_internal_models/check.py,sha256=3Xfo4Ws4rvwjeVg0-5-kejfRfRBJeqHmnRhW-WEz784,917
@@ -636,7 +636,7 @@ chalk/config/_validator.py,sha256=QC1y52m704_bV_TYjq0sdZJ-km8iSkDX1V4sHgw4RJk,13
636
636
  chalk/config/auth_config.py,sha256=HAALkQrvDD0i7gaZK5iufS8vDDVbzLIpHLOpcJO1kmw,4498
637
637
  chalk/config/project_config.py,sha256=YHB3upvtBJu-tWfNOchBRSc9xGebDbrIpCVmKbBzJ8Q,7217
638
638
  chalk/df/ChalkDataFrameImpl.py,sha256=BRwnjQcie3gxaKhKau8HG17NWzS1zdr8SnNVurxF8QY,133
639
- chalk/df/LazyFramePlaceholder.py,sha256=uTinB2buEFBT8djBCqiPN2hKmr_nU7n4i_DcCLNLuWs,39111
639
+ chalk/df/LazyFramePlaceholder.py,sha256=D4oYEGPfoxpJMmyiDJq3G9Wfl1jF3XSXD71q-GxOrmQ,39398
640
640
  chalk/df/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
641
641
  chalk/df/ast_parser.py,sha256=t-DwUxd2hN8LECRSBx85DIv9FtILgMiHyGyCTINfgQw,11199
642
642
  chalk/features/__init__.py,sha256=5doD7bFwRthzwdmizbRaPVHiCABiNpiOiAJVFlwqNnA,6943
@@ -673,7 +673,7 @@ chalk/features/_embedding/sentence_transformer.py,sha256=hNYuT9D-16C49lkhIVK_KXZ
673
673
  chalk/features/_embedding/utils.py,sha256=gUYUJCt-9XLeioC3QYg42yc5f69ywAr_w_Q-xoF3o54,877
674
674
  chalk/features/_embedding/vertexai.py,sha256=PUaMmd7qbK9vXrlce_8BQHg_OM9L982k6LuyM_PU-5w,5362
675
675
  chalk/features/_encoding/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
676
- chalk/features/_encoding/converter.py,sha256=YMIFZLAiN7z8JhDj4hsrH4qQTZ0pFBIwaJN6ULVsjd8,66221
676
+ chalk/features/_encoding/converter.py,sha256=YLNX4hxoT5GlP_n_cL5anQlIzfMW0TfBuuK1TBccaiI,66169
677
677
  chalk/features/_encoding/http.py,sha256=MVmkgv90O4sOnImc-FrRPVwYR2U7zOGduNkHO4umoe4,2227
678
678
  chalk/features/_encoding/inputs.py,sha256=4K4kOCAl0MuobAC_lVJE70toQVrPt2ZlzrlwYALuLHE,10151
679
679
  chalk/features/_encoding/json.py,sha256=lHSBWIjNKMDmt_AmiFtf4ZsW5QPIEC6r7NvDW0IdqPI,13804
@@ -827,8 +827,8 @@ chalk/utils/tracing.py,sha256=NiiM-9dbuJhSCv6R1npR1uYNKWlkqTR6Ygm0Voi2NrY,13078
827
827
  chalk/utils/weak_set_by_identity.py,sha256=VmikA_laYwFeOphCwXJIuyOIkrdlQe0bSzaXq7onoQw,953
828
828
  chalk/utils/pydanticutil/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
829
829
  chalk/utils/pydanticutil/pydantic_compat.py,sha256=O575lLYJ5GvZC4HMzR9yATxf9XwjC6NrDUXbNwZidlE,3031
830
- chalkpy-2.96.6.dist-info/METADATA,sha256=5dqjMynKBZ6H6Y6tbYNazvRRwyCLZblyJFsi6E_PA1E,27754
831
- chalkpy-2.96.6.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
832
- chalkpy-2.96.6.dist-info/entry_points.txt,sha256=Vg23sd8icwq-morJrljVFr-kQnMbm95rZfZj5wsZGis,42
833
- chalkpy-2.96.6.dist-info/top_level.txt,sha256=1Q6_19IGYfNxSw50W8tYKEJ2t5HKQ3W9Wiw4ia5yg2c,6
834
- chalkpy-2.96.6.dist-info/RECORD,,
830
+ chalkpy-2.96.7.dist-info/METADATA,sha256=QWqtSzsETPKu6gG6oHi0s_nhv7SfLSuca2-SjNFKAKU,27754
831
+ chalkpy-2.96.7.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
832
+ chalkpy-2.96.7.dist-info/entry_points.txt,sha256=Vg23sd8icwq-morJrljVFr-kQnMbm95rZfZj5wsZGis,42
833
+ chalkpy-2.96.7.dist-info/top_level.txt,sha256=1Q6_19IGYfNxSw50W8tYKEJ2t5HKQ3W9Wiw4ia5yg2c,6
834
+ chalkpy-2.96.7.dist-info/RECORD,,