Package: kukur
KukurKukur makes time series data and metadata available to theApache Arrowecosystem.WARNINGKukur is under active development.
Breaking changes to the interfaces are possible.Kukur uses semantic versioning.
While< 1.0.0, changes to the minor version indicate breaking changes.UsageKukur can be used as a Python library or as a standalone application that exposes an Arrow Flight interface.AKukur Docker containeris published to Docker Hub:$dockerpulltimeseer/kukurSupported SourcesMultiple types of time series sources are supported:ADODB connections (including OLEDB)Apache Feather filesApache Parquet filesAzure Data ExplorerCrateDBCSV filesInfluxDB databasesOther Kukur or Timeseer instancesODBC data sourcesCheck thedocumentationfor more infoContributingKukur welcomes contributions.
For small fixes, just open a pull request on GitHub.
Please discuss major changes in a GitHub issue first.Each file in Kukur requires anSPDXLicense Identifier and Copyright Text:# SPDX-FileCopyrightText: 2021 <you/your company># SPDX-License-Identifier: Apache-2.0Community interactions are governed by theCode of Conduct.LicenseCopyright 2021Timeseer.AILicensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.DevelopmentCreate a virtualenv and install dependencies:$python-mvenvvenv
$sourcevenv/bin/activate(venv)$makedepsdev-depsLaunch Kukur using:(venv)$python-mkukur.cliLint and format:(venv)$makelintKukur usesblackto format all code.Run unit tests:(venv)$maketestIntegration TestsKukur runs integration tests against real databases where possible.OS requirements to complete the integration tests are:unixodbcfreetdsIntegration tests require Kukur to be running with a special configuration.
Some time series databases need to be started using docker-compose.$makecomposeThen, in another shell:(venv) $ python -m kukur.cli --config-file tests/test_data/Kukur.tomlSince the location of the freetds libraries varies and this needs to be hardcoded in the unixodbc configuration,
several configuration profiles exist.
These profiles can be selected using theKUKUR_INTEGRATION_TARGETenvironment variable:/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so: the default, noKUKUR_INTEGRATION_TARGETrequired/usr/lib/libtdsodbc.so: useKUKUR_INTEGRATION_TARGET=linux/usr/local/lib/libtdsodbc.so: useKUKUR_INTEGRATION_TARGET=localThen, run the tests:(venv)$KUKUR_INTEGRATION_TARGET=linuxmakeintegration-testStop the databases using:$docker-compose-ftests/test_data/docker-compose.ymldown--volumesAlternatively, run Kukur in docker-compose as well to have a known stable setup:$docker-compose-ftests/test_data/docker-compose.yml-ftests/test_data/docker-compose.container.ymlup-dor build the Kukur container to have the latest Kukur image:$docker-compose-ftests/test_data/docker-compose.yml-ftests/test_data/docker-compose.container.ymlup--buildRun the tests using:(venv)$makeintegration-testStop all containers:$docker-compose-ftests/test_data/docker-compose.yml-ftests/test_data/docker-compose.container.ymldown--volumes