quasardb 3.14.2.dev5__cp310-cp310-win_amd64.whl → 3.14.2.dev7__cp310-cp310-win_amd64.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.

Potentially problematic release.


This version of quasardb might be problematic. Click here for more details.

Files changed (52) hide show
  1. quasardb/INSTALL.vcxproj +4 -4
  2. quasardb/__init__.py +8 -5
  3. quasardb/__init__.pyi +72 -0
  4. quasardb/date/ALL_BUILD.vcxproj +8 -8
  5. quasardb/date/CMakeFiles/Export/df49adab93b9e0c10c64f72458b31971/dateTargets.cmake +1 -1
  6. quasardb/date/CMakeFiles/generate.stamp.depend +4 -4
  7. quasardb/date/INSTALL.vcxproj +4 -4
  8. quasardb/date/dateTargets.cmake +1 -1
  9. quasardb/numpy/__init__.py +126 -43
  10. quasardb/pandas/__init__.py +55 -20
  11. quasardb/pool.py +6 -0
  12. quasardb/pybind11/ALL_BUILD.vcxproj +8 -8
  13. quasardb/pybind11/CMakeFiles/generate.stamp.depend +14 -14
  14. quasardb/pybind11/INSTALL.vcxproj +4 -4
  15. quasardb/qdb_api.dll +0 -0
  16. quasardb/quasardb/__init__.pyi +97 -0
  17. quasardb/quasardb/_batch_column.pyi +5 -0
  18. quasardb/quasardb/_batch_inserter.pyi +30 -0
  19. quasardb/quasardb/_blob.pyi +16 -0
  20. quasardb/quasardb/_cluster.pyi +100 -0
  21. quasardb/quasardb/_continuous.pyi +16 -0
  22. quasardb/quasardb/_double.pyi +7 -0
  23. quasardb/quasardb/_entry.pyi +60 -0
  24. quasardb/quasardb/_error.pyi +15 -0
  25. quasardb/quasardb/_integer.pyi +7 -0
  26. quasardb/quasardb/_node.pyi +26 -0
  27. quasardb/quasardb/_options.pyi +105 -0
  28. quasardb/quasardb/_perf.pyi +5 -0
  29. quasardb/quasardb/_properties.pyi +5 -0
  30. quasardb/quasardb/_query.pyi +2 -0
  31. quasardb/quasardb/_reader.pyi +9 -0
  32. quasardb/quasardb/_retry.pyi +16 -0
  33. quasardb/quasardb/_string.pyi +12 -0
  34. quasardb/quasardb/_table.pyi +125 -0
  35. quasardb/quasardb/_tag.pyi +5 -0
  36. quasardb/quasardb/_timestamp.pyi +9 -0
  37. quasardb/quasardb/_writer.pyi +111 -0
  38. quasardb/quasardb/metrics/__init__.pyi +20 -0
  39. quasardb/quasardb.cp310-win_amd64.pyd +0 -0
  40. quasardb/range-v3/ALL_BUILD.vcxproj +8 -8
  41. quasardb/range-v3/CMakeFiles/Export/d94ef200eca10a819b5858b33e808f5b/range-v3-targets.cmake +1 -1
  42. quasardb/range-v3/CMakeFiles/generate.stamp.depend +11 -11
  43. quasardb/range-v3/INSTALL.vcxproj +4 -4
  44. quasardb/range-v3/range-v3-config.cmake +1 -1
  45. quasardb/range-v3/range.v3.headers.vcxproj +8 -8
  46. quasardb/stats.py +223 -110
  47. {quasardb-3.14.2.dev5.dist-info → quasardb-3.14.2.dev7.dist-info}/METADATA +3 -2
  48. quasardb-3.14.2.dev7.dist-info/RECORD +78 -0
  49. {quasardb-3.14.2.dev5.dist-info → quasardb-3.14.2.dev7.dist-info}/WHEEL +1 -1
  50. quasardb-3.14.2.dev5.dist-info/RECORD +0 -54
  51. {quasardb-3.14.2.dev5.dist-info → quasardb-3.14.2.dev7.dist-info/licenses}/LICENSE.md +0 -0
  52. {quasardb-3.14.2.dev5.dist-info → quasardb-3.14.2.dev7.dist-info}/top_level.txt +0 -0
quasardb/INSTALL.vcxproj CHANGED
@@ -69,7 +69,7 @@
69
69
  <UseUtf8Encoding>Always</UseUtf8Encoding>
70
70
  <Message></Message>
71
71
  <Command>setlocal
72
- C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
72
+ C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
73
73
  if %errorlevel% neq 0 goto :cmEnd
74
74
  :cmEnd
75
75
  endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
@@ -84,7 +84,7 @@ if %errorlevel% neq 0 goto :VCEnd</Command>
84
84
  <UseUtf8Encoding>Always</UseUtf8Encoding>
85
85
  <Message></Message>
86
86
  <Command>setlocal
87
- C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
87
+ C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
88
88
  if %errorlevel% neq 0 goto :cmEnd
89
89
  :cmEnd
90
90
  endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
@@ -99,7 +99,7 @@ if %errorlevel% neq 0 goto :VCEnd</Command>
99
99
  <UseUtf8Encoding>Always</UseUtf8Encoding>
100
100
  <Message></Message>
101
101
  <Command>setlocal
102
- C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
102
+ C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
103
103
  if %errorlevel% neq 0 goto :cmEnd
104
104
  :cmEnd
105
105
  endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
@@ -114,7 +114,7 @@ if %errorlevel% neq 0 goto :VCEnd</Command>
114
114
  <UseUtf8Encoding>Always</UseUtf8Encoding>
115
115
  <Message></Message>
116
116
  <Command>setlocal
117
- C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
117
+ C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
118
118
  if %errorlevel% neq 0 goto :cmEnd
119
119
  :cmEnd
120
120
  endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
quasardb/__init__.py CHANGED
@@ -36,7 +36,10 @@
36
36
  """
37
37
 
38
38
 
39
- def generic_error_msg(msg, e=None):
39
+ from typing import List, Optional
40
+
41
+
42
+ def generic_error_msg(msg: List[str], e: Optional[BaseException] = None) -> str:
40
43
  msg_str = "\n".join(msg)
41
44
 
42
45
  if e is None:
@@ -47,7 +50,7 @@ def generic_error_msg(msg, e=None):
47
50
 
48
51
  **************************************************************************
49
52
  """.format(
50
- msg_str, type(e), str(e)
53
+ msg_str
51
54
  )
52
55
  else:
53
56
  return """
@@ -68,7 +71,7 @@ Original exception:
68
71
  )
69
72
 
70
73
 
71
- def link_error_msg(e):
74
+ def link_error_msg(e: BaseException) -> str:
72
75
  msg = [
73
76
  "QuasarDB was unable to find all expected symbols in the compiled library.",
74
77
  "This is usually caused by running an incorrect version of the QuasarDB C",
@@ -82,7 +85,7 @@ def link_error_msg(e):
82
85
  return generic_error_msg(msg, e)
83
86
 
84
87
 
85
- def glibc_error_msg(e):
88
+ def glibc_error_msg(e: BaseException) -> str:
86
89
  msg = [
87
90
  "QuasarDB was unable to find the expected GLIBC version on this machine.",
88
91
  "This is usually caused by compiling the Python API on a different machine "
@@ -99,7 +102,7 @@ def glibc_error_msg(e):
99
102
  return generic_error_msg(msg, e)
100
103
 
101
104
 
102
- def unknown_error_msg():
105
+ def unknown_error_msg() -> str:
103
106
  msg = [
104
107
  "Unable to import quasardb module: unknown error. ",
105
108
  "",
quasardb/__init__.pyi ADDED
@@ -0,0 +1,72 @@
1
+ """
2
+
3
+ .. module: quasardb
4
+ :platform: Unix, Windows
5
+ :synopsis: quasardb official Python API
6
+
7
+ .. moduleauthor: quasardb SAS. All rights reserved
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ from quasardb.quasardb import (
13
+ AliasAlreadyExistsError,
14
+ AliasNotFoundError,
15
+ AsyncPipelineFullError,
16
+ BatchColumnInfo,
17
+ Cluster,
18
+ ColumnInfo,
19
+ ColumnType,
20
+ Error,
21
+ IncompatibleTypeError,
22
+ IndexedColumnInfo,
23
+ InputBufferTooSmallError,
24
+ InternalLocalError,
25
+ InvalidArgumentError,
26
+ InvalidDatetimeError,
27
+ InvalidHandleError,
28
+ InvalidQueryError,
29
+ Node,
30
+ NotImplementedError,
31
+ OutOfBoundsError,
32
+ RetryOptions,
33
+ TryAgainError,
34
+ UninitializedError,
35
+ WriterData,
36
+ WriterPushMode,
37
+ build,
38
+ metrics,
39
+ never_expires,
40
+ version,
41
+ )
42
+
43
+ __all__ = [
44
+ "AliasAlreadyExistsError",
45
+ "AliasNotFoundError",
46
+ "AsyncPipelineFullError",
47
+ "BatchColumnInfo",
48
+ "Cluster",
49
+ "ColumnInfo",
50
+ "ColumnType",
51
+ "Error",
52
+ "IncompatibleTypeError",
53
+ "IndexedColumnInfo",
54
+ "InputBufferTooSmallError",
55
+ "InternalLocalError",
56
+ "InvalidArgumentError",
57
+ "InvalidDatetimeError",
58
+ "InvalidHandleError",
59
+ "InvalidQueryError",
60
+ "Node",
61
+ "NotImplementedError",
62
+ "OutOfBoundsError",
63
+ "RetryOptions",
64
+ "TryAgainError",
65
+ "UninitializedError",
66
+ "WriterData",
67
+ "WriterPushMode",
68
+ "build",
69
+ "metrics",
70
+ "never_expires",
71
+ "version",
72
+ ]
@@ -112,7 +112,7 @@
112
112
  <UseUtf8Encoding>Always</UseUtf8Encoding>
113
113
  <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Building Custom Rule C:/TeamCity/work/938b0bdf6727d1ad/thirdparty/date/CMakeLists.txt</Message>
114
114
  <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">setlocal
115
- C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\bin\cmake.exe -SC:/TeamCity/work/938b0bdf6727d1ad/quasardb -BC:/TeamCity/work/938b0bdf6727d1ad/build/temp.win-amd64-cpython-310/Release --check-stamp-file C:/TeamCity/work/938b0bdf6727d1ad/build/lib.win-amd64-cpython-310/quasardb/date/CMakeFiles/generate.stamp
115
+ C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\bin\cmake.exe -SC:/TeamCity/work/938b0bdf6727d1ad/quasardb -BC:/TeamCity/work/938b0bdf6727d1ad/build/temp.win-amd64-cpython-310/Release --check-stamp-file C:/TeamCity/work/938b0bdf6727d1ad/build/lib.win-amd64-cpython-310/quasardb/date/CMakeFiles/generate.stamp
116
116
  if %errorlevel% neq 0 goto :cmEnd
117
117
  :cmEnd
118
118
  endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
@@ -120,12 +120,12 @@ endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
120
120
  exit /b %1
121
121
  :cmDone
122
122
  if %errorlevel% neq 0 goto :VCEnd</Command>
123
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\BasicConfigVersion-SameMajorVersion.cmake.in;C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\CMakePackageConfigHelpers.cmake;C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\GNUInstallDirs.cmake;C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\WriteBasicConfigVersionFile.cmake;%(AdditionalInputs)</AdditionalInputs>
123
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\BasicConfigVersion-SameMajorVersion.cmake.in;C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\CMakePackageConfigHelpers.cmake;C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\GNUInstallDirs.cmake;C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\WriteBasicConfigVersionFile.cmake;%(AdditionalInputs)</AdditionalInputs>
124
124
  <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\TeamCity\work\938b0bdf6727d1ad\build\lib.win-amd64-cpython-310\quasardb\date\CMakeFiles\generate.stamp</Outputs>
125
125
  <LinkObjects Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkObjects>
126
126
  <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Building Custom Rule C:/TeamCity/work/938b0bdf6727d1ad/thirdparty/date/CMakeLists.txt</Message>
127
127
  <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">setlocal
128
- C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\bin\cmake.exe -SC:/TeamCity/work/938b0bdf6727d1ad/quasardb -BC:/TeamCity/work/938b0bdf6727d1ad/build/temp.win-amd64-cpython-310/Release --check-stamp-file C:/TeamCity/work/938b0bdf6727d1ad/build/lib.win-amd64-cpython-310/quasardb/date/CMakeFiles/generate.stamp
128
+ C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\bin\cmake.exe -SC:/TeamCity/work/938b0bdf6727d1ad/quasardb -BC:/TeamCity/work/938b0bdf6727d1ad/build/temp.win-amd64-cpython-310/Release --check-stamp-file C:/TeamCity/work/938b0bdf6727d1ad/build/lib.win-amd64-cpython-310/quasardb/date/CMakeFiles/generate.stamp
129
129
  if %errorlevel% neq 0 goto :cmEnd
130
130
  :cmEnd
131
131
  endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
@@ -133,12 +133,12 @@ endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
133
133
  exit /b %1
134
134
  :cmDone
135
135
  if %errorlevel% neq 0 goto :VCEnd</Command>
136
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\BasicConfigVersion-SameMajorVersion.cmake.in;C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\CMakePackageConfigHelpers.cmake;C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\GNUInstallDirs.cmake;C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\WriteBasicConfigVersionFile.cmake;%(AdditionalInputs)</AdditionalInputs>
136
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\BasicConfigVersion-SameMajorVersion.cmake.in;C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\CMakePackageConfigHelpers.cmake;C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\GNUInstallDirs.cmake;C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\WriteBasicConfigVersionFile.cmake;%(AdditionalInputs)</AdditionalInputs>
137
137
  <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\TeamCity\work\938b0bdf6727d1ad\build\lib.win-amd64-cpython-310\quasardb\date\CMakeFiles\generate.stamp</Outputs>
138
138
  <LinkObjects Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkObjects>
139
139
  <Message Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">Building Custom Rule C:/TeamCity/work/938b0bdf6727d1ad/thirdparty/date/CMakeLists.txt</Message>
140
140
  <Command Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">setlocal
141
- C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\bin\cmake.exe -SC:/TeamCity/work/938b0bdf6727d1ad/quasardb -BC:/TeamCity/work/938b0bdf6727d1ad/build/temp.win-amd64-cpython-310/Release --check-stamp-file C:/TeamCity/work/938b0bdf6727d1ad/build/lib.win-amd64-cpython-310/quasardb/date/CMakeFiles/generate.stamp
141
+ C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\bin\cmake.exe -SC:/TeamCity/work/938b0bdf6727d1ad/quasardb -BC:/TeamCity/work/938b0bdf6727d1ad/build/temp.win-amd64-cpython-310/Release --check-stamp-file C:/TeamCity/work/938b0bdf6727d1ad/build/lib.win-amd64-cpython-310/quasardb/date/CMakeFiles/generate.stamp
142
142
  if %errorlevel% neq 0 goto :cmEnd
143
143
  :cmEnd
144
144
  endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
@@ -146,12 +146,12 @@ endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
146
146
  exit /b %1
147
147
  :cmDone
148
148
  if %errorlevel% neq 0 goto :VCEnd</Command>
149
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\BasicConfigVersion-SameMajorVersion.cmake.in;C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\CMakePackageConfigHelpers.cmake;C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\GNUInstallDirs.cmake;C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\WriteBasicConfigVersionFile.cmake;%(AdditionalInputs)</AdditionalInputs>
149
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\BasicConfigVersion-SameMajorVersion.cmake.in;C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\CMakePackageConfigHelpers.cmake;C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\GNUInstallDirs.cmake;C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\WriteBasicConfigVersionFile.cmake;%(AdditionalInputs)</AdditionalInputs>
150
150
  <Outputs Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">C:\TeamCity\work\938b0bdf6727d1ad\build\lib.win-amd64-cpython-310\quasardb\date\CMakeFiles\generate.stamp</Outputs>
151
151
  <LinkObjects Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">false</LinkObjects>
152
152
  <Message Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">Building Custom Rule C:/TeamCity/work/938b0bdf6727d1ad/thirdparty/date/CMakeLists.txt</Message>
153
153
  <Command Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">setlocal
154
- C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\bin\cmake.exe -SC:/TeamCity/work/938b0bdf6727d1ad/quasardb -BC:/TeamCity/work/938b0bdf6727d1ad/build/temp.win-amd64-cpython-310/Release --check-stamp-file C:/TeamCity/work/938b0bdf6727d1ad/build/lib.win-amd64-cpython-310/quasardb/date/CMakeFiles/generate.stamp
154
+ C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\bin\cmake.exe -SC:/TeamCity/work/938b0bdf6727d1ad/quasardb -BC:/TeamCity/work/938b0bdf6727d1ad/build/temp.win-amd64-cpython-310/Release --check-stamp-file C:/TeamCity/work/938b0bdf6727d1ad/build/lib.win-amd64-cpython-310/quasardb/date/CMakeFiles/generate.stamp
155
155
  if %errorlevel% neq 0 goto :cmEnd
156
156
  :cmEnd
157
157
  endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
@@ -159,7 +159,7 @@ endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
159
159
  exit /b %1
160
160
  :cmDone
161
161
  if %errorlevel% neq 0 goto :VCEnd</Command>
162
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\BasicConfigVersion-SameMajorVersion.cmake.in;C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\CMakePackageConfigHelpers.cmake;C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\GNUInstallDirs.cmake;C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\share\cmake-3.31\Modules\WriteBasicConfigVersionFile.cmake;%(AdditionalInputs)</AdditionalInputs>
162
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\BasicConfigVersion-SameMajorVersion.cmake.in;C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\CMakePackageConfigHelpers.cmake;C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\GNUInstallDirs.cmake;C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\share\cmake-4.1\Modules\WriteBasicConfigVersionFile.cmake;%(AdditionalInputs)</AdditionalInputs>
163
163
  <Outputs Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">C:\TeamCity\work\938b0bdf6727d1ad\build\lib.win-amd64-cpython-310\quasardb\date\CMakeFiles\generate.stamp</Outputs>
164
164
  <LinkObjects Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">false</LinkObjects>
165
165
  </CustomBuild>
@@ -7,7 +7,7 @@ if(CMAKE_VERSION VERSION_LESS "3.1.0")
7
7
  message(FATAL_ERROR "CMake >= 3.1.0 required")
8
8
  endif()
9
9
  cmake_policy(PUSH)
10
- cmake_policy(VERSION 3.1.0...3.29)
10
+ cmake_policy(VERSION 3.1.0...3.31)
11
11
  #----------------------------------------------------------------
12
12
  # Generated CMake target import file.
13
13
  #----------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  # CMake generation dependency list for this directory.
2
- C:/TeamCity/temp/buildTmp/build-env-qfg4toky/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
3
- C:/TeamCity/temp/buildTmp/build-env-qfg4toky/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/CMakePackageConfigHelpers.cmake
4
- C:/TeamCity/temp/buildTmp/build-env-qfg4toky/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/GNUInstallDirs.cmake
5
- C:/TeamCity/temp/buildTmp/build-env-qfg4toky/Lib/site-packages/cmake/data/share/cmake-3.31/Modules/WriteBasicConfigVersionFile.cmake
2
+ C:/TeamCity/temp/buildTmp/build-env-hw1ilonc/Lib/site-packages/cmake/data/share/cmake-4.1/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
3
+ C:/TeamCity/temp/buildTmp/build-env-hw1ilonc/Lib/site-packages/cmake/data/share/cmake-4.1/Modules/CMakePackageConfigHelpers.cmake
4
+ C:/TeamCity/temp/buildTmp/build-env-hw1ilonc/Lib/site-packages/cmake/data/share/cmake-4.1/Modules/GNUInstallDirs.cmake
5
+ C:/TeamCity/temp/buildTmp/build-env-hw1ilonc/Lib/site-packages/cmake/data/share/cmake-4.1/Modules/WriteBasicConfigVersionFile.cmake
6
6
  C:/TeamCity/work/938b0bdf6727d1ad/thirdparty/date/CMakeLists.txt
@@ -69,7 +69,7 @@
69
69
  <UseUtf8Encoding>Always</UseUtf8Encoding>
70
70
  <Message></Message>
71
71
  <Command>setlocal
72
- C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
72
+ C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
73
73
  if %errorlevel% neq 0 goto :cmEnd
74
74
  :cmEnd
75
75
  endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
@@ -84,7 +84,7 @@ if %errorlevel% neq 0 goto :VCEnd</Command>
84
84
  <UseUtf8Encoding>Always</UseUtf8Encoding>
85
85
  <Message></Message>
86
86
  <Command>setlocal
87
- C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
87
+ C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
88
88
  if %errorlevel% neq 0 goto :cmEnd
89
89
  :cmEnd
90
90
  endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
@@ -99,7 +99,7 @@ if %errorlevel% neq 0 goto :VCEnd</Command>
99
99
  <UseUtf8Encoding>Always</UseUtf8Encoding>
100
100
  <Message></Message>
101
101
  <Command>setlocal
102
- C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
102
+ C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
103
103
  if %errorlevel% neq 0 goto :cmEnd
104
104
  :cmEnd
105
105
  endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
@@ -114,7 +114,7 @@ if %errorlevel% neq 0 goto :VCEnd</Command>
114
114
  <UseUtf8Encoding>Always</UseUtf8Encoding>
115
115
  <Message></Message>
116
116
  <Command>setlocal
117
- C:\TeamCity\temp\buildTmp\build-env-qfg4toky\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
117
+ C:\TeamCity\temp\buildTmp\build-env-hw1ilonc\Lib\site-packages\cmake\data\bin\cmake.exe -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
118
118
  if %errorlevel% neq 0 goto :cmEnd
119
119
  :cmEnd
120
120
  endlocal &amp; call :cmErrorLevel %errorlevel% &amp; goto :cmDone
@@ -7,7 +7,7 @@ if(CMAKE_VERSION VERSION_LESS "3.0.0")
7
7
  message(FATAL_ERROR "CMake >= 3.0.0 required")
8
8
  endif()
9
9
  cmake_policy(PUSH)
10
- cmake_policy(VERSION 3.0.0...3.29)
10
+ cmake_policy(VERSION 3.0.0...3.31)
11
11
  #----------------------------------------------------------------
12
12
  # Generated CMake target import file.
13
13
  #----------------------------------------------------------------
@@ -29,6 +29,9 @@
29
29
 
30
30
  import logging
31
31
  import time
32
+ import warnings
33
+ from typing import Dict, List, Optional, Tuple, Union
34
+ from numpy.typing import DTypeLike
32
35
 
33
36
  import quasardb
34
37
  import quasardb.table_cache as table_cache
@@ -61,14 +64,14 @@ class IncompatibleDtypeError(TypeError):
61
64
  Exception raised when a provided dtype is not the expected dtype.
62
65
  """
63
66
 
64
- def __init__(self, cname=None, ctype=None, expected=None, provided=None):
67
+ def __init__(self, cname=None, ctype=None, expected=None, provided=None) -> None:
65
68
  self.cname = cname
66
69
  self.ctype = ctype
67
70
  self.expected = expected
68
71
  self.provided = provided
69
72
  super().__init__(self.msg())
70
73
 
71
- def msg(self):
74
+ def msg(self) -> str:
72
75
  return "Data for column '{}' with type '{}' was provided in dtype '{}' but need '{}'.".format(
73
76
  self.cname, self.ctype, self.provided, self.expected
74
77
  )
@@ -79,11 +82,11 @@ class IncompatibleDtypeErrors(TypeError):
79
82
  Wraps multiple dtype errors
80
83
  """
81
84
 
82
- def __init__(self, xs):
85
+ def __init__(self, xs) -> None:
83
86
  self.xs = xs
84
87
  super().__init__(self.msg())
85
88
 
86
- def msg(self):
89
+ def msg(self) -> str:
87
90
  return "\n".join(x.msg() for x in self.xs)
88
91
 
89
92
 
@@ -92,12 +95,12 @@ class InvalidDataCardinalityError(ValueError):
92
95
  Raised when the provided data arrays doesn't match the table's columns.
93
96
  """
94
97
 
95
- def __init__(self, data, cinfos):
98
+ def __init__(self, data, cinfos) -> None:
96
99
  self.data = data
97
100
  self.cinfos = cinfos
98
101
  super().__init__(self.msg())
99
102
 
100
- def msg(self):
103
+ def msg(self) -> str:
101
104
  return "Provided data array length '{}' exceeds amount of table columns '{}', unable to map data to columns".format(
102
105
  len(self.data), len(self.cinfos)
103
106
  )
@@ -116,7 +119,7 @@ _ctype_to_dtype = {
116
119
  }
117
120
 
118
121
 
119
- def _best_dtype_for_ctype(ctype: quasardb.quasardb.ColumnType):
122
+ def _best_dtype_for_ctype(ctype: quasardb.ColumnType):
120
123
  """
121
124
  Returns the 'best' DType for a certain column type. For example, for blobs, even
122
125
  though we accept py::bytes, prefer bytestrings (as they are faster to read in c++).
@@ -128,7 +131,10 @@ def _best_dtype_for_ctype(ctype: quasardb.quasardb.ColumnType):
128
131
  return possible_dtypes[0]
129
132
 
130
133
 
131
- def _coerce_dtype(dtype, columns):
134
+ def _coerce_dtype(
135
+ dtype: Union[DTypeLike, Dict[str, DTypeLike], List[DTypeLike]],
136
+ columns: List[Tuple[str, quasardb.ColumnInfo]],
137
+ ) -> List[DTypeLike]:
132
138
  if dtype is None:
133
139
  dtype = [None] * len(columns)
134
140
 
@@ -136,11 +142,10 @@ def _coerce_dtype(dtype, columns):
136
142
  dtype = [dtype]
137
143
 
138
144
  if type(dtype) is dict:
139
-
140
145
  # Conveniently look up column index by label
141
146
  offsets = {}
142
147
  for i in range(len(columns)):
143
- (cname, ctype) = columns[i]
148
+ (cname, _) = columns[i]
144
149
  offsets[cname] = i
145
150
 
146
151
  # Now convert the provided dtype dict to a list that matches
@@ -151,7 +156,7 @@ def _coerce_dtype(dtype, columns):
151
156
 
152
157
  for k, dt in dtype.items():
153
158
  if not k in offsets:
154
- logger.warn(
159
+ logger.warning(
155
160
  "Forced dtype provided for column '%s' = %s, but that column is not found in the table. Skipping...",
156
161
  k,
157
162
  )
@@ -178,7 +183,9 @@ def _coerce_dtype(dtype, columns):
178
183
  return dtype
179
184
 
180
185
 
181
- def _add_desired_dtypes(dtype, columns):
186
+ def _add_desired_dtypes(
187
+ dtype: List[DTypeLike], columns: List[Tuple[str, quasardb.ColumnInfo]]
188
+ ) -> List[DTypeLike]:
182
189
  """
183
190
  When infer_types=True, this function sets the 'desired' dtype for each of the columns.
184
191
  `dtype` is expected to be the output of `_coerce_dtype`, that is, a list-like with an
@@ -452,6 +459,10 @@ def _ensure_list(xs, cinfos):
452
459
  # of the array.
453
460
  n = _probe_length(xs)
454
461
 
462
+ if n is None:
463
+ logger.error("Unable to probe length: provided arrays: %s", xs)
464
+ raise ValueError("Unable to probe array length: all provided arrays None?")
465
+
455
466
  ret = list()
456
467
 
457
468
  for i in range(len(cinfos)):
@@ -482,6 +493,33 @@ def _coerce_retries(retries) -> quasardb.RetryOptions:
482
493
  )
483
494
 
484
495
 
496
+ def _kwarg_deprecation_warning(
497
+ old_kwarg, old_value, new_kwargs, new_values, stacklevel
498
+ ):
499
+ new_declaration = ", ".join(
500
+ f"{new_kwarg}={new_value}"
501
+ for new_kwarg, new_value in zip(new_kwargs, new_values)
502
+ )
503
+ warnings.warn(
504
+ f"The argument '{old_kwarg}' <{type(old_value).__name__}> is deprecated and will be removed in a future version. "
505
+ f"Please use '{new_declaration}' instead.",
506
+ DeprecationWarning,
507
+ stacklevel=stacklevel + 1,
508
+ )
509
+
510
+
511
+ def _type_check(var, var_name, target_type, raise_error=True, allow_none=True):
512
+ if allow_none and var is None:
513
+ return True
514
+ if not isinstance(var, target_type):
515
+ if raise_error:
516
+ raise quasardb.quasardb.InvalidArgumentError(
517
+ f"Invalid '{var_name}' type, expected: {target_type}, got: {type(var)}"
518
+ )
519
+ return False
520
+ return True
521
+
522
+
485
523
  def ensure_ma(xs, dtype=None):
486
524
  if isinstance(dtype, list):
487
525
  assert isinstance(xs, list) == True
@@ -630,14 +668,17 @@ def write_arrays(
630
668
  *,
631
669
  dtype=None,
632
670
  index=None,
671
+ # TODO: Set the default push_mode after removing _async, fast and truncate
672
+ push_mode=None,
633
673
  _async=False,
634
674
  fast=False,
635
675
  truncate=False,
676
+ truncate_range=None,
636
677
  deduplicate=False,
637
678
  deduplication_mode="drop",
638
679
  infer_types=True,
639
680
  writer=None,
640
- write_through=False,
681
+ write_through=True,
641
682
  retries=3,
642
683
  # We accept additional kwargs that will be passed through the writer.push() methods
643
684
  **kwargs,
@@ -705,13 +746,32 @@ def write_arrays(
705
746
  Defaults to True. For production use cases where you want to avoid implicit conversions,
706
747
  we recommend setting this to False.
707
748
 
749
+ push_mode: optional quasardb.WriterPushMode
750
+ The mode used for inserting data. Can be either a string or a `WriterPushMode` enumeration item.
751
+ Available options:
752
+ * `Truncate`: Truncate (also referred to as upsert) the data in-place. Will detect time range
753
+ to truncate from the time range inside the dataframe.
754
+ * `Async`: Uses asynchronous insertion API where commits are buffered server-side and
755
+ acknowledged before they are written to disk. If you insert to the same table from
756
+ multiple processes, setting this to True may improve performance.
757
+ * `Fast`: Whether to use 'fast push'. If you incrementally add small batches of data to table,
758
+ you may see better performance if you set this to True.
759
+ * `Transactional`: Ensures full transactional consistency.
760
+
761
+ Defaults to `Transactional`.
762
+
708
763
  truncate: optional bool
764
+ **DEPRECATED** – Use `push_mode=WriterPushMode.Truncate` instead.
709
765
  Truncate (also referred to as upsert) the data in-place. Will detect time range to truncate
710
766
  from the time range inside the dataframe.
711
767
 
712
768
  Defaults to False.
713
769
 
770
+ truncate_range: optional tuple
771
+ Time range to truncate from the time range inside the dataframe.
772
+
714
773
  _async: optional bool
774
+ **DEPRECATED** – Use `push_mode=WriterPushMode.Async` instead.
715
775
  If true, uses asynchronous insertion API where commits are buffered server-side and
716
776
  acknowledged before they are written to disk. If you insert to the same table from
717
777
  multiple processes, setting this to True may improve performance.
@@ -719,6 +779,7 @@ def write_arrays(
719
779
  Defaults to False.
720
780
 
721
781
  fast: optional bool
782
+ **DEPRECATED** – Use `push_mode=WriterPushMode.Fast` instead.
722
783
  Whether to use 'fast push'. If you incrementally add small batches of data to table,
723
784
  you may see better performance if you set this to True.
724
785
 
@@ -747,32 +808,57 @@ def write_arrays(
747
808
 
748
809
  if table:
749
810
  logger.debug("table explicitly provided, assuming single-table write")
750
- return write_arrays(
751
- [(table, data)],
752
- cluster,
753
- table=None,
754
- dtype=dtype,
755
- index=index,
756
- _async=_async,
757
- fast=fast,
758
- truncate=truncate,
759
- deduplicate=deduplicate,
760
- deduplication_mode=deduplication_mode,
761
- infer_types=infer_types,
762
- write_through=write_through,
763
- writer=writer,
764
- retries=retries,
765
- **kwargs,
811
+ data = [(table, data)]
812
+ table = None
813
+
814
+ _type_check(push_mode, "push_mode", target_type=quasardb.WriterPushMode)
815
+ deprecation_stacklevel = kwargs.pop("deprecation_stacklevel", 1) + 1
816
+
817
+ if isinstance(truncate, tuple):
818
+ # Especial case, truncate might be a tuple indicating the range.
819
+ _kwarg_deprecation_warning(
820
+ "truncate",
821
+ truncate,
822
+ ["push_mode", "truncate_range"],
823
+ [quasardb.WriterPushMode.Truncate, truncate],
824
+ deprecation_stacklevel,
766
825
  )
826
+ truncate_range = truncate_range or truncate
827
+ truncate = True
828
+
829
+ kwarg_to_mode = {
830
+ # "kwarg": (kwarg_type, kwarg_push_mode, is_deprecated)
831
+ "fast": (bool, quasardb.WriterPushMode.Fast, True),
832
+ "_async": (bool, quasardb.WriterPushMode.Async, True),
833
+ "truncate": (bool, quasardb.WriterPushMode.Truncate, True),
834
+ "truncate_range": (tuple, quasardb.WriterPushMode.Truncate, False),
835
+ }
767
836
 
768
- ret = []
837
+ for kwarg, info in kwarg_to_mode.items():
838
+ expected_type, mode, deprecated = info
839
+ kwarg_value = locals()[kwarg]
840
+ _type_check(kwarg_value, kwarg, target_type=expected_type)
841
+
842
+ if kwarg_value:
843
+ if push_mode and push_mode != mode:
844
+ raise quasardb.quasardb.InvalidArgumentError(
845
+ f"Found '{kwarg}' in kwargs, but push mode is already set to {push_mode}"
846
+ )
847
+ push_mode = mode
848
+ if deprecated:
849
+ _kwarg_deprecation_warning(
850
+ kwarg, kwarg_value, ["push_mode"], [mode], deprecation_stacklevel
851
+ )
852
+
853
+ if not push_mode:
854
+ push_mode = quasardb.WriterPushMode.Transactional
769
855
 
770
856
  # Create batch column info from dataframe
771
857
  if writer is None:
772
858
  writer = cluster.writer()
773
859
 
860
+ ret = []
774
861
  n_rows = 0
775
-
776
862
  push_data = quasardb.WriterData()
777
863
 
778
864
  for table, data_ in data:
@@ -787,6 +873,12 @@ def write_arrays(
787
873
  assert len(dtype) is len(cinfos)
788
874
 
789
875
  if index is None and isinstance(data_, dict) and "$timestamp" in data_:
876
+ # Create shallow copy of `data_` so that we don't modify the reference, i.e.
877
+ # delete keys.
878
+ #
879
+ # This ensures that the user can call the same function multiple times without
880
+ # side-effects.
881
+ data_ = data_.copy()
790
882
  index_ = data_.pop("$timestamp")
791
883
  assert "$timestamp" not in data_
792
884
  elif index is not None:
@@ -837,22 +929,13 @@ def write_arrays(
837
929
  push_kwargs["deduplication_mode"] = deduplication_mode
838
930
  push_kwargs["write_through"] = write_through
839
931
  push_kwargs["retries"] = retries
932
+ push_kwargs["push_mode"] = push_mode
933
+ if truncate_range:
934
+ push_kwargs["range"] = truncate_range
840
935
 
841
936
  logger.debug("pushing %d rows", n_rows)
842
937
  start = time.time()
843
938
 
844
- if fast is True:
845
- push_kwargs["push_mode"] = quasardb.WriterPushMode.Fast
846
- elif truncate is True:
847
- push_kwargs["push_mode"] = quasardb.WriterPushMode.Truncate
848
- elif isinstance(truncate, tuple):
849
- push_kwargs["push_mode"] = quasardb.WriterPushMode.Truncate
850
- push_kwargs["range"] = truncate
851
- elif _async is True:
852
- push_kwargs["push_mode"] = quasardb.WriterPushMode.Async
853
- else:
854
- push_kwargs["push_mode"] = quasardb.WriterPushMode.Transactional
855
-
856
939
  writer.push(push_data, **push_kwargs)
857
940
 
858
941
  logger.debug("pushed %d rows in %s seconds", n_rows, (time.time() - start))