Python API Client
Pangea includes a python API client to interact with the RESTful API.
Overview
The API client provides an object oriented interface to the RESTful API. Objects (Sample-Groups, Samples, Results, etc..) can be created, fetched, updated and destroyed by manipulating python objects and calling special get, save, and delete methods. The API client can be used to upload and download data from S3 without additional authentication.
API Documentation
Remote Connection and Caching
-
class
pangea_api.remote_object.RemoteObject(*args, **kwargs)[source]
-
cache_blob(blob)[source]
-
create()[source]
Create this object on the server.
-
delete()[source]
-
get()[source]
Fetch the object from the server.
-
get_cached_blob()[source]
-
idem()[source]
Make the state of this object match the server.
-
load_blob(blob)[source]
-
optional_remote_fields = []
-
save()[source]
Assuming the object exists on the server make the server-side object
match the state of this object.
-
class
pangea_api.Knex(endpoint_url='https://pangea.gimmebio.com')[source]
-
add_auth_token(token)[source]
-
delete(url, **kwargs)[source]
-
get(url, **kwargs)[source]
-
login(username, password)[source]
-
post(url, json={}, **kwargs)[source]
-
put(url, json={}, **kwargs)[source]
-
class
pangea_api.file_system_cache.FileSystemCache(timeout=10800)[source]
-
cache_blob(obj, blob)[source]
-
clear_blob(obj)[source]
-
get_cached_blob(obj)[source]
-
get_cached_blob_filepath(obj)[source]
Objects
-
class
pangea_api.Organization(knex, name)[source]
-
get_sample_groups()[source]
Yield samplegroups fetched from the server.
-
nested_url()[source]
-
parent_field = None
-
pre_hash()[source]
-
remote_fields = ['uuid', 'created_at', 'updated_at', 'name']
-
sample_group(group_name, is_library=False)[source]
-
class
pangea_api.User(knex, email, password)[source]
-
login()[source]
-
register()[source]
-
username
-
class
pangea_api.SampleGroup(knex, org, name, is_library=False)[source]
-
add_sample(sample)[source]
Return this group and add a sample to this group.
Do not contact server until .save() is called on this group.
-
analysis_result(module_name, replicate=None)[source]
-
get_analysis_results(cache=True)[source]
Yield group analysis results fetched from the server.
-
get_manifest()[source]
Return a manifest for this group.
-
get_samples(cache=True)[source]
Yield samples fetched from the server.
-
nested_url()[source]
-
parent_field = 'org'
-
pre_hash()[source]
-
remote_fields = ['uuid', 'created_at', 'updated_at', 'name', 'is_library', 'is_public', 'metadata', 'long_description', 'description']
-
sample(sample_name, metadata={})[source]
-
class
pangea_api.Sample(knex, lib, name, metadata={})[source]
-
analysis_result(module_name, replicate=None, metadata=None)[source]
-
get_analysis_results(cache=True)[source]
Yield sample analysis results fetched from the server.
-
get_manifest()[source]
Return a manifest for this sample.
-
nested_url()[source]
-
parent_field = 'lib'
-
pre_hash()[source]
-
remote_fields = ['uuid', 'created_at', 'updated_at', 'name', 'metadata', 'library', 'description']
-
class
pangea_api.analysis_result.AnalysisResult(*args, **kwargs)[source]
-
pre_hash()[source]
-
remote_fields = ['uuid', 'created_at', 'updated_at', 'module_name', 'replicate', 'metadata', 'description']
-
class
pangea_api.analysis_result.SampleAnalysisResult(knex, sample, module_name, replicate=None, metadata={})[source]
-
field(field_name, data={})[source]
-
get_fields(cache=True)[source]
Return a list of ar-fields fetched from the server.
-
nested_url()[source]
-
parent_field = 'sample'
-
class
pangea_api.analysis_result.SampleGroupAnalysisResult(knex, grp, module_name, replicate=None, metadata={})[source]
-
field(field_name, data={})[source]
-
get_fields()[source]
Return a list of ar-fields fetched from the server.
-
nested_url()[source]
-
parent_field = 'grp'
-
class
pangea_api.analysis_result.AnalysisResultField(knex, parent, field_name, data={})[source]
-
download_file(filename=None, cache=True)[source]
Return a local filepath to the file this result points to.
-
get_blob_filename()[source]
-
get_download_url()[source]
Return a URL that can be used to download the file for this result.
-
get_referenced_filename()[source]
-
nested_url()[source]
-
parent_field = 'parent'
-
pre_hash()[source]
-
remote_fields = ['uuid', 'created_at', 'updated_at', 'name', 'stored_data']
-
upload_file(filepath, multipart_thresh=10311680, **kwargs)[source]
-
upload_large_file(filepath, file_size, chunk_size=10311680, max_retries=3, logger=<function AnalysisResultField.<lambda>>)[source]
-
upload_small_file(filepath)[source]
-
class
pangea_api.analysis_result.SampleAnalysisResultField(knex, parent, field_name, data={})[source]
-
canon_url()[source]
-
class
pangea_api.analysis_result.SampleGroupAnalysisResultField(knex, parent, field_name, data={})[source]
-
canon_url()[source]