jupyter-duckdb 1.1.2.3__tar.gz → 1.1.3.2__tar.gz

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.
Files changed (90) hide show
  1. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/PKG-INFO +2 -2
  2. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/setup.py +1 -1
  3. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/kernel.py +22 -0
  4. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/magics/MagicCommandHandler.py +1 -1
  5. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/jupyter_duckdb.egg-info/PKG-INFO +2 -2
  6. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/jupyter_duckdb.egg-info/requires.txt +1 -1
  7. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/README.md +0 -0
  8. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/setup.cfg +0 -0
  9. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/__init__.py +0 -0
  10. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/__main__.py +0 -0
  11. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/Column.py +0 -0
  12. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/Connection.py +0 -0
  13. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/Constraint.py +0 -0
  14. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/DatabaseError.py +0 -0
  15. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/ForeignKey.py +0 -0
  16. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/Table.py +0 -0
  17. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/__init__.py +0 -0
  18. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/error/EmptyResultError.py +0 -0
  19. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/error/__init__.py +0 -0
  20. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/implementation/duckdb/Connection.py +0 -0
  21. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/implementation/duckdb/__init__.py +0 -0
  22. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/implementation/postgres/Connection.py +0 -0
  23. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/implementation/postgres/__init__.py +0 -0
  24. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/implementation/postgres/util.py +0 -0
  25. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/implementation/sqlite/Connection.py +0 -0
  26. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/db/implementation/sqlite/__init__.py +0 -0
  27. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/kernel.json +0 -0
  28. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/magics/MagicCommand.py +0 -0
  29. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/magics/MagicCommandCallback.py +0 -0
  30. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/magics/MagicCommandException.py +0 -0
  31. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/magics/__init__.py +0 -0
  32. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/DCParser.py +0 -0
  33. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/LogicParser.py +0 -0
  34. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/RAParser.py +0 -0
  35. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/__init__.py +0 -0
  36. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/DCOperand.py +0 -0
  37. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/LogicElement.py +0 -0
  38. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/LogicOperand.py +0 -0
  39. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/LogicOperator.py +0 -0
  40. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/RABinaryOperator.py +0 -0
  41. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/RAElement.py +0 -0
  42. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/RAOperand.py +0 -0
  43. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/RAOperator.py +0 -0
  44. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/RAUnaryOperator.py +0 -0
  45. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/__init__.py +0 -0
  46. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Add.py +0 -0
  47. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/And.py +0 -0
  48. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/ArrowLeft.py +0 -0
  49. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/ConditionalSet.py +0 -0
  50. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Cross.py +0 -0
  51. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Difference.py +0 -0
  52. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Divide.py +0 -0
  53. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Division.py +0 -0
  54. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Equal.py +0 -0
  55. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/GreaterThan.py +0 -0
  56. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/GreaterThanEqual.py +0 -0
  57. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Intersection.py +0 -0
  58. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Join.py +0 -0
  59. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/LessThan.py +0 -0
  60. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/LessThanEqual.py +0 -0
  61. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Minus.py +0 -0
  62. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Multiply.py +0 -0
  63. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Or.py +0 -0
  64. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Unequal.py +0 -0
  65. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/Union.py +0 -0
  66. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/binary/__init__.py +0 -0
  67. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/unary/Not.py +0 -0
  68. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/unary/Projection.py +0 -0
  69. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/unary/Rename.py +0 -0
  70. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/unary/Selection.py +0 -0
  71. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/elements/unary/__init__.py +0 -0
  72. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/tokenizer/Token.py +0 -0
  73. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/tokenizer/Tokenizer.py +0 -0
  74. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/tokenizer/__init__.py +0 -0
  75. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/util/RenamableColumn.py +0 -0
  76. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/util/RenamableColumnList.py +0 -0
  77. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/parser/util/__init__.py +0 -0
  78. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/util/ResultSetComparator.py +0 -0
  79. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/util/__init__.py +0 -0
  80. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/util/formatting.py +0 -0
  81. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/visualization/Drawer.py +0 -0
  82. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/visualization/RATreeDrawer.py +0 -0
  83. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/visualization/SchemaDrawer.py +0 -0
  84. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/duckdb_kernel/visualization/__init__.py +0 -0
  85. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/jupyter_duckdb.egg-info/SOURCES.txt +0 -0
  86. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/jupyter_duckdb.egg-info/dependency_links.txt +0 -0
  87. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/src/jupyter_duckdb.egg-info/top_level.txt +0 -0
  88. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/test/test_dc.py +0 -0
  89. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/test/test_ra.py +0 -0
  90. {jupyter_duckdb-1.1.2.3 → jupyter_duckdb-1.1.3.2}/test/test_result_comparison.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jupyter-duckdb
3
- Version: 1.1.2.3
3
+ Version: 1.1.3.2
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.1.2
17
+ Requires-Dist: duckdb==1.1.3
18
18
 
19
19
  # DuckDB Kernel for Jupyter
20
20
 
@@ -16,7 +16,7 @@ install_requires = [
16
16
  ]
17
17
 
18
18
  if os.getenv('SQLITE') != '1' and os.getenv('DUCKDB') != '0':
19
- install_requires += ['duckdb==1.1.2']
19
+ install_requires += ['duckdb==1.1.3']
20
20
 
21
21
  # load README.md as long_description
22
22
  with open('README.md', 'r', encoding='utf-8') as file:
@@ -1,3 +1,4 @@
1
+ import csv
1
2
  import json
2
3
  import math
3
4
  import os
@@ -43,6 +44,7 @@ class DuckDBKernel(Kernel):
43
44
  MagicCommand('max_rows').arg('count').on(self._max_rows_magic),
44
45
  MagicCommand('query_max_rows').arg('count').on(self._query_max_rows_magic),
45
46
  MagicCommand('schema').flag('td').opt('only').on(self._schema_magic),
47
+ MagicCommand('store').arg('file').flag('noheader').result(True).on(self._store_magic),
46
48
  MagicCommand('ra').flag('analyze').code(True).on(self._ra_magic),
47
49
  MagicCommand('dc').code(True).on(self._dc_magic)
48
50
  )
@@ -434,6 +436,26 @@ class DuckDBKernel(Kernel):
434
436
 
435
437
  self.print_data(svg)
436
438
 
439
+ def _store_magic(self, silent: bool, result_columns: List[str], result: List[List], file: str, noheader: bool):
440
+ _, ext = file.rsplit('.', 1)
441
+
442
+ # csv
443
+ if ext == 'csv':
444
+ with open(file, 'w', encoding='utf-8') as f:
445
+ writer = csv.writer(f)
446
+
447
+ if not noheader:
448
+ writer.writerow(result_columns)
449
+
450
+ for row in result:
451
+ writer.writerow(row)
452
+
453
+ self.print(f'result stored to {file}', name='stderr')
454
+
455
+ # unsupported
456
+ else:
457
+ raise ValueError(f'extension {ext} not supported')
458
+
437
459
  def _ra_magic(self, silent: bool, code: str, analyze: bool):
438
460
  if self._db is None:
439
461
  raise AssertionError('load a database first')
@@ -20,7 +20,7 @@ class MagicCommandHandler:
20
20
 
21
21
  while True:
22
22
  # ensure code starts with '%' or '%%' but not with '%%%'
23
- match = re.match(r'^%{1,2}([^% ]+?)($| .+?$)', code, re.MULTILINE | re.IGNORECASE)
23
+ match = re.match(r'^%{1,2}([^% ]+?)([ \t]*$| .+?$)', code, re.MULTILINE | re.IGNORECASE)
24
24
 
25
25
  if match is None:
26
26
  break
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jupyter-duckdb
3
- Version: 1.1.2.3
3
+ Version: 1.1.3.2
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.1.2
17
+ Requires-Dist: duckdb==1.1.3
18
18
 
19
19
  # DuckDB Kernel for Jupyter
20
20
 
@@ -1,4 +1,4 @@
1
1
  jupyter
2
2
  graphviz==0.20.3
3
3
  checkmarkandcross
4
- duckdb==1.1.2
4
+ duckdb==1.1.3