Skip to main content

Python client for the Molgenis EMX2 API

Project description

The Molgenis EMX2 Pyclient is a Python package developed to be used for data management on Molgenis EMX2 servers. A detailed overview of the capabilities is presented in the MOLGENIS documentation.

Installation

The releases of the package are hosted at PyPI. The recommended way to install the latest version is through pip.

pip install molgenis-emx2-pyclient

Changelog

Releases of the Molgenis EMX2 Pyclient follow the release number of the accompanying release of the Molgenis EMX2 software. Therefore, releases of the Pyclient are less frequent than those of EMX2 and the latest version of the Pyclient may differ from the latest version of Molgenis EMX2.

11.23.0

Added: an optional job argument to the Client initialization, allowing the Pyclient to run asynchronous methods within a job in EMX2."

11.11.1

Added: option to specify filename in method export and to return the exported data in a function

11.8.0

Breaking: introduced asynchronous methods. Users need to explicitly address the asynchronous methods

10.109.3

Added: the ability to use the Pyclient on an EMX2 instance running on a local machine.

10.98.0

Added: the option to filter the results obtained from the get method based on columns

10.92.1

Added: the method upload_file which allows the direct upload of files of multiple types to the API

10.72.1

Fixed: issue where NA values were not properly read in or returned by the API

10.48.9

Fixed: issue in managing data of a table where the table id differs from the table name

10.48.0

Added: option to save data from the get method as a pandas DataFrame

10.47.2

Fixed: exceptions for metadata classes Column and Schema

10.47.0

Added: metadata classes for Column, Table, Schema

10.13.1

Added: methods create_schema, delete_schema, update_schema, recreate_schema, get_schema_metadata

How to use

Within your Python project import the class Client and instantiate it as a context manager. Operations and queries can then be executed from within the context.

from molgenis_emx2_pyclient import Client

username = 'username'
password = '...'

with Client('https://example.molgeniscloud.org') as client:
    client.signin(username, password)

    # Retrieve signin information
    print(client.status)
    """ Output:
    Host: https://example.molgeniscloud.org
    Status: Signed in
    Schemas:
        CatalogueOntologies
        catalogue
        ExampleSchema
        ...
    Version: v10.10.1
    """
    
    # Retrieve data from a table on a schema
    data = client.get(schema='ExampleSchema', table='Cohorts')
    
    # Create a new schema on the server
    client.create_schema(name='New Schema')
    
    # Delete a schema from the server
    client.delete_schema(name='New Schema')

Instead of signing in with a username and password the client can also be used while authorized by a (temporary) token that is generated on the server. See the MOLGENIS documentation for generating tokens

from molgenis_emx2_pyclient import Client

token = '...'

with Client('https://example.molgeniscloud.org', token=token) as client:

    # Retrieve signin information
    print(client.status)
    """ Output:
    Host: https://example.molgeniscloud.org
    User: token
    Status: session-less
    Schemas:
        CatalogueOntologies
        catalogue
        ExampleSchema
        ...
    Version: v10.32.1
    """
    
    ...
    ...

Development

Clone the molgenis-emx2 repository from GitHub

git clone git@github.com:molgenis/molgenis-emx2.git

Change the working directory to .../tools/pyclient

Create a virtual Python environment

On macOS:

python -m venv venv

On Linux:

python3.11 -m venv venv

On Windows:

py -3.11 venv venv

Activate the virtual environment

On macOS and Linux:

source venv/bin/activate

On Windows:

.venv\Scripts\activate.bat

Install the script dependencies

pip install -r requirements.txt

Build

Before building the source, the package build needs to be installed.

(venv) $ pip install build

(venv) $ python -m build

(venv) $ pip install dist/molgenis_emx2_pyclient*.whl

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

molgenis_emx2_pyclient-11.23.0.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

molgenis_emx2_pyclient-11.23.0-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file molgenis_emx2_pyclient-11.23.0.tar.gz.

File metadata

File hashes

Hashes for molgenis_emx2_pyclient-11.23.0.tar.gz
Algorithm Hash digest
SHA256 2f207335d3a94ce3a78f75d299c081ab0ed0b9c0fd6ce0d9fd702b5781000200
MD5 dc89ab65d4ede497bfecee6eebd2fe9c
BLAKE2b-256 3eebe1d532fb4061a970778f5f62a36410122ea02b2a50e94db7a5bacc430ff5

See more details on using hashes here.

File details

Details for the file molgenis_emx2_pyclient-11.23.0-py3-none-any.whl.

File metadata

File hashes

Hashes for molgenis_emx2_pyclient-11.23.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06dc96b7de1a8b285ccd9ed6785fea1f401b85e730860828c4cb932d8991b68d
MD5 1ea4791571cfa2683baafefb22613502
BLAKE2b-256 9488eddd09304eb98bc5802ad9185ac76d594ad296daeded7033267c4bd7145e

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