jupyter-duckdb 1.2.0.6__py3-none-any.whl → 1.2.100__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.
- duckdb_kernel/parser/RAParser.py +6 -2
- duckdb_kernel/parser/elements/__init__.py +1 -1
- duckdb_kernel/parser/elements/binary/Difference.py +1 -1
- duckdb_kernel/parser/elements/binary/Divide.py +1 -1
- duckdb_kernel/parser/elements/binary/Division.py +0 -4
- duckdb_kernel/parser/elements/binary/FullOuterJoin.py +37 -0
- duckdb_kernel/parser/elements/binary/LeftOuterJoin.py +24 -0
- duckdb_kernel/parser/elements/binary/RightOuterJoin.py +24 -0
- duckdb_kernel/parser/elements/binary/__init__.py +19 -6
- duckdb_kernel/parser/util/RenamableColumnList.py +10 -2
- duckdb_kernel/tests/__init__.py +76 -0
- duckdb_kernel/tests/test_dc.py +454 -0
- duckdb_kernel/tests/test_ra.py +1250 -0
- duckdb_kernel/tests/test_result_comparison.py +173 -0
- duckdb_kernel/tests/test_sql.py +48 -0
- {jupyter_duckdb-1.2.0.6.dist-info → jupyter_duckdb-1.2.100.dist-info}/METADATA +2 -2
- {jupyter_duckdb-1.2.0.6.dist-info → jupyter_duckdb-1.2.100.dist-info}/RECORD +19 -11
- {jupyter_duckdb-1.2.0.6.dist-info → jupyter_duckdb-1.2.100.dist-info}/WHEEL +0 -0
- {jupyter_duckdb-1.2.0.6.dist-info → jupyter_duckdb-1.2.100.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
from duckdb_kernel.util.ResultSetComparator import ResultSetComparator
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def test_equals():
|
|
5
|
+
rsc = ResultSetComparator([
|
|
6
|
+
(1, "Alice"),
|
|
7
|
+
(3, "Charlie")
|
|
8
|
+
], [
|
|
9
|
+
(1, "Alice"),
|
|
10
|
+
(3, "Charlie")
|
|
11
|
+
])
|
|
12
|
+
|
|
13
|
+
assert rsc.left_only == []
|
|
14
|
+
assert rsc.right_only == []
|
|
15
|
+
assert rsc.ordered_left_only == []
|
|
16
|
+
assert rsc.ordered_right_only == []
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def test_equals_only_unordered():
|
|
20
|
+
rsc = ResultSetComparator([
|
|
21
|
+
(1, "Alice"),
|
|
22
|
+
(3, "Charlie")
|
|
23
|
+
], [
|
|
24
|
+
(3, "Charlie"),
|
|
25
|
+
(1, "Alice")
|
|
26
|
+
])
|
|
27
|
+
|
|
28
|
+
assert rsc.left_only == []
|
|
29
|
+
assert rsc.right_only == []
|
|
30
|
+
assert rsc.ordered_left_only == [(3, "Charlie")]
|
|
31
|
+
assert rsc.ordered_right_only == [(1, "Alice")]
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def test_missing():
|
|
35
|
+
# first missing
|
|
36
|
+
rsc = ResultSetComparator([
|
|
37
|
+
(1, "Alice"),
|
|
38
|
+
(2, "Bob"),
|
|
39
|
+
(3, "Charlie")
|
|
40
|
+
], [
|
|
41
|
+
(2, "Bob"),
|
|
42
|
+
(3, "Charlie")
|
|
43
|
+
])
|
|
44
|
+
|
|
45
|
+
assert rsc.left_only == [(1, "Alice")]
|
|
46
|
+
assert rsc.right_only == []
|
|
47
|
+
assert rsc.ordered_left_only == [(1, "Alice")]
|
|
48
|
+
assert rsc.ordered_right_only == []
|
|
49
|
+
|
|
50
|
+
# middle missing
|
|
51
|
+
rsc = ResultSetComparator([
|
|
52
|
+
(1, "Alice"),
|
|
53
|
+
(2, "Bob"),
|
|
54
|
+
(3, "Charlie")
|
|
55
|
+
], [
|
|
56
|
+
(1, "Alice"),
|
|
57
|
+
(3, "Charlie")
|
|
58
|
+
])
|
|
59
|
+
|
|
60
|
+
assert rsc.left_only == [(2, "Bob")]
|
|
61
|
+
assert rsc.right_only == []
|
|
62
|
+
assert rsc.ordered_left_only == [(2, "Bob")]
|
|
63
|
+
assert rsc.ordered_right_only == []
|
|
64
|
+
|
|
65
|
+
# last missing
|
|
66
|
+
rsc = ResultSetComparator([
|
|
67
|
+
(1, "Alice"),
|
|
68
|
+
(2, "Bob"),
|
|
69
|
+
(3, "Charlie")
|
|
70
|
+
], [
|
|
71
|
+
(1, "Alice"),
|
|
72
|
+
(2, "Bob")
|
|
73
|
+
])
|
|
74
|
+
|
|
75
|
+
assert rsc.left_only == [(3, "Charlie")]
|
|
76
|
+
assert rsc.right_only == []
|
|
77
|
+
assert rsc.ordered_left_only == [(3, "Charlie")]
|
|
78
|
+
assert rsc.ordered_right_only == []
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def test_unnecessary():
|
|
82
|
+
# first unnecessary
|
|
83
|
+
rsc = ResultSetComparator([
|
|
84
|
+
(2, "Bob"),
|
|
85
|
+
(3, "Charlie")
|
|
86
|
+
], [
|
|
87
|
+
(1, "Alice"),
|
|
88
|
+
(2, "Bob"),
|
|
89
|
+
(3, "Charlie")
|
|
90
|
+
])
|
|
91
|
+
|
|
92
|
+
assert rsc.left_only == []
|
|
93
|
+
assert rsc.right_only == [(1, "Alice")]
|
|
94
|
+
assert rsc.ordered_left_only == []
|
|
95
|
+
assert rsc.ordered_right_only == [(1, "Alice")]
|
|
96
|
+
|
|
97
|
+
# middle unnecessary
|
|
98
|
+
rsc = ResultSetComparator([
|
|
99
|
+
(1, "Alice"),
|
|
100
|
+
(3, "Charlie")
|
|
101
|
+
], [
|
|
102
|
+
(1, "Alice"),
|
|
103
|
+
(2, "Bob"),
|
|
104
|
+
(3, "Charlie")
|
|
105
|
+
])
|
|
106
|
+
|
|
107
|
+
assert rsc.left_only == []
|
|
108
|
+
assert rsc.right_only == [(2, "Bob")]
|
|
109
|
+
assert rsc.ordered_left_only == []
|
|
110
|
+
assert rsc.ordered_right_only == [(2, "Bob")]
|
|
111
|
+
|
|
112
|
+
# last unnecessary
|
|
113
|
+
rsc = ResultSetComparator([
|
|
114
|
+
(1, "Alice"),
|
|
115
|
+
(2, "Bob")
|
|
116
|
+
], [
|
|
117
|
+
(1, "Alice"),
|
|
118
|
+
(2, "Bob"),
|
|
119
|
+
(3, "Charlie")
|
|
120
|
+
])
|
|
121
|
+
|
|
122
|
+
assert rsc.left_only == []
|
|
123
|
+
assert rsc.right_only == [(3, "Charlie")]
|
|
124
|
+
assert rsc.ordered_left_only == []
|
|
125
|
+
assert rsc.ordered_right_only == [(3, "Charlie")]
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def test_repeating():
|
|
129
|
+
# equal
|
|
130
|
+
rsc = ResultSetComparator([
|
|
131
|
+
(2, "Bob"),
|
|
132
|
+
(2, "Bob"),
|
|
133
|
+
(3, "Charlie")
|
|
134
|
+
], [
|
|
135
|
+
(2, "Bob"),
|
|
136
|
+
(2, "Bob"),
|
|
137
|
+
(3, "Charlie")
|
|
138
|
+
])
|
|
139
|
+
|
|
140
|
+
assert rsc.left_only == []
|
|
141
|
+
assert rsc.right_only == []
|
|
142
|
+
assert rsc.ordered_left_only == []
|
|
143
|
+
assert rsc.ordered_right_only == []
|
|
144
|
+
|
|
145
|
+
# missing
|
|
146
|
+
rsc = ResultSetComparator([
|
|
147
|
+
(2, "Bob"),
|
|
148
|
+
(2, "Bob"),
|
|
149
|
+
(3, "Charlie")
|
|
150
|
+
], [
|
|
151
|
+
(2, "Bob"),
|
|
152
|
+
(3, "Charlie")
|
|
153
|
+
])
|
|
154
|
+
|
|
155
|
+
assert rsc.left_only == [(2, "Bob")]
|
|
156
|
+
assert rsc.right_only == []
|
|
157
|
+
assert rsc.ordered_left_only == [(2, "Bob")]
|
|
158
|
+
assert rsc.ordered_right_only == []
|
|
159
|
+
|
|
160
|
+
# unnecessary
|
|
161
|
+
rsc = ResultSetComparator([
|
|
162
|
+
(2, "Bob"),
|
|
163
|
+
(3, "Charlie")
|
|
164
|
+
], [
|
|
165
|
+
(2, "Bob"),
|
|
166
|
+
(2, "Bob"),
|
|
167
|
+
(3, "Charlie")
|
|
168
|
+
])
|
|
169
|
+
|
|
170
|
+
assert rsc.left_only == []
|
|
171
|
+
assert rsc.right_only == [(2, "Bob")]
|
|
172
|
+
assert rsc.ordered_left_only == []
|
|
173
|
+
assert rsc.ordered_right_only == [(2, "Bob")]
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
|
|
3
|
+
from duckdb_kernel.db.error import EmptyResultError
|
|
4
|
+
from . import Connection
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def test_simple_queries():
|
|
8
|
+
query = 'SELECT Username FROM Users'
|
|
9
|
+
|
|
10
|
+
with Connection() as con:
|
|
11
|
+
assert con.execute_sql(query) == [
|
|
12
|
+
('Alice',),
|
|
13
|
+
('Bob',),
|
|
14
|
+
('Charlie',)
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def test_empty_result():
|
|
19
|
+
with Connection() as con:
|
|
20
|
+
query = "SELECT Username FROM Users WHERE Username = 'abcdef'"
|
|
21
|
+
assert con.execute_sql(query) == []
|
|
22
|
+
|
|
23
|
+
with Connection() as con:
|
|
24
|
+
query = 'CREATE TABLE foo (bar INTEGER PRIMARY KEY)'
|
|
25
|
+
try:
|
|
26
|
+
assert con.execute_sql(query) == []
|
|
27
|
+
except EmptyResultError:
|
|
28
|
+
pass
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def test_empty_queries():
|
|
32
|
+
for query in [
|
|
33
|
+
'',
|
|
34
|
+
' ',
|
|
35
|
+
'\n',
|
|
36
|
+
'-- this is an empty query too'
|
|
37
|
+
]:
|
|
38
|
+
with pytest.raises(EmptyResultError):
|
|
39
|
+
with Connection() as con:
|
|
40
|
+
con.execute_sql(query)
|
|
41
|
+
|
|
42
|
+
with pytest.raises(Exception):
|
|
43
|
+
with Connection() as con:
|
|
44
|
+
query = '-- this is a query with syntax errors\nFOR foo IN bar'
|
|
45
|
+
try:
|
|
46
|
+
con.execute_sql(query)
|
|
47
|
+
except EmptyResultError:
|
|
48
|
+
pass
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: jupyter-duckdb
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.100
|
|
4
4
|
Summary: a basic wrapper kernel for DuckDB
|
|
5
5
|
Home-page: https://github.com/erictroebs/jupyter-duckdb
|
|
6
6
|
Author: Eric Tröbs
|
|
@@ -14,7 +14,7 @@ Description-Content-Type: text/markdown
|
|
|
14
14
|
Requires-Dist: jupyter
|
|
15
15
|
Requires-Dist: graphviz==0.20.3
|
|
16
16
|
Requires-Dist: checkmarkandcross
|
|
17
|
-
Requires-Dist: duckdb==1.2.
|
|
17
|
+
Requires-Dist: duckdb==1.2.1
|
|
18
18
|
Dynamic: author
|
|
19
19
|
Dynamic: author-email
|
|
20
20
|
Dynamic: classifier
|
|
@@ -27,7 +27,7 @@ duckdb_kernel/magics/__init__.py,sha256=DA8gnQeRCUt1Scy3_NQ9w5CPmMEY9i8YwB-g392p
|
|
|
27
27
|
duckdb_kernel/parser/DCParser.py,sha256=16c1mxa494KP9OreUKQHsSQKoDGZ7NNp2u_gi_D-dkw,2293
|
|
28
28
|
duckdb_kernel/parser/LogicParser.py,sha256=_vZwE5OPRUEN8aEC_fSZAYKR_dpexqNthXog9OFHYRY,1233
|
|
29
29
|
duckdb_kernel/parser/ParserError.py,sha256=qJQVloFtID1HgVDQ1Io247bODT1ic3oO9Z1ZrWR-2Mk,321
|
|
30
|
-
duckdb_kernel/parser/RAParser.py,sha256=
|
|
30
|
+
duckdb_kernel/parser/RAParser.py,sha256=vLR2X8zJIJ3cPKdLvU3PKjNakEOvsoFuoK8pr4bA-Fg,3102
|
|
31
31
|
duckdb_kernel/parser/__init__.py,sha256=nTmDm1ADvNPDHhVJQLxKYmArNJk6967EUXqn5AkT8FM,126
|
|
32
32
|
duckdb_kernel/parser/elements/DCOperand.py,sha256=qEg_6Us4WV1eK4Bq6oUsmFt_L_x5pJPGce_wSapzIYA,1149
|
|
33
33
|
duckdb_kernel/parser/elements/LogicElement.py,sha256=YasKHxWLDDP8UdyLIKbXzqIRA8-XaakjmvTj-1Iuzyc,280
|
|
@@ -38,28 +38,31 @@ duckdb_kernel/parser/elements/RAElement.py,sha256=d6QWO8KlWcwhA4tXtWsf8K4oT3OMMj
|
|
|
38
38
|
duckdb_kernel/parser/elements/RAOperand.py,sha256=pghnTYCrrT6MkvynJRgVFPRoMvxIGNB3FTjaq-uCpDQ,1078
|
|
39
39
|
duckdb_kernel/parser/elements/RAOperator.py,sha256=rtqMFBIBBqT-Bwg7Qm4WQwbDrE28Nb74F_7XMeR3ks4,255
|
|
40
40
|
duckdb_kernel/parser/elements/RAUnaryOperator.py,sha256=XC1nphkSm88JaEu5V_HKnb_8JNoeBfE3EvNL4o0qh2c,654
|
|
41
|
-
duckdb_kernel/parser/elements/__init__.py,sha256=
|
|
41
|
+
duckdb_kernel/parser/elements/__init__.py,sha256=t5H6SVOm3z8r6UWRYOI7HmMIuB4Yh6TLNu4_N3jg2t0,566
|
|
42
42
|
duckdb_kernel/parser/elements/binary/Add.py,sha256=XGkZMfab01huk9EaI6JUfzkd2STbV1C_-TyC2guKE8I,190
|
|
43
43
|
duckdb_kernel/parser/elements/binary/And.py,sha256=0jgetTG8yo5TJSeK70Kj-PI9ERyek1eyMQXX5HBxa4Y,274
|
|
44
44
|
duckdb_kernel/parser/elements/binary/ArrowLeft.py,sha256=u4fZSoyT9lfvWXBwuhUl4DdjVZAOqyVIKmMVbpElLD4,203
|
|
45
45
|
duckdb_kernel/parser/elements/binary/ConditionalSet.py,sha256=sZ3qrxPux7pb3fMrlyBg4Hw7n4-Ln-AeN70_Jp5dAPo,17652
|
|
46
46
|
duckdb_kernel/parser/elements/binary/Cross.py,sha256=jVY3cvD6qDWZkJ7q74lFUPO2VdDt4aAjdk2YAfg-ZC4,687
|
|
47
|
-
duckdb_kernel/parser/elements/binary/Difference.py,sha256=
|
|
48
|
-
duckdb_kernel/parser/elements/binary/Divide.py,sha256=
|
|
49
|
-
duckdb_kernel/parser/elements/binary/Division.py,sha256=
|
|
47
|
+
duckdb_kernel/parser/elements/binary/Difference.py,sha256=4nyHhjo09UmYjtGNC3xGQxV5ROzCGOpPkyerUN-AlF4,746
|
|
48
|
+
duckdb_kernel/parser/elements/binary/Divide.py,sha256=ubekU4C1wkCTidUSMLEj5neheRx0QjhWSrsPGuXTa1g,265
|
|
49
|
+
duckdb_kernel/parser/elements/binary/Division.py,sha256=FOYxmeNGljRETwygtVn102POCUmt71t9DXdAnLFCXZM,1535
|
|
50
50
|
duckdb_kernel/parser/elements/binary/Equal.py,sha256=xd5eMwVwM7thXqmoBg-JSux4y6osxxznNzaChmgrnGI,192
|
|
51
|
+
duckdb_kernel/parser/elements/binary/FullOuterJoin.py,sha256=W6S3rNSX0eWWtowRd6KbZ4RJqzhJUOvNt2IABmkLMJo,1383
|
|
51
52
|
duckdb_kernel/parser/elements/binary/GreaterThan.py,sha256=lW7EPYjwwZ1VLZOE4ai6MBW7Zq5itsUTi_v6FxoAuU0,204
|
|
52
53
|
duckdb_kernel/parser/elements/binary/GreaterThanEqual.py,sha256=gO1I3J5CZwrpqZb5Oc-WJ_fCnGylpj4YKl4s-ZAr_-4,286
|
|
53
54
|
duckdb_kernel/parser/elements/binary/Intersection.py,sha256=K6NrwcLTJ1BUccifVQ2R2YHR5B71LhjuLhOalxZcM0g,757
|
|
54
55
|
duckdb_kernel/parser/elements/binary/Join.py,sha256=9Z3JinEav3ulLbZZZM9DLbprloHC0oGuSm40Kf1A0mM,836
|
|
56
|
+
duckdb_kernel/parser/elements/binary/LeftOuterJoin.py,sha256=qCyHLMboNjzSDK_FREtYVwZx4UYkfRcy3FMo2pEf93o,846
|
|
55
57
|
duckdb_kernel/parser/elements/binary/LessThan.py,sha256=gNlyAvew0VyvU8x3ol88zbdh_t9GU51Kd2P_PmHUrAc,201
|
|
56
58
|
duckdb_kernel/parser/elements/binary/LessThanEqual.py,sha256=BKKXBZ4TZQ4EBxBDSNzIpFl4Oz1IGI0tI0Oj7KZUoDo,283
|
|
57
59
|
duckdb_kernel/parser/elements/binary/Minus.py,sha256=1XUTXCA0GcAcCnv9nq4B9ewT0XHJ91LlZGEW1y60POA,192
|
|
58
60
|
duckdb_kernel/parser/elements/binary/Multiply.py,sha256=OctlfN71izFYxIpMo09Qwq-3BmQmSh6-PNKBljMsBrg,195
|
|
59
61
|
duckdb_kernel/parser/elements/binary/Or.py,sha256=e1H_BuY7TQD7XHKGqJYLOebYQvrh1euWOUsXF0FT5dY,264
|
|
62
|
+
duckdb_kernel/parser/elements/binary/RightOuterJoin.py,sha256=bDxTEQ_dJZ-MUuGbU1YL69kPFR0Hdkc1fow3wxOxfAY,867
|
|
60
63
|
duckdb_kernel/parser/elements/binary/Unequal.py,sha256=1hnC1RcPMxwKKv65OL5prunGgh9cRVDmzJutmtl7gtY,269
|
|
61
64
|
duckdb_kernel/parser/elements/binary/Union.py,sha256=VYTj4M2PVEhWiDwjnyP8qpVVbGvIBSVshlEt-SZYCBY,739
|
|
62
|
-
duckdb_kernel/parser/elements/binary/__init__.py,sha256=
|
|
65
|
+
duckdb_kernel/parser/elements/binary/__init__.py,sha256=BieXw51EBgIwUEK-hn4jBb1b4VKJT6sRzaxwOrSXw2A,1342
|
|
63
66
|
duckdb_kernel/parser/elements/unary/Not.py,sha256=kG0a-dp3TNjPodUMPiQ6ihtsBrbvn1iWeIPCvtyAwdo,632
|
|
64
67
|
duckdb_kernel/parser/elements/unary/Projection.py,sha256=CJ-MIf1-__1ewTjNZVy5hOz3Z18CWnCDNJBxUdpWXVQ,1112
|
|
65
68
|
duckdb_kernel/parser/elements/unary/Rename.py,sha256=Zr2n9EJ3nA476lND0Djz2b6493nnsbSpJ9kkEgk5B_Y,1273
|
|
@@ -69,8 +72,13 @@ duckdb_kernel/parser/tokenizer/Token.py,sha256=gsCzgU_zLiA-yD0FWvd2qS9LQUXbivESY
|
|
|
69
72
|
duckdb_kernel/parser/tokenizer/Tokenizer.py,sha256=PWGgS7gYgpULiKGDho842UbaXuqmwEkccixuF10oi5g,5081
|
|
70
73
|
duckdb_kernel/parser/tokenizer/__init__.py,sha256=EOSmfc2RJwtB5cE1Hhj1JAra97tckxxS8-legybPy60,58
|
|
71
74
|
duckdb_kernel/parser/util/RenamableColumn.py,sha256=LxJhFDMUv_OxYYDLwKn63QGpBRfs08jVvhuJTzRtc9c,704
|
|
72
|
-
duckdb_kernel/parser/util/RenamableColumnList.py,sha256=
|
|
75
|
+
duckdb_kernel/parser/util/RenamableColumnList.py,sha256=5oEDbtvl4YfHbkxu_Ny2pc0EYnhCZsf7EeoNQvftbrU,3281
|
|
73
76
|
duckdb_kernel/parser/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
77
|
+
duckdb_kernel/tests/__init__.py,sha256=MxC-m85ZyYQVn5_AJyEtXX1T5oQPngjW-Zxa_gpfXLE,2715
|
|
78
|
+
duckdb_kernel/tests/test_dc.py,sha256=HPJ6JGB7yXVKIOnDHB8KwX1A16ljU0I5Y8VFcJs-KVI,15192
|
|
79
|
+
duckdb_kernel/tests/test_ra.py,sha256=UENizwUqSnaObrvfliwkOakBQqNIh8tsQsgtYQ807MY,52371
|
|
80
|
+
duckdb_kernel/tests/test_result_comparison.py,sha256=TQVLPKKNyV2k3i4jCfasetPfVfCzgYZr92wxQmlzPnA,3859
|
|
81
|
+
duckdb_kernel/tests/test_sql.py,sha256=p7UEokoJs2xc-url7xQ4PmWKxtExrDDYnMeoyR1JD0A,1208
|
|
74
82
|
duckdb_kernel/util/ResultSetComparator.py,sha256=RZDIfjJyx8-eR-HIqQlEYgZd_V1ympbszpVRF4TlA7o,2262
|
|
75
83
|
duckdb_kernel/util/SQL.py,sha256=-uRfa0IwEQueZNZ7vkBPczLuvm_87y4_nnMBx3FgqNk,643
|
|
76
84
|
duckdb_kernel/util/TestError.py,sha256=iwlGHr9j6pFDa2cGxqGyvJ-exrFUtPJjVm_OhHi4n3g,97
|
|
@@ -80,7 +88,7 @@ duckdb_kernel/visualization/Drawer.py,sha256=D0LkiGMvuJ2v6cQSg_axLTGaM4VXAJEQJAy
|
|
|
80
88
|
duckdb_kernel/visualization/RATreeDrawer.py,sha256=j-Vy1zpYMzwZ3CsphyfPW-J7ou9a9tM6aXXgAlQTgDI,2128
|
|
81
89
|
duckdb_kernel/visualization/SchemaDrawer.py,sha256=9K-TUUmyeGdMYMTFQJ7evIU3p8p2KyMKeizUc7-y8co,3015
|
|
82
90
|
duckdb_kernel/visualization/__init__.py,sha256=5eMJmxJ01XAXcgWDn3t70eSZF2PGaXdNo6GK-x-0H3s,78
|
|
83
|
-
jupyter_duckdb-1.2.
|
|
84
|
-
jupyter_duckdb-1.2.
|
|
85
|
-
jupyter_duckdb-1.2.
|
|
86
|
-
jupyter_duckdb-1.2.
|
|
91
|
+
jupyter_duckdb-1.2.100.dist-info/METADATA,sha256=BEks9lAVLxpWmEfRvB-jyG2V_p-GEiwMqoRPQltPRxY,9115
|
|
92
|
+
jupyter_duckdb-1.2.100.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
|
93
|
+
jupyter_duckdb-1.2.100.dist-info/top_level.txt,sha256=KvRRPMnmkQNuhyBsXoPmwyt26LRDp0O-0HN6u0Dm5jA,14
|
|
94
|
+
jupyter_duckdb-1.2.100.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|