Skip to main content

BIGSdb Python Toolkit

Project description

BIGSdb_Python_Toolkit

Python libraries for interacting with local BIGSdb databases.

The modules included in this package enable scripts to be written in Python that can query and update local BIGSdb databases using similar method calls as used in the main BIGSdb Perl package.

A script object that is passed a database config name will automatically parse the BIGSdb configuration and database configuration files, and set up the required database connections. Methods for querying databases are included in the Datastore module. More methods will be added as required to replicate the Perl BIGSdb libraries.

BIGSdb plugins can also now be written in Python so that additional analysis functionality can be added to the platform without having to write Perl code.

Installation

It is recommended that you install this in a virtual environment, e.g.

python -m venv .venv
source .venv/bin/activate

Install with pip:

pip install bigsdb

You can de-activate the virtual environment with:

deactivate

You can also clone the git repository and install dependencies. You will need to clone the repository to access various scripts needed to enable plugins.

git clone https://github.com/kjolley/BIGSdb_Python_Toolkit.git
cd BIGSdb_Python_Toolkit
pip install -r requirements.txt

Initiating plugins

BIGSdb needs to know about any plugins. In order to enable this, there is a script called create_plugin_list.py found in the scripts directory. Run this and save the output to a file called python_plugins.json and copy this to /etc/bigsdb. This contains everything that BIGSdb needs to know about each plugin including descriptive attributes, Javascript libraries needed and any inline Javascript that should be added to the page.

python create_plugin_list.py --plugin_dir ../sample_plugins/

BIGSdb will call a script called plugin_runner.py and it needs to know the location of this as well as the location of the Python plugins. Set the python_plugin_runner_path and python_plugin_dir in bigsdb.conf, e.g.

python_plugin_runner_path=/home/bigsdb/BIGSdb_Python_Toolkit/.venv/bin/python /home/bigsdb/BIGSdb_Python_Toolkit/plugin_runner.py
python_plugin_dir=/home/bigsdb/BIGSdb_Python_Toolkit/sample_plugins

Tests

Many of the tests involve creating and dropping a test database. The user running the tests must have permissions set to enable this. They will also need to be able to modify tables which may be owned by the apache user. If running as the bigsdb user, run the following to set these permissions:

psql
ALTER USER bigsdb createdb;
ALTER USER bigsdb createrole;
GRANT postgres TO bigsdb;
GRANT apache TO bigsdb;

Tests can be run from the tests/ directory with the following:

python -m unittest discover

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

bigsdb-0.0.8.tar.gz (77.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bigsdb-0.0.8-py3-none-any.whl (68.8 kB view details)

Uploaded Python 3

File details

Details for the file bigsdb-0.0.8.tar.gz.

File metadata

  • Download URL: bigsdb-0.0.8.tar.gz
  • Upload date:
  • Size: 77.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for bigsdb-0.0.8.tar.gz
Algorithm Hash digest
SHA256 f0a60beda2fbde23183cb2629c4d13060c88de521def8f414db3a7ba85053885
MD5 620c6f8b6abce2dcdf20c8f5494e5edd
BLAKE2b-256 bb496d063b96fcbc3209c73b65a0f9b7b670bcd245962bf3a173228184af73c8

See more details on using hashes here.

File details

Details for the file bigsdb-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: bigsdb-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 68.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for bigsdb-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 033e53a9405c368b52ff78f24667f66384ac7dd6529042bffed40072ece69a0e
MD5 19b3f571fc522ab3f82166dd3c02d957
BLAKE2b-256 5ce773dea6b9dac51f1dc398cc6fa874259503bd9232c7cf3e0c84a4f6617a95

See more details on using hashes here.

Supported by

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