sqlframe 3.3.0__py3-none-any.whl → 3.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sqlframe/_version.py +2 -2
- sqlframe/base/functions.py +11 -10
- sqlframe/bigquery/functions.pyi +1 -0
- sqlframe/duckdb/functions.pyi +1 -0
- sqlframe/duckdb/session.py +4 -0
- sqlframe/snowflake/functions.pyi +1 -0
- sqlframe/spark/functions.py +1 -0
- sqlframe/spark/functions.pyi +1 -1
- {sqlframe-3.3.0.dist-info → sqlframe-3.4.0.dist-info}/METADATA +5 -5
- {sqlframe-3.3.0.dist-info → sqlframe-3.4.0.dist-info}/RECORD +13 -13
- {sqlframe-3.3.0.dist-info → sqlframe-3.4.0.dist-info}/LICENSE +0 -0
- {sqlframe-3.3.0.dist-info → sqlframe-3.4.0.dist-info}/WHEEL +0 -0
- {sqlframe-3.3.0.dist-info → sqlframe-3.4.0.dist-info}/top_level.txt +0 -0
sqlframe/_version.py
CHANGED
sqlframe/base/functions.py
CHANGED
|
@@ -1129,11 +1129,15 @@ def overlay(
|
|
|
1129
1129
|
pos: t.Union[ColumnOrName, int],
|
|
1130
1130
|
len: t.Optional[t.Union[ColumnOrName, int]] = None,
|
|
1131
1131
|
) -> Column:
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1132
|
+
return Column.invoke_expression_over_column(
|
|
1133
|
+
src,
|
|
1134
|
+
expression.Overlay,
|
|
1135
|
+
**{
|
|
1136
|
+
"expression": Column(replace).expression,
|
|
1137
|
+
"from": lit(pos).expression,
|
|
1138
|
+
"for": lit(len).expression if len is not None else None,
|
|
1139
|
+
},
|
|
1140
|
+
)
|
|
1137
1141
|
|
|
1138
1142
|
|
|
1139
1143
|
@meta(unsupported_engines=["bigquery", "duckdb", "postgres", "snowflake"])
|
|
@@ -4834,7 +4838,7 @@ def str_to_map(
|
|
|
4834
4838
|
)
|
|
4835
4839
|
|
|
4836
4840
|
|
|
4837
|
-
@meta(unsupported_engines="
|
|
4841
|
+
@meta(unsupported_engines="postgres")
|
|
4838
4842
|
def substr(str: ColumnOrName, pos: ColumnOrName, len: t.Optional[ColumnOrName] = None) -> Column:
|
|
4839
4843
|
"""
|
|
4840
4844
|
Returns the substring of `str` that starts at `pos` and is of length `len`,
|
|
@@ -4873,10 +4877,7 @@ def substr(str: ColumnOrName, pos: ColumnOrName, len: t.Optional[ColumnOrName] =
|
|
|
4873
4877
|
| k SQL|
|
|
4874
4878
|
+------------------------+
|
|
4875
4879
|
"""
|
|
4876
|
-
|
|
4877
|
-
return Column.invoke_anonymous_function(str, "substr", pos, len)
|
|
4878
|
-
else:
|
|
4879
|
-
return Column.invoke_anonymous_function(str, "substr", pos)
|
|
4880
|
+
return Column.invoke_expression_over_column(str, expression.Substring, start=pos, length=len)
|
|
4880
4881
|
|
|
4881
4882
|
|
|
4882
4883
|
@meta(unsupported_engines="*")
|
sqlframe/bigquery/functions.pyi
CHANGED
|
@@ -251,6 +251,7 @@ from sqlframe.base.functions import stddev as stddev
|
|
|
251
251
|
from sqlframe.base.functions import stddev_pop as stddev_pop
|
|
252
252
|
from sqlframe.base.functions import stddev_samp as stddev_samp
|
|
253
253
|
from sqlframe.base.functions import struct as struct
|
|
254
|
+
from sqlframe.base.functions import substr as substr
|
|
254
255
|
from sqlframe.base.functions import substring as substring
|
|
255
256
|
from sqlframe.base.functions import sum as sum
|
|
256
257
|
from sqlframe.base.functions import sum_distinct as sum_distinct
|
sqlframe/duckdb/functions.pyi
CHANGED
sqlframe/duckdb/session.py
CHANGED
|
@@ -52,6 +52,10 @@ class DuckDBSession(
|
|
|
52
52
|
super().__init__(conn, *args, **kwargs)
|
|
53
53
|
self._last_result = None
|
|
54
54
|
|
|
55
|
+
@cached_property
|
|
56
|
+
def _cur(self) -> DuckDBPyConnection: # type: ignore
|
|
57
|
+
return self._conn
|
|
58
|
+
|
|
55
59
|
@classmethod
|
|
56
60
|
def _try_get_map(cls, value: t.Any) -> t.Optional[t.Dict[str, t.Any]]:
|
|
57
61
|
if value and isinstance(value, dict):
|
sqlframe/snowflake/functions.pyi
CHANGED
sqlframe/spark/functions.py
CHANGED
sqlframe/spark/functions.pyi
CHANGED
|
@@ -2,6 +2,7 @@ from sqlframe.base.function_alternatives import ( # noqa
|
|
|
2
2
|
percentile_without_disc as percentile,
|
|
3
3
|
add_months_by_multiplication as add_months,
|
|
4
4
|
arrays_overlap_renamed as arrays_overlap,
|
|
5
|
+
try_element_at_zero_based as try_element_at,
|
|
5
6
|
)
|
|
6
7
|
from sqlframe.base.functions import (
|
|
7
8
|
abs as abs,
|
|
@@ -372,7 +373,6 @@ from sqlframe.base.functions import (
|
|
|
372
373
|
try_aes_decrypt as try_aes_decrypt,
|
|
373
374
|
try_avg as try_avg,
|
|
374
375
|
try_divide as try_divide,
|
|
375
|
-
try_element_at as try_element_at,
|
|
376
376
|
try_multiply as try_multiply,
|
|
377
377
|
try_subtract as try_subtract,
|
|
378
378
|
try_sum as try_sum,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sqlframe
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.4.0
|
|
4
4
|
Summary: Turning PySpark Into a Universal DataFrame API
|
|
5
5
|
Home-page: https://github.com/eakmanrq/sqlframe
|
|
6
6
|
Author: Ryan Eakman
|
|
@@ -18,7 +18,7 @@ Requires-Python: >=3.8
|
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
20
|
Requires-Dist: prettytable (<3.11.1)
|
|
21
|
-
Requires-Dist: sqlglot (<25.
|
|
21
|
+
Requires-Dist: sqlglot (<25.25,>=24.0.0)
|
|
22
22
|
Requires-Dist: typing-extensions (<5,>=4.8)
|
|
23
23
|
Provides-Extra: bigquery
|
|
24
24
|
Requires-Dist: google-cloud-bigquery-storage (<3,>=2) ; extra == 'bigquery'
|
|
@@ -27,7 +27,7 @@ Provides-Extra: dev
|
|
|
27
27
|
Requires-Dist: duckdb (<1.2,>=0.9) ; extra == 'dev'
|
|
28
28
|
Requires-Dist: findspark (<3,>=2) ; extra == 'dev'
|
|
29
29
|
Requires-Dist: mypy (<1.12,>=1.10.0) ; extra == 'dev'
|
|
30
|
-
Requires-Dist: openai (<1.
|
|
30
|
+
Requires-Dist: openai (<1.52,>=1.30) ; extra == 'dev'
|
|
31
31
|
Requires-Dist: pandas-stubs (<3,>=2) ; extra == 'dev'
|
|
32
32
|
Requires-Dist: pandas (<3,>=2) ; extra == 'dev'
|
|
33
33
|
Requires-Dist: psycopg (<4,>=3.1) ; extra == 'dev'
|
|
@@ -39,7 +39,7 @@ Requires-Dist: pytest (<8.4,>=8.2.0) ; extra == 'dev'
|
|
|
39
39
|
Requires-Dist: ruff (<0.7,>=0.4.4) ; extra == 'dev'
|
|
40
40
|
Requires-Dist: types-psycopg2 (<3,>=2.9) ; extra == 'dev'
|
|
41
41
|
Requires-Dist: pre-commit (>=3.5) ; (python_version == "3.8") and extra == 'dev'
|
|
42
|
-
Requires-Dist: pre-commit (<
|
|
42
|
+
Requires-Dist: pre-commit (<4.1,>=3.7) ; (python_version >= "3.9") and extra == 'dev'
|
|
43
43
|
Provides-Extra: docs
|
|
44
44
|
Requires-Dist: mkdocs-include-markdown-plugin (==6.0.6) ; extra == 'docs'
|
|
45
45
|
Requires-Dist: mkdocs-material-extensions (==1.1.1) ; extra == 'docs'
|
|
@@ -50,7 +50,7 @@ Provides-Extra: duckdb
|
|
|
50
50
|
Requires-Dist: duckdb (<1.2,>=0.9) ; extra == 'duckdb'
|
|
51
51
|
Requires-Dist: pandas (<3,>=2) ; extra == 'duckdb'
|
|
52
52
|
Provides-Extra: openai
|
|
53
|
-
Requires-Dist: openai (<1.
|
|
53
|
+
Requires-Dist: openai (<1.52,>=1.30) ; extra == 'openai'
|
|
54
54
|
Provides-Extra: pandas
|
|
55
55
|
Requires-Dist: pandas (<3,>=2) ; extra == 'pandas'
|
|
56
56
|
Provides-Extra: postgres
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
sqlframe/__init__.py,sha256=E3qCJ4PSEgKz6Hg3ves6LWt3JrQOV8c9HVLSIUOzKNc,3106
|
|
2
|
-
sqlframe/_version.py,sha256=
|
|
2
|
+
sqlframe/_version.py,sha256=YWGqQYvejjlymmjzg4jncyBgDC760jlRmyon_Rd-2uQ,411
|
|
3
3
|
sqlframe/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
sqlframe/base/_typing.py,sha256=b2clI5HI1zEZKB_3Msx3FeAJQyft44ubUifJwQRVXyQ,1298
|
|
5
5
|
sqlframe/base/catalog.py,sha256=SzFQalTWdhWzxUY-4ut1f9TfOECp_JmJEgNPfrRKCe0,38457
|
|
@@ -8,7 +8,7 @@ sqlframe/base/dataframe.py,sha256=uTM46auSPniww-ZMtI5s0hrrCG1nOICMEhdZZ8E4cu8,71
|
|
|
8
8
|
sqlframe/base/decorators.py,sha256=Jy4bf8MhZ-AJ6CWTj59bBJRqamtLbPC0USUMFrY6g0w,449
|
|
9
9
|
sqlframe/base/exceptions.py,sha256=9Uwvqn2eAkDpqm4BrRgbL61qM-GMCbJEMAW8otxO46s,370
|
|
10
10
|
sqlframe/base/function_alternatives.py,sha256=IxNBqplehkAEkpzA625Dif-9Xyi4Hrho81A9U262rV0,50714
|
|
11
|
-
sqlframe/base/functions.py,sha256=
|
|
11
|
+
sqlframe/base/functions.py,sha256=b6rjrBHHpTMzBU2N5ubdXMJACM40qw4WnbI_RqusWIU,189878
|
|
12
12
|
sqlframe/base/group.py,sha256=fsyG5990_Pd7gFPjTFrH9IEoAquL_wEkVpIlBAIkZJU,4091
|
|
13
13
|
sqlframe/base/normalize.py,sha256=nXAJ5CwxVf4DV0GsH-q1w0p8gmjSMlv96k_ez1eVul8,3880
|
|
14
14
|
sqlframe/base/operations.py,sha256=-AhNuEzcV7ZExoP1oY3blaKip-joQyJeQVvfBTs_2g4,3456
|
|
@@ -28,7 +28,7 @@ sqlframe/bigquery/catalog.py,sha256=8d36IzT5GPWd1FdxJ9vEljOdbIDepHnFOBjwP0bX6FE,
|
|
|
28
28
|
sqlframe/bigquery/column.py,sha256=E1tUa62Y5HajkhgFuebU9zohrGyieudcHzTT8gfalio,40
|
|
29
29
|
sqlframe/bigquery/dataframe.py,sha256=Y2uy4FEYw0KxIHgnaA9uMwdIzxJzTlD_NSzIe7P7kxA,2405
|
|
30
30
|
sqlframe/bigquery/functions.py,sha256=CxXiBzSLRf9h-9lAM8xSz1CFcVk2tVXU1eFPJ4d_L00,11140
|
|
31
|
-
sqlframe/bigquery/functions.pyi,sha256=
|
|
31
|
+
sqlframe/bigquery/functions.pyi,sha256=GJnEmsTV2PyEzVlowJxpAvOT_6JYY2pVwJ_cZ3lxvz0,13636
|
|
32
32
|
sqlframe/bigquery/group.py,sha256=UVBNBRTo8OqS-_cS5YwvTeJYgYxeG-d6R3kfyHmlFqw,391
|
|
33
33
|
sqlframe/bigquery/readwriter.py,sha256=WAD3ZMwkkjOpvPPoZXfaLLNM6tRTeUvdEj-hQZAzXeo,870
|
|
34
34
|
sqlframe/bigquery/session.py,sha256=uSiEWWiDEryq3gIJJUmsu1DIalRGomNiymVulxt439c,2744
|
|
@@ -40,10 +40,10 @@ sqlframe/duckdb/catalog.py,sha256=YYYVmetLUaJOdObKw4AJ7L0P-msshkta4xHlcZQ9zEA,47
|
|
|
40
40
|
sqlframe/duckdb/column.py,sha256=E1tUa62Y5HajkhgFuebU9zohrGyieudcHzTT8gfalio,40
|
|
41
41
|
sqlframe/duckdb/dataframe.py,sha256=HZg_uMAz4RsubZJT4-MslUQS_0-InF0_P5Yq5HyJ3wE,1708
|
|
42
42
|
sqlframe/duckdb/functions.py,sha256=Ee8o6YFtRdEiq0jNLXxgu5lcbc7Tsg0-lK6oRyxdcjo,1920
|
|
43
|
-
sqlframe/duckdb/functions.pyi,sha256=
|
|
43
|
+
sqlframe/duckdb/functions.pyi,sha256=mKr9hI4snRyXEeWWTYfRNpBJmWd5T2EujdQ0oJxpEjY,5849
|
|
44
44
|
sqlframe/duckdb/group.py,sha256=IkhbW42Ng1U5YT3FkIdiB4zBqRkW4QyTb-1detY1e_4,383
|
|
45
45
|
sqlframe/duckdb/readwriter.py,sha256=iY0Wsms35gymilETOhAQGQCHfH8LCj9_uY8aCdF77ds,4806
|
|
46
|
-
sqlframe/duckdb/session.py,sha256=
|
|
46
|
+
sqlframe/duckdb/session.py,sha256=b5IrKbTkYUVNQGSG2EJPNV9MTdJw4onN-9aMrskjxck,2721
|
|
47
47
|
sqlframe/duckdb/types.py,sha256=KwNyuXIo-2xVVd4bZED3YrQOobKCtemlxGrJL7DrTC8,34
|
|
48
48
|
sqlframe/duckdb/udf.py,sha256=Du9LnOtT1lJvB90D4HSR2tB7MXy179jZngDR-EjVjQk,656
|
|
49
49
|
sqlframe/duckdb/window.py,sha256=6GKPzuxeSapJakBaKBeT9VpED1ACdjggDv9JRILDyV0,35
|
|
@@ -75,7 +75,7 @@ sqlframe/snowflake/catalog.py,sha256=Tp_B9oMTInnqLTiZNsT0UNc-a-aKXu3zFThlCwLeKCA
|
|
|
75
75
|
sqlframe/snowflake/column.py,sha256=E1tUa62Y5HajkhgFuebU9zohrGyieudcHzTT8gfalio,40
|
|
76
76
|
sqlframe/snowflake/dataframe.py,sha256=ANDZ5Dpxz-WTlTtmKNcv-nJlzTeTsAOK0X0gR2euPqQ,2144
|
|
77
77
|
sqlframe/snowflake/functions.py,sha256=iX67xU8Czy5k3HiNjNbN-x-via6yqGNaMPw1maV9HPs,2580
|
|
78
|
-
sqlframe/snowflake/functions.pyi,sha256=
|
|
78
|
+
sqlframe/snowflake/functions.pyi,sha256=DoRyF0zob8kV7qHkHonyyyPex-C_GIQvFDaSxf2lSa4,6207
|
|
79
79
|
sqlframe/snowflake/group.py,sha256=pPP1l2RRo_LgkXrji8a87n2PKo-63ZRPT-WUtvVcBME,395
|
|
80
80
|
sqlframe/snowflake/readwriter.py,sha256=yhRc2HcMq6PwV3ghZWC-q-qaE7LE4aEjZEXCip4OOlQ,884
|
|
81
81
|
sqlframe/snowflake/session.py,sha256=fnFYrJ9JxoOf4ZKTrQcSKjwr6wNp6A85cMqKczOi3vA,3320
|
|
@@ -86,8 +86,8 @@ sqlframe/spark/__init__.py,sha256=QV0eNmY5fL4ulLvAJVVVx2OYFfQXN2KYV3R5cij7HTg,85
|
|
|
86
86
|
sqlframe/spark/catalog.py,sha256=8ghHiKz9rBJ2ohm768XIftyi9Htbw-1cSkJUlXemwrI,39796
|
|
87
87
|
sqlframe/spark/column.py,sha256=E1tUa62Y5HajkhgFuebU9zohrGyieudcHzTT8gfalio,40
|
|
88
88
|
sqlframe/spark/dataframe.py,sha256=_TD-h7oz0-i80r90v17UoLDoIzcGNchU2SL13ujOOic,1779
|
|
89
|
-
sqlframe/spark/functions.py,sha256=
|
|
90
|
-
sqlframe/spark/functions.pyi,sha256=
|
|
89
|
+
sqlframe/spark/functions.py,sha256=KY_597LO6UN0NQOK9Gk4ElRPACjS60ANTDF4KWKeyxc,635
|
|
90
|
+
sqlframe/spark/functions.pyi,sha256=jiZr-EGGuXEodEeKq56MwibcXBk4Lpy4H3brFd0DDVA,11628
|
|
91
91
|
sqlframe/spark/group.py,sha256=MrvV_v-YkBc6T1zz882WrEqtWjlooWIyHBCmTQg3fCA,379
|
|
92
92
|
sqlframe/spark/readwriter.py,sha256=w68EImTcGJv64X7pc1tk5tDjDxb1nAnn-MiIaaN9Dc8,812
|
|
93
93
|
sqlframe/spark/session.py,sha256=cjsRQZz1kW67aajvXQyAJkv9Uh-zmmk3C3O9QSBbEQQ,5265
|
|
@@ -107,8 +107,8 @@ sqlframe/standalone/udf.py,sha256=azmgtUjHNIPs0WMVNId05SHwiYn41MKVBhKXsQJ5dmY,27
|
|
|
107
107
|
sqlframe/standalone/window.py,sha256=6GKPzuxeSapJakBaKBeT9VpED1ACdjggDv9JRILDyV0,35
|
|
108
108
|
sqlframe/testing/__init__.py,sha256=VVCosQhitU74A3NnE52O4mNtGZONapuEXcc20QmSlnQ,132
|
|
109
109
|
sqlframe/testing/utils.py,sha256=9DDYVuocO7tygee3RaajuJNZ24sJwf_LY556kKg7kTw,13011
|
|
110
|
-
sqlframe-3.
|
|
111
|
-
sqlframe-3.
|
|
112
|
-
sqlframe-3.
|
|
113
|
-
sqlframe-3.
|
|
114
|
-
sqlframe-3.
|
|
110
|
+
sqlframe-3.4.0.dist-info/LICENSE,sha256=VZu79YgW780qxaFJMr0t5ZgbOYEh04xWoxaWOaqIGWk,1068
|
|
111
|
+
sqlframe-3.4.0.dist-info/METADATA,sha256=IDBAwEcCrJfWwGuAaa8kfV3Jxlte38uOYO87zcFWJfY,8639
|
|
112
|
+
sqlframe-3.4.0.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
|
113
|
+
sqlframe-3.4.0.dist-info/top_level.txt,sha256=T0_RpoygaZSF6heeWwIDQgaP0varUdSK1pzjeJZRjM8,9
|
|
114
|
+
sqlframe-3.4.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|