Skip to main content

A MongoDB, Sacred, and Omniboard helper.

Project description

mdbh - A MongoDB helper collection to use with Sacred and Omniboard.

This repository holds mostly two purposes:

First, it provides a Python module together with some CLI scripts to ease the usage of MongoDB together with Sacred and Omniboard, filling a low-level gap. Whereas Omniboard is well suited to quickly explore data and compare Sacred experiments, it is not meant for more complex data visualization and low-level database access. This can for example be useful when preparing print-quality plots.

Second, it provides a Wiki to collect guidelines on how to use Sacred with MongoDB, Omniboard and mdbh. In particular, a multi-user, multi-database setup with password restriction and controlled read/write access to multiple databases is provided. This Wiki is not meant to be exhaustive, but shall get you started with your own setup.

Note: This is still somewhat under development.

[[TOC]]

Installation

Install via PyPi using pip

pip install mdbh

Setup

The MongoDB instance configuration is done using one (or multiple) configuration files which simply store the server IP, port and possible the username, password and authentication methods and database names. See the examples folder for an example.

By default, it is assumed the this configuration file can be found under

~/.mongo.conf

This config file is central to the use of mdbh. As this config file might contain userdata, make sure only the current user has read access to it, e.g. run

chmod 400 .mongo.conf

Use Cases

Some use cases of mdbh are as follows:

MongoDB URI creation

Often times, services or modules (such as the MongoObserver in Sacred) need a URI to connect to the MongoDB following the official format specification. However, this often results in boilerplate code and, in the case of user authentification, security risks as the username and/or password have to be specified in the corresponding code.

To this end, mdbh provides the get_uri function which creates the connection URI based on the .mongo.conf file and a specific database name.

Sacred Experiment query

To query and manipulate data that has been logged to the MongoDB instance via Sacred, mdbh provides several functions, the most comprehensive one being get_df_full which returns a Pandas DataFrame object created from the specified Sacred database and possible run IDs. It conviniently combines configuration information as well as logged metrics of all experiments in the specified database. Using the DataFrame, complex data aggregation and/or plotting (e.g. via Seaborn) is quite comfortable.

Sacred Experiment artifact retrieval

To retrieve artifacts from a Sacred experiments, mdbh provides the get_artifact function which downloads artifacts from the MongoDB and employs caching for optimized re-use of artifacts across different applications. Alternatively, artifacts can also be resolved for the full DataFrame via resolve_artifacts which might however be slow as all artifacts are downloaded.

MDBH configuration

Environment variables, such as the cache directory, can be manipulated during runtime via the environ module.

MongoDB Setup and Omniboard

See the corresponding Omniboard Wiki entry to see how mbdh can ease the use with Omniboard.

See the corresponding MongoDB Wiki entry to see how to properly setup a MobgoDB instance.

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

mdbh-0.3.1.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

mdbh-0.3.1-py3-none-any.whl (25.1 kB view details)

Uploaded Python 3

File details

Details for the file mdbh-0.3.1.tar.gz.

File metadata

  • Download URL: mdbh-0.3.1.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.9

File hashes

Hashes for mdbh-0.3.1.tar.gz
Algorithm Hash digest
SHA256 c1e1067cfb34525c9e8b010a58235be8b5ac839374c0ebb4df65159ed094df10
MD5 f8f616bdc0a65122ddf00e8c2014a4fe
BLAKE2b-256 b730866df97228f5cf61b4a9d836613ca8b360a304508a96ca155a995c60bf62

See more details on using hashes here.

File details

Details for the file mdbh-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: mdbh-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 25.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.9

File hashes

Hashes for mdbh-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4558d8fcbdd2dd70662f64f01ec030b8645649fbda87944575d9607883ed3512
MD5 c9b517f656d67271957dab78f82c698e
BLAKE2b-256 dba8db182209689750a31239876c5960cc68dbfab64825b547da62e3e07430c6

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