DBIS Pipeline
This pipline can be used to run analyses in a structured way, and stores configurations and results in a database.
Usage
the user writes a minimal plan file which contains only the following information:
- "how do I get the data?", by providing a dataloader
- "what to do with the data?", by providing a scikit pipeline
- "how to process the result?", by providing result handlers.
- "where to additionally store results?" by providing storage handlers.
Please have a look at the examples for more information.
CLI
We provide a dbispipeline-link tool that can be used to link datasets to
the data directory. This ensures that datasets are linked in a consistent way
even on different machines. The general process is as follows:
-
Either in the
dbispipeline.inior as an argument in the cli call, one can define where in general datasets are stored on the local machine. For example, many datasets are available on/storage/nas3/datasets/text. In this case, this would be the value in the configuration:#dbispipeline.ini: [project] dataset_dir = /storage/nas3/datasets -
In a file
data/links.yaml, one can define specific datasets that are used by the software. Thereby, the first path segment will be cut off (not sure why). For example, the following yaml file:--- datasets: - music/acousticbrainz - music/billboard - music/millionsongdataset
would assume that a physical directory exists at
/storage/nas3/datasets/music/billboardand after calling the scriptdbispipeline-linkwithout parameters using the above configuration, the following symlinks will be created:data/acousticbrainz -> /storage/nas3/datasets/music/acousticbrainz data/billboard -> /storage/nas3/datasets/music/billboard data/millionsongdataset -> /storage/nas3/datasets/music/millionsongdatasetThe value of
dataset_dirfrom the config can be overwritten in the cli script by using the-poption.
Requirements
- python >= 3.6
- a PostgreSQL database
- an email server if you want to use notification emails
Installation
- Install dbispipeline in your python. We recommend using pipenv to keep your
dependencies clean:
pipenv install dbispipelineThis call will install a virtual environment as well as all dependencies. - Write your plan(s). See the example plan files for guidance.
- call
pipenv run dp <yourplanfile.py>
Enjoy!
Configuration
The framework look in multiple directories for its configuration files.
/usr/local/etc/dbispipeline.iniused for system wide default.$HOME/.config/dbispipeline.iniused for user specific configurations../dbispipeline.inifor project specific configurations.
And example configuration file looks like this:
[database]
# url to your postgres database
host = your.personal.database
# your database user name
user = user
# port of your postgres database, default = 5432
# port = 5432
# password of your database user
password = <secure-password>
# database to use
database = pipelineresults
# table to be used
result_table = my_super_awesome_results
[project]
# this will be stored in the database
name = dbispipeline-test
# this is used to store backups of the execution
# it is possible to override this by setting the DBISPIPELINE_BACKUP_DIR
# environment variable
# the default is the temp dir of the os if this option is not set.
backup_dir = tmp
# this is used to linke the used datasets spcified in data/links.yaml
# it is possible to override this by setting the DBISPIPELINE_DATASET_DIR
# environment variable
dataset_dir = /storage/nas/datasets
[mail]
# email address to use as sender
sender = botname@yourserver.com
# recipient. This should probably be set on a home-directory-basis.
recipient = you@yourserver.com
# smtp server address to use
smtp_server = smtp.yourserver.com
# use smtp authentication, default = no
# authenticate = no
# username for smtp authentication, required if authenticate = yes
# username = foo
# password for smtp authentication, required if authenticate = yes
# password = bar
# port to use for smtp server connection, default = 465
# port = 465
Metadata
Release files for dbispipeline 0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dbispipeline-0.9.tar.gz | 36.1 kB | Without provenance | Details for dbispipeline-0.9.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dbispipeline-0.9-py3-none-any.whl | Python 3 | none | any | Details for dbispipeline-0.9-py3-none-any.whl |
Total release size: 79.3 kB
Release files / dbispipeline-0.9.tar.gz
| Download URL | dbispipeline-0.9.tar.gz |
|---|---|
| Size | 36.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
840b6888faa40e2b51800b49e9576eb836f04803cf1f26d17c36d52c6961a1bf
|
|
BLAKE2b-256 checksum How to use checksums |
e20ed6fa9ee841483166ad85d32eba4b9defbbf4714e657dec1442014558c7c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.4.2 CPython/3.11.5 Linux/6.5.3-arch1-1
|
Release files / dbispipeline-0.9-py3-none-any.whl
| Download URL | dbispipeline-0.9-py3-none-any.whl |
|---|---|
| Size | 43.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
275e41f7810e483b157422e29105f8991d2deb02cdef4c0fb3c362c28377c135
|
|
BLAKE2b-256 checksum How to use checksums |
af37b3f14de9021122a029d623f1119051074353256cf0752972587ee0402fd1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.4.2 CPython/3.11.5 Linux/6.5.3-arch1-1
|
Security for dbispipeline 0.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.