Skip to main content

DBRepo Python Library

Project description

DBRepo Python Library

Official client library for DBRepo, a database repository to support research based on requests, pydantic, tuspy and pika.

Installing

$ python -m pip install dbrepo

This package supports Python 3.11+.

Quickstart

Get public data from a table as pandas DataFrame:

from dbrepo.RestClient import RestClient

client = RestClient(endpoint="https://dbrepo1.ec.tuwien.ac.at")
# Get a small data slice of just three rows
df = client.get_table_data(database_id=7, table_id=13, page=0, size=3, df=True)
print(df)
#     x_coord         component   unit  ... value stationid meantype
# 0  16.52617  Feinstaub (PM10)  µg/m³  ...  21.0   01:0001      HMW
# 1  16.52617  Feinstaub (PM10)  µg/m³  ...  23.0   01:0001      HMW
# 2  16.52617  Feinstaub (PM10)  µg/m³  ...  26.0   01:0001      HMW
#
# [3 rows x 12 columns]

Import data into a table:

import pandas as pd
from dbrepo.RestClient import RestClient

client = RestClient(endpoint="https://dbrepo1.ec.tuwien.ac.at", username="foo",
                    password="bar")
df = pd.DataFrame(data={'x_coord': 16.52617, 'component': 'Feinstaub (PM10)',
                        'unit': 'µg/m³', ...})
client.import_table_data(database_id=7, table_id=13, file_name_or_data_frame=df)

Supported Features & Best-Practices

  • Manage user account (docs)
  • Manage databases (docs)
  • Manage database access & visibility (docs)
  • Import dataset (docs)
  • Create persistent identifiers (docs)
  • Execute queries (docs)
  • Get data from tables/views/subsets

Configure

All credentials can optionally be set/overridden with environment variables. This is especially useful when sharing Jupyter Notebooks by creating an invisible .env file and loading it:

REST_API_ENDPOINT="https://dbrepo1.ec.tuwien.ac.at"
REST_API_USERNAME="foo"
REST_API_PASSWORD="bar"
REST_API_SECURE="True"
AMQP_API_HOST="https://dbrepo1.ec.tuwien.ac.at"
AMQP_API_PORT="5672"
AMQP_API_USERNAME="foo"
AMQP_API_PASSWORD="bar"
AMQP_API_VIRTUAL_HOST="dbrepo"
REST_UPLOAD_ENDPOINT="https://dbrepo1.ec.tuwien.ac.at/api/upload/files"

You can disable logging by setting the log level to e.g. INFO:

from dbrepo.RestClient import RestClient
import logging
logging.getLogger().setLevel(logging.INFO)
...
client = RestClient(...)

Roadmap

  • Searching

Contact

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbrepo-1.5.0.tar.gz (39.2 kB view details)

Uploaded Source

Built Distribution

dbrepo-1.5.0-py3-none-any.whl (30.0 kB view details)

Uploaded Python 3

File details

Details for the file dbrepo-1.5.0.tar.gz.

File metadata

  • Download URL: dbrepo-1.5.0.tar.gz
  • Upload date:
  • Size: 39.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for dbrepo-1.5.0.tar.gz
Algorithm Hash digest
SHA256 d454727bf524f546d63ffa89b263c2f34bfa13024f4f26ae99c5098ff29887ae
MD5 b6c1a53540ebad879d91fc9006ae0076
BLAKE2b-256 709e054e4d540ad9a7afec0473b30fa8c94a1bc2cf913fe3764d58865bd051e6

See more details on using hashes here.

File details

Details for the file dbrepo-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: dbrepo-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 30.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for dbrepo-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 88f9dd1e7d4c06a7be637c6ee5695d742d3f641ff511fc18f567617631f2ca23
MD5 af04a52b89b4a93f465d93e0de8049e6
BLAKE2b-256 c09ce7b098d3102a3968eec250827951b26bcaf3b0ed71342523a336ed6ee98c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page