quasardb 3.14.2.dev5__cp39-cp39-macosx_11_0_arm64.whl → 3.14.2.dev7__cp39-cp39-macosx_11_0_arm64.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.
- quasardb/CMakeFiles/CMakeDirectoryInformation.cmake +1 -1
- quasardb/Makefile +11 -11
- quasardb/__init__.py +8 -5
- quasardb/__init__.pyi +72 -0
- quasardb/cmake_install.cmake +1 -1
- quasardb/date/CMakeFiles/CMakeDirectoryInformation.cmake +1 -1
- quasardb/date/CMakeFiles/Export/a52b05f964b070ee926bcad51d3288af/dateTargets.cmake +1 -1
- quasardb/date/Makefile +11 -11
- quasardb/date/cmake_install.cmake +1 -1
- quasardb/date/dateTargets.cmake +1 -1
- quasardb/libqdb_api.dylib +0 -0
- quasardb/numpy/__init__.py +126 -43
- quasardb/pandas/__init__.py +55 -20
- quasardb/pool.py +6 -0
- quasardb/pybind11/CMakeFiles/CMakeDirectoryInformation.cmake +1 -1
- quasardb/pybind11/Makefile +11 -11
- quasardb/pybind11/cmake_install.cmake +1 -1
- quasardb/quasardb/__init__.pyi +97 -0
- quasardb/quasardb/_batch_column.pyi +5 -0
- quasardb/quasardb/_batch_inserter.pyi +30 -0
- quasardb/quasardb/_blob.pyi +16 -0
- quasardb/quasardb/_cluster.pyi +100 -0
- quasardb/quasardb/_continuous.pyi +16 -0
- quasardb/quasardb/_double.pyi +7 -0
- quasardb/quasardb/_entry.pyi +60 -0
- quasardb/quasardb/_error.pyi +15 -0
- quasardb/quasardb/_integer.pyi +7 -0
- quasardb/quasardb/_node.pyi +26 -0
- quasardb/quasardb/_options.pyi +105 -0
- quasardb/quasardb/_perf.pyi +5 -0
- quasardb/quasardb/_properties.pyi +5 -0
- quasardb/quasardb/_query.pyi +2 -0
- quasardb/quasardb/_reader.pyi +9 -0
- quasardb/quasardb/_retry.pyi +16 -0
- quasardb/quasardb/_string.pyi +12 -0
- quasardb/quasardb/_table.pyi +125 -0
- quasardb/quasardb/_tag.pyi +5 -0
- quasardb/quasardb/_timestamp.pyi +9 -0
- quasardb/quasardb/_writer.pyi +111 -0
- quasardb/quasardb/metrics/__init__.pyi +20 -0
- quasardb/quasardb.cpython-39-darwin.so +0 -0
- quasardb/range-v3/CMakeFiles/CMakeDirectoryInformation.cmake +1 -1
- quasardb/range-v3/CMakeFiles/Export/d94ef200eca10a819b5858b33e808f5b/range-v3-targets.cmake +1 -1
- quasardb/range-v3/CMakeFiles/range.v3.headers.dir/build.make +3 -3
- quasardb/range-v3/Makefile +11 -11
- quasardb/range-v3/cmake_install.cmake +1 -1
- quasardb/range-v3/range-v3-config.cmake +1 -1
- quasardb/stats.py +223 -110
- {quasardb-3.14.2.dev5.dist-info → quasardb-3.14.2.dev7.dist-info}/METADATA +3 -2
- quasardb-3.14.2.dev7.dist-info/RECORD +69 -0
- {quasardb-3.14.2.dev5.dist-info → quasardb-3.14.2.dev7.dist-info}/WHEEL +1 -1
- quasardb-3.14.2.dev5.dist-info/RECORD +0 -45
- {quasardb-3.14.2.dev5.dist-info → quasardb-3.14.2.dev7.dist-info/licenses}/LICENSE.md +0 -0
- {quasardb-3.14.2.dev5.dist-info → quasardb-3.14.2.dev7.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# CMAKE generated file: DO NOT EDIT!
|
|
2
|
-
# Generated by "Unix Makefiles" Generator, CMake Version
|
|
2
|
+
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
|
|
3
3
|
|
|
4
4
|
# Relative path conversion top directories.
|
|
5
5
|
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/Users/teamcity/buildAgent/work/938b0bdf6727d1ad/thirdparty")
|
quasardb/Makefile
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# CMAKE generated file: DO NOT EDIT!
|
|
2
|
-
# Generated by "Unix Makefiles" Generator, CMake Version
|
|
2
|
+
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
|
|
3
3
|
|
|
4
4
|
# Default target executed when no arguments are given to make.
|
|
5
5
|
default_target: all
|
|
@@ -48,10 +48,10 @@ cmake_force:
|
|
|
48
48
|
SHELL = /bin/sh
|
|
49
49
|
|
|
50
50
|
# The CMake executable.
|
|
51
|
-
CMAKE_COMMAND = /Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
51
|
+
CMAKE_COMMAND = /Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake
|
|
52
52
|
|
|
53
53
|
# The command to remove a file.
|
|
54
|
-
RM = /Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
54
|
+
RM = /Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -E rm -f
|
|
55
55
|
|
|
56
56
|
# Escaping for special characters.
|
|
57
57
|
EQUALS = =
|
|
@@ -68,7 +68,7 @@ CMAKE_BINARY_DIR = /Users/teamcity/buildAgent/work/938b0bdf6727d1ad/build/temp.m
|
|
|
68
68
|
# Special rule for the target edit_cache
|
|
69
69
|
edit_cache:
|
|
70
70
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
|
|
71
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
71
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
|
|
72
72
|
.PHONY : edit_cache
|
|
73
73
|
|
|
74
74
|
# Special rule for the target edit_cache
|
|
@@ -78,7 +78,7 @@ edit_cache/fast: edit_cache
|
|
|
78
78
|
# Special rule for the target rebuild_cache
|
|
79
79
|
rebuild_cache:
|
|
80
80
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
|
|
81
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
81
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
|
|
82
82
|
.PHONY : rebuild_cache
|
|
83
83
|
|
|
84
84
|
# Special rule for the target rebuild_cache
|
|
@@ -97,37 +97,37 @@ list_install_components/fast: list_install_components
|
|
|
97
97
|
# Special rule for the target install
|
|
98
98
|
install: preinstall
|
|
99
99
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
|
|
100
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
100
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -P cmake_install.cmake
|
|
101
101
|
.PHONY : install
|
|
102
102
|
|
|
103
103
|
# Special rule for the target install
|
|
104
104
|
install/fast: preinstall/fast
|
|
105
105
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
|
|
106
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
106
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -P cmake_install.cmake
|
|
107
107
|
.PHONY : install/fast
|
|
108
108
|
|
|
109
109
|
# Special rule for the target install/local
|
|
110
110
|
install/local: preinstall
|
|
111
111
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
|
|
112
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
112
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
|
|
113
113
|
.PHONY : install/local
|
|
114
114
|
|
|
115
115
|
# Special rule for the target install/local
|
|
116
116
|
install/local/fast: preinstall/fast
|
|
117
117
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
|
|
118
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
118
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
|
|
119
119
|
.PHONY : install/local/fast
|
|
120
120
|
|
|
121
121
|
# Special rule for the target install/strip
|
|
122
122
|
install/strip: preinstall
|
|
123
123
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
|
|
124
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
124
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
|
|
125
125
|
.PHONY : install/strip
|
|
126
126
|
|
|
127
127
|
# Special rule for the target install/strip
|
|
128
128
|
install/strip/fast: preinstall/fast
|
|
129
129
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
|
|
130
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
130
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
|
|
131
131
|
.PHONY : install/strip/fast
|
|
132
132
|
|
|
133
133
|
# The main all target
|
quasardb/__init__.py
CHANGED
|
@@ -36,7 +36,10 @@
|
|
|
36
36
|
"""
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
|
|
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
|
|
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
|
+
]
|
quasardb/cmake_install.cmake
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# CMAKE generated file: DO NOT EDIT!
|
|
2
|
-
# Generated by "Unix Makefiles" Generator, CMake Version
|
|
2
|
+
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
|
|
3
3
|
|
|
4
4
|
# Relative path conversion top directories.
|
|
5
5
|
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/Users/teamcity/buildAgent/work/938b0bdf6727d1ad/thirdparty")
|
|
@@ -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.
|
|
10
|
+
cmake_policy(VERSION 3.1.0...3.31)
|
|
11
11
|
#----------------------------------------------------------------
|
|
12
12
|
# Generated CMake target import file.
|
|
13
13
|
#----------------------------------------------------------------
|
quasardb/date/Makefile
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# CMAKE generated file: DO NOT EDIT!
|
|
2
|
-
# Generated by "Unix Makefiles" Generator, CMake Version
|
|
2
|
+
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
|
|
3
3
|
|
|
4
4
|
# Default target executed when no arguments are given to make.
|
|
5
5
|
default_target: all
|
|
@@ -48,10 +48,10 @@ cmake_force:
|
|
|
48
48
|
SHELL = /bin/sh
|
|
49
49
|
|
|
50
50
|
# The CMake executable.
|
|
51
|
-
CMAKE_COMMAND = /Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
51
|
+
CMAKE_COMMAND = /Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake
|
|
52
52
|
|
|
53
53
|
# The command to remove a file.
|
|
54
|
-
RM = /Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
54
|
+
RM = /Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -E rm -f
|
|
55
55
|
|
|
56
56
|
# Escaping for special characters.
|
|
57
57
|
EQUALS = =
|
|
@@ -68,7 +68,7 @@ CMAKE_BINARY_DIR = /Users/teamcity/buildAgent/work/938b0bdf6727d1ad/build/temp.m
|
|
|
68
68
|
# Special rule for the target edit_cache
|
|
69
69
|
edit_cache:
|
|
70
70
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
|
|
71
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
71
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
|
|
72
72
|
.PHONY : edit_cache
|
|
73
73
|
|
|
74
74
|
# Special rule for the target edit_cache
|
|
@@ -78,7 +78,7 @@ edit_cache/fast: edit_cache
|
|
|
78
78
|
# Special rule for the target rebuild_cache
|
|
79
79
|
rebuild_cache:
|
|
80
80
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
|
|
81
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
81
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
|
|
82
82
|
.PHONY : rebuild_cache
|
|
83
83
|
|
|
84
84
|
# Special rule for the target rebuild_cache
|
|
@@ -97,37 +97,37 @@ list_install_components/fast: list_install_components
|
|
|
97
97
|
# Special rule for the target install
|
|
98
98
|
install: preinstall
|
|
99
99
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
|
|
100
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
100
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -P cmake_install.cmake
|
|
101
101
|
.PHONY : install
|
|
102
102
|
|
|
103
103
|
# Special rule for the target install
|
|
104
104
|
install/fast: preinstall/fast
|
|
105
105
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
|
|
106
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
106
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -P cmake_install.cmake
|
|
107
107
|
.PHONY : install/fast
|
|
108
108
|
|
|
109
109
|
# Special rule for the target install/local
|
|
110
110
|
install/local: preinstall
|
|
111
111
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
|
|
112
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
112
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
|
|
113
113
|
.PHONY : install/local
|
|
114
114
|
|
|
115
115
|
# Special rule for the target install/local
|
|
116
116
|
install/local/fast: preinstall/fast
|
|
117
117
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
|
|
118
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
118
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
|
|
119
119
|
.PHONY : install/local/fast
|
|
120
120
|
|
|
121
121
|
# Special rule for the target install/strip
|
|
122
122
|
install/strip: preinstall
|
|
123
123
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
|
|
124
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
124
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
|
|
125
125
|
.PHONY : install/strip
|
|
126
126
|
|
|
127
127
|
# Special rule for the target install/strip
|
|
128
128
|
install/strip/fast: preinstall/fast
|
|
129
129
|
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
|
|
130
|
-
/Users/teamcity/buildAgent/temp/buildTmp/build-env-
|
|
130
|
+
/Users/teamcity/buildAgent/temp/buildTmp/build-env-35o718ah/lib/python3.9/site-packages/cmake/data/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
|
|
131
131
|
.PHONY : install/strip/fast
|
|
132
132
|
|
|
133
133
|
# The main all target
|
|
@@ -34,7 +34,7 @@ endif()
|
|
|
34
34
|
|
|
35
35
|
# Set path to fallback-tool for dependency-resolution.
|
|
36
36
|
if(NOT DEFINED CMAKE_OBJDUMP)
|
|
37
|
-
set(CMAKE_OBJDUMP "/usr/
|
|
37
|
+
set(CMAKE_OBJDUMP "/usr/bin/objdump")
|
|
38
38
|
endif()
|
|
39
39
|
|
|
40
40
|
if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT)
|
quasardb/date/dateTargets.cmake
CHANGED
|
@@ -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.
|
|
10
|
+
cmake_policy(VERSION 3.0.0...3.31)
|
|
11
11
|
#----------------------------------------------------------------
|
|
12
12
|
# Generated CMake target import file.
|
|
13
13
|
#----------------------------------------------------------------
|
quasardb/libqdb_api.dylib
CHANGED
|
Binary file
|
quasardb/numpy/__init__.py
CHANGED
|
@@ -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.
|
|
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(
|
|
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,
|
|
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.
|
|
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(
|
|
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=
|
|
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
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
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
|
-
|
|
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))
|