diff --git a/docs/api.yml b/docs/api.yml
index fc0dd3951..6a9c6a509 100644
--- a/docs/api.yml
+++ b/docs/api.yml
@@ -147,6 +147,7 @@ sidebar:
- "api-reference/expressions/num/ceil"
- "api-reference/expressions/num/floor"
- "api-reference/expressions/num/round"
+ - "api-reference/expressions/num/to_string"
- slug: "api-reference/expressions/str"
title: "String Expressions"
diff --git a/docs/examples/api-reference/expressions/num.py b/docs/examples/api-reference/expressions/num.py
index 05484b8e0..08125dc3e 100644
--- a/docs/examples/api-reference/expressions/num.py
+++ b/docs/examples/api-reference/expressions/num.py
@@ -123,3 +123,26 @@ def test_round():
with pytest.raises(Exception):
expr = col("x").round(1.1)
+
+
+def test_to_string():
+ # docsnip to_string
+ from fennel.expr import col
+
+ # docsnip-highlight next-line
+ expr = col("x").num.to_string()
+
+ # type is str or optional str
+ assert expr.typeof(schema={"x": int}) == str
+ assert expr.typeof(schema={"x": Optional[int]}) == Optional[str]
+ assert expr.typeof(schema={"x": float}) == str
+ assert expr.typeof(schema={"x": Optional[float]}) == Optional[str]
+
+ # can be evaluated with a dataframe
+ df = pd.DataFrame({"x": pd.Series([1.1, -2.3, None])})
+ assert expr.eval(df, schema={"x": Optional[float]}).tolist() == [
+ "1.1",
+ "-2.3",
+ pd.NA,
+ ]
+ # /docsnip
diff --git a/docs/pages/api-reference/expressions/num/to_string.md b/docs/pages/api-reference/expressions/num/to_string.md
new file mode 100644
index 000000000..eca0406b7
--- /dev/null
+++ b/docs/pages/api-reference/expressions/num/to_string.md
@@ -0,0 +1,26 @@
+---
+title: To String
+order: 0
+status: published
+---
+
+### To String
+
+Function in `num` namespace to convert a number to a string.
+
+#### Returns
+
+Returns an expression object denoting the string value of the input data. The
+data type of the resulting expression is `str` (or `Optional[str]` if the input
+is an optional number).
+
+
+
+
+
+#### Errors
+
+Error during `typeof` or `eval` if the input expression is not of type int,
+float, optional int or optional float.
+
\ No newline at end of file
diff --git a/fennel/CHANGELOG.md b/fennel/CHANGELOG.md
index f897e44f8..1b156d1d2 100644
--- a/fennel/CHANGELOG.md
+++ b/fennel/CHANGELOG.md
@@ -1,5 +1,8 @@
# Changelog
+## [1.5.56] - 2024-11-24
+- Add to_string method to num namespace in expressions
+
## [1.5.55] - 2024-11-14
- Add print visitor for couple missing string operations
diff --git a/fennel/expr/expr.py b/fennel/expr/expr.py
index abe799ab6..b41ece1cb 100644
--- a/fennel/expr/expr.py
+++ b/fennel/expr/expr.py
@@ -482,6 +482,10 @@ class Floor(MathOp):
pass
+class NumToStr(MathOp):
+ pass
+
+
class MathNoop(MathOp):
pass
@@ -504,6 +508,9 @@ def ceil(self) -> _Number:
def floor(self) -> _Number:
return _Number(self, Floor())
+ def to_string(self) -> _String:
+ return _String(_Number(self, NumToStr()), StringNoop())
+
#########################################################
# String Functions
diff --git a/fennel/expr/serializer.py b/fennel/expr/serializer.py
index 88cc2d6e9..784a2445b 100644
--- a/fennel/expr/serializer.py
+++ b/fennel/expr/serializer.py
@@ -47,6 +47,7 @@
MathNoop,
Round,
Ceil,
+ NumToStr,
Abs,
Floor,
StringNoop,
@@ -231,6 +232,8 @@ def visitNumber(self, obj):
expr.math_fn.fn.CopyFrom(proto.MathOp(abs=proto.Abs()))
elif isinstance(obj.op, Floor):
expr.math_fn.fn.CopyFrom(proto.MathOp(floor=proto.Floor()))
+ elif isinstance(obj.op, NumToStr):
+ expr.math_fn.fn.CopyFrom(proto.MathOp(to_string=proto.ToString()))
else:
raise InvalidExprException("invalid number operation: %s" % obj.op)
expr.math_fn.operand.CopyFrom(self.visit(obj.operand))
diff --git a/fennel/expr/test_expr.py b/fennel/expr/test_expr.py
index 45f6d7ffb..4b9a02b16 100644
--- a/fennel/expr/test_expr.py
+++ b/fennel/expr/test_expr.py
@@ -165,6 +165,17 @@ def test_math_expr():
assert ref_extractor.refs == {"a", "b", "d"}
+def test_math_expr_to_string():
+ expr = col("a").num.to_string()
+ printer = ExprPrinter()
+ assert printer.print(expr.root) == 'TO_STRING(col("a"))'
+
+ df = pd.DataFrame({"a": [1.1232, 2.1232, 3.1232]})
+ ret = expr.eval(df, {"a": float})
+ assert ret.tolist() == ["1.1232", "2.1232", "3.1232"]
+ assert expr.typeof({"a": float}) == str
+
+
def test_bool_expr():
expr = (col("a") == 5) | ((col("b") == "random") & (col("c") == 3.2))
printer = ExprPrinter()
diff --git a/fennel/expr/visitor.py b/fennel/expr/visitor.py
index dec1f7f4c..b2cf16aa4 100644
--- a/fennel/expr/visitor.py
+++ b/fennel/expr/visitor.py
@@ -35,6 +35,7 @@
MathNoop,
Round,
Ceil,
+ NumToStr,
Abs,
Floor,
StringNoop,
@@ -267,6 +268,8 @@ def visitNumber(self, obj):
return "CEIL(%s)" % self.visit(obj.operand)
elif isinstance(obj.op, Abs):
return "ABS(%s)" % self.visit(obj.operand)
+ elif isinstance(obj.op, NumToStr):
+ return f"TO_STRING({self.visit(obj.operand)})"
else:
raise InvalidExprException("invalid number operation: %s" % obj.op)
diff --git a/fennel/gen/connector_pb2.py b/fennel/gen/connector_pb2.py
index 19ef8a407..33f1b072a 100644
--- a/fennel/gen/connector_pb2.py
+++ b/fennel/gen/connector_pb2.py
@@ -7,18 +7,13 @@
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
-
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
-from google.protobuf import (
- duration_pb2 as google_dot_protobuf_dot_duration__pb2,
-)
-from google.protobuf import (
- timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2,
-)
+from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
+from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
import fennel.gen.expression_pb2 as expression__pb2
import fennel.gen.kinesis_pb2 as kinesis__pb2
import fennel.gen.pycode_pb2 as pycode__pb2
@@ -27,127 +22,121 @@
import fennel.gen.secret_pb2 as secret__pb2
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
- b'\n\x0f\x63onnector.proto\x12\x16\x66\x65nnel.proto.connector\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x10\x65xpression.proto\x1a\rkinesis.proto\x1a\x0cpycode.proto\x1a\x15schema_registry.proto\x1a\x0cschema.proto\x1a\x0csecret.proto"\xba\x05\n\x0b\x45xtDatabase\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\x05mysql\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.connector.MySQLH\x00\x12\x34\n\x08postgres\x18\x03 \x01(\x0b\x32 .fennel.proto.connector.PostgresH\x00\x12\x36\n\treference\x18\x04 \x01(\x0b\x32!.fennel.proto.connector.ReferenceH\x00\x12(\n\x02s3\x18\x05 \x01(\x0b\x32\x1a.fennel.proto.connector.S3H\x00\x12\x34\n\x08\x62igquery\x18\x06 \x01(\x0b\x32 .fennel.proto.connector.BigqueryH\x00\x12\x36\n\tsnowflake\x18\x07 \x01(\x0b\x32!.fennel.proto.connector.SnowflakeH\x00\x12.\n\x05kafka\x18\x08 \x01(\x0b\x32\x1d.fennel.proto.connector.KafkaH\x00\x12\x32\n\x07webhook\x18\t \x01(\x0b\x32\x1f.fennel.proto.connector.WebhookH\x00\x12\x32\n\x07kinesis\x18\n \x01(\x0b\x32\x1f.fennel.proto.connector.KinesisH\x00\x12\x34\n\x08redshift\x18\x0b \x01(\x0b\x32 .fennel.proto.connector.RedshiftH\x00\x12.\n\x05mongo\x18\x0c \x01(\x0b\x32\x1d.fennel.proto.connector.MongoH\x00\x12\x30\n\x06pubsub\x18\r \x01(\x0b\x32\x1e.fennel.proto.connector.PubSubH\x00\x12,\n\x04http\x18\x0e \x01(\x0b\x32\x1c.fennel.proto.connector.HttpH\x00\x42\t\n\x07variant"?\n\x10SamplingStrategy\x12\x15\n\rsampling_rate\x18\x01 \x01(\x01\x12\x14\n\x0c\x63olumns_used\x18\x02 \x03(\t"M\n\x0cPubSubFormat\x12\x32\n\x04json\x18\x01 \x01(\x0b\x32".fennel.proto.connector.JsonFormatH\x00\x42\t\n\x07variant"\xbc\x01\n\x0bKafkaFormat\x12\x32\n\x04json\x18\x01 \x01(\x0b\x32".fennel.proto.connector.JsonFormatH\x00\x12\x32\n\x04\x61vro\x18\x02 \x01(\x0b\x32".fennel.proto.connector.AvroFormatH\x00\x12:\n\x08protobuf\x18\x03 \x01(\x0b\x32&.fennel.proto.connector.ProtobufFormatH\x00\x42\t\n\x07variant"\x10\n\x0e\x44\x65\x62\x65ziumFormat"\x0c\n\nJsonFormat"S\n\nAvroFormat\x12\x45\n\x0fschema_registry\x18\x01 \x01(\x0b\x32,.fennel.proto.schema_registry.SchemaRegistry"W\n\x0eProtobufFormat\x12\x45\n\x0fschema_registry\x18\x01 \x01(\x0b\x32,.fennel.proto.schema_registry.SchemaRegistry"\xde\x01\n\tReference\x12;\n\x06\x64\x62type\x18\x01 \x01(\x0e\x32+.fennel.proto.connector.Reference.ExtDBType"\x93\x01\n\tExtDBType\x12\t\n\x05MYSQL\x10\x00\x12\x0c\n\x08POSTGRES\x10\x01\x12\x06\n\x02S3\x10\x02\x12\t\n\x05KAFKA\x10\x03\x12\x0c\n\x08\x42IGQUERY\x10\x04\x12\r\n\tSNOWFLAKE\x10\x05\x12\x0b\n\x07WEBHOOK\x10\x06\x12\x0b\n\x07KINESIS\x10\x07\x12\x0c\n\x08REDSHIFT\x10\x08\x12\t\n\x05MONGO\x10\t\x12\n\n\x06PUBSUB\x10\n"E\n\x07Webhook\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\tretention\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration"\x8c\x02\n\x05MySQL\x12\x0e\n\x04user\x18\x03 \x01(\tH\x00\x12\x39\n\x0fusername_secret\x18\x07 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\x08password\x18\x04 \x01(\tH\x01\x12\x39\n\x0fpassword_secret\x18\x08 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x05 \x01(\r\x12\x13\n\x0bjdbc_params\x18\x06 \x01(\tB\x12\n\x10username_variantB\x12\n\x10password_variant"\x8f\x02\n\x08Postgres\x12\x0e\n\x04user\x18\x03 \x01(\tH\x00\x12\x39\n\x0fusername_secret\x18\x07 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\x08password\x18\x04 \x01(\tH\x01\x12\x39\n\x0fpassword_secret\x18\x08 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x05 \x01(\r\x12\x13\n\x0bjdbc_params\x18\x06 \x01(\tB\x12\n\x10username_variantB\x12\n\x10password_variant"\xb0\x02\n\x02S3\x12\x1f\n\x15\x61ws_secret_access_key\x18\x01 \x01(\tH\x00\x12\x46\n\x1c\x61ws_secret_access_key_secret\x18\x04 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x1b\n\x11\x61ws_access_key_id\x18\x02 \x01(\tH\x01\x12\x42\n\x18\x61ws_access_key_id_secret\x18\x05 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x12\x15\n\x08role_arn\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x1f\n\x1d\x61ws_secret_access_key_variantB\x1b\n\x19\x61ws_access_key_id_variantB\x0b\n\t_role_arn"\xb6\x01\n\x08\x42igquery\x12\x1d\n\x13service_account_key\x18\x02 \x01(\tH\x00\x12\x44\n\x1aservice_account_key_secret\x18\x04 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\ndataset_id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x03 \x01(\tB\x1d\n\x1bservice_account_key_variant"\xa1\x02\n\tSnowflake\x12\x0e\n\x04user\x18\x02 \x01(\tH\x00\x12\x39\n\x0fusername_secret\x18\x08 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\x08password\x18\x03 \x01(\tH\x01\x12\x39\n\x0fpassword_secret\x18\t \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x04 \x01(\t\x12\x11\n\twarehouse\x18\x05 \x01(\t\x12\x0c\n\x04role\x18\x06 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x07 \x01(\tB\x12\n\x10username_variantB\x12\n\x10password_variant"\xf9\x02\n\x05Kafka\x12\x1d\n\x13sasl_plain_username\x18\x05 \x01(\tH\x00\x12>\n\x14sasl_username_secret\x18\x08 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x1d\n\x13sasl_plain_password\x18\x06 \x01(\tH\x01\x12>\n\x14sasl_password_secret\x18\t \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x12\x19\n\x11\x62ootstrap_servers\x18\x01 \x01(\t\x12\x19\n\x11security_protocol\x18\x02 \x01(\t\x12\x16\n\x0esasl_mechanism\x18\x03 \x01(\t\x12\x1c\n\x10sasl_jaas_config\x18\x04 \x01(\tB\x02\x18\x01\x12\x14\n\x08group_id\x18\x07 \x01(\tB\x02\x18\x01\x42\x17\n\x15sasl_username_variantB\x17\n\x15sasl_password_variant"\x1b\n\x07Kinesis\x12\x10\n\x08role_arn\x18\x01 \x01(\t"\xd3\x01\n\x0b\x43redentials\x12\x12\n\x08username\x18\x01 \x01(\tH\x00\x12\x39\n\x0fusername_secret\x18\x03 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\x08password\x18\x02 \x01(\tH\x01\x12\x39\n\x0fpassword_secret\x18\x04 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x42\x12\n\x10username_variantB\x12\n\x10password_variant"}\n\x16RedshiftAuthentication\x12\x1c\n\x12s3_access_role_arn\x18\x01 \x01(\tH\x00\x12:\n\x0b\x63redentials\x18\x02 \x01(\x0b\x32#.fennel.proto.connector.CredentialsH\x00\x42\t\n\x07variant"\x99\x01\n\x08Redshift\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x0e\n\x06schema\x18\x04 \x01(\t\x12O\n\x17redshift_authentication\x18\x05 \x01(\x0b\x32..fennel.proto.connector.RedshiftAuthentication"\xe9\x01\n\x05Mongo\x12\x0e\n\x04user\x18\x03 \x01(\tH\x00\x12\x39\n\x0fusername_secret\x18\x05 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\x08password\x18\x04 \x01(\tH\x01\x12\x39\n\x0fpassword_secret\x18\x06 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\tB\x12\n\x10username_variantB\x12\n\x10password_variant"\xa0\x01\n\x06PubSub\x12\x1d\n\x13service_account_key\x18\x02 \x01(\tH\x00\x12\x44\n\x1aservice_account_key_secret\x18\x03 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\nproject_id\x18\x01 \x01(\tB\x1d\n\x1bservice_account_key_variant"s\n\x0eSensitiveDatum\x12\x10\n\x06secret\x18\x01 \x01(\tH\x00\x12\x34\n\nsecret_ref\x18\x02 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x42\x19\n\x17sensitive_datum_variant"\xb8\x01\n\x04Http\x12\x0e\n\x04host\x18\x01 \x01(\tH\x00\x12\x35\n\x0bhost_secret\x18\x02 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x0f\n\x07healthz\x18\x03 \x01(\t\x12<\n\x07\x63\x61_cert\x18\x04 \x01(\x0b\x32&.fennel.proto.connector.SensitiveDatumH\x01\x88\x01\x01\x42\x0e\n\x0chost_variantB\n\n\x08_ca_cert"\xf7\x05\n\x08\x45xtTable\x12\x39\n\x0bmysql_table\x18\x01 \x01(\x0b\x32".fennel.proto.connector.MySQLTableH\x00\x12\x39\n\x08pg_table\x18\x02 \x01(\x0b\x32%.fennel.proto.connector.PostgresTableH\x00\x12\x33\n\x08s3_table\x18\x03 \x01(\x0b\x32\x1f.fennel.proto.connector.S3TableH\x00\x12\x39\n\x0bkafka_topic\x18\x04 \x01(\x0b\x32".fennel.proto.connector.KafkaTopicH\x00\x12\x41\n\x0fsnowflake_table\x18\x05 \x01(\x0b\x32&.fennel.proto.connector.SnowflakeTableH\x00\x12?\n\x0e\x62igquery_table\x18\x06 \x01(\x0b\x32%.fennel.proto.connector.BigqueryTableH\x00\x12;\n\x08\x65ndpoint\x18\x07 \x01(\x0b\x32\'.fennel.proto.connector.WebhookEndpointH\x00\x12?\n\x0ekinesis_stream\x18\x08 \x01(\x0b\x32%.fennel.proto.connector.KinesisStreamH\x00\x12?\n\x0eredshift_table\x18\t \x01(\x0b\x32%.fennel.proto.connector.RedshiftTableH\x00\x12\x43\n\x10mongo_collection\x18\n \x01(\x0b\x32\'.fennel.proto.connector.MongoCollectionH\x00\x12;\n\x0cpubsub_topic\x18\x0b \x01(\x0b\x32#.fennel.proto.connector.PubSubTopicH\x00\x12\x35\n\thttp_path\x18\x0c \x01(\x0b\x32 .fennel.proto.connector.HttpPathH\x00\x42\t\n\x07variant"Q\n\nMySQLTable\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x12\n\ntable_name\x18\x02 \x01(\t"z\n\rPostgresTable\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12\x16\n\tslot_name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_slot_name"\xf7\x01\n\x07S3Table\x12\x0e\n\x06\x62ucket\x18\x01 \x01(\t\x12\x13\n\x0bpath_prefix\x18\x02 \x01(\t\x12\x11\n\tdelimiter\x18\x04 \x01(\t\x12\x0e\n\x06\x66ormat\x18\x05 \x01(\t\x12/\n\x02\x64\x62\x18\x06 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x12\n\npre_sorted\x18\x07 \x01(\x08\x12\x13\n\x0bpath_suffix\x18\x08 \x01(\t\x12.\n\x06spread\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x88\x01\x01\x12\x0f\n\x07headers\x18\t \x03(\tB\t\n\x07_spread"\x81\x01\n\nKafkaTopic\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x33\n\x06\x66ormat\x18\x03 \x01(\x0b\x32#.fennel.proto.connector.KafkaFormat"T\n\rBigqueryTable\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x12\n\ntable_name\x18\x02 \x01(\t"U\n\x0eSnowflakeTable\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x12\n\ntable_name\x18\x02 \x01(\t"\x81\x01\n\x0fWebhookEndpoint\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12+\n\x08\x64uration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration"\xd3\x01\n\rKinesisStream\x12\x12\n\nstream_arn\x18\x01 \x01(\t\x12\x39\n\rinit_position\x18\x02 \x01(\x0e\x32".fennel.proto.kinesis.InitPosition\x12\x32\n\x0einit_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06\x66ormat\x18\x04 \x01(\t\x12/\n\x02\x64\x62\x18\x05 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase"T\n\rRedshiftTable\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x12\n\ntable_name\x18\x02 \x01(\t"\x86\x01\n\x0bPubSubTopic\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x10\n\x08topic_id\x18\x02 \x01(\t\x12\x34\n\x06\x66ormat\x18\x03 \x01(\x0b\x32$.fennel.proto.connector.PubSubFormat"\xdb\x01\n\x08HttpPath\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12\x12\n\x05limit\x18\x03 \x01(\rH\x00\x88\x01\x01\x12>\n\x07headers\x18\x04 \x03(\x0b\x32-.fennel.proto.connector.HttpPath.HeadersEntry\x1a.\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_limit"\x9e\x01\n\x04\x45val\x12+\n\x06schema\x18\x01 \x01(\x0b\x32\x1b.fennel.proto.schema.Schema\x12-\n\x04\x65xpr\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.ExprH\x00\x12-\n\x06pycode\x18\x03 \x01(\x0b\x32\x1b.fennel.proto.pycode.PyCodeH\x00\x42\x0b\n\teval_type"\x83\x01\n\x0cPreProcValue\x12\r\n\x03ref\x18\x01 \x01(\tH\x00\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1a.fennel.proto.schema.ValueH\x00\x12,\n\x04\x65val\x18\x03 \x01(\x0b\x32\x1c.fennel.proto.connector.EvalH\x00\x42\t\n\x07variant"[\n\x0fMongoCollection\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x17\n\x0f\x63ollection_name\x18\x02 \x01(\t"2\n\x0cSnapshotData\x12\x0e\n\x06marker\x18\x01 \x01(\t\x12\x12\n\nnum_retain\x18\x02 \x01(\r"\r\n\x0bIncremental"\n\n\x08Recreate"\xbc\x01\n\x05Style\x12:\n\x0bincremental\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.IncrementalH\x00\x12\x34\n\x08recreate\x18\x02 \x01(\x0b\x32 .fennel.proto.connector.RecreateH\x00\x12\x38\n\x08snapshot\x18\x03 \x01(\x0b\x32$.fennel.proto.connector.SnapshotDataH\x00\x42\x07\n\x05Style"\xa5\x07\n\x06Source\x12/\n\x05table\x18\x01 \x01(\x0b\x32 .fennel.proto.connector.ExtTable\x12\x0f\n\x07\x64\x61taset\x18\x02 \x01(\t\x12\x12\n\nds_version\x18\x03 \x01(\r\x12(\n\x05\x65very\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x06\x63ursor\x18\x05 \x01(\tH\x00\x88\x01\x01\x12+\n\x08\x64isorder\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x17\n\x0ftimestamp_field\x18\x07 \x01(\t\x12\x30\n\x03\x63\x64\x63\x18\x08 \x01(\x0e\x32#.fennel.proto.connector.CDCStrategy\x12\x31\n\rstarting_from\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12=\n\x08pre_proc\x18\n \x03(\x0b\x32+.fennel.proto.connector.Source.PreProcEntry\x12\x0f\n\x07version\x18\x0b \x01(\r\x12\x0f\n\x07\x62ounded\x18\x0c \x01(\x08\x12\x30\n\x08idleness\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationH\x01\x88\x01\x01\x12)\n\x05until\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x06\x66ilter\x18\x0f \x01(\x0b\x32\x1b.fennel.proto.pycode.PyCodeH\x02\x88\x01\x01\x12H\n\x11sampling_strategy\x18\x10 \x01(\x0b\x32(.fennel.proto.connector.SamplingStrategyH\x03\x88\x01\x01\x12\x37\n\x0b\x66ilter_expr\x18\x11 \x01(\x0b\x32\x1d.fennel.proto.expression.ExprH\x04\x88\x01\x01\x12\x37\n\rfilter_schema\x18\x12 \x01(\x0b\x32\x1b.fennel.proto.schema.SchemaH\x05\x88\x01\x01\x1aT\n\x0cPreProcEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32$.fennel.proto.connector.PreProcValue:\x02\x38\x01\x42\t\n\x07_cursorB\x0b\n\t_idlenessB\t\n\x07_filterB\x14\n\x12_sampling_strategyB\x0e\n\x0c_filter_exprB\x10\n\x0e_filter_schema"\xee\x03\n\x04Sink\x12/\n\x05table\x18\x01 \x01(\x0b\x32 .fennel.proto.connector.ExtTable\x12\x0f\n\x07\x64\x61taset\x18\x02 \x01(\t\x12\x12\n\nds_version\x18\x03 \x01(\r\x12\x35\n\x03\x63\x64\x63\x18\x04 \x01(\x0e\x32#.fennel.proto.connector.CDCStrategyH\x00\x88\x01\x01\x12(\n\x05\x65very\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12/\n\x03how\x18\x06 \x01(\x0b\x32\x1d.fennel.proto.connector.StyleH\x01\x88\x01\x01\x12\x0e\n\x06\x63reate\x18\x07 \x01(\x08\x12:\n\x07renames\x18\x08 \x03(\x0b\x32).fennel.proto.connector.Sink.RenamesEntry\x12.\n\x05since\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12.\n\x05until\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x1a.\n\x0cRenamesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x06\n\x04_cdcB\x06\n\x04_howB\x08\n\x06_sinceB\x08\n\x06_until*K\n\x0b\x43\x44\x43Strategy\x12\n\n\x06\x41ppend\x10\x00\x12\n\n\x06Upsert\x10\x01\x12\x0c\n\x08\x44\x65\x62\x65zium\x10\x02\x12\n\n\x06Native\x10\x03\x12\n\n\x06\x44\x65lete\x10\x04\x62\x06proto3'
-)
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0f\x63onnector.proto\x12\x16\x66\x65nnel.proto.connector\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x10\x65xpression.proto\x1a\rkinesis.proto\x1a\x0cpycode.proto\x1a\x15schema_registry.proto\x1a\x0cschema.proto\x1a\x0csecret.proto\"\xba\x05\n\x0b\x45xtDatabase\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\x05mysql\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.connector.MySQLH\x00\x12\x34\n\x08postgres\x18\x03 \x01(\x0b\x32 .fennel.proto.connector.PostgresH\x00\x12\x36\n\treference\x18\x04 \x01(\x0b\x32!.fennel.proto.connector.ReferenceH\x00\x12(\n\x02s3\x18\x05 \x01(\x0b\x32\x1a.fennel.proto.connector.S3H\x00\x12\x34\n\x08\x62igquery\x18\x06 \x01(\x0b\x32 .fennel.proto.connector.BigqueryH\x00\x12\x36\n\tsnowflake\x18\x07 \x01(\x0b\x32!.fennel.proto.connector.SnowflakeH\x00\x12.\n\x05kafka\x18\x08 \x01(\x0b\x32\x1d.fennel.proto.connector.KafkaH\x00\x12\x32\n\x07webhook\x18\t \x01(\x0b\x32\x1f.fennel.proto.connector.WebhookH\x00\x12\x32\n\x07kinesis\x18\n \x01(\x0b\x32\x1f.fennel.proto.connector.KinesisH\x00\x12\x34\n\x08redshift\x18\x0b \x01(\x0b\x32 .fennel.proto.connector.RedshiftH\x00\x12.\n\x05mongo\x18\x0c \x01(\x0b\x32\x1d.fennel.proto.connector.MongoH\x00\x12\x30\n\x06pubsub\x18\r \x01(\x0b\x32\x1e.fennel.proto.connector.PubSubH\x00\x12,\n\x04http\x18\x0e \x01(\x0b\x32\x1c.fennel.proto.connector.HttpH\x00\x42\t\n\x07variant\"?\n\x10SamplingStrategy\x12\x15\n\rsampling_rate\x18\x01 \x01(\x01\x12\x14\n\x0c\x63olumns_used\x18\x02 \x03(\t\"M\n\x0cPubSubFormat\x12\x32\n\x04json\x18\x01 \x01(\x0b\x32\".fennel.proto.connector.JsonFormatH\x00\x42\t\n\x07variant\"\xbc\x01\n\x0bKafkaFormat\x12\x32\n\x04json\x18\x01 \x01(\x0b\x32\".fennel.proto.connector.JsonFormatH\x00\x12\x32\n\x04\x61vro\x18\x02 \x01(\x0b\x32\".fennel.proto.connector.AvroFormatH\x00\x12:\n\x08protobuf\x18\x03 \x01(\x0b\x32&.fennel.proto.connector.ProtobufFormatH\x00\x42\t\n\x07variant\"\x10\n\x0e\x44\x65\x62\x65ziumFormat\"\x0c\n\nJsonFormat\"S\n\nAvroFormat\x12\x45\n\x0fschema_registry\x18\x01 \x01(\x0b\x32,.fennel.proto.schema_registry.SchemaRegistry\"W\n\x0eProtobufFormat\x12\x45\n\x0fschema_registry\x18\x01 \x01(\x0b\x32,.fennel.proto.schema_registry.SchemaRegistry\"\xde\x01\n\tReference\x12;\n\x06\x64\x62type\x18\x01 \x01(\x0e\x32+.fennel.proto.connector.Reference.ExtDBType\"\x93\x01\n\tExtDBType\x12\t\n\x05MYSQL\x10\x00\x12\x0c\n\x08POSTGRES\x10\x01\x12\x06\n\x02S3\x10\x02\x12\t\n\x05KAFKA\x10\x03\x12\x0c\n\x08\x42IGQUERY\x10\x04\x12\r\n\tSNOWFLAKE\x10\x05\x12\x0b\n\x07WEBHOOK\x10\x06\x12\x0b\n\x07KINESIS\x10\x07\x12\x0c\n\x08REDSHIFT\x10\x08\x12\t\n\x05MONGO\x10\t\x12\n\n\x06PUBSUB\x10\n\"E\n\x07Webhook\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\tretention\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\x8c\x02\n\x05MySQL\x12\x0e\n\x04user\x18\x03 \x01(\tH\x00\x12\x39\n\x0fusername_secret\x18\x07 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\x08password\x18\x04 \x01(\tH\x01\x12\x39\n\x0fpassword_secret\x18\x08 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x05 \x01(\r\x12\x13\n\x0bjdbc_params\x18\x06 \x01(\tB\x12\n\x10username_variantB\x12\n\x10password_variant\"\x8f\x02\n\x08Postgres\x12\x0e\n\x04user\x18\x03 \x01(\tH\x00\x12\x39\n\x0fusername_secret\x18\x07 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\x08password\x18\x04 \x01(\tH\x01\x12\x39\n\x0fpassword_secret\x18\x08 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x05 \x01(\r\x12\x13\n\x0bjdbc_params\x18\x06 \x01(\tB\x12\n\x10username_variantB\x12\n\x10password_variant\"\xb0\x02\n\x02S3\x12\x1f\n\x15\x61ws_secret_access_key\x18\x01 \x01(\tH\x00\x12\x46\n\x1c\x61ws_secret_access_key_secret\x18\x04 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x1b\n\x11\x61ws_access_key_id\x18\x02 \x01(\tH\x01\x12\x42\n\x18\x61ws_access_key_id_secret\x18\x05 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x12\x15\n\x08role_arn\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x1f\n\x1d\x61ws_secret_access_key_variantB\x1b\n\x19\x61ws_access_key_id_variantB\x0b\n\t_role_arn\"\xb6\x01\n\x08\x42igquery\x12\x1d\n\x13service_account_key\x18\x02 \x01(\tH\x00\x12\x44\n\x1aservice_account_key_secret\x18\x04 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\ndataset_id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x03 \x01(\tB\x1d\n\x1bservice_account_key_variant\"\xa1\x02\n\tSnowflake\x12\x0e\n\x04user\x18\x02 \x01(\tH\x00\x12\x39\n\x0fusername_secret\x18\x08 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\x08password\x18\x03 \x01(\tH\x01\x12\x39\n\x0fpassword_secret\x18\t \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x04 \x01(\t\x12\x11\n\twarehouse\x18\x05 \x01(\t\x12\x0c\n\x04role\x18\x06 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x07 \x01(\tB\x12\n\x10username_variantB\x12\n\x10password_variant\"\xf9\x02\n\x05Kafka\x12\x1d\n\x13sasl_plain_username\x18\x05 \x01(\tH\x00\x12>\n\x14sasl_username_secret\x18\x08 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x1d\n\x13sasl_plain_password\x18\x06 \x01(\tH\x01\x12>\n\x14sasl_password_secret\x18\t \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x12\x19\n\x11\x62ootstrap_servers\x18\x01 \x01(\t\x12\x19\n\x11security_protocol\x18\x02 \x01(\t\x12\x16\n\x0esasl_mechanism\x18\x03 \x01(\t\x12\x1c\n\x10sasl_jaas_config\x18\x04 \x01(\tB\x02\x18\x01\x12\x14\n\x08group_id\x18\x07 \x01(\tB\x02\x18\x01\x42\x17\n\x15sasl_username_variantB\x17\n\x15sasl_password_variant\"\x1b\n\x07Kinesis\x12\x10\n\x08role_arn\x18\x01 \x01(\t\"\xd3\x01\n\x0b\x43redentials\x12\x12\n\x08username\x18\x01 \x01(\tH\x00\x12\x39\n\x0fusername_secret\x18\x03 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\x08password\x18\x02 \x01(\tH\x01\x12\x39\n\x0fpassword_secret\x18\x04 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x42\x12\n\x10username_variantB\x12\n\x10password_variant\"}\n\x16RedshiftAuthentication\x12\x1c\n\x12s3_access_role_arn\x18\x01 \x01(\tH\x00\x12:\n\x0b\x63redentials\x18\x02 \x01(\x0b\x32#.fennel.proto.connector.CredentialsH\x00\x42\t\n\x07variant\"\x99\x01\n\x08Redshift\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\x0e\n\x06schema\x18\x04 \x01(\t\x12O\n\x17redshift_authentication\x18\x05 \x01(\x0b\x32..fennel.proto.connector.RedshiftAuthentication\"\xe9\x01\n\x05Mongo\x12\x0e\n\x04user\x18\x03 \x01(\tH\x00\x12\x39\n\x0fusername_secret\x18\x05 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\x08password\x18\x04 \x01(\tH\x01\x12\x39\n\x0fpassword_secret\x18\x06 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x01\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\tB\x12\n\x10username_variantB\x12\n\x10password_variant\"\xa0\x01\n\x06PubSub\x12\x1d\n\x13service_account_key\x18\x02 \x01(\tH\x00\x12\x44\n\x1aservice_account_key_secret\x18\x03 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x12\n\nproject_id\x18\x01 \x01(\tB\x1d\n\x1bservice_account_key_variant\"s\n\x0eSensitiveDatum\x12\x10\n\x06secret\x18\x01 \x01(\tH\x00\x12\x34\n\nsecret_ref\x18\x02 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x42\x19\n\x17sensitive_datum_variant\"\xb8\x01\n\x04Http\x12\x0e\n\x04host\x18\x01 \x01(\tH\x00\x12\x35\n\x0bhost_secret\x18\x02 \x01(\x0b\x32\x1e.fennel.proto.secret.SecretRefH\x00\x12\x0f\n\x07healthz\x18\x03 \x01(\t\x12<\n\x07\x63\x61_cert\x18\x04 \x01(\x0b\x32&.fennel.proto.connector.SensitiveDatumH\x01\x88\x01\x01\x42\x0e\n\x0chost_variantB\n\n\x08_ca_cert\"\xf7\x05\n\x08\x45xtTable\x12\x39\n\x0bmysql_table\x18\x01 \x01(\x0b\x32\".fennel.proto.connector.MySQLTableH\x00\x12\x39\n\x08pg_table\x18\x02 \x01(\x0b\x32%.fennel.proto.connector.PostgresTableH\x00\x12\x33\n\x08s3_table\x18\x03 \x01(\x0b\x32\x1f.fennel.proto.connector.S3TableH\x00\x12\x39\n\x0bkafka_topic\x18\x04 \x01(\x0b\x32\".fennel.proto.connector.KafkaTopicH\x00\x12\x41\n\x0fsnowflake_table\x18\x05 \x01(\x0b\x32&.fennel.proto.connector.SnowflakeTableH\x00\x12?\n\x0e\x62igquery_table\x18\x06 \x01(\x0b\x32%.fennel.proto.connector.BigqueryTableH\x00\x12;\n\x08\x65ndpoint\x18\x07 \x01(\x0b\x32\'.fennel.proto.connector.WebhookEndpointH\x00\x12?\n\x0ekinesis_stream\x18\x08 \x01(\x0b\x32%.fennel.proto.connector.KinesisStreamH\x00\x12?\n\x0eredshift_table\x18\t \x01(\x0b\x32%.fennel.proto.connector.RedshiftTableH\x00\x12\x43\n\x10mongo_collection\x18\n \x01(\x0b\x32\'.fennel.proto.connector.MongoCollectionH\x00\x12;\n\x0cpubsub_topic\x18\x0b \x01(\x0b\x32#.fennel.proto.connector.PubSubTopicH\x00\x12\x35\n\thttp_path\x18\x0c \x01(\x0b\x32 .fennel.proto.connector.HttpPathH\x00\x42\t\n\x07variant\"Q\n\nMySQLTable\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x12\n\ntable_name\x18\x02 \x01(\t\"z\n\rPostgresTable\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12\x16\n\tslot_name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_slot_name\"\xf7\x01\n\x07S3Table\x12\x0e\n\x06\x62ucket\x18\x01 \x01(\t\x12\x13\n\x0bpath_prefix\x18\x02 \x01(\t\x12\x11\n\tdelimiter\x18\x04 \x01(\t\x12\x0e\n\x06\x66ormat\x18\x05 \x01(\t\x12/\n\x02\x64\x62\x18\x06 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x12\n\npre_sorted\x18\x07 \x01(\x08\x12\x13\n\x0bpath_suffix\x18\x08 \x01(\t\x12.\n\x06spread\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x88\x01\x01\x12\x0f\n\x07headers\x18\t \x03(\tB\t\n\x07_spread\"\x81\x01\n\nKafkaTopic\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x33\n\x06\x66ormat\x18\x03 \x01(\x0b\x32#.fennel.proto.connector.KafkaFormat\"T\n\rBigqueryTable\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x12\n\ntable_name\x18\x02 \x01(\t\"U\n\x0eSnowflakeTable\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x12\n\ntable_name\x18\x02 \x01(\t\"\x81\x01\n\x0fWebhookEndpoint\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12+\n\x08\x64uration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xd3\x01\n\rKinesisStream\x12\x12\n\nstream_arn\x18\x01 \x01(\t\x12\x39\n\rinit_position\x18\x02 \x01(\x0e\x32\".fennel.proto.kinesis.InitPosition\x12\x32\n\x0einit_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06\x66ormat\x18\x04 \x01(\t\x12/\n\x02\x64\x62\x18\x05 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\"T\n\rRedshiftTable\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x12\n\ntable_name\x18\x02 \x01(\t\"\x86\x01\n\x0bPubSubTopic\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x10\n\x08topic_id\x18\x02 \x01(\t\x12\x34\n\x06\x66ormat\x18\x03 \x01(\x0b\x32$.fennel.proto.connector.PubSubFormat\"\xdb\x01\n\x08HttpPath\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12\x12\n\x05limit\x18\x03 \x01(\rH\x00\x88\x01\x01\x12>\n\x07headers\x18\x04 \x03(\x0b\x32-.fennel.proto.connector.HttpPath.HeadersEntry\x1a.\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_limit\"\x9e\x01\n\x04\x45val\x12+\n\x06schema\x18\x01 \x01(\x0b\x32\x1b.fennel.proto.schema.Schema\x12-\n\x04\x65xpr\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.ExprH\x00\x12-\n\x06pycode\x18\x03 \x01(\x0b\x32\x1b.fennel.proto.pycode.PyCodeH\x00\x42\x0b\n\teval_type\"\x83\x01\n\x0cPreProcValue\x12\r\n\x03ref\x18\x01 \x01(\tH\x00\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1a.fennel.proto.schema.ValueH\x00\x12,\n\x04\x65val\x18\x03 \x01(\x0b\x32\x1c.fennel.proto.connector.EvalH\x00\x42\t\n\x07variant\"[\n\x0fMongoCollection\x12/\n\x02\x64\x62\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.ExtDatabase\x12\x17\n\x0f\x63ollection_name\x18\x02 \x01(\t\"2\n\x0cSnapshotData\x12\x0e\n\x06marker\x18\x01 \x01(\t\x12\x12\n\nnum_retain\x18\x02 \x01(\r\"\r\n\x0bIncremental\"\n\n\x08Recreate\"\xbc\x01\n\x05Style\x12:\n\x0bincremental\x18\x01 \x01(\x0b\x32#.fennel.proto.connector.IncrementalH\x00\x12\x34\n\x08recreate\x18\x02 \x01(\x0b\x32 .fennel.proto.connector.RecreateH\x00\x12\x38\n\x08snapshot\x18\x03 \x01(\x0b\x32$.fennel.proto.connector.SnapshotDataH\x00\x42\x07\n\x05Style\"\xa5\x07\n\x06Source\x12/\n\x05table\x18\x01 \x01(\x0b\x32 .fennel.proto.connector.ExtTable\x12\x0f\n\x07\x64\x61taset\x18\x02 \x01(\t\x12\x12\n\nds_version\x18\x03 \x01(\r\x12(\n\x05\x65very\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x06\x63ursor\x18\x05 \x01(\tH\x00\x88\x01\x01\x12+\n\x08\x64isorder\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x17\n\x0ftimestamp_field\x18\x07 \x01(\t\x12\x30\n\x03\x63\x64\x63\x18\x08 \x01(\x0e\x32#.fennel.proto.connector.CDCStrategy\x12\x31\n\rstarting_from\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12=\n\x08pre_proc\x18\n \x03(\x0b\x32+.fennel.proto.connector.Source.PreProcEntry\x12\x0f\n\x07version\x18\x0b \x01(\r\x12\x0f\n\x07\x62ounded\x18\x0c \x01(\x08\x12\x30\n\x08idleness\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationH\x01\x88\x01\x01\x12)\n\x05until\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x06\x66ilter\x18\x0f \x01(\x0b\x32\x1b.fennel.proto.pycode.PyCodeH\x02\x88\x01\x01\x12H\n\x11sampling_strategy\x18\x10 \x01(\x0b\x32(.fennel.proto.connector.SamplingStrategyH\x03\x88\x01\x01\x12\x37\n\x0b\x66ilter_expr\x18\x11 \x01(\x0b\x32\x1d.fennel.proto.expression.ExprH\x04\x88\x01\x01\x12\x37\n\rfilter_schema\x18\x12 \x01(\x0b\x32\x1b.fennel.proto.schema.SchemaH\x05\x88\x01\x01\x1aT\n\x0cPreProcEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32$.fennel.proto.connector.PreProcValue:\x02\x38\x01\x42\t\n\x07_cursorB\x0b\n\t_idlenessB\t\n\x07_filterB\x14\n\x12_sampling_strategyB\x0e\n\x0c_filter_exprB\x10\n\x0e_filter_schema\"\xee\x03\n\x04Sink\x12/\n\x05table\x18\x01 \x01(\x0b\x32 .fennel.proto.connector.ExtTable\x12\x0f\n\x07\x64\x61taset\x18\x02 \x01(\t\x12\x12\n\nds_version\x18\x03 \x01(\r\x12\x35\n\x03\x63\x64\x63\x18\x04 \x01(\x0e\x32#.fennel.proto.connector.CDCStrategyH\x00\x88\x01\x01\x12(\n\x05\x65very\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12/\n\x03how\x18\x06 \x01(\x0b\x32\x1d.fennel.proto.connector.StyleH\x01\x88\x01\x01\x12\x0e\n\x06\x63reate\x18\x07 \x01(\x08\x12:\n\x07renames\x18\x08 \x03(\x0b\x32).fennel.proto.connector.Sink.RenamesEntry\x12.\n\x05since\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12.\n\x05until\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x1a.\n\x0cRenamesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x06\n\x04_cdcB\x06\n\x04_howB\x08\n\x06_sinceB\x08\n\x06_until*K\n\x0b\x43\x44\x43Strategy\x12\n\n\x06\x41ppend\x10\x00\x12\n\n\x06Upsert\x10\x01\x12\x0c\n\x08\x44\x65\x62\x65zium\x10\x02\x12\n\n\x06Native\x10\x03\x12\n\n\x06\x44\x65lete\x10\x04\x62\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
-_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "connector_pb2", _globals)
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'connector_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
- DESCRIPTOR._loaded_options = None
- _globals["_KAFKA"].fields_by_name["sasl_jaas_config"]._loaded_options = None
- _globals["_KAFKA"].fields_by_name[
- "sasl_jaas_config"
- ]._serialized_options = b"\030\001"
- _globals["_KAFKA"].fields_by_name["group_id"]._loaded_options = None
- _globals["_KAFKA"].fields_by_name[
- "group_id"
- ]._serialized_options = b"\030\001"
- _globals["_HTTPPATH_HEADERSENTRY"]._loaded_options = None
- _globals["_HTTPPATH_HEADERSENTRY"]._serialized_options = b"8\001"
- _globals["_SOURCE_PREPROCENTRY"]._loaded_options = None
- _globals["_SOURCE_PREPROCENTRY"]._serialized_options = b"8\001"
- _globals["_SINK_RENAMESENTRY"]._loaded_options = None
- _globals["_SINK_RENAMESENTRY"]._serialized_options = b"8\001"
- _globals["_CDCSTRATEGY"]._serialized_start = 9088
- _globals["_CDCSTRATEGY"]._serialized_end = 9163
- _globals["_EXTDATABASE"]._serialized_start = 207
- _globals["_EXTDATABASE"]._serialized_end = 905
- _globals["_SAMPLINGSTRATEGY"]._serialized_start = 907
- _globals["_SAMPLINGSTRATEGY"]._serialized_end = 970
- _globals["_PUBSUBFORMAT"]._serialized_start = 972
- _globals["_PUBSUBFORMAT"]._serialized_end = 1049
- _globals["_KAFKAFORMAT"]._serialized_start = 1052
- _globals["_KAFKAFORMAT"]._serialized_end = 1240
- _globals["_DEBEZIUMFORMAT"]._serialized_start = 1242
- _globals["_DEBEZIUMFORMAT"]._serialized_end = 1258
- _globals["_JSONFORMAT"]._serialized_start = 1260
- _globals["_JSONFORMAT"]._serialized_end = 1272
- _globals["_AVROFORMAT"]._serialized_start = 1274
- _globals["_AVROFORMAT"]._serialized_end = 1357
- _globals["_PROTOBUFFORMAT"]._serialized_start = 1359
- _globals["_PROTOBUFFORMAT"]._serialized_end = 1446
- _globals["_REFERENCE"]._serialized_start = 1449
- _globals["_REFERENCE"]._serialized_end = 1671
- _globals["_REFERENCE_EXTDBTYPE"]._serialized_start = 1524
- _globals["_REFERENCE_EXTDBTYPE"]._serialized_end = 1671
- _globals["_WEBHOOK"]._serialized_start = 1673
- _globals["_WEBHOOK"]._serialized_end = 1742
- _globals["_MYSQL"]._serialized_start = 1745
- _globals["_MYSQL"]._serialized_end = 2013
- _globals["_POSTGRES"]._serialized_start = 2016
- _globals["_POSTGRES"]._serialized_end = 2287
- _globals["_S3"]._serialized_start = 2290
- _globals["_S3"]._serialized_end = 2594
- _globals["_BIGQUERY"]._serialized_start = 2597
- _globals["_BIGQUERY"]._serialized_end = 2779
- _globals["_SNOWFLAKE"]._serialized_start = 2782
- _globals["_SNOWFLAKE"]._serialized_end = 3071
- _globals["_KAFKA"]._serialized_start = 3074
- _globals["_KAFKA"]._serialized_end = 3451
- _globals["_KINESIS"]._serialized_start = 3453
- _globals["_KINESIS"]._serialized_end = 3480
- _globals["_CREDENTIALS"]._serialized_start = 3483
- _globals["_CREDENTIALS"]._serialized_end = 3694
- _globals["_REDSHIFTAUTHENTICATION"]._serialized_start = 3696
- _globals["_REDSHIFTAUTHENTICATION"]._serialized_end = 3821
- _globals["_REDSHIFT"]._serialized_start = 3824
- _globals["_REDSHIFT"]._serialized_end = 3977
- _globals["_MONGO"]._serialized_start = 3980
- _globals["_MONGO"]._serialized_end = 4213
- _globals["_PUBSUB"]._serialized_start = 4216
- _globals["_PUBSUB"]._serialized_end = 4376
- _globals["_SENSITIVEDATUM"]._serialized_start = 4378
- _globals["_SENSITIVEDATUM"]._serialized_end = 4493
- _globals["_HTTP"]._serialized_start = 4496
- _globals["_HTTP"]._serialized_end = 4680
- _globals["_EXTTABLE"]._serialized_start = 4683
- _globals["_EXTTABLE"]._serialized_end = 5442
- _globals["_MYSQLTABLE"]._serialized_start = 5444
- _globals["_MYSQLTABLE"]._serialized_end = 5525
- _globals["_POSTGRESTABLE"]._serialized_start = 5527
- _globals["_POSTGRESTABLE"]._serialized_end = 5649
- _globals["_S3TABLE"]._serialized_start = 5652
- _globals["_S3TABLE"]._serialized_end = 5899
- _globals["_KAFKATOPIC"]._serialized_start = 5902
- _globals["_KAFKATOPIC"]._serialized_end = 6031
- _globals["_BIGQUERYTABLE"]._serialized_start = 6033
- _globals["_BIGQUERYTABLE"]._serialized_end = 6117
- _globals["_SNOWFLAKETABLE"]._serialized_start = 6119
- _globals["_SNOWFLAKETABLE"]._serialized_end = 6204
- _globals["_WEBHOOKENDPOINT"]._serialized_start = 6207
- _globals["_WEBHOOKENDPOINT"]._serialized_end = 6336
- _globals["_KINESISSTREAM"]._serialized_start = 6339
- _globals["_KINESISSTREAM"]._serialized_end = 6550
- _globals["_REDSHIFTTABLE"]._serialized_start = 6552
- _globals["_REDSHIFTTABLE"]._serialized_end = 6636
- _globals["_PUBSUBTOPIC"]._serialized_start = 6639
- _globals["_PUBSUBTOPIC"]._serialized_end = 6773
- _globals["_HTTPPATH"]._serialized_start = 6776
- _globals["_HTTPPATH"]._serialized_end = 6995
- _globals["_HTTPPATH_HEADERSENTRY"]._serialized_start = 6939
- _globals["_HTTPPATH_HEADERSENTRY"]._serialized_end = 6985
- _globals["_EVAL"]._serialized_start = 6998
- _globals["_EVAL"]._serialized_end = 7156
- _globals["_PREPROCVALUE"]._serialized_start = 7159
- _globals["_PREPROCVALUE"]._serialized_end = 7290
- _globals["_MONGOCOLLECTION"]._serialized_start = 7292
- _globals["_MONGOCOLLECTION"]._serialized_end = 7383
- _globals["_SNAPSHOTDATA"]._serialized_start = 7385
- _globals["_SNAPSHOTDATA"]._serialized_end = 7435
- _globals["_INCREMENTAL"]._serialized_start = 7437
- _globals["_INCREMENTAL"]._serialized_end = 7450
- _globals["_RECREATE"]._serialized_start = 7452
- _globals["_RECREATE"]._serialized_end = 7462
- _globals["_STYLE"]._serialized_start = 7465
- _globals["_STYLE"]._serialized_end = 7653
- _globals["_SOURCE"]._serialized_start = 7656
- _globals["_SOURCE"]._serialized_end = 8589
- _globals["_SOURCE_PREPROCENTRY"]._serialized_start = 8414
- _globals["_SOURCE_PREPROCENTRY"]._serialized_end = 8498
- _globals["_SINK"]._serialized_start = 8592
- _globals["_SINK"]._serialized_end = 9086
- _globals["_SINK_RENAMESENTRY"]._serialized_start = 9004
- _globals["_SINK_RENAMESENTRY"]._serialized_end = 9050
+ DESCRIPTOR._loaded_options = None
+ _globals['_KAFKA'].fields_by_name['sasl_jaas_config']._loaded_options = None
+ _globals['_KAFKA'].fields_by_name['sasl_jaas_config']._serialized_options = b'\030\001'
+ _globals['_KAFKA'].fields_by_name['group_id']._loaded_options = None
+ _globals['_KAFKA'].fields_by_name['group_id']._serialized_options = b'\030\001'
+ _globals['_HTTPPATH_HEADERSENTRY']._loaded_options = None
+ _globals['_HTTPPATH_HEADERSENTRY']._serialized_options = b'8\001'
+ _globals['_SOURCE_PREPROCENTRY']._loaded_options = None
+ _globals['_SOURCE_PREPROCENTRY']._serialized_options = b'8\001'
+ _globals['_SINK_RENAMESENTRY']._loaded_options = None
+ _globals['_SINK_RENAMESENTRY']._serialized_options = b'8\001'
+ _globals['_CDCSTRATEGY']._serialized_start=9088
+ _globals['_CDCSTRATEGY']._serialized_end=9163
+ _globals['_EXTDATABASE']._serialized_start=207
+ _globals['_EXTDATABASE']._serialized_end=905
+ _globals['_SAMPLINGSTRATEGY']._serialized_start=907
+ _globals['_SAMPLINGSTRATEGY']._serialized_end=970
+ _globals['_PUBSUBFORMAT']._serialized_start=972
+ _globals['_PUBSUBFORMAT']._serialized_end=1049
+ _globals['_KAFKAFORMAT']._serialized_start=1052
+ _globals['_KAFKAFORMAT']._serialized_end=1240
+ _globals['_DEBEZIUMFORMAT']._serialized_start=1242
+ _globals['_DEBEZIUMFORMAT']._serialized_end=1258
+ _globals['_JSONFORMAT']._serialized_start=1260
+ _globals['_JSONFORMAT']._serialized_end=1272
+ _globals['_AVROFORMAT']._serialized_start=1274
+ _globals['_AVROFORMAT']._serialized_end=1357
+ _globals['_PROTOBUFFORMAT']._serialized_start=1359
+ _globals['_PROTOBUFFORMAT']._serialized_end=1446
+ _globals['_REFERENCE']._serialized_start=1449
+ _globals['_REFERENCE']._serialized_end=1671
+ _globals['_REFERENCE_EXTDBTYPE']._serialized_start=1524
+ _globals['_REFERENCE_EXTDBTYPE']._serialized_end=1671
+ _globals['_WEBHOOK']._serialized_start=1673
+ _globals['_WEBHOOK']._serialized_end=1742
+ _globals['_MYSQL']._serialized_start=1745
+ _globals['_MYSQL']._serialized_end=2013
+ _globals['_POSTGRES']._serialized_start=2016
+ _globals['_POSTGRES']._serialized_end=2287
+ _globals['_S3']._serialized_start=2290
+ _globals['_S3']._serialized_end=2594
+ _globals['_BIGQUERY']._serialized_start=2597
+ _globals['_BIGQUERY']._serialized_end=2779
+ _globals['_SNOWFLAKE']._serialized_start=2782
+ _globals['_SNOWFLAKE']._serialized_end=3071
+ _globals['_KAFKA']._serialized_start=3074
+ _globals['_KAFKA']._serialized_end=3451
+ _globals['_KINESIS']._serialized_start=3453
+ _globals['_KINESIS']._serialized_end=3480
+ _globals['_CREDENTIALS']._serialized_start=3483
+ _globals['_CREDENTIALS']._serialized_end=3694
+ _globals['_REDSHIFTAUTHENTICATION']._serialized_start=3696
+ _globals['_REDSHIFTAUTHENTICATION']._serialized_end=3821
+ _globals['_REDSHIFT']._serialized_start=3824
+ _globals['_REDSHIFT']._serialized_end=3977
+ _globals['_MONGO']._serialized_start=3980
+ _globals['_MONGO']._serialized_end=4213
+ _globals['_PUBSUB']._serialized_start=4216
+ _globals['_PUBSUB']._serialized_end=4376
+ _globals['_SENSITIVEDATUM']._serialized_start=4378
+ _globals['_SENSITIVEDATUM']._serialized_end=4493
+ _globals['_HTTP']._serialized_start=4496
+ _globals['_HTTP']._serialized_end=4680
+ _globals['_EXTTABLE']._serialized_start=4683
+ _globals['_EXTTABLE']._serialized_end=5442
+ _globals['_MYSQLTABLE']._serialized_start=5444
+ _globals['_MYSQLTABLE']._serialized_end=5525
+ _globals['_POSTGRESTABLE']._serialized_start=5527
+ _globals['_POSTGRESTABLE']._serialized_end=5649
+ _globals['_S3TABLE']._serialized_start=5652
+ _globals['_S3TABLE']._serialized_end=5899
+ _globals['_KAFKATOPIC']._serialized_start=5902
+ _globals['_KAFKATOPIC']._serialized_end=6031
+ _globals['_BIGQUERYTABLE']._serialized_start=6033
+ _globals['_BIGQUERYTABLE']._serialized_end=6117
+ _globals['_SNOWFLAKETABLE']._serialized_start=6119
+ _globals['_SNOWFLAKETABLE']._serialized_end=6204
+ _globals['_WEBHOOKENDPOINT']._serialized_start=6207
+ _globals['_WEBHOOKENDPOINT']._serialized_end=6336
+ _globals['_KINESISSTREAM']._serialized_start=6339
+ _globals['_KINESISSTREAM']._serialized_end=6550
+ _globals['_REDSHIFTTABLE']._serialized_start=6552
+ _globals['_REDSHIFTTABLE']._serialized_end=6636
+ _globals['_PUBSUBTOPIC']._serialized_start=6639
+ _globals['_PUBSUBTOPIC']._serialized_end=6773
+ _globals['_HTTPPATH']._serialized_start=6776
+ _globals['_HTTPPATH']._serialized_end=6995
+ _globals['_HTTPPATH_HEADERSENTRY']._serialized_start=6939
+ _globals['_HTTPPATH_HEADERSENTRY']._serialized_end=6985
+ _globals['_EVAL']._serialized_start=6998
+ _globals['_EVAL']._serialized_end=7156
+ _globals['_PREPROCVALUE']._serialized_start=7159
+ _globals['_PREPROCVALUE']._serialized_end=7290
+ _globals['_MONGOCOLLECTION']._serialized_start=7292
+ _globals['_MONGOCOLLECTION']._serialized_end=7383
+ _globals['_SNAPSHOTDATA']._serialized_start=7385
+ _globals['_SNAPSHOTDATA']._serialized_end=7435
+ _globals['_INCREMENTAL']._serialized_start=7437
+ _globals['_INCREMENTAL']._serialized_end=7450
+ _globals['_RECREATE']._serialized_start=7452
+ _globals['_RECREATE']._serialized_end=7462
+ _globals['_STYLE']._serialized_start=7465
+ _globals['_STYLE']._serialized_end=7653
+ _globals['_SOURCE']._serialized_start=7656
+ _globals['_SOURCE']._serialized_end=8589
+ _globals['_SOURCE_PREPROCENTRY']._serialized_start=8414
+ _globals['_SOURCE_PREPROCENTRY']._serialized_end=8498
+ _globals['_SINK']._serialized_start=8592
+ _globals['_SINK']._serialized_end=9086
+ _globals['_SINK_RENAMESENTRY']._serialized_start=9004
+ _globals['_SINK_RENAMESENTRY']._serialized_end=9050
# @@protoc_insertion_point(module_scope)
diff --git a/fennel/gen/connector_pb2.pyi b/fennel/gen/connector_pb2.pyi
index 551e7ed68..afb8fe074 100644
--- a/fennel/gen/connector_pb2.pyi
+++ b/fennel/gen/connector_pb2.pyi
@@ -11,7 +11,6 @@ database
4. Sink refers to a (table, dataset) along with some config
5. This whole module is called connector.
"""
-
import builtins
import collections.abc
import expression_pb2
@@ -40,12 +39,7 @@ class _CDCStrategy:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
-class _CDCStrategyEnumTypeWrapper(
- google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[
- _CDCStrategy.ValueType
- ],
- builtins.type,
-):
+class _CDCStrategyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CDCStrategy.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
Append: _CDCStrategy.ValueType # 0
Upsert: _CDCStrategy.ValueType # 1
@@ -95,7 +89,6 @@ class ExtDatabase(google.protobuf.message.Message):
"""When a source has already been created on the console
Or via code and is specified by name ONLY.
"""
-
@property
def s3(self) -> global___S3: ...
@property
@@ -134,94 +127,9 @@ class ExtDatabase(google.protobuf.message.Message):
pubsub: global___PubSub | None = ...,
http: global___Http | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "bigquery",
- b"bigquery",
- "http",
- b"http",
- "kafka",
- b"kafka",
- "kinesis",
- b"kinesis",
- "mongo",
- b"mongo",
- "mysql",
- b"mysql",
- "postgres",
- b"postgres",
- "pubsub",
- b"pubsub",
- "redshift",
- b"redshift",
- "reference",
- b"reference",
- "s3",
- b"s3",
- "snowflake",
- b"snowflake",
- "variant",
- b"variant",
- "webhook",
- b"webhook",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "bigquery",
- b"bigquery",
- "http",
- b"http",
- "kafka",
- b"kafka",
- "kinesis",
- b"kinesis",
- "mongo",
- b"mongo",
- "mysql",
- b"mysql",
- "name",
- b"name",
- "postgres",
- b"postgres",
- "pubsub",
- b"pubsub",
- "redshift",
- b"redshift",
- "reference",
- b"reference",
- "s3",
- b"s3",
- "snowflake",
- b"snowflake",
- "variant",
- b"variant",
- "webhook",
- b"webhook",
- ],
- ) -> None: ...
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["variant", b"variant"]
- ) -> (
- typing_extensions.Literal[
- "mysql",
- "postgres",
- "reference",
- "s3",
- "bigquery",
- "snowflake",
- "kafka",
- "webhook",
- "kinesis",
- "redshift",
- "mongo",
- "pubsub",
- "http",
- ]
- | None
- ): ...
+ def HasField(self, field_name: typing_extensions.Literal["bigquery", b"bigquery", "http", b"http", "kafka", b"kafka", "kinesis", b"kinesis", "mongo", b"mongo", "mysql", b"mysql", "postgres", b"postgres", "pubsub", b"pubsub", "redshift", b"redshift", "reference", b"reference", "s3", b"s3", "snowflake", b"snowflake", "variant", b"variant", "webhook", b"webhook"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["bigquery", b"bigquery", "http", b"http", "kafka", b"kafka", "kinesis", b"kinesis", "mongo", b"mongo", "mysql", b"mysql", "name", b"name", "postgres", b"postgres", "pubsub", b"pubsub", "redshift", b"redshift", "reference", b"reference", "s3", b"s3", "snowflake", b"snowflake", "variant", b"variant", "webhook", b"webhook"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["variant", b"variant"]) -> typing_extensions.Literal["mysql", "postgres", "reference", "s3", "bigquery", "snowflake", "kafka", "webhook", "kinesis", "redshift", "mongo", "pubsub", "http"] | None: ...
global___ExtDatabase = ExtDatabase
@@ -233,25 +141,15 @@ class SamplingStrategy(google.protobuf.message.Message):
COLUMNS_USED_FIELD_NUMBER: builtins.int
sampling_rate: builtins.float
@property
- def columns_used(
- self,
- ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[
- builtins.str
- ]:
+ def columns_used(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
"""columns_used is a list of columns used for sampling"""
-
def __init__(
self,
*,
sampling_rate: builtins.float = ...,
columns_used: collections.abc.Iterable[builtins.str] | None = ...,
) -> None: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "columns_used", b"columns_used", "sampling_rate", b"sampling_rate"
- ],
- ) -> None: ...
+ def ClearField(self, field_name: typing_extensions.Literal["columns_used", b"columns_used", "sampling_rate", b"sampling_rate"]) -> None: ...
global___SamplingStrategy = SamplingStrategy
@@ -267,21 +165,9 @@ class PubSubFormat(google.protobuf.message.Message):
*,
json: global___JsonFormat | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "json", b"json", "variant", b"variant"
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "json", b"json", "variant", b"variant"
- ],
- ) -> None: ...
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["variant", b"variant"]
- ) -> typing_extensions.Literal["json"] | None: ...
+ def HasField(self, field_name: typing_extensions.Literal["json", b"json", "variant", b"variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["json", b"json", "variant", b"variant"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["variant", b"variant"]) -> typing_extensions.Literal["json"] | None: ...
global___PubSubFormat = PubSubFormat
@@ -305,35 +191,9 @@ class KafkaFormat(google.protobuf.message.Message):
avro: global___AvroFormat | None = ...,
protobuf: global___ProtobufFormat | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "avro",
- b"avro",
- "json",
- b"json",
- "protobuf",
- b"protobuf",
- "variant",
- b"variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "avro",
- b"avro",
- "json",
- b"json",
- "protobuf",
- b"protobuf",
- "variant",
- b"variant",
- ],
- ) -> None: ...
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["variant", b"variant"]
- ) -> typing_extensions.Literal["json", "avro", "protobuf"] | None: ...
+ def HasField(self, field_name: typing_extensions.Literal["avro", b"avro", "json", b"json", "protobuf", b"protobuf", "variant", b"variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["avro", b"avro", "json", b"json", "protobuf", b"protobuf", "variant", b"variant"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["variant", b"variant"]) -> typing_extensions.Literal["json", "avro", "protobuf"] | None: ...
global___KafkaFormat = KafkaFormat
@@ -369,18 +229,8 @@ class AvroFormat(google.protobuf.message.Message):
*,
schema_registry: schema_registry_pb2.SchemaRegistry | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "schema_registry", b"schema_registry"
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "schema_registry", b"schema_registry"
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["schema_registry", b"schema_registry"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["schema_registry", b"schema_registry"]) -> None: ...
global___AvroFormat = AvroFormat
@@ -396,18 +246,8 @@ class ProtobufFormat(google.protobuf.message.Message):
*,
schema_registry: schema_registry_pb2.SchemaRegistry | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "schema_registry", b"schema_registry"
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "schema_registry", b"schema_registry"
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["schema_registry", b"schema_registry"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["schema_registry", b"schema_registry"]) -> None: ...
global___ProtobufFormat = ProtobufFormat
@@ -419,12 +259,7 @@ class Reference(google.protobuf.message.Message):
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
- class _ExtDBTypeEnumTypeWrapper(
- google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[
- Reference._ExtDBType.ValueType
- ],
- builtins.type,
- ): # noqa: F821
+ class _ExtDBTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Reference._ExtDBType.ValueType], builtins.type): # noqa: F821
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
MYSQL: Reference._ExtDBType.ValueType # 0
POSTGRES: Reference._ExtDBType.ValueType # 1
@@ -458,9 +293,7 @@ class Reference(google.protobuf.message.Message):
*,
dbtype: global___Reference.ExtDBType.ValueType = ...,
) -> None: ...
- def ClearField(
- self, field_name: typing_extensions.Literal["dbtype", b"dbtype"]
- ) -> None: ...
+ def ClearField(self, field_name: typing_extensions.Literal["dbtype", b"dbtype"]) -> None: ...
global___Reference = Reference
@@ -479,15 +312,8 @@ class Webhook(google.protobuf.message.Message):
name: builtins.str = ...,
retention: google.protobuf.duration_pb2.Duration | None = ...,
) -> None: ...
- def HasField(
- self, field_name: typing_extensions.Literal["retention", b"retention"]
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "name", b"name", "retention", b"retention"
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["retention", b"retention"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "retention", b"retention"]) -> None: ...
global___Webhook = Webhook
@@ -526,62 +352,12 @@ class MySQL(google.protobuf.message.Message):
port: builtins.int = ...,
jdbc_params: builtins.str = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "password",
- b"password",
- "password_secret",
- b"password_secret",
- "password_variant",
- b"password_variant",
- "user",
- b"user",
- "username_secret",
- b"username_secret",
- "username_variant",
- b"username_variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "database",
- b"database",
- "host",
- b"host",
- "jdbc_params",
- b"jdbc_params",
- "password",
- b"password",
- "password_secret",
- b"password_secret",
- "password_variant",
- b"password_variant",
- "port",
- b"port",
- "user",
- b"user",
- "username_secret",
- b"username_secret",
- "username_variant",
- b"username_variant",
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["password", b"password", "password_secret", b"password_secret", "password_variant", b"password_variant", "user", b"user", "username_secret", b"username_secret", "username_variant", b"username_variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["database", b"database", "host", b"host", "jdbc_params", b"jdbc_params", "password", b"password", "password_secret", b"password_secret", "password_variant", b"password_variant", "port", b"port", "user", b"user", "username_secret", b"username_secret", "username_variant", b"username_variant"]) -> None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "password_variant", b"password_variant"
- ],
- ) -> typing_extensions.Literal["password", "password_secret"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["password_variant", b"password_variant"]) -> typing_extensions.Literal["password", "password_secret"] | None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "username_variant", b"username_variant"
- ],
- ) -> typing_extensions.Literal["user", "username_secret"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["username_variant", b"username_variant"]) -> typing_extensions.Literal["user", "username_secret"] | None: ...
global___MySQL = MySQL
@@ -620,62 +396,12 @@ class Postgres(google.protobuf.message.Message):
port: builtins.int = ...,
jdbc_params: builtins.str = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "password",
- b"password",
- "password_secret",
- b"password_secret",
- "password_variant",
- b"password_variant",
- "user",
- b"user",
- "username_secret",
- b"username_secret",
- "username_variant",
- b"username_variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "database",
- b"database",
- "host",
- b"host",
- "jdbc_params",
- b"jdbc_params",
- "password",
- b"password",
- "password_secret",
- b"password_secret",
- "password_variant",
- b"password_variant",
- "port",
- b"port",
- "user",
- b"user",
- "username_secret",
- b"username_secret",
- "username_variant",
- b"username_variant",
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["password", b"password", "password_secret", b"password_secret", "password_variant", b"password_variant", "user", b"user", "username_secret", b"username_secret", "username_variant", b"username_variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["database", b"database", "host", b"host", "jdbc_params", b"jdbc_params", "password", b"password", "password_secret", b"password_secret", "password_variant", b"password_variant", "port", b"port", "user", b"user", "username_secret", b"username_secret", "username_variant", b"username_variant"]) -> None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "password_variant", b"password_variant"
- ],
- ) -> typing_extensions.Literal["password", "password_secret"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["password_variant", b"password_variant"]) -> typing_extensions.Literal["password", "password_secret"] | None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "username_variant", b"username_variant"
- ],
- ) -> typing_extensions.Literal["user", "username_secret"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["username_variant", b"username_variant"]) -> typing_extensions.Literal["user", "username_secret"] | None: ...
global___Postgres = Postgres
@@ -705,76 +431,14 @@ class S3(google.protobuf.message.Message):
aws_access_key_id_secret: secret_pb2.SecretRef | None = ...,
role_arn: builtins.str | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "_role_arn",
- b"_role_arn",
- "aws_access_key_id",
- b"aws_access_key_id",
- "aws_access_key_id_secret",
- b"aws_access_key_id_secret",
- "aws_access_key_id_variant",
- b"aws_access_key_id_variant",
- "aws_secret_access_key",
- b"aws_secret_access_key",
- "aws_secret_access_key_secret",
- b"aws_secret_access_key_secret",
- "aws_secret_access_key_variant",
- b"aws_secret_access_key_variant",
- "role_arn",
- b"role_arn",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "_role_arn",
- b"_role_arn",
- "aws_access_key_id",
- b"aws_access_key_id",
- "aws_access_key_id_secret",
- b"aws_access_key_id_secret",
- "aws_access_key_id_variant",
- b"aws_access_key_id_variant",
- "aws_secret_access_key",
- b"aws_secret_access_key",
- "aws_secret_access_key_secret",
- b"aws_secret_access_key_secret",
- "aws_secret_access_key_variant",
- b"aws_secret_access_key_variant",
- "role_arn",
- b"role_arn",
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["_role_arn", b"_role_arn", "aws_access_key_id", b"aws_access_key_id", "aws_access_key_id_secret", b"aws_access_key_id_secret", "aws_access_key_id_variant", b"aws_access_key_id_variant", "aws_secret_access_key", b"aws_secret_access_key", "aws_secret_access_key_secret", b"aws_secret_access_key_secret", "aws_secret_access_key_variant", b"aws_secret_access_key_variant", "role_arn", b"role_arn"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["_role_arn", b"_role_arn", "aws_access_key_id", b"aws_access_key_id", "aws_access_key_id_secret", b"aws_access_key_id_secret", "aws_access_key_id_variant", b"aws_access_key_id_variant", "aws_secret_access_key", b"aws_secret_access_key", "aws_secret_access_key_secret", b"aws_secret_access_key_secret", "aws_secret_access_key_variant", b"aws_secret_access_key_variant", "role_arn", b"role_arn"]) -> None: ...
@typing.overload
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["_role_arn", b"_role_arn"]
- ) -> typing_extensions.Literal["role_arn"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_role_arn", b"_role_arn"]) -> typing_extensions.Literal["role_arn"] | None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "aws_access_key_id_variant", b"aws_access_key_id_variant"
- ],
- ) -> (
- typing_extensions.Literal[
- "aws_access_key_id", "aws_access_key_id_secret"
- ]
- | None
- ): ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["aws_access_key_id_variant", b"aws_access_key_id_variant"]) -> typing_extensions.Literal["aws_access_key_id", "aws_access_key_id_secret"] | None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "aws_secret_access_key_variant", b"aws_secret_access_key_variant"
- ],
- ) -> (
- typing_extensions.Literal[
- "aws_secret_access_key", "aws_secret_access_key_secret"
- ]
- | None
- ): ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["aws_secret_access_key_variant", b"aws_secret_access_key_variant"]) -> typing_extensions.Literal["aws_secret_access_key", "aws_secret_access_key_secret"] | None: ...
global___S3 = S3
@@ -800,43 +464,9 @@ class Bigquery(google.protobuf.message.Message):
dataset_id: builtins.str = ...,
project_id: builtins.str = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "service_account_key",
- b"service_account_key",
- "service_account_key_secret",
- b"service_account_key_secret",
- "service_account_key_variant",
- b"service_account_key_variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "dataset_id",
- b"dataset_id",
- "project_id",
- b"project_id",
- "service_account_key",
- b"service_account_key",
- "service_account_key_secret",
- b"service_account_key_secret",
- "service_account_key_variant",
- b"service_account_key_variant",
- ],
- ) -> None: ...
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "service_account_key_variant", b"service_account_key_variant"
- ],
- ) -> (
- typing_extensions.Literal[
- "service_account_key", "service_account_key_secret"
- ]
- | None
- ): ...
+ def HasField(self, field_name: typing_extensions.Literal["service_account_key", b"service_account_key", "service_account_key_secret", b"service_account_key_secret", "service_account_key_variant", b"service_account_key_variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["dataset_id", b"dataset_id", "project_id", b"project_id", "service_account_key", b"service_account_key", "service_account_key_secret", b"service_account_key_secret", "service_account_key_variant", b"service_account_key_variant"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["service_account_key_variant", b"service_account_key_variant"]) -> typing_extensions.Literal["service_account_key", "service_account_key_secret"] | None: ...
global___Bigquery = Bigquery
@@ -878,64 +508,12 @@ class Snowflake(google.protobuf.message.Message):
role: builtins.str = ...,
database: builtins.str = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "password",
- b"password",
- "password_secret",
- b"password_secret",
- "password_variant",
- b"password_variant",
- "user",
- b"user",
- "username_secret",
- b"username_secret",
- "username_variant",
- b"username_variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "account",
- b"account",
- "database",
- b"database",
- "password",
- b"password",
- "password_secret",
- b"password_secret",
- "password_variant",
- b"password_variant",
- "role",
- b"role",
- "schema",
- b"schema",
- "user",
- b"user",
- "username_secret",
- b"username_secret",
- "username_variant",
- b"username_variant",
- "warehouse",
- b"warehouse",
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["password", b"password", "password_secret", b"password_secret", "password_variant", b"password_variant", "user", b"user", "username_secret", b"username_secret", "username_variant", b"username_variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["account", b"account", "database", b"database", "password", b"password", "password_secret", b"password_secret", "password_variant", b"password_variant", "role", b"role", "schema", b"schema", "user", b"user", "username_secret", b"username_secret", "username_variant", b"username_variant", "warehouse", b"warehouse"]) -> None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "password_variant", b"password_variant"
- ],
- ) -> typing_extensions.Literal["password", "password_secret"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["password_variant", b"password_variant"]) -> typing_extensions.Literal["password", "password_secret"] | None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "username_variant", b"username_variant"
- ],
- ) -> typing_extensions.Literal["user", "username_secret"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["username_variant", b"username_variant"]) -> typing_extensions.Literal["user", "username_secret"] | None: ...
global___Snowflake = Snowflake
@@ -977,70 +555,12 @@ class Kafka(google.protobuf.message.Message):
sasl_jaas_config: builtins.str = ...,
group_id: builtins.str = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "sasl_password_secret",
- b"sasl_password_secret",
- "sasl_password_variant",
- b"sasl_password_variant",
- "sasl_plain_password",
- b"sasl_plain_password",
- "sasl_plain_username",
- b"sasl_plain_username",
- "sasl_username_secret",
- b"sasl_username_secret",
- "sasl_username_variant",
- b"sasl_username_variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "bootstrap_servers",
- b"bootstrap_servers",
- "group_id",
- b"group_id",
- "sasl_jaas_config",
- b"sasl_jaas_config",
- "sasl_mechanism",
- b"sasl_mechanism",
- "sasl_password_secret",
- b"sasl_password_secret",
- "sasl_password_variant",
- b"sasl_password_variant",
- "sasl_plain_password",
- b"sasl_plain_password",
- "sasl_plain_username",
- b"sasl_plain_username",
- "sasl_username_secret",
- b"sasl_username_secret",
- "sasl_username_variant",
- b"sasl_username_variant",
- "security_protocol",
- b"security_protocol",
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["sasl_password_secret", b"sasl_password_secret", "sasl_password_variant", b"sasl_password_variant", "sasl_plain_password", b"sasl_plain_password", "sasl_plain_username", b"sasl_plain_username", "sasl_username_secret", b"sasl_username_secret", "sasl_username_variant", b"sasl_username_variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["bootstrap_servers", b"bootstrap_servers", "group_id", b"group_id", "sasl_jaas_config", b"sasl_jaas_config", "sasl_mechanism", b"sasl_mechanism", "sasl_password_secret", b"sasl_password_secret", "sasl_password_variant", b"sasl_password_variant", "sasl_plain_password", b"sasl_plain_password", "sasl_plain_username", b"sasl_plain_username", "sasl_username_secret", b"sasl_username_secret", "sasl_username_variant", b"sasl_username_variant", "security_protocol", b"security_protocol"]) -> None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "sasl_password_variant", b"sasl_password_variant"
- ],
- ) -> (
- typing_extensions.Literal["sasl_plain_password", "sasl_password_secret"]
- | None
- ): ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["sasl_password_variant", b"sasl_password_variant"]) -> typing_extensions.Literal["sasl_plain_password", "sasl_password_secret"] | None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "sasl_username_variant", b"sasl_username_variant"
- ],
- ) -> (
- typing_extensions.Literal["sasl_plain_username", "sasl_username_secret"]
- | None
- ): ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["sasl_username_variant", b"sasl_username_variant"]) -> typing_extensions.Literal["sasl_plain_username", "sasl_username_secret"] | None: ...
global___Kafka = Kafka
@@ -1055,9 +575,7 @@ class Kinesis(google.protobuf.message.Message):
*,
role_arn: builtins.str = ...,
) -> None: ...
- def ClearField(
- self, field_name: typing_extensions.Literal["role_arn", b"role_arn"]
- ) -> None: ...
+ def ClearField(self, field_name: typing_extensions.Literal["role_arn", b"role_arn"]) -> None: ...
global___Kinesis = Kinesis
@@ -1085,54 +603,12 @@ class Credentials(google.protobuf.message.Message):
password: builtins.str = ...,
password_secret: secret_pb2.SecretRef | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "password",
- b"password",
- "password_secret",
- b"password_secret",
- "password_variant",
- b"password_variant",
- "username",
- b"username",
- "username_secret",
- b"username_secret",
- "username_variant",
- b"username_variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "password",
- b"password",
- "password_secret",
- b"password_secret",
- "password_variant",
- b"password_variant",
- "username",
- b"username",
- "username_secret",
- b"username_secret",
- "username_variant",
- b"username_variant",
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["password", b"password", "password_secret", b"password_secret", "password_variant", b"password_variant", "username", b"username", "username_secret", b"username_secret", "username_variant", b"username_variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["password", b"password", "password_secret", b"password_secret", "password_variant", b"password_variant", "username", b"username", "username_secret", b"username_secret", "username_variant", b"username_variant"]) -> None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "password_variant", b"password_variant"
- ],
- ) -> typing_extensions.Literal["password", "password_secret"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["password_variant", b"password_variant"]) -> typing_extensions.Literal["password", "password_secret"] | None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "username_variant", b"username_variant"
- ],
- ) -> typing_extensions.Literal["username", "username_secret"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["username_variant", b"username_variant"]) -> typing_extensions.Literal["username", "username_secret"] | None: ...
global___Credentials = Credentials
@@ -1151,33 +627,9 @@ class RedshiftAuthentication(google.protobuf.message.Message):
s3_access_role_arn: builtins.str = ...,
credentials: global___Credentials | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "credentials",
- b"credentials",
- "s3_access_role_arn",
- b"s3_access_role_arn",
- "variant",
- b"variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "credentials",
- b"credentials",
- "s3_access_role_arn",
- b"s3_access_role_arn",
- "variant",
- b"variant",
- ],
- ) -> None: ...
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["variant", b"variant"]
- ) -> (
- typing_extensions.Literal["s3_access_role_arn", "credentials"] | None
- ): ...
+ def HasField(self, field_name: typing_extensions.Literal["credentials", b"credentials", "s3_access_role_arn", b"s3_access_role_arn", "variant", b"variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["credentials", b"credentials", "s3_access_role_arn", b"s3_access_role_arn", "variant", b"variant"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["variant", b"variant"]) -> typing_extensions.Literal["s3_access_role_arn", "credentials"] | None: ...
global___RedshiftAuthentication = RedshiftAuthentication
@@ -1205,27 +657,8 @@ class Redshift(google.protobuf.message.Message):
schema: builtins.str = ...,
redshift_authentication: global___RedshiftAuthentication | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "redshift_authentication", b"redshift_authentication"
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "database",
- b"database",
- "host",
- b"host",
- "port",
- b"port",
- "redshift_authentication",
- b"redshift_authentication",
- "schema",
- b"schema",
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["redshift_authentication", b"redshift_authentication"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["database", b"database", "host", b"host", "port", b"port", "redshift_authentication", b"redshift_authentication", "schema", b"schema"]) -> None: ...
global___Redshift = Redshift
@@ -1258,58 +691,12 @@ class Mongo(google.protobuf.message.Message):
host: builtins.str = ...,
database: builtins.str = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "password",
- b"password",
- "password_secret",
- b"password_secret",
- "password_variant",
- b"password_variant",
- "user",
- b"user",
- "username_secret",
- b"username_secret",
- "username_variant",
- b"username_variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "database",
- b"database",
- "host",
- b"host",
- "password",
- b"password",
- "password_secret",
- b"password_secret",
- "password_variant",
- b"password_variant",
- "user",
- b"user",
- "username_secret",
- b"username_secret",
- "username_variant",
- b"username_variant",
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["password", b"password", "password_secret", b"password_secret", "password_variant", b"password_variant", "user", b"user", "username_secret", b"username_secret", "username_variant", b"username_variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["database", b"database", "host", b"host", "password", b"password", "password_secret", b"password_secret", "password_variant", b"password_variant", "user", b"user", "username_secret", b"username_secret", "username_variant", b"username_variant"]) -> None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "password_variant", b"password_variant"
- ],
- ) -> typing_extensions.Literal["password", "password_secret"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["password_variant", b"password_variant"]) -> typing_extensions.Literal["password", "password_secret"] | None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "username_variant", b"username_variant"
- ],
- ) -> typing_extensions.Literal["user", "username_secret"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["username_variant", b"username_variant"]) -> typing_extensions.Literal["user", "username_secret"] | None: ...
global___Mongo = Mongo
@@ -1332,41 +719,9 @@ class PubSub(google.protobuf.message.Message):
service_account_key_secret: secret_pb2.SecretRef | None = ...,
project_id: builtins.str = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "service_account_key",
- b"service_account_key",
- "service_account_key_secret",
- b"service_account_key_secret",
- "service_account_key_variant",
- b"service_account_key_variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "project_id",
- b"project_id",
- "service_account_key",
- b"service_account_key",
- "service_account_key_secret",
- b"service_account_key_secret",
- "service_account_key_variant",
- b"service_account_key_variant",
- ],
- ) -> None: ...
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "service_account_key_variant", b"service_account_key_variant"
- ],
- ) -> (
- typing_extensions.Literal[
- "service_account_key", "service_account_key_secret"
- ]
- | None
- ): ...
+ def HasField(self, field_name: typing_extensions.Literal["service_account_key", b"service_account_key", "service_account_key_secret", b"service_account_key_secret", "service_account_key_variant", b"service_account_key_variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["project_id", b"project_id", "service_account_key", b"service_account_key", "service_account_key_secret", b"service_account_key_secret", "service_account_key_variant", b"service_account_key_variant"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["service_account_key_variant", b"service_account_key_variant"]) -> typing_extensions.Literal["service_account_key", "service_account_key_secret"] | None: ...
global___PubSub = PubSub
@@ -1385,34 +740,9 @@ class SensitiveDatum(google.protobuf.message.Message):
secret: builtins.str = ...,
secret_ref: secret_pb2.SecretRef | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "secret",
- b"secret",
- "secret_ref",
- b"secret_ref",
- "sensitive_datum_variant",
- b"sensitive_datum_variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "secret",
- b"secret",
- "secret_ref",
- b"secret_ref",
- "sensitive_datum_variant",
- b"sensitive_datum_variant",
- ],
- ) -> None: ...
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "sensitive_datum_variant", b"sensitive_datum_variant"
- ],
- ) -> typing_extensions.Literal["secret", "secret_ref"] | None: ...
+ def HasField(self, field_name: typing_extensions.Literal["secret", b"secret", "secret_ref", b"secret_ref", "sensitive_datum_variant", b"sensitive_datum_variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["secret", b"secret", "secret_ref", b"secret_ref", "sensitive_datum_variant", b"sensitive_datum_variant"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["sensitive_datum_variant", b"sensitive_datum_variant"]) -> typing_extensions.Literal["secret", "secret_ref"] | None: ...
global___SensitiveDatum = SensitiveDatum
@@ -1433,7 +763,6 @@ class Http(google.protobuf.message.Message):
"""Making this optional for now since local testing doesn't require it
Next id: 5
"""
-
def __init__(
self,
*,
@@ -1442,47 +771,12 @@ class Http(google.protobuf.message.Message):
healthz: builtins.str = ...,
ca_cert: global___SensitiveDatum | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "_ca_cert",
- b"_ca_cert",
- "ca_cert",
- b"ca_cert",
- "host",
- b"host",
- "host_secret",
- b"host_secret",
- "host_variant",
- b"host_variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "_ca_cert",
- b"_ca_cert",
- "ca_cert",
- b"ca_cert",
- "healthz",
- b"healthz",
- "host",
- b"host",
- "host_secret",
- b"host_secret",
- "host_variant",
- b"host_variant",
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["_ca_cert", b"_ca_cert", "ca_cert", b"ca_cert", "host", b"host", "host_secret", b"host_secret", "host_variant", b"host_variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["_ca_cert", b"_ca_cert", "ca_cert", b"ca_cert", "healthz", b"healthz", "host", b"host", "host_secret", b"host_secret", "host_variant", b"host_variant"]) -> None: ...
@typing.overload
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["_ca_cert", b"_ca_cert"]
- ) -> typing_extensions.Literal["ca_cert"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_ca_cert", b"_ca_cert"]) -> typing_extensions.Literal["ca_cert"] | None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal["host_variant", b"host_variant"],
- ) -> typing_extensions.Literal["host", "host_secret"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["host_variant", b"host_variant"]) -> typing_extensions.Literal["host", "host_secret"] | None: ...
global___Http = Http
@@ -1547,87 +841,9 @@ class ExtTable(google.protobuf.message.Message):
pubsub_topic: global___PubSubTopic | None = ...,
http_path: global___HttpPath | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "bigquery_table",
- b"bigquery_table",
- "endpoint",
- b"endpoint",
- "http_path",
- b"http_path",
- "kafka_topic",
- b"kafka_topic",
- "kinesis_stream",
- b"kinesis_stream",
- "mongo_collection",
- b"mongo_collection",
- "mysql_table",
- b"mysql_table",
- "pg_table",
- b"pg_table",
- "pubsub_topic",
- b"pubsub_topic",
- "redshift_table",
- b"redshift_table",
- "s3_table",
- b"s3_table",
- "snowflake_table",
- b"snowflake_table",
- "variant",
- b"variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "bigquery_table",
- b"bigquery_table",
- "endpoint",
- b"endpoint",
- "http_path",
- b"http_path",
- "kafka_topic",
- b"kafka_topic",
- "kinesis_stream",
- b"kinesis_stream",
- "mongo_collection",
- b"mongo_collection",
- "mysql_table",
- b"mysql_table",
- "pg_table",
- b"pg_table",
- "pubsub_topic",
- b"pubsub_topic",
- "redshift_table",
- b"redshift_table",
- "s3_table",
- b"s3_table",
- "snowflake_table",
- b"snowflake_table",
- "variant",
- b"variant",
- ],
- ) -> None: ...
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["variant", b"variant"]
- ) -> (
- typing_extensions.Literal[
- "mysql_table",
- "pg_table",
- "s3_table",
- "kafka_topic",
- "snowflake_table",
- "bigquery_table",
- "endpoint",
- "kinesis_stream",
- "redshift_table",
- "mongo_collection",
- "pubsub_topic",
- "http_path",
- ]
- | None
- ): ...
+ def HasField(self, field_name: typing_extensions.Literal["bigquery_table", b"bigquery_table", "endpoint", b"endpoint", "http_path", b"http_path", "kafka_topic", b"kafka_topic", "kinesis_stream", b"kinesis_stream", "mongo_collection", b"mongo_collection", "mysql_table", b"mysql_table", "pg_table", b"pg_table", "pubsub_topic", b"pubsub_topic", "redshift_table", b"redshift_table", "s3_table", b"s3_table", "snowflake_table", b"snowflake_table", "variant", b"variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["bigquery_table", b"bigquery_table", "endpoint", b"endpoint", "http_path", b"http_path", "kafka_topic", b"kafka_topic", "kinesis_stream", b"kinesis_stream", "mongo_collection", b"mongo_collection", "mysql_table", b"mysql_table", "pg_table", b"pg_table", "pubsub_topic", b"pubsub_topic", "redshift_table", b"redshift_table", "s3_table", b"s3_table", "snowflake_table", b"snowflake_table", "variant", b"variant"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["variant", b"variant"]) -> typing_extensions.Literal["mysql_table", "pg_table", "s3_table", "kafka_topic", "snowflake_table", "bigquery_table", "endpoint", "kinesis_stream", "redshift_table", "mongo_collection", "pubsub_topic", "http_path"] | None: ...
global___ExtTable = ExtTable
@@ -1646,15 +862,8 @@ class MySQLTable(google.protobuf.message.Message):
db: global___ExtDatabase | None = ...,
table_name: builtins.str = ...,
) -> None: ...
- def HasField(
- self, field_name: typing_extensions.Literal["db", b"db"]
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "db", b"db", "table_name", b"table_name"
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["db", b"db"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["db", b"db", "table_name", b"table_name"]) -> None: ...
global___MySQLTable = MySQLTable
@@ -1676,29 +885,9 @@ class PostgresTable(google.protobuf.message.Message):
table_name: builtins.str = ...,
slot_name: builtins.str | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "_slot_name", b"_slot_name", "db", b"db", "slot_name", b"slot_name"
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "_slot_name",
- b"_slot_name",
- "db",
- b"db",
- "slot_name",
- b"slot_name",
- "table_name",
- b"table_name",
- ],
- ) -> None: ...
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal["_slot_name", b"_slot_name"],
- ) -> typing_extensions.Literal["slot_name"] | None: ...
+ def HasField(self, field_name: typing_extensions.Literal["_slot_name", b"_slot_name", "db", b"db", "slot_name", b"slot_name"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["_slot_name", b"_slot_name", "db", b"db", "slot_name", b"slot_name", "table_name", b"table_name"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_slot_name", b"_slot_name"]) -> typing_extensions.Literal["slot_name"] | None: ...
global___PostgresTable = PostgresTable
@@ -1726,11 +915,7 @@ class S3Table(google.protobuf.message.Message):
@property
def spread(self) -> google.protobuf.duration_pb2.Duration: ...
@property
- def headers(
- self,
- ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[
- builtins.str
- ]: ...
+ def headers(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
def __init__(
self,
*,
@@ -1744,40 +929,9 @@ class S3Table(google.protobuf.message.Message):
spread: google.protobuf.duration_pb2.Duration | None = ...,
headers: collections.abc.Iterable[builtins.str] | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "_spread", b"_spread", "db", b"db", "spread", b"spread"
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "_spread",
- b"_spread",
- "bucket",
- b"bucket",
- "db",
- b"db",
- "delimiter",
- b"delimiter",
- "format",
- b"format",
- "headers",
- b"headers",
- "path_prefix",
- b"path_prefix",
- "path_suffix",
- b"path_suffix",
- "pre_sorted",
- b"pre_sorted",
- "spread",
- b"spread",
- ],
- ) -> None: ...
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["_spread", b"_spread"]
- ) -> typing_extensions.Literal["spread"] | None: ...
+ def HasField(self, field_name: typing_extensions.Literal["_spread", b"_spread", "db", b"db", "spread", b"spread"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["_spread", b"_spread", "bucket", b"bucket", "db", b"db", "delimiter", b"delimiter", "format", b"format", "headers", b"headers", "path_prefix", b"path_prefix", "path_suffix", b"path_suffix", "pre_sorted", b"pre_sorted", "spread", b"spread"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_spread", b"_spread"]) -> typing_extensions.Literal["spread"] | None: ...
global___S3Table = S3Table
@@ -1800,16 +954,8 @@ class KafkaTopic(google.protobuf.message.Message):
topic: builtins.str = ...,
format: global___KafkaFormat | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal["db", b"db", "format", b"format"],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "db", b"db", "format", b"format", "topic", b"topic"
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["db", b"db", "format", b"format"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["db", b"db", "format", b"format", "topic", b"topic"]) -> None: ...
global___KafkaTopic = KafkaTopic
@@ -1828,15 +974,8 @@ class BigqueryTable(google.protobuf.message.Message):
db: global___ExtDatabase | None = ...,
table_name: builtins.str = ...,
) -> None: ...
- def HasField(
- self, field_name: typing_extensions.Literal["db", b"db"]
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "db", b"db", "table_name", b"table_name"
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["db", b"db"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["db", b"db", "table_name", b"table_name"]) -> None: ...
global___BigqueryTable = BigqueryTable
@@ -1855,15 +994,8 @@ class SnowflakeTable(google.protobuf.message.Message):
db: global___ExtDatabase | None = ...,
table_name: builtins.str = ...,
) -> None: ...
- def HasField(
- self, field_name: typing_extensions.Literal["db", b"db"]
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "db", b"db", "table_name", b"table_name"
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["db", b"db"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["db", b"db", "table_name", b"table_name"]) -> None: ...
global___SnowflakeTable = SnowflakeTable
@@ -1886,18 +1018,8 @@ class WebhookEndpoint(google.protobuf.message.Message):
endpoint: builtins.str = ...,
duration: google.protobuf.duration_pb2.Duration | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "db", b"db", "duration", b"duration"
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "db", b"db", "duration", b"duration", "endpoint", b"endpoint"
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["db", b"db", "duration", b"duration"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["db", b"db", "duration", b"duration", "endpoint", b"endpoint"]) -> None: ...
global___WebhookEndpoint = WebhookEndpoint
@@ -1926,27 +1048,8 @@ class KinesisStream(google.protobuf.message.Message):
format: builtins.str = ...,
db: global___ExtDatabase | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "db", b"db", "init_timestamp", b"init_timestamp"
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "db",
- b"db",
- "format",
- b"format",
- "init_position",
- b"init_position",
- "init_timestamp",
- b"init_timestamp",
- "stream_arn",
- b"stream_arn",
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["db", b"db", "init_timestamp", b"init_timestamp"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["db", b"db", "format", b"format", "init_position", b"init_position", "init_timestamp", b"init_timestamp", "stream_arn", b"stream_arn"]) -> None: ...
global___KinesisStream = KinesisStream
@@ -1965,15 +1068,8 @@ class RedshiftTable(google.protobuf.message.Message):
db: global___ExtDatabase | None = ...,
table_name: builtins.str = ...,
) -> None: ...
- def HasField(
- self, field_name: typing_extensions.Literal["db", b"db"]
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "db", b"db", "table_name", b"table_name"
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["db", b"db"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["db", b"db", "table_name", b"table_name"]) -> None: ...
global___RedshiftTable = RedshiftTable
@@ -1996,16 +1092,8 @@ class PubSubTopic(google.protobuf.message.Message):
topic_id: builtins.str = ...,
format: global___PubSubFormat | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal["db", b"db", "format", b"format"],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "db", b"db", "format", b"format", "topic_id", b"topic_id"
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["db", b"db", "format", b"format"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["db", b"db", "format", b"format", "topic_id", b"topic_id"]) -> None: ...
global___PubSubTopic = PubSubTopic
@@ -2027,12 +1115,7 @@ class HttpPath(google.protobuf.message.Message):
key: builtins.str = ...,
value: builtins.str = ...,
) -> None: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "key", b"key", "value", b"value"
- ],
- ) -> None: ...
+ def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
DB_FIELD_NUMBER: builtins.int
ENDPOINT_FIELD_NUMBER: builtins.int
@@ -2043,45 +1126,18 @@ class HttpPath(google.protobuf.message.Message):
endpoint: builtins.str
limit: builtins.int
@property
- def headers(
- self,
- ) -> google.protobuf.internal.containers.ScalarMap[
- builtins.str, builtins.str
- ]: ...
+ def headers(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
def __init__(
self,
*,
db: global___ExtDatabase | None = ...,
endpoint: builtins.str = ...,
limit: builtins.int | None = ...,
- headers: (
- collections.abc.Mapping[builtins.str, builtins.str] | None
- ) = ...,
+ headers: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "_limit", b"_limit", "db", b"db", "limit", b"limit"
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "_limit",
- b"_limit",
- "db",
- b"db",
- "endpoint",
- b"endpoint",
- "headers",
- b"headers",
- "limit",
- b"limit",
- ],
- ) -> None: ...
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["_limit", b"_limit"]
- ) -> typing_extensions.Literal["limit"] | None: ...
+ def HasField(self, field_name: typing_extensions.Literal["_limit", b"_limit", "db", b"db", "limit", b"limit"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["_limit", b"_limit", "db", b"db", "endpoint", b"endpoint", "headers", b"headers", "limit", b"limit"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_limit", b"_limit"]) -> typing_extensions.Literal["limit"] | None: ...
global___HttpPath = HttpPath
@@ -2105,35 +1161,9 @@ class Eval(google.protobuf.message.Message):
expr: expression_pb2.Expr | None = ...,
pycode: pycode_pb2.PyCode | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "eval_type",
- b"eval_type",
- "expr",
- b"expr",
- "pycode",
- b"pycode",
- "schema",
- b"schema",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "eval_type",
- b"eval_type",
- "expr",
- b"expr",
- "pycode",
- b"pycode",
- "schema",
- b"schema",
- ],
- ) -> None: ...
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["eval_type", b"eval_type"]
- ) -> typing_extensions.Literal["expr", "pycode"] | None: ...
+ def HasField(self, field_name: typing_extensions.Literal["eval_type", b"eval_type", "expr", b"expr", "pycode", b"pycode", "schema", b"schema"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["eval_type", b"eval_type", "expr", b"expr", "pycode", b"pycode", "schema", b"schema"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["eval_type", b"eval_type"]) -> typing_extensions.Literal["expr", "pycode"] | None: ...
global___Eval = Eval
@@ -2156,35 +1186,9 @@ class PreProcValue(google.protobuf.message.Message):
value: schema_pb2.Value | None = ...,
eval: global___Eval | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "eval",
- b"eval",
- "ref",
- b"ref",
- "value",
- b"value",
- "variant",
- b"variant",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "eval",
- b"eval",
- "ref",
- b"ref",
- "value",
- b"value",
- "variant",
- b"variant",
- ],
- ) -> None: ...
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["variant", b"variant"]
- ) -> typing_extensions.Literal["ref", "value", "eval"] | None: ...
+ def HasField(self, field_name: typing_extensions.Literal["eval", b"eval", "ref", b"ref", "value", b"value", "variant", b"variant"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["eval", b"eval", "ref", b"ref", "value", b"value", "variant", b"variant"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["variant", b"variant"]) -> typing_extensions.Literal["ref", "value", "eval"] | None: ...
global___PreProcValue = PreProcValue
@@ -2203,15 +1207,8 @@ class MongoCollection(google.protobuf.message.Message):
db: global___ExtDatabase | None = ...,
collection_name: builtins.str = ...,
) -> None: ...
- def HasField(
- self, field_name: typing_extensions.Literal["db", b"db"]
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "collection_name", b"collection_name", "db", b"db"
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["db", b"db"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["collection_name", b"collection_name", "db", b"db"]) -> None: ...
global___MongoCollection = MongoCollection
@@ -2229,12 +1226,7 @@ class SnapshotData(google.protobuf.message.Message):
marker: builtins.str = ...,
num_retain: builtins.int = ...,
) -> None: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "marker", b"marker", "num_retain", b"num_retain"
- ],
- ) -> None: ...
+ def ClearField(self, field_name: typing_extensions.Literal["marker", b"marker", "num_retain", b"num_retain"]) -> None: ...
global___SnapshotData = SnapshotData
@@ -2278,37 +1270,9 @@ class Style(google.protobuf.message.Message):
recreate: global___Recreate | None = ...,
snapshot: global___SnapshotData | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "Style",
- b"Style",
- "incremental",
- b"incremental",
- "recreate",
- b"recreate",
- "snapshot",
- b"snapshot",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "Style",
- b"Style",
- "incremental",
- b"incremental",
- "recreate",
- b"recreate",
- "snapshot",
- b"snapshot",
- ],
- ) -> None: ...
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["Style", b"Style"]
- ) -> (
- typing_extensions.Literal["incremental", "recreate", "snapshot"] | None
- ): ...
+ def HasField(self, field_name: typing_extensions.Literal["Style", b"Style", "incremental", b"incremental", "recreate", b"recreate", "snapshot", b"snapshot"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["Style", b"Style", "incremental", b"incremental", "recreate", b"recreate", "snapshot", b"snapshot"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["Style", b"Style"]) -> typing_extensions.Literal["incremental", "recreate", "snapshot"] | None: ...
global___Style = Style
@@ -2336,15 +1300,8 @@ class Source(google.protobuf.message.Message):
key: builtins.str = ...,
value: global___PreProcValue | None = ...,
) -> None: ...
- def HasField(
- self, field_name: typing_extensions.Literal["value", b"value"]
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "key", b"key", "value", b"value"
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
TABLE_FIELD_NUMBER: builtins.int
DATASET_FIELD_NUMBER: builtins.int
@@ -2378,11 +1335,7 @@ class Source(google.protobuf.message.Message):
@property
def starting_from(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
@property
- def pre_proc(
- self,
- ) -> google.protobuf.internal.containers.MessageMap[
- builtins.str, global___PreProcValue
- ]: ...
+ def pre_proc(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___PreProcValue]: ...
version: builtins.int
bounded: builtins.bool
@property
@@ -2398,7 +1351,6 @@ class Source(google.protobuf.message.Message):
@property
def filter_schema(self) -> schema_pb2.Schema:
"""next id: 19"""
-
def __init__(
self,
*,
@@ -2411,9 +1363,7 @@ class Source(google.protobuf.message.Message):
timestamp_field: builtins.str = ...,
cdc: global___CDCStrategy.ValueType = ...,
starting_from: google.protobuf.timestamp_pb2.Timestamp | None = ...,
- pre_proc: (
- collections.abc.Mapping[builtins.str, global___PreProcValue] | None
- ) = ...,
+ pre_proc: collections.abc.Mapping[builtins.str, global___PreProcValue] | None = ...,
version: builtins.int = ...,
bounded: builtins.bool = ...,
idleness: google.protobuf.duration_pb2.Duration | None = ...,
@@ -2423,129 +1373,20 @@ class Source(google.protobuf.message.Message):
filter_expr: expression_pb2.Expr | None = ...,
filter_schema: schema_pb2.Schema | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "_cursor",
- b"_cursor",
- "_filter",
- b"_filter",
- "_filter_expr",
- b"_filter_expr",
- "_filter_schema",
- b"_filter_schema",
- "_idleness",
- b"_idleness",
- "_sampling_strategy",
- b"_sampling_strategy",
- "cursor",
- b"cursor",
- "disorder",
- b"disorder",
- "every",
- b"every",
- "filter",
- b"filter",
- "filter_expr",
- b"filter_expr",
- "filter_schema",
- b"filter_schema",
- "idleness",
- b"idleness",
- "sampling_strategy",
- b"sampling_strategy",
- "starting_from",
- b"starting_from",
- "table",
- b"table",
- "until",
- b"until",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "_cursor",
- b"_cursor",
- "_filter",
- b"_filter",
- "_filter_expr",
- b"_filter_expr",
- "_filter_schema",
- b"_filter_schema",
- "_idleness",
- b"_idleness",
- "_sampling_strategy",
- b"_sampling_strategy",
- "bounded",
- b"bounded",
- "cdc",
- b"cdc",
- "cursor",
- b"cursor",
- "dataset",
- b"dataset",
- "disorder",
- b"disorder",
- "ds_version",
- b"ds_version",
- "every",
- b"every",
- "filter",
- b"filter",
- "filter_expr",
- b"filter_expr",
- "filter_schema",
- b"filter_schema",
- "idleness",
- b"idleness",
- "pre_proc",
- b"pre_proc",
- "sampling_strategy",
- b"sampling_strategy",
- "starting_from",
- b"starting_from",
- "table",
- b"table",
- "timestamp_field",
- b"timestamp_field",
- "until",
- b"until",
- "version",
- b"version",
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["_cursor", b"_cursor", "_filter", b"_filter", "_filter_expr", b"_filter_expr", "_filter_schema", b"_filter_schema", "_idleness", b"_idleness", "_sampling_strategy", b"_sampling_strategy", "cursor", b"cursor", "disorder", b"disorder", "every", b"every", "filter", b"filter", "filter_expr", b"filter_expr", "filter_schema", b"filter_schema", "idleness", b"idleness", "sampling_strategy", b"sampling_strategy", "starting_from", b"starting_from", "table", b"table", "until", b"until"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["_cursor", b"_cursor", "_filter", b"_filter", "_filter_expr", b"_filter_expr", "_filter_schema", b"_filter_schema", "_idleness", b"_idleness", "_sampling_strategy", b"_sampling_strategy", "bounded", b"bounded", "cdc", b"cdc", "cursor", b"cursor", "dataset", b"dataset", "disorder", b"disorder", "ds_version", b"ds_version", "every", b"every", "filter", b"filter", "filter_expr", b"filter_expr", "filter_schema", b"filter_schema", "idleness", b"idleness", "pre_proc", b"pre_proc", "sampling_strategy", b"sampling_strategy", "starting_from", b"starting_from", "table", b"table", "timestamp_field", b"timestamp_field", "until", b"until", "version", b"version"]) -> None: ...
@typing.overload
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["_cursor", b"_cursor"]
- ) -> typing_extensions.Literal["cursor"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_cursor", b"_cursor"]) -> typing_extensions.Literal["cursor"] | None: ...
@typing.overload
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["_filter", b"_filter"]
- ) -> typing_extensions.Literal["filter"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_filter", b"_filter"]) -> typing_extensions.Literal["filter"] | None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal["_filter_expr", b"_filter_expr"],
- ) -> typing_extensions.Literal["filter_expr"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_filter_expr", b"_filter_expr"]) -> typing_extensions.Literal["filter_expr"] | None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "_filter_schema", b"_filter_schema"
- ],
- ) -> typing_extensions.Literal["filter_schema"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_filter_schema", b"_filter_schema"]) -> typing_extensions.Literal["filter_schema"] | None: ...
@typing.overload
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["_idleness", b"_idleness"]
- ) -> typing_extensions.Literal["idleness"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_idleness", b"_idleness"]) -> typing_extensions.Literal["idleness"] | None: ...
@typing.overload
- def WhichOneof(
- self,
- oneof_group: typing_extensions.Literal[
- "_sampling_strategy", b"_sampling_strategy"
- ],
- ) -> typing_extensions.Literal["sampling_strategy"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_sampling_strategy", b"_sampling_strategy"]) -> typing_extensions.Literal["sampling_strategy"] | None: ...
global___Source = Source
@@ -2567,12 +1408,7 @@ class Sink(google.protobuf.message.Message):
key: builtins.str = ...,
value: builtins.str = ...,
) -> None: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "key", b"key", "value", b"value"
- ],
- ) -> None: ...
+ def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
TABLE_FIELD_NUMBER: builtins.int
DATASET_FIELD_NUMBER: builtins.int
@@ -2595,11 +1431,7 @@ class Sink(google.protobuf.message.Message):
def how(self) -> global___Style: ...
create: builtins.bool
@property
- def renames(
- self,
- ) -> google.protobuf.internal.containers.ScalarMap[
- builtins.str, builtins.str
- ]: ...
+ def renames(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
@property
def since(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
@property
@@ -2614,85 +1446,19 @@ class Sink(google.protobuf.message.Message):
every: google.protobuf.duration_pb2.Duration | None = ...,
how: global___Style | None = ...,
create: builtins.bool = ...,
- renames: (
- collections.abc.Mapping[builtins.str, builtins.str] | None
- ) = ...,
+ renames: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
since: google.protobuf.timestamp_pb2.Timestamp | None = ...,
until: google.protobuf.timestamp_pb2.Timestamp | None = ...,
) -> None: ...
- def HasField(
- self,
- field_name: typing_extensions.Literal[
- "_cdc",
- b"_cdc",
- "_how",
- b"_how",
- "_since",
- b"_since",
- "_until",
- b"_until",
- "cdc",
- b"cdc",
- "every",
- b"every",
- "how",
- b"how",
- "since",
- b"since",
- "table",
- b"table",
- "until",
- b"until",
- ],
- ) -> builtins.bool: ...
- def ClearField(
- self,
- field_name: typing_extensions.Literal[
- "_cdc",
- b"_cdc",
- "_how",
- b"_how",
- "_since",
- b"_since",
- "_until",
- b"_until",
- "cdc",
- b"cdc",
- "create",
- b"create",
- "dataset",
- b"dataset",
- "ds_version",
- b"ds_version",
- "every",
- b"every",
- "how",
- b"how",
- "renames",
- b"renames",
- "since",
- b"since",
- "table",
- b"table",
- "until",
- b"until",
- ],
- ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["_cdc", b"_cdc", "_how", b"_how", "_since", b"_since", "_until", b"_until", "cdc", b"cdc", "every", b"every", "how", b"how", "since", b"since", "table", b"table", "until", b"until"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["_cdc", b"_cdc", "_how", b"_how", "_since", b"_since", "_until", b"_until", "cdc", b"cdc", "create", b"create", "dataset", b"dataset", "ds_version", b"ds_version", "every", b"every", "how", b"how", "renames", b"renames", "since", b"since", "table", b"table", "until", b"until"]) -> None: ...
@typing.overload
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["_cdc", b"_cdc"]
- ) -> typing_extensions.Literal["cdc"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_cdc", b"_cdc"]) -> typing_extensions.Literal["cdc"] | None: ...
@typing.overload
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["_how", b"_how"]
- ) -> typing_extensions.Literal["how"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_how", b"_how"]) -> typing_extensions.Literal["how"] | None: ...
@typing.overload
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["_since", b"_since"]
- ) -> typing_extensions.Literal["since"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_since", b"_since"]) -> typing_extensions.Literal["since"] | None: ...
@typing.overload
- def WhichOneof(
- self, oneof_group: typing_extensions.Literal["_until", b"_until"]
- ) -> typing_extensions.Literal["until"] | None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_until", b"_until"]) -> typing_extensions.Literal["until"] | None: ...
global___Sink = Sink
diff --git a/fennel/gen/expression_pb2.py b/fennel/gen/expression_pb2.py
index 5a7488be4..ad4239301 100644
--- a/fennel/gen/expression_pb2.py
+++ b/fennel/gen/expression_pb2.py
@@ -15,7 +15,7 @@
import fennel.gen.schema_pb2 as schema__pb2
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x65xpression.proto\x12\x17\x66\x65nnel.proto.expression\x1a\x0cschema.proto\"9\n\x0b\x45valContext\x12\x19\n\x0cnow_col_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_now_col_name\"\xd4\x07\n\x04\x45xpr\x12+\n\x03ref\x18\x01 \x01(\x0b\x32\x1c.fennel.proto.expression.RefH\x00\x12<\n\x0cjson_literal\x18\x02 \x01(\x0b\x32$.fennel.proto.expression.JsonLiteralH\x00\x12/\n\x05unary\x18\x04 \x01(\x0b\x32\x1e.fennel.proto.expression.UnaryH\x00\x12-\n\x04\x63\x61se\x18\x05 \x01(\x0b\x32\x1d.fennel.proto.expression.CaseH\x00\x12\x31\n\x06\x62inary\x18\x06 \x01(\x0b\x32\x1f.fennel.proto.expression.BinaryH\x00\x12\x31\n\x06isnull\x18\x07 \x01(\x0b\x32\x1f.fennel.proto.expression.IsNullH\x00\x12\x35\n\x08\x66illnull\x18\x08 \x01(\x0b\x32!.fennel.proto.expression.FillNullH\x00\x12\x32\n\x07list_fn\x18\t \x01(\x0b\x32\x1f.fennel.proto.expression.ListFnH\x00\x12\x32\n\x07math_fn\x18\n \x01(\x0b\x32\x1f.fennel.proto.expression.MathFnH\x00\x12\x36\n\tstruct_fn\x18\x0b \x01(\x0b\x32!.fennel.proto.expression.StructFnH\x00\x12\x32\n\x07\x64ict_fn\x18\x0c \x01(\x0b\x32\x1f.fennel.proto.expression.DictFnH\x00\x12\x36\n\tstring_fn\x18\r \x01(\x0b\x32!.fennel.proto.expression.StringFnH\x00\x12:\n\x0b\x64\x61tetime_fn\x18\x0e \x01(\x0b\x32#.fennel.proto.expression.DateTimeFnH\x00\x12\x44\n\x10\x64\x61tetime_literal\x18\x0f \x01(\x0b\x32(.fennel.proto.expression.DatetimeLiteralH\x00\x12:\n\x0bmake_struct\x18\x10 \x01(\x0b\x32#.fennel.proto.expression.MakeStructH\x00\x12\x38\n\nfrom_epoch\x18\x11 \x01(\x0b\x32\".fennel.proto.expression.FromEpochH\x00\x12+\n\x03var\x18\x12 \x01(\x0b\x32\x1c.fennel.proto.expression.VarH\x00\x12+\n\x03now\x18\x13 \x01(\x0b\x32\x1c.fennel.proto.expression.NowH\x00\x42\x06\n\x04node\"\x05\n\x03Now\"\x13\n\x03Var\x12\x0c\n\x04name\x18\x01 \x01(\t\"m\n\tFromEpoch\x12/\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12/\n\x04unit\x18\x02 \x01(\x0e\x32!.fennel.proto.expression.TimeUnit\"\xb3\x01\n\x0f\x44\x61tetimeLiteral\x12\x0c\n\x04year\x18\x01 \x01(\r\x12\r\n\x05month\x18\x02 \x01(\r\x12\x0b\n\x03\x64\x61y\x18\x03 \x01(\r\x12\x0c\n\x04hour\x18\x04 \x01(\r\x12\x0e\n\x06minute\x18\x05 \x01(\r\x12\x0e\n\x06second\x18\x06 \x01(\r\x12\x13\n\x0bmicrosecond\x18\x07 \x01(\r\x12\x33\n\x08timezone\x18\x08 \x01(\x0b\x32!.fennel.proto.expression.Timezone\"\xd1\x01\n\nMakeStruct\x12\x34\n\x0bstruct_type\x18\x01 \x01(\x0b\x32\x1f.fennel.proto.schema.StructType\x12?\n\x06\x66ields\x18\x02 \x03(\x0b\x32/.fennel.proto.expression.MakeStruct.FieldsEntry\x1aL\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr:\x02\x38\x01\"L\n\x0bJsonLiteral\x12\x0f\n\x07literal\x18\x01 \x01(\t\x12,\n\x05\x64type\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.schema.DataType\"\x13\n\x03Ref\x12\x0c\n\x04name\x18\x01 \x01(\t\"e\n\x05Unary\x12,\n\x02op\x18\x01 \x01(\x0e\x32 .fennel.proto.expression.UnaryOp\x12.\n\x07operand\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"\x8f\x01\n\x06\x42inary\x12+\n\x04left\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12,\n\x05right\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12*\n\x02op\x18\x03 \x01(\x0e\x32\x1e.fennel.proto.expression.BinOp\"n\n\x04\x43\x61se\x12\x34\n\twhen_then\x18\x01 \x03(\x0b\x32!.fennel.proto.expression.WhenThen\x12\x30\n\totherwise\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"d\n\x08WhenThen\x12+\n\x04when\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12+\n\x04then\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"8\n\x06IsNull\x12.\n\x07operand\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"g\n\x08\x46illNull\x12.\n\x07operand\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12+\n\x04\x66ill\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"\xeb\x04\n\x06ListOp\x12+\n\x03len\x18\x01 \x01(\x0b\x32\x1c.fennel.proto.expression.LenH\x00\x12,\n\x03get\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.ExprH\x00\x12\x35\n\x08\x63ontains\x18\x03 \x01(\x0b\x32!.fennel.proto.expression.ContainsH\x00\x12\x34\n\x08has_null\x18\x04 \x01(\x0b\x32 .fennel.proto.expression.HasNullH\x00\x12/\n\x03sum\x18\x05 \x01(\x0b\x32 .fennel.proto.expression.ListSumH\x00\x12/\n\x03min\x18\x06 \x01(\x0b\x32 .fennel.proto.expression.ListMinH\x00\x12/\n\x03max\x18\x07 \x01(\x0b\x32 .fennel.proto.expression.ListMaxH\x00\x12/\n\x03\x61ll\x18\x08 \x01(\x0b\x32 .fennel.proto.expression.ListAllH\x00\x12/\n\x03\x61ny\x18\t \x01(\x0b\x32 .fennel.proto.expression.ListAnyH\x00\x12\x31\n\x04mean\x18\n \x01(\x0b\x32!.fennel.proto.expression.ListMeanH\x00\x12\x35\n\x06\x66ilter\x18\x0b \x01(\x0b\x32#.fennel.proto.expression.ListFilterH\x00\x12/\n\x03map\x18\x0c \x01(\x0b\x32 .fennel.proto.expression.ListMapH\x00\x42\t\n\x07\x66n_type\"K\n\nListFilter\x12\x0b\n\x03var\x18\x01 \x01(\t\x12\x30\n\tpredicate\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"G\n\x07ListMap\x12\x0b\n\x03var\x18\x01 \x01(\t\x12/\n\x08map_expr\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"\t\n\x07ListSum\"\t\n\x07ListMin\"\n\n\x08ListMean\"\t\n\x07ListMax\"\t\n\x07ListAll\"\t\n\x07ListAny\"\x05\n\x03Len\"\t\n\x07HasNull\":\n\x08\x43ontains\x12.\n\x07\x65lement\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"b\n\x06ListFn\x12+\n\x04list\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12+\n\x02\x66n\x18\x02 \x01(\x0b\x32\x1f.fennel.proto.expression.ListOp\"\xd1\x01\n\x06MathOp\x12/\n\x05round\x18\x01 \x01(\x0b\x32\x1e.fennel.proto.expression.RoundH\x00\x12+\n\x03\x61\x62s\x18\x02 \x01(\x0b\x32\x1c.fennel.proto.expression.AbsH\x00\x12-\n\x04\x63\x65il\x18\x03 \x01(\x0b\x32\x1d.fennel.proto.expression.CeilH\x00\x12/\n\x05\x66loor\x18\x04 \x01(\x0b\x32\x1e.fennel.proto.expression.FloorH\x00\x42\t\n\x07\x66n_type\"\x1a\n\x05Round\x12\x11\n\tprecision\x18\x01 \x01(\x05\"\x05\n\x03\x41\x62s\"\x06\n\x04\x43\x65il\"\x07\n\x05\x46loor\"e\n\x06MathFn\x12.\n\x07operand\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12+\n\x02\x66n\x18\x02 \x01(\x0b\x32\x1f.fennel.proto.expression.MathOp\"&\n\x08StructOp\x12\x0f\n\x05\x66ield\x18\x01 \x01(\tH\x00\x42\t\n\x07\x66n_type\"h\n\x08StructFn\x12-\n\x06struct\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12-\n\x02\x66n\x18\x02 \x01(\x0b\x32!.fennel.proto.expression.StructOp\"m\n\x07\x44ictGet\x12,\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12\x34\n\rdefault_value\x18\x03 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"\xa8\x01\n\x06\x44ictOp\x12+\n\x03len\x18\x01 \x01(\x0b\x32\x1c.fennel.proto.expression.LenH\x00\x12/\n\x03get\x18\x02 \x01(\x0b\x32 .fennel.proto.expression.DictGetH\x00\x12\x35\n\x08\x63ontains\x18\x03 \x01(\x0b\x32!.fennel.proto.expression.ContainsH\x00\x42\t\n\x07\x66n_type\"b\n\x06\x44ictFn\x12+\n\x04\x64ict\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12+\n\x02\x66n\x18\x02 \x01(\x0b\x32\x1f.fennel.proto.expression.DictOp\"\x9c\x05\n\x08StringOp\x12+\n\x03len\x18\x01 \x01(\x0b\x32\x1c.fennel.proto.expression.LenH\x00\x12\x33\n\x07tolower\x18\x02 \x01(\x0b\x32 .fennel.proto.expression.ToLowerH\x00\x12\x33\n\x07toupper\x18\x03 \x01(\x0b\x32 .fennel.proto.expression.ToUpperH\x00\x12\x35\n\x08\x63ontains\x18\x04 \x01(\x0b\x32!.fennel.proto.expression.ContainsH\x00\x12\x39\n\nstartswith\x18\x05 \x01(\x0b\x32#.fennel.proto.expression.StartsWithH\x00\x12\x35\n\x08\x65ndswith\x18\x06 \x01(\x0b\x32!.fennel.proto.expression.EndsWithH\x00\x12\x31\n\x06\x63oncat\x18\x07 \x01(\x0b\x32\x1f.fennel.proto.expression.ConcatH\x00\x12\x35\n\x08strptime\x18\x08 \x01(\x0b\x32!.fennel.proto.expression.StrptimeH\x00\x12:\n\x0bjson_decode\x18\t \x01(\x0b\x32#.fennel.proto.expression.JsonDecodeH\x00\x12/\n\x05split\x18\n \x01(\x0b\x32\x1e.fennel.proto.expression.SplitH\x00\x12<\n\x0cjson_extract\x18\x0b \x01(\x0b\x32$.fennel.proto.expression.JsonExtractH\x00\x12\x30\n\x06to_int\x18\x0c \x01(\x0b\x32\x1e.fennel.proto.expression.ToIntH\x00\x42\t\n\x07\x66n_type\"\x1c\n\x08Timezone\x12\x10\n\x08timezone\x18\x01 \x01(\t\":\n\nJsonDecode\x12,\n\x05\x64type\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.schema.DataType\"O\n\x08Strptime\x12\x0e\n\x06\x66ormat\x18\x01 \x01(\t\x12\x33\n\x08timezone\x18\x02 \x01(\x0b\x32!.fennel.proto.expression.Timezone\"\t\n\x07ToLower\"\t\n\x07ToUpper\"8\n\nStartsWith\x12*\n\x03key\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"6\n\x08\x45ndsWith\x12*\n\x03key\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"6\n\x06\x43oncat\x12,\n\x05other\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"h\n\x08StringFn\x12-\n\x06string\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12-\n\x02\x66n\x18\x02 \x01(\x0b\x32!.fennel.proto.expression.StringOp\"n\n\nDateTimeFn\x12/\n\x08\x64\x61tetime\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12/\n\x02\x66n\x18\x02 \x01(\x0b\x32#.fennel.proto.expression.DateTimeOp\"\xea\x01\n\nDateTimeOp\x12/\n\x05since\x18\x01 \x01(\x0b\x32\x1e.fennel.proto.expression.SinceH\x00\x12:\n\x0bsince_epoch\x18\x02 \x01(\x0b\x32#.fennel.proto.expression.SinceEpochH\x00\x12\x35\n\x08strftime\x18\x03 \x01(\x0b\x32!.fennel.proto.expression.StrftimeH\x00\x12-\n\x04part\x18\x04 \x01(\x0b\x32\x1d.fennel.proto.expression.PartH\x00\x42\t\n\x07\x66n_type\"f\n\x05Since\x12,\n\x05other\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12/\n\x04unit\x18\x02 \x01(\x0e\x32!.fennel.proto.expression.TimeUnit\"=\n\nSinceEpoch\x12/\n\x04unit\x18\x01 \x01(\x0e\x32!.fennel.proto.expression.TimeUnit\"O\n\x08Strftime\x12\x0e\n\x06\x66ormat\x18\x01 \x01(\t\x12\x33\n\x08timezone\x18\x02 \x01(\x0b\x32!.fennel.proto.expression.Timezone\"l\n\x04Part\x12/\n\x04unit\x18\x01 \x01(\x0e\x32!.fennel.proto.expression.TimeUnit\x12\x33\n\x08timezone\x18\x02 \x01(\x0b\x32!.fennel.proto.expression.Timezone\"\x14\n\x05Split\x12\x0b\n\x03sep\x18\x01 \x01(\t\"\x1b\n\x0bJsonExtract\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x07\n\x05ToInt*\x1b\n\x07UnaryOp\x12\x07\n\x03NEG\x10\x00\x12\x07\n\x03NOT\x10\x01*\x86\x01\n\x05\x42inOp\x12\x07\n\x03\x41\x44\x44\x10\x00\x12\x07\n\x03SUB\x10\x01\x12\x07\n\x03MUL\x10\x02\x12\x07\n\x03\x44IV\x10\x03\x12\x07\n\x03MOD\x10\x04\x12\r\n\tFLOOR_DIV\x10\x05\x12\x06\n\x02\x45Q\x10\x06\x12\x06\n\x02NE\x10\x07\x12\x06\n\x02GT\x10\x08\x12\x07\n\x03GTE\x10\t\x12\x06\n\x02LT\x10\n\x12\x07\n\x03LTE\x10\x0b\x12\x07\n\x03\x41ND\x10\x0c\x12\x06\n\x02OR\x10\r*\x83\x01\n\x08TimeUnit\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06SECOND\x10\x01\x12\n\n\x06MINUTE\x10\x02\x12\x08\n\x04HOUR\x10\x03\x12\x07\n\x03\x44\x41Y\x10\x04\x12\x08\n\x04WEEK\x10\x05\x12\t\n\x05MONTH\x10\x06\x12\x08\n\x04YEAR\x10\x07\x12\x0f\n\x0bMICROSECOND\x10\x08\x12\x0f\n\x0bMILLISECOND\x10\tb\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x65xpression.proto\x12\x17\x66\x65nnel.proto.expression\x1a\x0cschema.proto\"9\n\x0b\x45valContext\x12\x19\n\x0cnow_col_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_now_col_name\"\xd4\x07\n\x04\x45xpr\x12+\n\x03ref\x18\x01 \x01(\x0b\x32\x1c.fennel.proto.expression.RefH\x00\x12<\n\x0cjson_literal\x18\x02 \x01(\x0b\x32$.fennel.proto.expression.JsonLiteralH\x00\x12/\n\x05unary\x18\x04 \x01(\x0b\x32\x1e.fennel.proto.expression.UnaryH\x00\x12-\n\x04\x63\x61se\x18\x05 \x01(\x0b\x32\x1d.fennel.proto.expression.CaseH\x00\x12\x31\n\x06\x62inary\x18\x06 \x01(\x0b\x32\x1f.fennel.proto.expression.BinaryH\x00\x12\x31\n\x06isnull\x18\x07 \x01(\x0b\x32\x1f.fennel.proto.expression.IsNullH\x00\x12\x35\n\x08\x66illnull\x18\x08 \x01(\x0b\x32!.fennel.proto.expression.FillNullH\x00\x12\x32\n\x07list_fn\x18\t \x01(\x0b\x32\x1f.fennel.proto.expression.ListFnH\x00\x12\x32\n\x07math_fn\x18\n \x01(\x0b\x32\x1f.fennel.proto.expression.MathFnH\x00\x12\x36\n\tstruct_fn\x18\x0b \x01(\x0b\x32!.fennel.proto.expression.StructFnH\x00\x12\x32\n\x07\x64ict_fn\x18\x0c \x01(\x0b\x32\x1f.fennel.proto.expression.DictFnH\x00\x12\x36\n\tstring_fn\x18\r \x01(\x0b\x32!.fennel.proto.expression.StringFnH\x00\x12:\n\x0b\x64\x61tetime_fn\x18\x0e \x01(\x0b\x32#.fennel.proto.expression.DateTimeFnH\x00\x12\x44\n\x10\x64\x61tetime_literal\x18\x0f \x01(\x0b\x32(.fennel.proto.expression.DatetimeLiteralH\x00\x12:\n\x0bmake_struct\x18\x10 \x01(\x0b\x32#.fennel.proto.expression.MakeStructH\x00\x12\x38\n\nfrom_epoch\x18\x11 \x01(\x0b\x32\".fennel.proto.expression.FromEpochH\x00\x12+\n\x03var\x18\x12 \x01(\x0b\x32\x1c.fennel.proto.expression.VarH\x00\x12+\n\x03now\x18\x13 \x01(\x0b\x32\x1c.fennel.proto.expression.NowH\x00\x42\x06\n\x04node\"\x05\n\x03Now\"\x13\n\x03Var\x12\x0c\n\x04name\x18\x01 \x01(\t\"m\n\tFromEpoch\x12/\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12/\n\x04unit\x18\x02 \x01(\x0e\x32!.fennel.proto.expression.TimeUnit\"\xb3\x01\n\x0f\x44\x61tetimeLiteral\x12\x0c\n\x04year\x18\x01 \x01(\r\x12\r\n\x05month\x18\x02 \x01(\r\x12\x0b\n\x03\x64\x61y\x18\x03 \x01(\r\x12\x0c\n\x04hour\x18\x04 \x01(\r\x12\x0e\n\x06minute\x18\x05 \x01(\r\x12\x0e\n\x06second\x18\x06 \x01(\r\x12\x13\n\x0bmicrosecond\x18\x07 \x01(\r\x12\x33\n\x08timezone\x18\x08 \x01(\x0b\x32!.fennel.proto.expression.Timezone\"\xd1\x01\n\nMakeStruct\x12\x34\n\x0bstruct_type\x18\x01 \x01(\x0b\x32\x1f.fennel.proto.schema.StructType\x12?\n\x06\x66ields\x18\x02 \x03(\x0b\x32/.fennel.proto.expression.MakeStruct.FieldsEntry\x1aL\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr:\x02\x38\x01\"L\n\x0bJsonLiteral\x12\x0f\n\x07literal\x18\x01 \x01(\t\x12,\n\x05\x64type\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.schema.DataType\"\x13\n\x03Ref\x12\x0c\n\x04name\x18\x01 \x01(\t\"e\n\x05Unary\x12,\n\x02op\x18\x01 \x01(\x0e\x32 .fennel.proto.expression.UnaryOp\x12.\n\x07operand\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"\x8f\x01\n\x06\x42inary\x12+\n\x04left\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12,\n\x05right\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12*\n\x02op\x18\x03 \x01(\x0e\x32\x1e.fennel.proto.expression.BinOp\"n\n\x04\x43\x61se\x12\x34\n\twhen_then\x18\x01 \x03(\x0b\x32!.fennel.proto.expression.WhenThen\x12\x30\n\totherwise\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"d\n\x08WhenThen\x12+\n\x04when\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12+\n\x04then\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"8\n\x06IsNull\x12.\n\x07operand\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"g\n\x08\x46illNull\x12.\n\x07operand\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12+\n\x04\x66ill\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"\xeb\x04\n\x06ListOp\x12+\n\x03len\x18\x01 \x01(\x0b\x32\x1c.fennel.proto.expression.LenH\x00\x12,\n\x03get\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.ExprH\x00\x12\x35\n\x08\x63ontains\x18\x03 \x01(\x0b\x32!.fennel.proto.expression.ContainsH\x00\x12\x34\n\x08has_null\x18\x04 \x01(\x0b\x32 .fennel.proto.expression.HasNullH\x00\x12/\n\x03sum\x18\x05 \x01(\x0b\x32 .fennel.proto.expression.ListSumH\x00\x12/\n\x03min\x18\x06 \x01(\x0b\x32 .fennel.proto.expression.ListMinH\x00\x12/\n\x03max\x18\x07 \x01(\x0b\x32 .fennel.proto.expression.ListMaxH\x00\x12/\n\x03\x61ll\x18\x08 \x01(\x0b\x32 .fennel.proto.expression.ListAllH\x00\x12/\n\x03\x61ny\x18\t \x01(\x0b\x32 .fennel.proto.expression.ListAnyH\x00\x12\x31\n\x04mean\x18\n \x01(\x0b\x32!.fennel.proto.expression.ListMeanH\x00\x12\x35\n\x06\x66ilter\x18\x0b \x01(\x0b\x32#.fennel.proto.expression.ListFilterH\x00\x12/\n\x03map\x18\x0c \x01(\x0b\x32 .fennel.proto.expression.ListMapH\x00\x42\t\n\x07\x66n_type\"K\n\nListFilter\x12\x0b\n\x03var\x18\x01 \x01(\t\x12\x30\n\tpredicate\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"G\n\x07ListMap\x12\x0b\n\x03var\x18\x01 \x01(\t\x12/\n\x08map_expr\x18\x02 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"\t\n\x07ListSum\"\t\n\x07ListMin\"\n\n\x08ListMean\"\t\n\x07ListMax\"\t\n\x07ListAll\"\t\n\x07ListAny\"\x05\n\x03Len\"\t\n\x07HasNull\":\n\x08\x43ontains\x12.\n\x07\x65lement\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"b\n\x06ListFn\x12+\n\x04list\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12+\n\x02\x66n\x18\x02 \x01(\x0b\x32\x1f.fennel.proto.expression.ListOp\"\x89\x02\n\x06MathOp\x12/\n\x05round\x18\x01 \x01(\x0b\x32\x1e.fennel.proto.expression.RoundH\x00\x12+\n\x03\x61\x62s\x18\x02 \x01(\x0b\x32\x1c.fennel.proto.expression.AbsH\x00\x12-\n\x04\x63\x65il\x18\x03 \x01(\x0b\x32\x1d.fennel.proto.expression.CeilH\x00\x12/\n\x05\x66loor\x18\x04 \x01(\x0b\x32\x1e.fennel.proto.expression.FloorH\x00\x12\x36\n\tto_string\x18\x05 \x01(\x0b\x32!.fennel.proto.expression.ToStringH\x00\x42\t\n\x07\x66n_type\"\x1a\n\x05Round\x12\x11\n\tprecision\x18\x01 \x01(\x05\"\x05\n\x03\x41\x62s\"\x06\n\x04\x43\x65il\"\x07\n\x05\x46loor\"\n\n\x08ToString\"e\n\x06MathFn\x12.\n\x07operand\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12+\n\x02\x66n\x18\x02 \x01(\x0b\x32\x1f.fennel.proto.expression.MathOp\"&\n\x08StructOp\x12\x0f\n\x05\x66ield\x18\x01 \x01(\tH\x00\x42\t\n\x07\x66n_type\"h\n\x08StructFn\x12-\n\x06struct\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12-\n\x02\x66n\x18\x02 \x01(\x0b\x32!.fennel.proto.expression.StructOp\"m\n\x07\x44ictGet\x12,\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12\x34\n\rdefault_value\x18\x03 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"\xa8\x01\n\x06\x44ictOp\x12+\n\x03len\x18\x01 \x01(\x0b\x32\x1c.fennel.proto.expression.LenH\x00\x12/\n\x03get\x18\x02 \x01(\x0b\x32 .fennel.proto.expression.DictGetH\x00\x12\x35\n\x08\x63ontains\x18\x03 \x01(\x0b\x32!.fennel.proto.expression.ContainsH\x00\x42\t\n\x07\x66n_type\"b\n\x06\x44ictFn\x12+\n\x04\x64ict\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12+\n\x02\x66n\x18\x02 \x01(\x0b\x32\x1f.fennel.proto.expression.DictOp\"\x9c\x05\n\x08StringOp\x12+\n\x03len\x18\x01 \x01(\x0b\x32\x1c.fennel.proto.expression.LenH\x00\x12\x33\n\x07tolower\x18\x02 \x01(\x0b\x32 .fennel.proto.expression.ToLowerH\x00\x12\x33\n\x07toupper\x18\x03 \x01(\x0b\x32 .fennel.proto.expression.ToUpperH\x00\x12\x35\n\x08\x63ontains\x18\x04 \x01(\x0b\x32!.fennel.proto.expression.ContainsH\x00\x12\x39\n\nstartswith\x18\x05 \x01(\x0b\x32#.fennel.proto.expression.StartsWithH\x00\x12\x35\n\x08\x65ndswith\x18\x06 \x01(\x0b\x32!.fennel.proto.expression.EndsWithH\x00\x12\x31\n\x06\x63oncat\x18\x07 \x01(\x0b\x32\x1f.fennel.proto.expression.ConcatH\x00\x12\x35\n\x08strptime\x18\x08 \x01(\x0b\x32!.fennel.proto.expression.StrptimeH\x00\x12:\n\x0bjson_decode\x18\t \x01(\x0b\x32#.fennel.proto.expression.JsonDecodeH\x00\x12/\n\x05split\x18\n \x01(\x0b\x32\x1e.fennel.proto.expression.SplitH\x00\x12<\n\x0cjson_extract\x18\x0b \x01(\x0b\x32$.fennel.proto.expression.JsonExtractH\x00\x12\x30\n\x06to_int\x18\x0c \x01(\x0b\x32\x1e.fennel.proto.expression.ToIntH\x00\x42\t\n\x07\x66n_type\"\x1c\n\x08Timezone\x12\x10\n\x08timezone\x18\x01 \x01(\t\":\n\nJsonDecode\x12,\n\x05\x64type\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.schema.DataType\"O\n\x08Strptime\x12\x0e\n\x06\x66ormat\x18\x01 \x01(\t\x12\x33\n\x08timezone\x18\x02 \x01(\x0b\x32!.fennel.proto.expression.Timezone\"\t\n\x07ToLower\"\t\n\x07ToUpper\"8\n\nStartsWith\x12*\n\x03key\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"6\n\x08\x45ndsWith\x12*\n\x03key\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"6\n\x06\x43oncat\x12,\n\x05other\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\"h\n\x08StringFn\x12-\n\x06string\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12-\n\x02\x66n\x18\x02 \x01(\x0b\x32!.fennel.proto.expression.StringOp\"n\n\nDateTimeFn\x12/\n\x08\x64\x61tetime\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12/\n\x02\x66n\x18\x02 \x01(\x0b\x32#.fennel.proto.expression.DateTimeOp\"\xea\x01\n\nDateTimeOp\x12/\n\x05since\x18\x01 \x01(\x0b\x32\x1e.fennel.proto.expression.SinceH\x00\x12:\n\x0bsince_epoch\x18\x02 \x01(\x0b\x32#.fennel.proto.expression.SinceEpochH\x00\x12\x35\n\x08strftime\x18\x03 \x01(\x0b\x32!.fennel.proto.expression.StrftimeH\x00\x12-\n\x04part\x18\x04 \x01(\x0b\x32\x1d.fennel.proto.expression.PartH\x00\x42\t\n\x07\x66n_type\"f\n\x05Since\x12,\n\x05other\x18\x01 \x01(\x0b\x32\x1d.fennel.proto.expression.Expr\x12/\n\x04unit\x18\x02 \x01(\x0e\x32!.fennel.proto.expression.TimeUnit\"=\n\nSinceEpoch\x12/\n\x04unit\x18\x01 \x01(\x0e\x32!.fennel.proto.expression.TimeUnit\"O\n\x08Strftime\x12\x0e\n\x06\x66ormat\x18\x01 \x01(\t\x12\x33\n\x08timezone\x18\x02 \x01(\x0b\x32!.fennel.proto.expression.Timezone\"l\n\x04Part\x12/\n\x04unit\x18\x01 \x01(\x0e\x32!.fennel.proto.expression.TimeUnit\x12\x33\n\x08timezone\x18\x02 \x01(\x0b\x32!.fennel.proto.expression.Timezone\"\x14\n\x05Split\x12\x0b\n\x03sep\x18\x01 \x01(\t\"\x1b\n\x0bJsonExtract\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x07\n\x05ToInt*\x1b\n\x07UnaryOp\x12\x07\n\x03NEG\x10\x00\x12\x07\n\x03NOT\x10\x01*\x86\x01\n\x05\x42inOp\x12\x07\n\x03\x41\x44\x44\x10\x00\x12\x07\n\x03SUB\x10\x01\x12\x07\n\x03MUL\x10\x02\x12\x07\n\x03\x44IV\x10\x03\x12\x07\n\x03MOD\x10\x04\x12\r\n\tFLOOR_DIV\x10\x05\x12\x06\n\x02\x45Q\x10\x06\x12\x06\n\x02NE\x10\x07\x12\x06\n\x02GT\x10\x08\x12\x07\n\x03GTE\x10\t\x12\x06\n\x02LT\x10\n\x12\x07\n\x03LTE\x10\x0b\x12\x07\n\x03\x41ND\x10\x0c\x12\x06\n\x02OR\x10\r*\x83\x01\n\x08TimeUnit\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06SECOND\x10\x01\x12\n\n\x06MINUTE\x10\x02\x12\x08\n\x04HOUR\x10\x03\x12\x07\n\x03\x44\x41Y\x10\x04\x12\x08\n\x04WEEK\x10\x05\x12\t\n\x05MONTH\x10\x06\x12\x08\n\x04YEAR\x10\x07\x12\x0f\n\x0bMICROSECOND\x10\x08\x12\x0f\n\x0bMILLISECOND\x10\tb\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -24,12 +24,12 @@
DESCRIPTOR._loaded_options = None
_globals['_MAKESTRUCT_FIELDSENTRY']._loaded_options = None
_globals['_MAKESTRUCT_FIELDSENTRY']._serialized_options = b'8\001'
- _globals['_UNARYOP']._serialized_start=6178
- _globals['_UNARYOP']._serialized_end=6205
- _globals['_BINOP']._serialized_start=6208
- _globals['_BINOP']._serialized_end=6342
- _globals['_TIMEUNIT']._serialized_start=6345
- _globals['_TIMEUNIT']._serialized_end=6476
+ _globals['_UNARYOP']._serialized_start=6246
+ _globals['_UNARYOP']._serialized_end=6273
+ _globals['_BINOP']._serialized_start=6276
+ _globals['_BINOP']._serialized_end=6410
+ _globals['_TIMEUNIT']._serialized_start=6413
+ _globals['_TIMEUNIT']._serialized_end=6544
_globals['_EVALCONTEXT']._serialized_start=59
_globals['_EVALCONTEXT']._serialized_end=116
_globals['_EXPR']._serialized_start=119
@@ -89,63 +89,65 @@
_globals['_LISTFN']._serialized_start=3276
_globals['_LISTFN']._serialized_end=3374
_globals['_MATHOP']._serialized_start=3377
- _globals['_MATHOP']._serialized_end=3586
- _globals['_ROUND']._serialized_start=3588
- _globals['_ROUND']._serialized_end=3614
- _globals['_ABS']._serialized_start=3616
- _globals['_ABS']._serialized_end=3621
- _globals['_CEIL']._serialized_start=3623
- _globals['_CEIL']._serialized_end=3629
- _globals['_FLOOR']._serialized_start=3631
- _globals['_FLOOR']._serialized_end=3638
- _globals['_MATHFN']._serialized_start=3640
- _globals['_MATHFN']._serialized_end=3741
- _globals['_STRUCTOP']._serialized_start=3743
- _globals['_STRUCTOP']._serialized_end=3781
- _globals['_STRUCTFN']._serialized_start=3783
- _globals['_STRUCTFN']._serialized_end=3887
- _globals['_DICTGET']._serialized_start=3889
- _globals['_DICTGET']._serialized_end=3998
- _globals['_DICTOP']._serialized_start=4001
- _globals['_DICTOP']._serialized_end=4169
- _globals['_DICTFN']._serialized_start=4171
- _globals['_DICTFN']._serialized_end=4269
- _globals['_STRINGOP']._serialized_start=4272
- _globals['_STRINGOP']._serialized_end=4940
- _globals['_TIMEZONE']._serialized_start=4942
- _globals['_TIMEZONE']._serialized_end=4970
- _globals['_JSONDECODE']._serialized_start=4972
- _globals['_JSONDECODE']._serialized_end=5030
- _globals['_STRPTIME']._serialized_start=5032
- _globals['_STRPTIME']._serialized_end=5111
- _globals['_TOLOWER']._serialized_start=5113
- _globals['_TOLOWER']._serialized_end=5122
- _globals['_TOUPPER']._serialized_start=5124
- _globals['_TOUPPER']._serialized_end=5133
- _globals['_STARTSWITH']._serialized_start=5135
- _globals['_STARTSWITH']._serialized_end=5191
- _globals['_ENDSWITH']._serialized_start=5193
- _globals['_ENDSWITH']._serialized_end=5247
- _globals['_CONCAT']._serialized_start=5249
- _globals['_CONCAT']._serialized_end=5303
- _globals['_STRINGFN']._serialized_start=5305
- _globals['_STRINGFN']._serialized_end=5409
- _globals['_DATETIMEFN']._serialized_start=5411
- _globals['_DATETIMEFN']._serialized_end=5521
- _globals['_DATETIMEOP']._serialized_start=5524
- _globals['_DATETIMEOP']._serialized_end=5758
- _globals['_SINCE']._serialized_start=5760
- _globals['_SINCE']._serialized_end=5862
- _globals['_SINCEEPOCH']._serialized_start=5864
- _globals['_SINCEEPOCH']._serialized_end=5925
- _globals['_STRFTIME']._serialized_start=5927
- _globals['_STRFTIME']._serialized_end=6006
- _globals['_PART']._serialized_start=6008
- _globals['_PART']._serialized_end=6116
- _globals['_SPLIT']._serialized_start=6118
- _globals['_SPLIT']._serialized_end=6138
- _globals['_JSONEXTRACT']._serialized_start=6140
- _globals['_JSONEXTRACT']._serialized_end=6167
- _globals['_TOINT']._serialized_start=6169
- _globals['_TOINT']._serialized_end=6176
+ _globals['_MATHOP']._serialized_end=3642
+ _globals['_ROUND']._serialized_start=3644
+ _globals['_ROUND']._serialized_end=3670
+ _globals['_ABS']._serialized_start=3672
+ _globals['_ABS']._serialized_end=3677
+ _globals['_CEIL']._serialized_start=3679
+ _globals['_CEIL']._serialized_end=3685
+ _globals['_FLOOR']._serialized_start=3687
+ _globals['_FLOOR']._serialized_end=3694
+ _globals['_TOSTRING']._serialized_start=3696
+ _globals['_TOSTRING']._serialized_end=3706
+ _globals['_MATHFN']._serialized_start=3708
+ _globals['_MATHFN']._serialized_end=3809
+ _globals['_STRUCTOP']._serialized_start=3811
+ _globals['_STRUCTOP']._serialized_end=3849
+ _globals['_STRUCTFN']._serialized_start=3851
+ _globals['_STRUCTFN']._serialized_end=3955
+ _globals['_DICTGET']._serialized_start=3957
+ _globals['_DICTGET']._serialized_end=4066
+ _globals['_DICTOP']._serialized_start=4069
+ _globals['_DICTOP']._serialized_end=4237
+ _globals['_DICTFN']._serialized_start=4239
+ _globals['_DICTFN']._serialized_end=4337
+ _globals['_STRINGOP']._serialized_start=4340
+ _globals['_STRINGOP']._serialized_end=5008
+ _globals['_TIMEZONE']._serialized_start=5010
+ _globals['_TIMEZONE']._serialized_end=5038
+ _globals['_JSONDECODE']._serialized_start=5040
+ _globals['_JSONDECODE']._serialized_end=5098
+ _globals['_STRPTIME']._serialized_start=5100
+ _globals['_STRPTIME']._serialized_end=5179
+ _globals['_TOLOWER']._serialized_start=5181
+ _globals['_TOLOWER']._serialized_end=5190
+ _globals['_TOUPPER']._serialized_start=5192
+ _globals['_TOUPPER']._serialized_end=5201
+ _globals['_STARTSWITH']._serialized_start=5203
+ _globals['_STARTSWITH']._serialized_end=5259
+ _globals['_ENDSWITH']._serialized_start=5261
+ _globals['_ENDSWITH']._serialized_end=5315
+ _globals['_CONCAT']._serialized_start=5317
+ _globals['_CONCAT']._serialized_end=5371
+ _globals['_STRINGFN']._serialized_start=5373
+ _globals['_STRINGFN']._serialized_end=5477
+ _globals['_DATETIMEFN']._serialized_start=5479
+ _globals['_DATETIMEFN']._serialized_end=5589
+ _globals['_DATETIMEOP']._serialized_start=5592
+ _globals['_DATETIMEOP']._serialized_end=5826
+ _globals['_SINCE']._serialized_start=5828
+ _globals['_SINCE']._serialized_end=5930
+ _globals['_SINCEEPOCH']._serialized_start=5932
+ _globals['_SINCEEPOCH']._serialized_end=5993
+ _globals['_STRFTIME']._serialized_start=5995
+ _globals['_STRFTIME']._serialized_end=6074
+ _globals['_PART']._serialized_start=6076
+ _globals['_PART']._serialized_end=6184
+ _globals['_SPLIT']._serialized_start=6186
+ _globals['_SPLIT']._serialized_end=6206
+ _globals['_JSONEXTRACT']._serialized_start=6208
+ _globals['_JSONEXTRACT']._serialized_end=6235
+ _globals['_TOINT']._serialized_start=6237
+ _globals['_TOINT']._serialized_end=6244
# @@protoc_insertion_point(module_scope)
diff --git a/fennel/gen/expression_pb2.pyi b/fennel/gen/expression_pb2.pyi
index e5b03387e..e00682622 100644
--- a/fennel/gen/expression_pb2.pyi
+++ b/fennel/gen/expression_pb2.pyi
@@ -726,6 +726,7 @@ class MathOp(google.protobuf.message.Message):
ABS_FIELD_NUMBER: builtins.int
CEIL_FIELD_NUMBER: builtins.int
FLOOR_FIELD_NUMBER: builtins.int
+ TO_STRING_FIELD_NUMBER: builtins.int
@property
def round(self) -> global___Round: ...
@property
@@ -734,6 +735,8 @@ class MathOp(google.protobuf.message.Message):
def ceil(self) -> global___Ceil: ...
@property
def floor(self) -> global___Floor: ...
+ @property
+ def to_string(self) -> global___ToString: ...
def __init__(
self,
*,
@@ -741,10 +744,11 @@ class MathOp(google.protobuf.message.Message):
abs: global___Abs | None = ...,
ceil: global___Ceil | None = ...,
floor: global___Floor | None = ...,
+ to_string: global___ToString | None = ...,
) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["abs", b"abs", "ceil", b"ceil", "floor", b"floor", "fn_type", b"fn_type", "round", b"round"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["abs", b"abs", "ceil", b"ceil", "floor", b"floor", "fn_type", b"fn_type", "round", b"round"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["fn_type", b"fn_type"]) -> typing_extensions.Literal["round", "abs", "ceil", "floor"] | None: ...
+ def HasField(self, field_name: typing_extensions.Literal["abs", b"abs", "ceil", b"ceil", "floor", b"floor", "fn_type", b"fn_type", "round", b"round", "to_string", b"to_string"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["abs", b"abs", "ceil", b"ceil", "floor", b"floor", "fn_type", b"fn_type", "round", b"round", "to_string", b"to_string"]) -> None: ...
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["fn_type", b"fn_type"]) -> typing_extensions.Literal["round", "abs", "ceil", "floor", "to_string"] | None: ...
global___MathOp = MathOp
@@ -793,6 +797,16 @@ class Floor(google.protobuf.message.Message):
global___Floor = Floor
+@typing_extensions.final
+class ToString(google.protobuf.message.Message):
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+
+ def __init__(
+ self,
+ ) -> None: ...
+
+global___ToString = ToString
+
@typing_extensions.final
class MathFn(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
diff --git a/poetry.lock b/poetry.lock
index dd5c21008..ed5356788 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -779,48 +779,48 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc
[[package]]
name = "fennel-data-lib"
-version = "0.1.23"
+version = "0.1.24"
description = ""
optional = false
python-versions = ">=3.8"
files = [
- {file = "fennel_data_lib-0.1.23-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6e3415c1e9565169062a83f4af3dafa16f9b0d08e9d6a7f46f9bb3023ec3c853"},
- {file = "fennel_data_lib-0.1.23-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2afd70464a54a0d9e74e961e2b475d20cc0b19139035b773a4de6a62f62dd079"},
- {file = "fennel_data_lib-0.1.23-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2ca09807cc03c761cc488cd015a2944f8091ef22817ff6866568ff309c216ce5"},
- {file = "fennel_data_lib-0.1.23-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a14e2e99bd8e1af6d3e252ed2d746c3d99c8ce8d380b5cad9ca99107feba905"},
- {file = "fennel_data_lib-0.1.23-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4a6965115e0fe04dfd75a97d8e6a97936c8f9d91389ef8b7f52996af3a0cd87d"},
- {file = "fennel_data_lib-0.1.23-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b70561b8490ef597b6ad8fd808bad1ad9900a32abc9aaee2f9a714bea660daa"},
- {file = "fennel_data_lib-0.1.23-cp310-cp310-manylinux_2_34_x86_64.whl", hash = "sha256:af50b8cb922105f10d6f2aecc80de4b22b054288c64a840a27f30dd08a2afb50"},
- {file = "fennel_data_lib-0.1.23-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d5adf377531a7659780895d4bda9a2e2fa01343de3a46f8f10beea726f1cb02e"},
- {file = "fennel_data_lib-0.1.23-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7f7f211068b3daf406283c20151666635e05aad62c77abd4bbfb077ce24f740e"},
- {file = "fennel_data_lib-0.1.23-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:2f1fd0eaecc05944776733512865fda4f6684effefd1b9d753d97f9d7009e54c"},
- {file = "fennel_data_lib-0.1.23-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca31548d17d0b4fe06734f569d428cb2f1359874a19d93eea186c99440291f80"},
- {file = "fennel_data_lib-0.1.23-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:326f27c746065188290665fa73f977643be8c8a523046117cd4e944f2b270cd8"},
- {file = "fennel_data_lib-0.1.23-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:df4233ee7b48fe2105a2f18b5b89f841267f0949e3f52a3b5bb79a08176dec54"},
- {file = "fennel_data_lib-0.1.23-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:20737c4dabff614e2e0beff7028d4aa4b236dec8184ca4bda54bc9c6d2205740"},
- {file = "fennel_data_lib-0.1.23-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f23cec10fc3a556c94beb9eb8dcb4854e69d6175abbdeaac28af5cd7a12c0a3"},
- {file = "fennel_data_lib-0.1.23-cp311-cp311-manylinux_2_34_x86_64.whl", hash = "sha256:b9a8a994ebcea9eaa4f91b3ad9a229cbcec4944a68bfed6eee2fdd567c966b6e"},
- {file = "fennel_data_lib-0.1.23-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:622f704a76370e4c94ae91063c997dc76f6fcf962e59b2fc163e53aec539bfc9"},
- {file = "fennel_data_lib-0.1.23-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:548b6f670a08a51cabca33e191d06b902d650833b249c945de70981ace00fb58"},
- {file = "fennel_data_lib-0.1.23-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:08c2a7aaf7ae35b383bb93ca190e71bb2f94d02bb12ea846680126be5b4e9ec4"},
- {file = "fennel_data_lib-0.1.23-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afd2a704cac259393b44deb3d44a861efd377717c880d031a679ce3b4a8d17d7"},
- {file = "fennel_data_lib-0.1.23-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:117c55ba156942ad99be7334ca4fb479cadaa8df658e5aee49051b0cfa45f41f"},
- {file = "fennel_data_lib-0.1.23-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c64f17b499088c0ddfeb2d1c3cf690736932dcc9e8e33a45e87e2b932acc43b0"},
- {file = "fennel_data_lib-0.1.23-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eecfc2e368dfb01266d888d61e545a35a7b076c540d6f1828db1ee2a31a69820"},
- {file = "fennel_data_lib-0.1.23-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37c67650df5afb4f903a814c47df3d75bc1f70bc5cec84ff03ac6038bddc7b37"},
- {file = "fennel_data_lib-0.1.23-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:39024f848a07859916893173a6ee0dfdab4349729972da494d555437a6db1490"},
- {file = "fennel_data_lib-0.1.23-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2f1801c08d1e3d53c6182fb700a984a89d79599697fb6cd6b2aed15c28b5a548"},
- {file = "fennel_data_lib-0.1.23-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0521b9afae47ac650eb00ff6b6d225f42f2ff7caccd5abf51147693d1137bb82"},
- {file = "fennel_data_lib-0.1.23-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:be4600163b8352610b163684b062cafbd3fc93be65a31c821ab704002b724cd4"},
- {file = "fennel_data_lib-0.1.23-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a22a564e016b2cabcee0d264f638454b1d32dec42cd78fb42d4281a83089b83"},
- {file = "fennel_data_lib-0.1.23-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5d9cc06ebd7aad916031712d7cc3c7c366d142bc6706c75205ea54b9e748351d"},
- {file = "fennel_data_lib-0.1.23-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36d896fd8d552146241c86615bb5c67742f61a539a783f8d69e9818cd630bf31"},
- {file = "fennel_data_lib-0.1.23-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d80748c0a3047b1ff9b091fe65c1d6730d1fb4cbf729eda01f6117e9dad0deaf"},
- {file = "fennel_data_lib-0.1.23-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac3fb58ef41b5bf1283c34965d48cdb0308083990ca961446dc828d690272bee"},
- {file = "fennel_data_lib-0.1.23-cp39-cp39-manylinux_2_34_x86_64.whl", hash = "sha256:c50de126261886bb857f73405415ed55c9a62cc4bd53e5328c93cad98d7927cf"},
- {file = "fennel_data_lib-0.1.23-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2c200ad6ba679229e073c41ad712fc4244e8a2e9f802b0a2d5ea32868559aafe"},
- {file = "fennel_data_lib-0.1.23-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:414a799d9e169edca4a636029ef54b35e1328c1859961e599f3d362ddb5bfbf3"},
- {file = "fennel_data_lib-0.1.23.tar.gz", hash = "sha256:81736ee3054ddacea7723927463ad23697bccecf825670c4d203fa2aa7640c7a"},
+ {file = "fennel_data_lib-0.1.24-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:810537b17cc9cf253c984d48d95b22438c4734b7a3035d2144f7b024f4521b58"},
+ {file = "fennel_data_lib-0.1.24-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3e1814938da9f6f82b9bce04bd95b3ba4b8f49ec4097054d46609e58c57b390"},
+ {file = "fennel_data_lib-0.1.24-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dc9fbd4a6fdb71980569a82439ae7e0072981ca7454be5f5ef0834acd4cc8420"},
+ {file = "fennel_data_lib-0.1.24-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ab45451797311a94d2dbeff21cd7ad10bc925087f192c0e4a6a13aa96354e377"},
+ {file = "fennel_data_lib-0.1.24-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80258a4b0189d0bdf4a271b15a4358dc031b76593732d4b4d2df6dfd72428d06"},
+ {file = "fennel_data_lib-0.1.24-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a6810b1a1ba217a9a1b284122fff47ef21764e20de41e1d8e0fb8174e227a86"},
+ {file = "fennel_data_lib-0.1.24-cp310-cp310-manylinux_2_34_x86_64.whl", hash = "sha256:bdfb2a863b84b9238abdf5ae469bf1bbd87b5d6e3bea8defe24c83a13a7daf68"},
+ {file = "fennel_data_lib-0.1.24-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d5d4c36eef520af2309ef07b328b6c72bf40bea6d481ce7a6bbb5d68edaef30b"},
+ {file = "fennel_data_lib-0.1.24-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b8497f904144d86a62b3cb65f2e74799ca529ff25d30914490d71d8fa46abb46"},
+ {file = "fennel_data_lib-0.1.24-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:54b0dda37d9e70c0de1f09cca3fd864ac622da35beef91bae81f7b8eaf1d3fa5"},
+ {file = "fennel_data_lib-0.1.24-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ce9e776991550b911954209d021efb36444f7c81344c0ccc8b2303d2db115ed"},
+ {file = "fennel_data_lib-0.1.24-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:139f213cc2b4c655860d9367f3ff00ac941cd16865dbb4e274d0b165b6809155"},
+ {file = "fennel_data_lib-0.1.24-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a8573aa1e6604281cd86c26274973c93c2a559e6b67215328c55081411decd2"},
+ {file = "fennel_data_lib-0.1.24-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f966cfa25e8a1430390b593c0cebcf38f64d4f88ca856fd680837564cf33b963"},
+ {file = "fennel_data_lib-0.1.24-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d8e10fbe416723e120078d1c42ecf9f415cb0adfecbc5c1679f3f7db2b833fc"},
+ {file = "fennel_data_lib-0.1.24-cp311-cp311-manylinux_2_34_x86_64.whl", hash = "sha256:c54a8841ce202a2f9c1d823a1988a654e31bf1ee8ec994d9120a15e05be8aac6"},
+ {file = "fennel_data_lib-0.1.24-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47cac3a552969d36f69544c87e16727af868024acee895934da0d5250a4008fc"},
+ {file = "fennel_data_lib-0.1.24-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:850e1a9e16f0a769610289a3f16020be81429b1d6a9e34062e800aace5a88122"},
+ {file = "fennel_data_lib-0.1.24-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:47b19869c1338f51fd4cd749ced952cda3b6596c5777eb66eaff5a068fd82acd"},
+ {file = "fennel_data_lib-0.1.24-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:077df1687e89caec85ce1f395cb786e48a9edc601fd24bf4c12ccab3485087a8"},
+ {file = "fennel_data_lib-0.1.24-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0374562846d4e90f7844c8a28ed2f986594a92dfe9cfb6d8298656ef94dc76e2"},
+ {file = "fennel_data_lib-0.1.24-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db9a6f14ff4a934c9834ba3d3e8c1aa999c16ca11acbd9cbc1a42932c25075c6"},
+ {file = "fennel_data_lib-0.1.24-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:be9d674efb45d6b8d94f7b7452135622048a67df5265d95dab35979476d3ca49"},
+ {file = "fennel_data_lib-0.1.24-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1393db53e323097ce7d4f044de64cac94fba44b457131815a15a992d195127cc"},
+ {file = "fennel_data_lib-0.1.24-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:c9a3715913b42a1b4130b44d45e292630907cb4564acfc09a3dc8453bce45431"},
+ {file = "fennel_data_lib-0.1.24-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4b993af888b29e074cddbac59f8a207a26c2acaabd5fc9ee16c68abf95879c81"},
+ {file = "fennel_data_lib-0.1.24-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad5bec6bf17e0465cc3e0507700ec03869d848ab237d06175c0462aacdb74085"},
+ {file = "fennel_data_lib-0.1.24-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:3a927a88262ee0c93909969851a9c958ecea8e0d2757cdfe73276b5f90652c3a"},
+ {file = "fennel_data_lib-0.1.24-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3dcd9a6bae8984714b87926c90552505f4442c70175734595c1c3582384194d"},
+ {file = "fennel_data_lib-0.1.24-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ad468415a888b5695cf186655819de2973c1744d0839f24a389e192d3c525f5a"},
+ {file = "fennel_data_lib-0.1.24-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:54a597752ee872dd4c1523511d8933d4880a7eab9528c1c2b896059c6aa6bf3e"},
+ {file = "fennel_data_lib-0.1.24-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ec997610b43af6eb570c9e8f13c5a1de45f7454dca26f6a9ce80a88a3728d6b"},
+ {file = "fennel_data_lib-0.1.24-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cebdc9e295b2382e32b413129d2480da22f72b98c6253619e4a21c4173fa7f1"},
+ {file = "fennel_data_lib-0.1.24-cp39-cp39-manylinux_2_34_x86_64.whl", hash = "sha256:498c3bbef1ec8f7e760ab1ba20074f256c2b37f90f2faa5e6360b30112535255"},
+ {file = "fennel_data_lib-0.1.24-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f66a6c2d7f20d4ba4d47c13adcbeefe8897ad6579b0d1817c4928e2e57627531"},
+ {file = "fennel_data_lib-0.1.24-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2a5ca35ca16994ede332419331fc524704432afc1c5ef66afd84fa2c57da6bb3"},
+ {file = "fennel_data_lib-0.1.24.tar.gz", hash = "sha256:0fe65710e04be1399c106ff593eaa9f4b57f5f511579ff82fec97b320d85f4d1"},
]
[[package]]
@@ -3771,4 +3771,4 @@ type = ["pytest-mypy"]
[metadata]
lock-version = "2.0"
python-versions = "^3.9"
-content-hash = "fff37b1920b894614cfe70d9ceee94efe130b8b5d4df200bd56522e5353fae3c"
+content-hash = "8b8f85fde3aaeb25f9dc5cda7264e90e32645fd7221f770bb90a9c8e1bbb6768"
diff --git a/pyproject.toml b/pyproject.toml
index a09073a98..0e5e8a31b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "fennel-ai"
-version = "1.5.55"
+version = "1.5.56"
description = "The modern realtime feature engineering platform"
authors = ["Fennel AI "]
packages = [{ include = "fennel" }]
@@ -20,7 +20,7 @@ pytest = "7.1.3"
pytest-rerunfailures = "^13.0"
sortedcontainers = "^2.4.0"
typing-extensions = "^4.12.0"
-fennel-data-lib = "0.1.23"
+fennel-data-lib = "0.1.24"
pyarrow = "^14.0.2"
[tool.poetry.dev-dependencies]