quasardb 3.14.2.dev8__cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.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.
Files changed (70) hide show
  1. quasardb/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  2. quasardb/CMakeFiles/progress.marks +1 -0
  3. quasardb/Makefile +189 -0
  4. quasardb/__init__.py +140 -0
  5. quasardb/__init__.pyi +72 -0
  6. quasardb/cmake_install.cmake +58 -0
  7. quasardb/date/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  8. quasardb/date/CMakeFiles/Export/b76006b2b7125baf1b0b4d4ca4db82bd/dateTargets.cmake +108 -0
  9. quasardb/date/CMakeFiles/progress.marks +1 -0
  10. quasardb/date/Makefile +189 -0
  11. quasardb/date/cmake_install.cmake +81 -0
  12. quasardb/date/dateConfigVersion.cmake +65 -0
  13. quasardb/date/dateTargets.cmake +63 -0
  14. quasardb/extensions/__init__.py +9 -0
  15. quasardb/extensions/writer.py +195 -0
  16. quasardb/firehose.py +112 -0
  17. quasardb/libqdb_api.so +0 -0
  18. quasardb/numpy/__init__.py +1106 -0
  19. quasardb/pandas/__init__.py +696 -0
  20. quasardb/pool.py +338 -0
  21. quasardb/pybind11/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  22. quasardb/pybind11/CMakeFiles/progress.marks +1 -0
  23. quasardb/pybind11/Makefile +189 -0
  24. quasardb/pybind11/cmake_install.cmake +50 -0
  25. quasardb/quasardb/__init__.pyi +97 -0
  26. quasardb/quasardb/_batch_column.pyi +5 -0
  27. quasardb/quasardb/_batch_inserter.pyi +32 -0
  28. quasardb/quasardb/_blob.pyi +16 -0
  29. quasardb/quasardb/_cluster.pyi +106 -0
  30. quasardb/quasardb/_continuous.pyi +18 -0
  31. quasardb/quasardb/_double.pyi +7 -0
  32. quasardb/quasardb/_entry.pyi +61 -0
  33. quasardb/quasardb/_error.pyi +15 -0
  34. quasardb/quasardb/_integer.pyi +7 -0
  35. quasardb/quasardb/_node.pyi +26 -0
  36. quasardb/quasardb/_options.pyi +106 -0
  37. quasardb/quasardb/_perf.pyi +7 -0
  38. quasardb/quasardb/_properties.pyi +5 -0
  39. quasardb/quasardb/_query.pyi +2 -0
  40. quasardb/quasardb/_reader.pyi +15 -0
  41. quasardb/quasardb/_retry.pyi +16 -0
  42. quasardb/quasardb/_string.pyi +12 -0
  43. quasardb/quasardb/_table.pyi +140 -0
  44. quasardb/quasardb/_tag.pyi +5 -0
  45. quasardb/quasardb/_timestamp.pyi +9 -0
  46. quasardb/quasardb/_writer.pyi +112 -0
  47. quasardb/quasardb/metrics/__init__.pyi +28 -0
  48. quasardb/quasardb.cpython-310-x86_64-linux-gnu.so +0 -0
  49. quasardb/range-v3/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  50. quasardb/range-v3/CMakeFiles/Export/48a02d54b5e9e60c30c5f249b431a911/range-v3-targets.cmake +128 -0
  51. quasardb/range-v3/CMakeFiles/progress.marks +1 -0
  52. quasardb/range-v3/CMakeFiles/range.v3.headers.dir/DependInfo.cmake +22 -0
  53. quasardb/range-v3/CMakeFiles/range.v3.headers.dir/build.make +86 -0
  54. quasardb/range-v3/CMakeFiles/range.v3.headers.dir/cmake_clean.cmake +5 -0
  55. quasardb/range-v3/CMakeFiles/range.v3.headers.dir/compiler_depend.make +2 -0
  56. quasardb/range-v3/CMakeFiles/range.v3.headers.dir/compiler_depend.ts +2 -0
  57. quasardb/range-v3/CMakeFiles/range.v3.headers.dir/progress.make +1 -0
  58. quasardb/range-v3/Makefile +204 -0
  59. quasardb/range-v3/cmake_install.cmake +93 -0
  60. quasardb/range-v3/include/range/v3/version.hpp +24 -0
  61. quasardb/range-v3/range-v3-config-version.cmake +83 -0
  62. quasardb/range-v3/range-v3-config.cmake +80 -0
  63. quasardb/stats.py +376 -0
  64. quasardb/table_cache.py +60 -0
  65. quasardb/typing.py +23 -0
  66. quasardb-3.14.2.dev8.dist-info/METADATA +41 -0
  67. quasardb-3.14.2.dev8.dist-info/RECORD +70 -0
  68. quasardb-3.14.2.dev8.dist-info/WHEEL +6 -0
  69. quasardb-3.14.2.dev8.dist-info/licenses/LICENSE.md +11 -0
  70. quasardb-3.14.2.dev8.dist-info/top_level.txt +1 -0
@@ -0,0 +1,60 @@
1
+ import logging
2
+ from typing import Dict, Optional
3
+
4
+ from quasardb.quasardb import Cluster, Table
5
+
6
+ logger = logging.getLogger("quasardb.table_cache")
7
+
8
+ _cache: Dict[str, Table] = {}
9
+
10
+
11
+ def clear() -> None:
12
+ global _cache
13
+ logger.info("Clearing table cache")
14
+ _cache = {}
15
+
16
+
17
+ def exists(table_name: str) -> bool:
18
+ """
19
+ Returns true if table already exists in table cache.
20
+ """
21
+ return table_name in _cache
22
+
23
+
24
+ def store(table: Table, table_name: Optional[str] = None) -> Table:
25
+ """
26
+ Stores a table into the cache. Ensures metadata is retrieved. This is useful if you want
27
+ to retrieve all table metadata at the beginning of a process, to avoid doing expensive
28
+ lookups in undesired code paths.
29
+
30
+ Returns a reference to the table being stored.
31
+ """
32
+ if table_name is None:
33
+ table_name = table.get_name()
34
+
35
+ if exists(table_name):
36
+ logger.warning("Table already in cache, overwriting: %s", table_name)
37
+
38
+ logger.debug("Caching table %s", table_name)
39
+ _cache[table_name] = table
40
+
41
+ table.retrieve_metadata()
42
+
43
+ return table
44
+
45
+
46
+ def lookup(table_name: str, conn: Cluster) -> Table:
47
+ """
48
+ Retrieves table from _cache if already exists. If it does not exist,
49
+ looks up the table from `conn` and puts it in the cache.
50
+
51
+ If `force_retrieve_metadata` equals True, we will ensure that the table's
52
+ metadata is
53
+ """
54
+ if exists(table_name):
55
+ return _cache[table_name]
56
+
57
+ logger.debug("table %s not yet found, looking up", table_name)
58
+ table = conn.table(table_name)
59
+
60
+ return store(table, table_name)
quasardb/typing.py ADDED
@@ -0,0 +1,23 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Iterable, Tuple
4
+
5
+ import numpy as np
6
+
7
+ # Numpy
8
+
9
+ # # Modern typing (numpy >= 1.22.0, python >= 3.9)
10
+ # DType = np.dtype[Any]
11
+ # NDArrayAny = np.ndarray[Any, np.dtype[Any]]
12
+ # NDArrayTime = np.ndarray[Any, np.dtype[np.datetime64]]
13
+ # MaskedArrayAny = np.ma.MaskedArray[Any, Any]
14
+
15
+ # Legacy fallback (numpy ~ 1.20.3, python 3.7)
16
+ DType = np.dtype
17
+ NDArrayAny = np.ndarray
18
+ NDArrayTime = np.ndarray
19
+ MaskedArrayAny = np.ma.MaskedArray
20
+
21
+ # Qdb expressions
22
+ Range = Tuple[np.datetime64, np.datetime64]
23
+ RangeSet = Iterable[Range]
@@ -0,0 +1,41 @@
1
+ Metadata-Version: 2.4
2
+ Name: quasardb
3
+ Version: 3.14.2.dev8
4
+ Summary: Python API for quasardb
5
+ Home-page: https://www.quasardb.net/
6
+ Author: quasardb SAS
7
+ Author-email: contact@quasardb.net
8
+ License: BSD
9
+ Keywords: quasardb timeseries database API driver
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Intended Audience :: End Users/Desktop
12
+ Classifier: Intended Audience :: Financial and Insurance Industry
13
+ Classifier: Intended Audience :: Information Technology
14
+ Classifier: Intended Audience :: Other Audience
15
+ Classifier: Intended Audience :: System Administrators
16
+ Classifier: Intended Audience :: Telecommunications Industry
17
+ Classifier: Programming Language :: Python :: 3.7
18
+ Classifier: Programming Language :: Python :: 3.8
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Topic :: Database
24
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
+ Classifier: License :: OSI Approved :: BSD License
26
+ License-File: LICENSE.md
27
+ Requires-Dist: numpy
28
+ Provides-Extra: pandas
29
+ Requires-Dist: pandas; extra == "pandas"
30
+ Provides-Extra: test
31
+ Requires-Dist: pytest; extra == "test"
32
+ Dynamic: author
33
+ Dynamic: author-email
34
+ Dynamic: classifier
35
+ Dynamic: home-page
36
+ Dynamic: keywords
37
+ Dynamic: license
38
+ Dynamic: license-file
39
+ Dynamic: provides-extra
40
+ Dynamic: requires-dist
41
+ Dynamic: summary
@@ -0,0 +1,70 @@
1
+ quasardb/Makefile,sha256=y1gVfpHMtajbWwe0KsNu9yEgdXH1QZRsZWdkBZbjNVM,8232
2
+ quasardb/__init__.py,sha256=AVL-vz_zSEr6uoShycqB6r-1g5FXofTgQ_Yf1_l5Epg,4729
3
+ quasardb/__init__.pyi,sha256=O1gBZNZd3BYdSOZ_WaItU7lO10Jjj1I-yYimnDbU67s,1438
4
+ quasardb/cmake_install.cmake,sha256=KWUood8EeQzWrm2E49sUUnrfle2KeRC9sV3B2yqwiOg,2121
5
+ quasardb/firehose.py,sha256=EELgjnFOUd6P6N-91xEPpp83GM8y7cL5kP4HWu4a-xU,3712
6
+ quasardb/libqdb_api.so,sha256=5rqiJtNckM89ngHY05jj1y1YJRppcdTiYpH2MyTkf_I,28866944
7
+ quasardb/pool.py,sha256=zlMSZ8kwV7GMgahejUZjC5jubGc80XTuNrRQbioLP9I,9550
8
+ quasardb/quasardb.cpython-310-x86_64-linux-gnu.so,sha256=bQBIJ365WIDH0MzvUQTemrjSf_V3VYYxELnWK0Oq30o,2761040
9
+ quasardb/stats.py,sha256=5p8gDKu3Zf9LzyajmjLBguU3NnLK2IIvXT1b3f5aUNg,10621
10
+ quasardb/table_cache.py,sha256=NnQuFjqnx7Ly9m8k_jbrA8uQwFQABBLuuIGktnCE9u0,1580
11
+ quasardb/typing.py,sha256=VAgw_ojfUJRG96MwdTn-N2G7zsjyM7EHzzPH99zd00o,565
12
+ quasardb/CMakeFiles/CMakeDirectoryInformation.cmake,sha256=cTobQ2TDgQ9yICIXkQVz5RDeyMT_w-abLlW93efCejc,724
13
+ quasardb/CMakeFiles/progress.marks,sha256=micfKpFrC27mzsskJvCzIG7wdFeL5V2byU9vP-Orhqo,2
14
+ quasardb/date/Makefile,sha256=2avoP-aPpT3temxI3Mr0Gt23UzMUyeLslH9d3_070Js,8257
15
+ quasardb/date/cmake_install.cmake,sha256=XZbzpdMDKERavgXSPbAbSa4oqnjn_FHV4F9GdoJ_eQ8,3712
16
+ quasardb/date/dateConfigVersion.cmake,sha256=rL5Cp_r_23Yu8HmjowwKIH04sxxMwdBZ7no3tr4cx14,2762
17
+ quasardb/date/dateTargets.cmake,sha256=2vddEZbgHExC64p2_HpFG8mYIpDGJfQfhS7B7CbFs7E,2863
18
+ quasardb/date/CMakeFiles/CMakeDirectoryInformation.cmake,sha256=cTobQ2TDgQ9yICIXkQVz5RDeyMT_w-abLlW93efCejc,724
19
+ quasardb/date/CMakeFiles/progress.marks,sha256=micfKpFrC27mzsskJvCzIG7wdFeL5V2byU9vP-Orhqo,2
20
+ quasardb/date/CMakeFiles/Export/b76006b2b7125baf1b0b4d4ca4db82bd/dateTargets.cmake,sha256=QHGjawFaQWDEnJp-O3j5mkytsHjSQurPEpGddDLa_5s,4211
21
+ quasardb/extensions/__init__.py,sha256=F2M-dAY_C6ehNppF-8KVFjkTEJApuaEj1-Lfmr3-Smo,154
22
+ quasardb/extensions/writer.py,sha256=7GWL0Afd7xd9mYElGQKycNp5Dim6iH7dAELjCC25aJk,6058
23
+ quasardb/numpy/__init__.py,sha256=NS2urrUlmfNiJYnuJyQ9lQ7OzZeBCu7ZXWfEsmc9WVs,37008
24
+ quasardb/pandas/__init__.py,sha256=WuRYZN4GaxtPqvdyclic0rrRoe9Tptt__PkbUmyt020,22410
25
+ quasardb/pybind11/Makefile,sha256=jrCEIc00U9OZ2fFMMFwoYu6hLQeuHVTjtCuBjxVvuqo,8277
26
+ quasardb/pybind11/cmake_install.cmake,sha256=zhRqQ6QD5cd4nrTGUTEMT6svqo_8Hi_62vM56DyqdZs,1644
27
+ quasardb/pybind11/CMakeFiles/CMakeDirectoryInformation.cmake,sha256=cTobQ2TDgQ9yICIXkQVz5RDeyMT_w-abLlW93efCejc,724
28
+ quasardb/pybind11/CMakeFiles/progress.marks,sha256=micfKpFrC27mzsskJvCzIG7wdFeL5V2byU9vP-Orhqo,2
29
+ quasardb/quasardb/__init__.pyi,sha256=GE1wGHJFQDODwHzsjbH6JqUXJllz6e6WeonXDqapR6k,2160
30
+ quasardb/quasardb/_batch_column.pyi,sha256=BVfOELOFlGvkG79KCW_9MuV5KQukaWBKCLpeyUddez0,173
31
+ quasardb/quasardb/_batch_inserter.pyi,sha256=ip0hhT-GIowpFsXWDGTWFr8fsB7D38wxZknGze9Lmz0,1104
32
+ quasardb/quasardb/_blob.pyi,sha256=fVpF69GoOlgY20PDPL3m0YVIVDdwyCbYElFwApfU5R8,524
33
+ quasardb/quasardb/_cluster.pyi,sha256=pSOanB_LhVqUPnhM0wv57Dt9oXUjd0UG71kPzuRgMzE,4052
34
+ quasardb/quasardb/_continuous.pyi,sha256=u2uzby0Ky9C8Z5KoHkbB4-w64oqcvpEQ5SKDKI9U4cQ,501
35
+ quasardb/quasardb/_double.pyi,sha256=RRCygCQByWD20yrEXIYt0AcmZiKytxflDEthWv8Ykf8,240
36
+ quasardb/quasardb/_entry.pyi,sha256=mG-85EcK4aGsQHA9cmqeSeGAL7e-6qPVaz8b6aI_Hw4,2497
37
+ quasardb/quasardb/_error.pyi,sha256=DVMLFtN7m-tRHVx2AhZm2WPjKn5ZeJd6PDKUeXwp-b4,564
38
+ quasardb/quasardb/_integer.pyi,sha256=3zMfrdJZ6fZj9RMpwe9mWFCoAoccOuASi3yMaq83gSc,233
39
+ quasardb/quasardb/_node.pyi,sha256=tYSQeNoKEkFlbj-8GpCRtwlPALAyzSVTuWjS07e08GQ,835
40
+ quasardb/quasardb/_options.pyi,sha256=GJbJqHCLAsjcB3nxEWYQ5eszRj03E1l6MMMfPE0B_HI,4566
41
+ quasardb/quasardb/_perf.pyi,sha256=MBAtwhBjKXhMuHxzRx0LviHpYwPxDqBcZPsNeIrdHdQ,208
42
+ quasardb/quasardb/_properties.pyi,sha256=Im03-ildL2w5VhcuNmDAWnkKY8BTkm9mQlL4rg15MhU,195
43
+ quasardb/quasardb/_query.pyi,sha256=cFTvl0SQvtGd4lAofcBlOoP2E0ZmWymGI4JSvVXpA8A,53
44
+ quasardb/quasardb/_reader.pyi,sha256=JXFa2BLOZduK1DU3xNYPjaDjs7uIflUNdZhpX7CqJS4,453
45
+ quasardb/quasardb/_retry.pyi,sha256=Arb964aoqf4rk6YY5_R0dpa-rU7RsCjp6Cn1C2A2xsM,375
46
+ quasardb/quasardb/_string.pyi,sha256=NK9JBMtR1bQNel3T5kjNhTiJuYh-tJhC8rrG-2VUtgM,456
47
+ quasardb/quasardb/_table.pyi,sha256=zYKR8qsATKKgsi1Mn9oU7bRcUqKr2Sj2477vlIaZisk,4975
48
+ quasardb/quasardb/_tag.pyi,sha256=E-9aYCtv_PI83YHfE9Lt1dnGqoMTg7MHhDKbTlMfFU8,121
49
+ quasardb/quasardb/_timestamp.pyi,sha256=vCjArhHfBvpeNlnxF6cSgSixgbDG2qJPeS7ECJzUV5E,326
50
+ quasardb/quasardb/_writer.pyi,sha256=-SdK258raNPBxxKILy44UFyFWtOxr8garAJ9RQMtw-w,3315
51
+ quasardb/quasardb/metrics/__init__.pyi,sha256=kb6aze2gUIze7plO-4gBycZwF8AFyzGt3sq-3i2r-qs,639
52
+ quasardb/range-v3/Makefile,sha256=aXWEwFrgdoVcSdZM--ijLqcBhqUeEvBpuGsLtoIDB04,9598
53
+ quasardb/range-v3/cmake_install.cmake,sha256=SgvimmiFGNBFABXO00siPewcedKW9itJ4ZPq769Abe8,4664
54
+ quasardb/range-v3/range-v3-config-version.cmake,sha256=xGi8nCg5dIl5VmCOtTEVVa-dwABxKxLEd1Mx-bUvLLM,3249
55
+ quasardb/range-v3/range-v3-config.cmake,sha256=Z-Dwl4PMFp2rRndxCzEjKZ1phSKM0Pv-Nzi3wBGAqtc,3420
56
+ quasardb/range-v3/CMakeFiles/CMakeDirectoryInformation.cmake,sha256=cTobQ2TDgQ9yICIXkQVz5RDeyMT_w-abLlW93efCejc,724
57
+ quasardb/range-v3/CMakeFiles/progress.marks,sha256=micfKpFrC27mzsskJvCzIG7wdFeL5V2byU9vP-Orhqo,2
58
+ quasardb/range-v3/CMakeFiles/Export/48a02d54b5e9e60c30c5f249b431a911/range-v3-targets.cmake,sha256=vUOVk2QA2ZyV4o7G3ws9ebAACryLJXa7lrE24yvVP14,5265
59
+ quasardb/range-v3/CMakeFiles/range.v3.headers.dir/DependInfo.cmake,sha256=ssojOAtcndfwexIOMvsRoVek3vdNgBmUVZscjIj5L1U,585
60
+ quasardb/range-v3/CMakeFiles/range.v3.headers.dir/build.make,sha256=-p-D7006yHZ-o6UN5a4ZzMp3Xw9O-QzYF1c1IrAGxMk,4351
61
+ quasardb/range-v3/CMakeFiles/range.v3.headers.dir/cmake_clean.cmake,sha256=3b0pZoiofoRzAiY1l7OLw203ZXp-mm1FUlQHob6i7aU,160
62
+ quasardb/range-v3/CMakeFiles/range.v3.headers.dir/compiler_depend.make,sha256=Oge9eptzOB-hllw_Tye4o5wiXsIsdq1xm1GGCe0oGFM,126
63
+ quasardb/range-v3/CMakeFiles/range.v3.headers.dir/compiler_depend.ts,sha256=orKrKpvHulgFBjBgzdeRvCpv0fV7cTffTdaHNqijFJg,120
64
+ quasardb/range-v3/CMakeFiles/range.v3.headers.dir/progress.make,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
65
+ quasardb/range-v3/include/range/v3/version.hpp,sha256=d-ToEdR3GnC_p_0RAeS77xL-SVx6EKHgTlWJ9PUQlSQ,586
66
+ quasardb-3.14.2.dev8.dist-info/METADATA,sha256=087lK90z7t6drzAm0Rlfc3XMujGioEcu8KQRVpAuYjg,1465
67
+ quasardb-3.14.2.dev8.dist-info/WHEEL,sha256=c7Ea-HCP7bNCt1Ljc84a-AMbRvOEsm1AvYikdUCZ7EQ,152
68
+ quasardb-3.14.2.dev8.dist-info/top_level.txt,sha256=wlprix4hCywuF1PkgKWYdZeJKq_kgJOqkAvukm_sZQ8,9
69
+ quasardb-3.14.2.dev8.dist-info/RECORD,,
70
+ quasardb-3.14.2.dev8.dist-info/licenses/LICENSE.md,sha256=_drOadIrIX8mzUZcnTJBTpUQih5gwdRAGK8ZKanYD6k,1467
@@ -0,0 +1,6 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp310-cp310-manylinux_2_26_x86_64
5
+ Tag: cp310-cp310-manylinux_2_28_x86_64
6
+
@@ -0,0 +1,11 @@
1
+ Copyright (c) 2009-2024, quasardb SAS. All rights reserved.
2
+
3
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4
+
5
+ Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6
+
7
+ Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8
+
9
+ Neither the name of quasardb nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
10
+
11
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1 @@
1
+ quasardb