Warning
This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
galaxy.managers package¶
Classes that manage resources (models, tools, etc.) by using the current Transaction.
Encapsulates the intersection of trans (or trans.sa_session), models, and Controllers.
Responsibilities:
- model operations that involve the trans/sa_session (CRUD)
- security: ownership, accessibility
- common aspect-oriented operations via new mixins: sharable, annotatable, tagable, ratable
Not responsible for:
- encoding/decoding ids
- any http gobblygook
- formatting of returned data (always python structures)
- formatting of raised errors
The goal is to have Controllers only handle:
- query-string/payload parsing and encoding/decoding ids
- http
- return formatting
- control, improve namespacing in Controllers
- DRY for Controller ops (define here - use in both UI/API Controllers)
In other words, ‘Business logic’ independent of web transactions/user context (trans) should be pushed into models - but logic that requires the context trans should be placed under this module.
Submodules¶
galaxy.managers.annotatable module¶
Mixins for Annotatable model managers and serializers.
-
class
galaxy.managers.annotatable.
AnnotatableManagerMixin
[source]¶ Bases:
object
-
annotation_assoc
= None¶ class of AnnotationAssociation (e.g. HistoryAnnotationAssociation)
-
galaxy.managers.api_keys module¶
galaxy.managers.base module¶
Keeps the older BaseController security and fetching methods and also defines a base ModelManager, ModelSerializer, and ModelDeserializer.
ModelManagers are used for operations on models that occur outside the scope of a single model object, such as:
- object creation
- object lookup
- interactions between 2+ objects of different model classes
(Since these were to replace model Mixins from web/framework/base/controller.py the rule of thumb used there also generally has been applied here: if it uses the trans or sa_session, put it in a manager and not the model.)
ModelSerializers allow flexible conversion of model objects to dictionaries. They control what keys are sent, how values are simplified, can remap keys, and allow both predefined and user controlled key sets.
ModelDeserializers control how a model validates and process an incoming attribute change to a model object.
-
galaxy.managers.base.
security_check
(trans, item, check_ownership=False, check_accessible=False)[source]¶ Security checks for an item: checks if (a) user owns item or (b) item is accessible to user. This is a generic method for dealing with objects uniformly from the older controller mixin code - however whenever possible the managers for a particular model should be used to perform security checks.
-
galaxy.managers.base.
get_class
(class_name)[source]¶ Returns the class object that a string denotes. Without this method, we’d have to do eval(<class_name>).
-
galaxy.managers.base.
get_object
(trans, id, class_name, check_ownership=False, check_accessible=False, deleted=None)[source]¶ Convenience method to get a model object with the specified checks. This is a generic method for dealing with objects uniformly from the older controller mixin code - however whenever possible the managers for a particular model should be used to load objects.
-
galaxy.managers.base.
munge_lists
(listA, listB)[source]¶ Combine two lists into a single list.
(While allowing them to be None, non-lists, or lists.)
-
class
galaxy.managers.base.
ModelManager
(app)[source]¶ Bases:
object
Base class for all model/resource managers.
Provides common queries and CRUD operations as a (hopefully) light layer over the ORM.
-
model_class
¶ alias of
__builtin__.object
-
foreign_key_name
= None¶
-
query
(eagerloads=True, **kwargs)[source]¶ Return a basic query from model_class, filters, order_by, and limit and offset.
Set eagerloads to False to disable them for this query.
-
list
(filters=None, order_by=None, limit=None, offset=None, **kwargs)[source]¶ Returns all objects matching the given filters
-
by_ids
(ids, filters=None, **kwargs)[source]¶ Returns an in-order list of models with the matching ids in ids.
-
update
(item, new_values, flush=True, **kwargs)[source]¶ Given a dictionary of new values, update item and return it.
..note: NO validation or deserialization occurs here.
-
-
class
galaxy.managers.base.
HasAModelManager
(app, manager=None, **kwargs)[source]¶ Bases:
object
Mixin used where serializers, deserializers, filter parsers, etc. need some functionality around the model they’re mainly concerned with and would perform that functionality with a manager.
-
model_manager_class
= None¶ the class used to create this serializer’s generically accessible model_manager
-
manager
¶ Return an appropriate manager if it exists, instantiate if not.
-
-
exception
galaxy.managers.base.
ModelSerializingError
(err_msg=None, type='info', **extra_error_info)[source]¶ Bases:
galaxy.exceptions.InternalServerError
Thrown when request model values can’t be serialized
-
exception
galaxy.managers.base.
ModelDeserializingError
(err_msg=None, type='info', **extra_error_info)[source]¶ Bases:
galaxy.exceptions.ObjectAttributeInvalidException
Thrown when an incoming value isn’t usable by the model (bad type, out of range, etc.)
-
exception
galaxy.managers.base.
SkipAttribute
[source]¶ Bases:
exceptions.Exception
Raise this inside a serializer to prevent the returned dictionary from having a the associated key or value for this attribute.
-
class
galaxy.managers.base.
ModelSerializer
(app, **kwargs)[source]¶ Bases:
galaxy.managers.base.HasAModelManager
Turns models into JSONable dicts.
Maintains a map of requestable keys and the Callable() serializer functions that should be called for those keys. E.g. { ‘x’ : lambda item, key: item.x, … }
Note: if a key to serialize is not listed in the Serializer.serializable_keyset or serializers, it will not be returned.
- To serialize call:
- my_serializer = MySerializer( app ) … keys_to_serialize = [ ‘id’, ‘name’, ‘attr1’, ‘attr2’, … ] item_dict = MySerializer.serialize( my_item, keys_to_serialize )
-
static
url_for
(*args, **kargs)¶ ‘service’ to use for getting urls - use class var to allow overriding when testing
-
__init__
(app, **kwargs)[source]¶ Set up serializer map, any additional serializable keys, and views here.
-
add_serializers
()[source]¶ Register a map of attribute keys -> serializing functions that will serialize the attribute.
-
add_view
(view_name, key_list, include_keys_from=None)[source]¶ Add the list of serializable attributes key_list to the serializer’s view dictionary under the key view_name.
If include_keys_from is a proper view name, extend key_list by the list in that view.
-
serialize
(item, keys, **context)[source]¶ Serialize the model item to a dictionary.
Given model item and the list keys, create and return a dictionary built from each key in keys that also exists in serializers and values of calling the keyed/named serializers on item.
-
skip
(msg='skipped')[source]¶ To be called from inside a serializer to skip it.
Handy for config checks, information hiding, etc.
-
serialize_to_view
(item, view=None, keys=None, default_view=None, **context)[source]¶ Use a predefined list of keys (the string view) and any additional keys listed in keys.
- The combinations can be:
- view only: return those keys listed in the named view keys only: return those keys listed no view or keys: use the default_view if any view and keys: combine both into one list of keys
-
class
galaxy.managers.base.
ModelDeserializer
(app, validator=None, **kwargs)[source]¶ Bases:
galaxy.managers.base.HasAModelManager
An object that converts an incoming serialized dict into values that can be directly assigned to an item’s attributes and assigns them.
-
add_deserializers
()[source]¶ Register a map of attribute keys -> functions that will deserialize data into attributes to be assigned to the item.
-
deserialize
(item, data, flush=True, **context)[source]¶ Convert an incoming serialized dict into values that can be directly assigned to an item’s attributes and assign them
-
-
class
galaxy.managers.base.
ModelValidator
(app, *args, **kwargs)[source]¶ Bases:
galaxy.managers.base.HasAModelManager
An object that inspects a dictionary (generally meant to be a set of new/updated values for the model) and raises an error if a value is not acceptable.
-
type
(key, val, types)[source]¶ Check val against the type (or tuple of types) in types.
Raises: exceptions.RequestParameterInvalidException – if not an instance.
-
-
class
galaxy.managers.base.
ModelFilterParser
(app, **kwargs)[source]¶ Bases:
galaxy.managers.base.HasAModelManager
Converts string tuples (partially converted query string params) of attr, op, val into either:
- ORM based filters (filters that can be applied by the ORM at the SQL level) or
- functional filters (filters that use derived values or values not within the SQL tables)
These filters can then be applied to queries.
This abstraction allows ‘smarter’ application of limit and offset at either the SQL level or the generator/list level based on the presence of functional filters. In other words, if no functional filters are present, limit and offset may be applied at the SQL level. If functional filters are present, limit and offset need to applied at the list level.
These might be safely be replaced in the future by creating SQLAlchemy hybrid properties or more thoroughly mapping derived values.
-
model_class
= None¶ model class
-
__init__
(app, **kwargs)[source]¶ Set up serializer map, any additional serializable keys, and views here.
-
date_string_re
= None¶ regex for testing/dicing iso8601 date strings, with optional time and ms, but allowing only UTC timezone
-
fn_filter_parsers
= None¶ dictionary containing parsing data for functional filters - applied after a query is made
-
parse_filters
(filter_tuple_list)[source]¶ Parse string 3-tuples (attr, op, val) into orm or functional filters.
-
parse_filter
(attr, op, val)[source]¶ Attempt to parse filter as a custom/fn filter, then an orm filter, and if neither work - raise an error.
Raises: exceptions.RequestParameterInvalidException – if no functional or orm filter can be parsed.
-
UNDERSCORED_OPS
= ('lt', 'le', 'eq', 'ne', 'ge', 'gt')¶ these are the easier/shorter string equivalents to the python operator fn names that need ‘__’ around them
galaxy.managers.citations module¶
-
galaxy.managers.citations.
parse_citation
(elem, directory, citation_manager)[source]¶ Parse an abstract citation entry from the specified XML element. The directory parameter should be used to find external files for this citation.
galaxy.managers.collections module¶
-
class
galaxy.managers.collections.
DatasetCollectionManager
(app)[source]¶ Bases:
object
Abstraction for interfacing with dataset collections instance - ideally abstracts out model and plugin details.
-
ELEMENTS_UNINITIALIZED
= <object object>¶
-
precreate_dataset_collection_instance
(trans, parent, name, structure, implicit_inputs=None, implicit_output_name=None)[source]¶
-
create
(trans, parent, name, collection_type, element_identifiers=None, elements=None, implicit_collection_info=None, trusted_identifiers=None, hide_source_items=False, tags=None)[source]¶ PRECONDITION: security checks on ability to add to parent occurred during load.
-
create_dataset_collection
(trans, collection_type, element_identifiers=None, elements=None, hide_source_items=None)[source]¶
-
copy
(trans, parent, source, encoded_source_id, copy_elements=False)[source]¶ PRECONDITION: security checks on ability to add to parent occurred during load.
-
galaxy.managers.collections_util module¶
galaxy.managers.configuration module¶
Serializers for Galaxy config file data: ConfigSerializer for all users and a more expanded set of data for admin in AdminConfigSerializer.
Used by both the API and bootstrapped data.
-
class
galaxy.managers.configuration.
ConfigSerializer
(app)[source]¶ Bases:
galaxy.managers.base.ModelSerializer
Configuration (galaxy.ini) settings viewable by all users
-
class
galaxy.managers.configuration.
AdminConfigSerializer
(app)[source]¶ Bases:
galaxy.managers.configuration.ConfigSerializer
Configuration attributes viewable only by admin users
galaxy.managers.containers module¶
Manager mixins to unify the interface into things that can contain: Datasets and other (nested) containers.
(e.g. DatasetCollections, Histories, LibraryFolders)
-
class
galaxy.managers.containers.
ContainerManagerMixin
[source]¶ Bases:
object
- A class that tracks/contains two types of items:
- some non-container object (such as datasets)
- other sub-containers nested within this one
Levels of nesting are not considered here; In other words, each of the methods below only work on the first level of nesting.
-
contained_class
= None¶ the classes that can be contained
-
subcontainer_class
= None¶
-
default_order_by
= None¶ how any contents lists produced are ordered - (string) attribute name to sort on or tuple of attribute names
-
class
galaxy.managers.containers.
LibraryFolderAsContainerManagerMixin
[source]¶ Bases:
galaxy.managers.containers.ContainerManagerMixin
-
contained_class
¶ alias of
galaxy.model.LibraryDataset
-
subcontainer_class
¶ alias of
galaxy.model.LibraryFolder
-
order_contents_on
= <operator.attrgetter object>¶
-
-
class
galaxy.managers.containers.
DatasetCollectionAsContainerManagerMixin
[source]¶ Bases:
galaxy.managers.containers.ContainerManagerMixin
-
contained_class
¶
-
subcontainer_class
¶ alias of
galaxy.model.DatasetCollection
-
order_contents_on
= <operator.attrgetter object>¶
-
galaxy.managers.context module¶
Mixins for transaction-like objects.
-
class
galaxy.managers.context.
ProvidesAppContext
[source]¶ Bases:
object
For transaction-like objects to provide Galaxy convience layer for database and event handling.
Mixed in class must provide app property.
-
log_action
(user=None, action=None, context=None, params=None)[source]¶ Application-level logging of user actions.
-
log_event
(message, tool_id=None, **kwargs)[source]¶ Application level logging. Still needs fleshing out (log levels and such) Logging events is a config setting - if False, do not log.
-
sa_session
¶ Returns a SQLAlchemy session – currently just gets the current session from the threadlocal session context, but this is provided to allow migration toward a more SQLAlchemy 0.4 style of use.
-
model
¶
-
install_model
¶
-
-
class
galaxy.managers.context.
ProvidesUserContext
[source]¶ Bases:
object
For transaction-like objects to provide Galaxy convience layer for reasoning about users.
Mixed in class must provide user, api_inherit_admin, and app properties.
-
anonymous
¶
-
user_ftp_dir
¶
-
-
class
galaxy.managers.context.
ProvidesHistoryContext
[source]¶ Bases:
object
For transaction-like objects to provide Galaxy convience layer for reasoning about histories.
Mixed in class must provide user, history, and app properties.
-
db_builds
¶ Returns the builds defined by galaxy and the builds defined by the user (chromInfo in history).
-
galaxy.managers.datasets module¶
Manager and Serializer for Datasets.
-
class
galaxy.managers.datasets.
DatasetManager
(app)[source]¶ Bases:
galaxy.managers.base.ModelManager
,galaxy.managers.secured.AccessibleManagerMixin
,galaxy.managers.deletable.PurgableManagerMixin
Manipulate datasets: the components contained in DatasetAssociations/DatasetInstances/HDAs/LDDAs
-
model_class
¶ alias of
galaxy.model.Dataset
-
foreign_key_name
= 'dataset'¶
-
create
(manage_roles=None, access_roles=None, flush=True, **kwargs)[source]¶ Create and return a new Dataset object.
-
purge
(dataset, flush=True)[source]¶ Remove the object_store/file for this dataset from storage and mark as purged.
Raises: exceptions.ConfigDoesNotAllowException – if the instance doesn’t allow
-
-
class
galaxy.managers.datasets.
DatasetSerializer
(app)[source]¶ Bases:
galaxy.managers.base.ModelSerializer
,galaxy.managers.deletable.PurgableSerializerMixin
-
model_manager_class
¶ alias of
DatasetManager
-
serialize_file_name
(dataset, key, user=None, **context)[source]¶ If the config allows or the user is admin, return the file name of the file that contains this dataset’s data.
-
-
class
galaxy.managers.datasets.
DatasetDeserializer
(app)[source]¶ Bases:
galaxy.managers.base.ModelDeserializer
,galaxy.managers.deletable.PurgableDeserializerMixin
-
model_manager_class
¶ alias of
DatasetManager
-
-
class
galaxy.managers.datasets.
DatasetAssociationManager
(app)[source]¶ Bases:
galaxy.managers.base.ModelManager
,galaxy.managers.secured.AccessibleManagerMixin
,galaxy.managers.deletable.PurgableManagerMixin
DatasetAssociation/DatasetInstances are intended to be working proxies to a Dataset, associated with either a library or a user/history (HistoryDatasetAssociation).
-
model_class
¶ alias of
galaxy.model.DatasetInstance
-
stop_creating_job
(dataset_assoc)[source]¶ Stops an dataset_assoc’s creating job if all the job’s other outputs are deleted.
-
-
class
galaxy.managers.datasets.
DatasetAssociationSerializer
(app)[source]¶ Bases:
galaxy.managers.datasets._UnflattenedMetadataDatasetAssociationSerializer
-
class
galaxy.managers.datasets.
DatasetAssociationDeserializer
(app, validator=None, **kwargs)[source]¶ Bases:
galaxy.managers.base.ModelDeserializer
,galaxy.managers.deletable.PurgableDeserializerMixin
-
class
galaxy.managers.datasets.
DatasetAssociationFilterParser
(app, **kwargs)[source]¶ Bases:
galaxy.managers.base.ModelFilterParser
,galaxy.managers.deletable.PurgableFiltersMixin
galaxy.managers.deletable module¶
Many models in Galaxy are not meant to be removed from the database but only marked as deleted. These models have the boolean attribute ‘deleted’.
Other models are deletable and also may be purged. Most often these are models have some backing/supporting resources that can be removed as well (e.g. Datasets have data files on a drive). Purging these models removes the supporting resources as well. These models also have the boolean attribute ‘purged’.
-
class
galaxy.managers.deletable.
DeletableManagerMixin
[source]¶ Bases:
object
A mixin/interface for a model that is deletable (i.e. has a ‘deleted’ attr).
Many resources in Galaxy can be marked as deleted - meaning (in most cases) that they are no longer needed, should not be displayed, or may be actually removed by an admin/script.
-
class
galaxy.managers.deletable.
PurgableManagerMixin
[source]¶ Bases:
galaxy.managers.deletable.DeletableManagerMixin
A manager interface/mixin for a resource that allows deleting and purging where purging is often removal of some additional, non-db resource (e.g. a dataset’s file).
galaxy.managers.folders module¶
Manager and Serializer for Library Folders.
-
class
galaxy.managers.folders.
FolderManager
[source]¶ Bases:
object
Interface/service object for interacting with folders.
-
get
(trans, decoded_folder_id, check_manageable=False, check_accessible=True)[source]¶ Get the folder from the DB.
Parameters: Returns: the requested folder
Return type: Raises: InconsistentDatabase, RequestParameterInvalidException, InternalServerError
-
secure
(trans, folder, check_manageable=True, check_accessible=True)[source]¶ Check if (a) user can manage folder or (b) folder is accessible to user.
Parameters: - folder (LibraryFolder) – folder item
- check_manageable (bool) – flag whether to check that user can manage item
- check_accessible (bool) – flag whether to check that user can access item
Returns: the original folder
Return type:
-
check_manageable
(trans, folder)[source]¶ Check whether the user can manage the folder.
Returns: the original folder Return type: LibraryFolder Raises: AuthenticationRequired, InsufficientPermissionsException
-
check_accessible
(trans, folder)[source]¶ Check whether the folder is accessible to current user. By default every folder is accessible (contents have their own permissions).
-
get_folder_dict
(trans, folder)[source]¶ Return folder data in the form of a dictionary.
Parameters: folder (LibraryFolder) – folder item Returns: dict with data about the folder Return type: dictionary
-
create
(trans, parent_folder_id, new_folder_name, new_folder_description='')[source]¶ Create a new folder under the given folder.
Parameters: Returns: the new folder
Return type: Raises: InsufficientPermissionsException
-
update
(trans, folder, name=None, description=None)[source]¶ Update the given folder’s name or description.
Parameters: - folder (LibraryFolder) – the model object
- name (str) – new name for the library folder
- description (str) – new description for the library folder
Returns: the folder
Return type: Raises: ItemAccessibilityException, InsufficientPermissionsException
-
delete
(trans, folder, undelete=False)[source]¶ Mark given folder deleted/undeleted based on the flag.
Parameters: - folder (LibraryFolder) – the model object
- undelete (Bool) – flag whether to delete (when False) or undelete
Returns: the folder
Return type: Raises: ItemAccessibilityException
-
get_current_roles
(trans, folder)[source]¶ Find all roles currently connected to relevant permissions on the folder.
Parameters: folder (LibraryFolder) – the model object Returns: dict of current roles for all available permission types Return type: dictionary
-
can_add_item
(trans, folder)[source]¶ Return true if the user has permissions to add item to the given folder.
-
cut_the_prefix
(encoded_folder_id)[source]¶ Remove the prefix from the encoded folder id.
Parameters: encoded_folder_id (string) – encoded id of the Folder object with ‘F’ prepended Returns: encoded Folder id without the ‘F’ prefix Return type: string Raises: MalformedId
-
galaxy.managers.hdas module¶
Manager and Serializer for HDAs.
HistoryDatasetAssociations (HDAs) are datasets contained or created in a history.
-
class
galaxy.managers.hdas.
HDAManager
(app)[source]¶ Bases:
galaxy.managers.datasets.DatasetAssociationManager
,galaxy.managers.secured.OwnableManagerMixin
,galaxy.managers.taggable.TaggableManagerMixin
,galaxy.managers.annotatable.AnnotatableManagerMixin
Interface/service object for interacting with HDAs.
-
model_class
¶
-
foreign_key_name
= 'history_dataset_association'¶
-
tag_assoc
¶ alias of
galaxy.model.HistoryDatasetAssociationTagAssociation
-
annotation_assoc
¶ alias of
galaxy.model.HistoryDatasetAssociationAnnotationAssociation
-
is_accessible
(hda, user, **kwargs)[source]¶ Override to allow owners (those that own the associated history).
-
is_owner
(hda, user, current_history=None, **kwargs)[source]¶ Use history to see if current user owns HDA.
-
create
(history=None, dataset=None, flush=True, **kwargs)[source]¶ Create a new hda optionally passing in it’s history and dataset.
..note: to explicitly set hid to None you must pass in hid=None, otherwise it will be automatically set.
-
-
class
galaxy.managers.hdas.
HDASerializer
(app)[source]¶ Bases:
galaxy.managers.datasets.DatasetAssociationSerializer
,galaxy.managers.taggable.TaggableSerializerMixin
,galaxy.managers.annotatable.AnnotatableSerializerMixin
-
model_manager_class
¶ alias of
HDAManager
-
serialize
(hda, keys, user=None, **context)[source]¶ Override to hide information to users not able to access.
-
serialize_display_apps
(hda, key, trans=None, **context)[source]¶ Return dictionary containing new-style display app urls.
-
serialize_old_display_applications
(hda, key, trans=None, **context)[source]¶ Return dictionary containing old-style display app urls.
-
-
class
galaxy.managers.hdas.
HDADeserializer
(app)[source]¶ Bases:
galaxy.managers.datasets.DatasetAssociationDeserializer
,galaxy.managers.taggable.TaggableDeserializerMixin
,galaxy.managers.annotatable.AnnotatableDeserializerMixin
Interface/service object for validating and deserializing dictionaries into histories.
-
model_manager_class
¶ alias of
HDAManager
-
-
class
galaxy.managers.hdas.
HDAFilterParser
(app, **kwargs)[source]¶ Bases:
galaxy.managers.datasets.DatasetAssociationFilterParser
,galaxy.managers.taggable.TaggableFilterMixin
,galaxy.managers.annotatable.AnnotatableFilterMixin
-
model_manager_class
¶ alias of
HDAManager
-
model_class
¶
-
galaxy.managers.hdcas module¶
Manager and Serializer for HDCAs.
HistoryDatasetCollectionAssociations (HDCAs) are datasets contained or created in a history.
-
class
galaxy.managers.hdcas.
HDCAManager
(app)[source]¶ Bases:
galaxy.managers.base.ModelManager
,galaxy.managers.secured.AccessibleManagerMixin
,galaxy.managers.secured.OwnableManagerMixin
,galaxy.managers.deletable.PurgableManagerMixin
,galaxy.managers.taggable.TaggableManagerMixin
,galaxy.managers.annotatable.AnnotatableManagerMixin
Interface/service object for interacting with HDCAs.
-
model_class
¶
-
foreign_key_name
= 'history_dataset_collection_association'¶
-
tag_assoc
¶ alias of
galaxy.model.HistoryDatasetCollectionTagAssociation
-
annotation_assoc
¶ alias of
galaxy.model.HistoryDatasetCollectionAnnotationAssociation
-
-
class
galaxy.managers.hdcas.
DCESerializer
(app)[source]¶ Bases:
galaxy.managers.base.ModelSerializer
Serializer for DatasetCollectionElements.
-
class
galaxy.managers.hdcas.
DCSerializer
(app, dce_serializer=None)[source]¶ Bases:
galaxy.managers.base.ModelSerializer
Serializer for DatasetCollections.
-
class
galaxy.managers.hdcas.
DCASerializer
(app, dce_serializer=None)[source]¶ Bases:
galaxy.managers.base.ModelSerializer
Base (abstract) Serializer class for HDCAs and LDCAs.
-
class
galaxy.managers.hdcas.
HDCASerializer
(app)[source]¶ Bases:
galaxy.managers.hdcas.DCASerializer
,galaxy.managers.taggable.TaggableSerializerMixin
,galaxy.managers.annotatable.AnnotatableSerializerMixin
Serializer for HistoryDatasetCollectionAssociations.
galaxy.managers.histories module¶
Manager and Serializer for histories.
Histories are containers for datasets or dataset collections created (or copied) by users over the course of an analysis.
-
class
galaxy.managers.histories.
HistoryManager
(app, *args, **kwargs)[source]¶ Bases:
galaxy.managers.sharable.SharableModelManager
,galaxy.managers.deletable.PurgableManagerMixin
-
model_class
¶ alias of
galaxy.model.History
-
foreign_key_name
= 'history'¶
-
tag_assoc
¶ alias of
galaxy.model.HistoryTagAssociation
-
annotation_assoc
¶
-
rating_assoc
¶
-
by_user
(user, current_history=None, **kwargs)[source]¶ Get all the histories for a given user (allowing anon users’ theirs) ordered by update time.
-
is_owner
(history, user, current_history=None, **kwargs)[source]¶ True if the current user is the owner of the given history.
-
most_recent
(user, filters=None, current_history=None, **kwargs)[source]¶ Return the most recently update history for the user.
If user is anonymous, return the current history. If the user is anonymous and the current history is deleted, return None.
-
purge
(history, flush=True, **kwargs)[source]¶ Purge this history and all HDAs, Collections, and Datasets inside this history.
-
-
class
galaxy.managers.histories.
HistorySerializer
(app, **kwargs)[source]¶ Bases:
galaxy.managers.sharable.SharableModelSerializer
,galaxy.managers.deletable.PurgableSerializerMixin
Interface/service object for serializing histories into dictionaries.
-
model_manager_class
¶ alias of
HistoryManager
-
SINGLE_CHAR_ABBR
= 'h'¶
-
serialize_state_ids
(history, key, **context)[source]¶ Return a dictionary keyed to possible dataset states and valued with lists containing the ids of each HDA in that state.
-
serialize_state_counts
(history, key, exclude_deleted=True, exclude_hidden=False, **context)[source]¶ Return a dictionary keyed to possible dataset states and valued with the number of datasets in this history that have those states.
-
serialize_history_state
(history, key, **context)[source]¶ Returns the history state based on the states of the HDAs it contains.
-
serialize_contents_states
(history, key, trans=None, **context)[source]¶ Return a dictionary containing the counts of all contents in each state keyed by the distinct states.
Note: does not include deleted/hidden contents.
-
serialize_contents_active
(history, key, **context)[source]¶ Return a dictionary keyed with ‘deleted’, ‘hidden’, and ‘active’ with values for each representing the count of contents in each state.
Note: counts for deleted and hidden overlap; In other words, a dataset that’s both deleted and hidden will be added to both totals.
-
-
class
galaxy.managers.histories.
HistoryDeserializer
(app)[source]¶ Bases:
galaxy.managers.sharable.SharableModelDeserializer
,galaxy.managers.deletable.PurgableDeserializerMixin
Interface/service object for validating and deserializing dictionaries into histories.
-
model_manager_class
¶ alias of
HistoryManager
-
-
class
galaxy.managers.histories.
HistoryFilters
(app, **kwargs)[source]¶ Bases:
galaxy.managers.sharable.SharableModelFilters
,galaxy.managers.deletable.PurgableFiltersMixin
-
model_class
¶ alias of
galaxy.model.History
-
model_manager_class
¶ alias of
HistoryManager
-
galaxy.managers.history_contents module¶
Heterogenous lists/contents are difficult to query properly since unions are not easily made.
-
class
galaxy.managers.history_contents.
HistoryContentsManager
(app)[source]¶ Bases:
galaxy.managers.containers.ContainerManagerMixin
-
root_container_class
¶ alias of
galaxy.model.History
-
contained_class
¶
-
contained_class_manager_class
¶ alias of
galaxy.managers.hdas.HDAManager
-
contained_class_type_name
= 'dataset'¶
-
subcontainer_class
¶
-
subcontainer_class_manager_class
¶ alias of
galaxy.managers.hdcas.HDCAManager
-
subcontainer_class_type_name
= 'dataset_collection'¶
-
common_columns
= ('history_id', 'history_content_type', 'id', 'type_id', 'hid', 'dataset_id', 'collection_id', 'name', 'state', 'deleted', 'purged', 'visible', 'create_time', 'update_time')¶ the columns which are common to both subcontainers and non-subcontainers.
-
default_order_by
= 'hid'¶
-
contained
(container, filters=None, limit=None, offset=None, order_by=None, **kwargs)[source]¶ Returns non-subcontainer objects within container.
-
subcontainers
(container, filters=None, limit=None, offset=None, order_by=None, **kwargs)[source]¶ Returns only the containers within container.
-
contents
(container, filters=None, limit=None, offset=None, order_by=None, **kwargs)[source]¶ Returns a list of both/all types of contents, filtered and in some order.
-
contents_count
(container, filters=None, limit=None, offset=None, order_by=None, **kwargs)[source]¶ Returns a count of both/all types of contents, based on the given filters.
-
contents_query
(container, filters=None, limit=None, offset=None, order_by=None, **kwargs)[source]¶ Returns the contents union query for subqueries, etc.
-
parse_order_by
(order_by_string, default=None)[source]¶ Return an ORM compatible order_by using the given string
-
state_counts
(history)[source]¶ Return a dictionary containing the counts of all contents in each state keyed by the distinct states.
Note: does not include deleted/hidden contents.
-
-
class
galaxy.managers.history_contents.
HistoryContentsSerializer
(app, **kwargs)[source]¶ Bases:
galaxy.managers.base.ModelSerializer
,galaxy.managers.deletable.PurgableSerializerMixin
Interface/service object for serializing histories into dictionaries.
-
model_manager_class
¶ alias of
HistoryContentsManager
-
-
class
galaxy.managers.history_contents.
HistoryContentsFilters
(app, **kwargs)[source]¶ Bases:
galaxy.managers.base.ModelFilterParser
,galaxy.managers.deletable.PurgableFiltersMixin
-
model_class
¶
-
galaxy.managers.lddas module¶
galaxy.managers.libraries module¶
Manager and Serializer for libraries.
-
class
galaxy.managers.libraries.
LibraryManager
(*args, **kwargs)[source]¶ Bases:
object
Interface/service object for interacting with libraries.
-
get
(trans, decoded_library_id, check_accessible=True)[source]¶ Get the library from the DB.
Parameters: Returns: the requested library
Return type:
-
update
(trans, library, name=None, description=None, synopsis=None)[source]¶ Update the given library
-
delete
(trans, library, undelete=False)[source]¶ Mark given library deleted/undeleted based on the flag.
-
list
(trans, deleted=False)[source]¶ Return a list of libraries from the DB.
Parameters: deleted (boolean (optional)) – if True, show only deleted
libraries, if False show onlynon-deleted
Returns: query that will emit all accessible libraries Return type: sqlalchemy query Returns: dict of 3 sets with available actions for user’s accessible libraries and a set of ids of all public libraries. These are used for limiting the number of queries when dictifying the libraries later on. Return type: dict
-
secure
(trans, library, check_accessible=True)[source]¶ Check if library is accessible to user.
Parameters: - library (galaxy.model.Library) – library
- check_accessible (bool) – flag whether to check that user can access library
Returns: the original library
Return type:
-
get_library_dict
(trans, library, prefetched_ids=None)[source]¶ Return library data in the form of a dictionary.
Parameters: - library (galaxy.model.Library) – library
- prefetched_ids (dict) – dict of 3 sets with available actions for user’s accessible libraries and a set of ids of all public libraries. These are used for limiting the number of queries when dictifying a set of libraries.
Returns: dict with data about the library
Return type: dictionary
-
get_current_roles
(trans, library)[source]¶ Load all permissions currently related to the given library.
Parameters: library (galaxy.model.Library) – the model object Return type: dictionary Returns: dict of current roles for all available permission types
-
galaxy.managers.pages module¶
Manager and Serializers for Pages.
Pages are markup created and saved by users that can contain Galaxy objects (such as datasets) and are often used to describe or present an analysis from within Galaxy.
-
class
galaxy.managers.pages.
PageManager
(app, *args, **kwargs)[source]¶ Bases:
galaxy.managers.sharable.SharableModelManager
-
model_class
¶ alias of
galaxy.model.Page
-
foreign_key_name
= 'page'¶
-
tag_assoc
¶ alias of
galaxy.model.PageTagAssociation
-
annotation_assoc
¶
-
rating_assoc
¶ alias of
galaxy.model.PageRatingAssociation
-
-
class
galaxy.managers.pages.
PageSerializer
(app)[source]¶ Bases:
galaxy.managers.sharable.SharableModelSerializer
Interface/service object for serializing pages into dictionaries.
-
SINGLE_CHAR_ABBR
= 'p'¶
-
-
class
galaxy.managers.pages.
PageDeserializer
(app)[source]¶ Bases:
galaxy.managers.sharable.SharableModelDeserializer
Interface/service object for validating and deserializing dictionaries into pages.
-
model_manager_class
¶ alias of
PageManager
-
galaxy.managers.ratable module¶
Mixins for Ratable model managers and serializers.
-
class
galaxy.managers.ratable.
RatableManagerMixin
[source]¶ Bases:
object
-
rating_assoc
= None¶ class of RatingAssociation (e.g. HistoryRatingAssociation)
-
-
class
galaxy.managers.ratable.
RatableSerializerMixin
[source]¶ Bases:
object
galaxy.managers.rbac_secured module¶
-
exception
galaxy.managers.rbac_secured.
RBACPermissionFailedException
(err_msg=None, type='info', **extra_error_info)[source]¶
-
class
galaxy.managers.rbac_secured.
RBACPermission
(app)[source]¶ Bases:
object
Base class for wrangling/controlling the permissions ORM models (*Permissions, Roles) that control which users can perform certain actions on their associated models (Libraries, Datasets).
-
permissions_class
= None¶
-
permission_failed_error_class
¶ alias of
RBACPermissionFailedException
-
-
class
galaxy.managers.rbac_secured.
DatasetRBACPermission
(app)[source]¶ Bases:
galaxy.managers.rbac_secured.RBACPermission
Base class for the manage and access RBAC permissions used by dataset security.
The DatasetPermissions used by the RBAC agent are associations between a Dataset and a single Role.
DatasetPermissions are typed (but not polymorphic themselves) by a string ‘action’. There are two types:
- manage permissions : can a role manage the permissions on a dataset
- access : can a role read/look at/copy a dataset
-
permissions_class
¶ alias of
galaxy.model.DatasetPermissions
-
action_name
= None¶
-
exception
galaxy.managers.rbac_secured.
DatasetManagePermissionFailedException
(err_msg=None, type='info', **extra_error_info)[source]¶ Bases:
galaxy.managers.rbac_secured.RBACPermissionFailedException
-
class
galaxy.managers.rbac_secured.
ManageDatasetRBACPermission
(app)[source]¶ Bases:
galaxy.managers.rbac_secured.DatasetRBACPermission
A class that controls the dataset permissions that control who can manage that dataset’s permissions.
When checking permissions for a user, if any of the user’s roles have permission on the dataset
-
action_name
= 'manage permissions'¶
-
permission_failed_error_class
¶
-
-
exception
galaxy.managers.rbac_secured.
DatasetAccessPermissionFailedException
(err_msg=None, type='info', **extra_error_info)[source]¶ Bases:
galaxy.managers.rbac_secured.RBACPermissionFailedException
-
class
galaxy.managers.rbac_secured.
AccessDatasetRBACPermission
(app)[source]¶ Bases:
galaxy.managers.rbac_secured.DatasetRBACPermission
A class to manage access permissions on a dataset.
An user must have all the Roles of all the access permissions associated with a dataset in order to access it.
-
action_name
= 'access'¶
-
permission_failed_error_class
¶
-
galaxy.managers.roles module¶
Manager and Serializer for Roles.
-
class
galaxy.managers.roles.
RoleManager
(app)[source]¶ Bases:
galaxy.managers.base.ModelManager
Business logic for roles.
-
model_class
¶ alias of
galaxy.model.Role
-
foreign_key_name
= 'role'¶
-
user_assoc
¶ alias of
galaxy.model.UserRoleAssociation
-
group_assoc
¶ alias of
galaxy.model.GroupRoleAssociation
-
get
(trans, decoded_role_id)[source]¶ Method loads the role from the DB based on the given role id.
Parameters: decoded_role_id (int) – id of the role to load from the DB Returns: the loaded Role object Return type: galaxy.model.Role Raises: InconsistentDatabase, RequestParameterInvalidException, InternalServerError
-
galaxy.managers.secured module¶
Accessible models can be read and copied but not modified or deleted.
Owned models can be modified and deleted.
-
class
galaxy.managers.secured.
AccessibleManagerMixin
[source]¶ Bases:
object
A security interface to check if a User can read/view an item’s.
This can also be thought of as ‘read but not modify’ privileges.
-
get_accessible
(id, user, **kwargs)[source]¶ Return the item with the given id if it’s accessible to user, otherwise raise an error.
Raises: exceptions.ItemAccessibilityException –
-
error_unless_accessible
(item, user, **kwargs)[source]¶ Raise an error if the item is NOT accessible to user, otherwise return the item.
Raises: exceptions.ItemAccessibilityException –
-
list_accessible
(user, **kwargs)[source]¶ Return a list of items accessible to the user, raising an error if ANY are inaccessible.
Raises: exceptions.ItemAccessibilityException –
-
-
class
galaxy.managers.secured.
OwnableManagerMixin
[source]¶ Bases:
object
A security interface to check if a User is an item’s owner.
Some resources are associated with the User that created or imported them and these Users can be considered the models’ owner.
This can also be thought of as write/edit privileges.
-
get_owned
(id, user, **kwargs)[source]¶ Return the item with the given id if owned by the user, otherwise raise an error.
Raises: exceptions.ItemOwnershipException –
-
error_unless_owner
(item, user, **kwargs)[source]¶ Raise an error if the item is NOT owned by user, otherwise return the item.
Raises: exceptions.ItemAccessibilityException –
-
list_owned
(user, **kwargs)[source]¶ Return a list of items owned by the user, raising an error if ANY are not.
Raises: exceptions.ItemAccessibilityException –
-
galaxy.managers.sharable module¶
Superclass Manager and Serializers for Sharable objects.
- A sharable Galaxy object:
- has an owner/creator User is sharable with other, specific Users is importable (copyable) by users that have access has a slug which can be used as a link to view the resource can be published effectively making it available to all other Users can be rated
-
class
galaxy.managers.sharable.
SharableModelManager
(app)[source]¶ Bases:
galaxy.managers.base.ModelManager
,galaxy.managers.secured.OwnableManagerMixin
,galaxy.managers.secured.AccessibleManagerMixin
,galaxy.managers.taggable.TaggableManagerMixin
,galaxy.managers.annotatable.AnnotatableManagerMixin
,galaxy.managers.ratable.RatableManagerMixin
the model used for UserShareAssociations with this model
-
SINGLE_CHAR_ABBR
= None¶ the single character abbreviation used in username_and_slug: e.g. ‘h’ for histories: u/user/h/slug
-
by_user
(user, filters=None, **kwargs)[source]¶ Return list for all items (of model_class type) associated with the given user.
-
is_owner
(item, user, **kwargs)[source]¶ Return true if this sharable belongs to user (or user is an admin).
-
is_accessible
(item, user, **kwargs)[source]¶ If the item is importable, is owned by user, or (the valid) user is in ‘users shared with’ list for the item: return True.
-
make_importable
(item, flush=True)[source]¶ Makes item accessible–viewable and importable–and sets item’s slug. Does not flush/commit changes, however. Item must have name, user, importable, and slug attributes.
-
make_non_importable
(item, flush=True)[source]¶ Makes item accessible–viewable and importable–and sets item’s slug. Does not flush/commit changes, however. Item must have name, user, importable, and slug attributes.
Get the UserShareAssociations for the item.
Optionally send in user to test for a single match.
Get or create a share for the given user (or users if user is a list).
Delete a user share (or list of shares) from the database.
Return a list of those models shared with a particular user.
-
class
galaxy.managers.sharable.
SharableModelSerializer
(app, **kwargs)[source]¶ Bases:
galaxy.managers.base.ModelSerializer
,galaxy.managers.taggable.TaggableSerializerMixin
,galaxy.managers.annotatable.AnnotatableSerializerMixin
,galaxy.managers.ratable.RatableSerializerMixin
-
SINGLE_CHAR_ABBR
= None¶
Returns a list of encoded ids for users the item has been shared.
Skipped if the requesting user is not the owner.
-
-
class
galaxy.managers.sharable.
SharableModelDeserializer
(app, validator=None, **kwargs)[source]¶ Bases:
galaxy.managers.base.ModelDeserializer
,galaxy.managers.taggable.TaggableDeserializerMixin
,galaxy.managers.annotatable.AnnotatableDeserializerMixin
,galaxy.managers.ratable.RatableDeserializerMixin
Accept a list of encoded user_ids, validate them as users, and then add or remove user shares in order to update the users_shared_with to match the given list finally returning the new list of shares.
-
class
galaxy.managers.sharable.
SharableModelFilters
(app, **kwargs)[source]¶ Bases:
galaxy.managers.base.ModelFilterParser
,galaxy.managers.taggable.TaggableFilterMixin
,galaxy.managers.annotatable.AnnotatableFilterMixin
,galaxy.managers.ratable.RatableFilterMixin
galaxy.managers.taggable module¶
Mixins for Taggable model managers and serializers.
-
class
galaxy.managers.taggable.
TaggableManagerMixin
[source]¶ Bases:
object
-
tag_assoc
= None¶ class of TagAssociation (e.g. HistoryTagAssociation)
Return a list of tag strings.
Set an item’s tags from a list of strings.
-
-
class
galaxy.managers.taggable.
TaggableSerializerMixin
[source]¶ Bases:
object
Return tags as a list of strings.
galaxy.managers.tags module¶
Bases:
object
Bases:
object
Manages CRUD operations related to tagging objects.
Returns tag association class for item class.
Returns item id column in class’ item-tag association table.
Returns community tags for an item.
Remove a tag from an item.
Delete tags from an item.
Returns true if item is has a given tag.
Apply tags to an item.
Build a string from an item’s tags.
Get a Tag object from a tag id.
Get a Tag object from a tag name (string).
Returns a list of raw (tag-name, value) pairs derived from a string; method scrubs tag names and values as well. Return value is a list of (tag_name, tag_value) tuples.
galaxy.managers.users module¶
Manager and Serializer for Users.
-
class
galaxy.managers.users.
UserManager
(app)[source]¶ Bases:
galaxy.managers.base.ModelManager
,galaxy.managers.deletable.PurgableManagerMixin
-
model_class
¶ alias of
galaxy.model.User
-
foreign_key_name
= 'user'¶
-
by_email_like
(email_with_wildcards, filters=None, order_by=None, **kwargs)[source]¶ Find a user searching with SQL wildcards.
-
error_unless_admin
(user, msg='Administrators only', **kwargs)[source]¶ Raise an error if user is not an admin.
Raises: exceptions.AdminRequiredException – if user is not an admin.
-
error_if_anonymous
(user, msg='Log-in required', **kwargs)[source]¶ Raise an error if user is anonymous.
-
valid_api_key
(user)[source]¶ Return this most recent APIKey for this user or None if none have been created.
-
get_or_create_valid_api_key
(user)[source]¶ Return this most recent APIKey for this user or create one if none have been created.
Return a list of distinct ‘user_tname:user_value’ strings that the given user has used.
-
-
class
galaxy.managers.users.
UserSerializer
(app)[source]¶ Bases:
galaxy.managers.base.ModelSerializer
,galaxy.managers.deletable.PurgableSerializerMixin
-
model_manager_class
¶ alias of
UserManager
-
-
class
galaxy.managers.users.
UserDeserializer
(app, validator=None, **kwargs)[source]¶ Bases:
galaxy.managers.base.ModelDeserializer
Service object for validating and deserializing dictionaries that update/alter users.
-
model_manager_class
¶ alias of
UserManager
-
-
class
galaxy.managers.users.
CurrentUserSerializer
(app)[source]¶ Bases:
galaxy.managers.users.UserSerializer
-
model_manager_class
¶ alias of
UserManager
-
-
class
galaxy.managers.users.
AdminUserFilterParser
(app, **kwargs)[source]¶ Bases:
galaxy.managers.base.ModelFilterParser
,galaxy.managers.deletable.PurgableFiltersMixin
-
model_manager_class
¶ alias of
UserManager
-
model_class
¶ alias of
galaxy.model.User
-
galaxy.managers.visualizations module¶
Manager and Serializers for Visualizations.
Visualizations are saved configurations/variables used to reproduce a specific view in a Galaxy visualization.
-
class
galaxy.managers.visualizations.
VisualizationManager
(app, *args, **kwargs)[source]¶ Bases:
galaxy.managers.sharable.SharableModelManager
Handle operations outside and between visualizations and other models.
-
model_class
¶ alias of
galaxy.model.Visualization
-
foreign_key_name
= 'visualization'¶
-
tag_assoc
¶
-
annotation_assoc
¶
-
rating_assoc
¶
-
-
class
galaxy.managers.visualizations.
VisualizationSerializer
(app)[source]¶ Bases:
galaxy.managers.sharable.SharableModelSerializer
Interface/service object for serializing visualizations into dictionaries.
-
model_manager_class
¶ alias of
VisualizationManager
-
SINGLE_CHAR_ABBR
= 'v'¶
-
-
class
galaxy.managers.visualizations.
VisualizationDeserializer
(app)[source]¶ Bases:
galaxy.managers.sharable.SharableModelDeserializer
Interface/service object for validating and deserializing dictionaries into visualizations.
-
model_manager_class
¶ alias of
VisualizationManager
-
galaxy.managers.workflows module¶
-
class
galaxy.managers.workflows.
WorkflowsManager
(app)[source]¶ Bases:
object
Handle CRUD type operations related to workflows. More interesting stuff regarding workflow execution, step sorting, etc… can be found in the galaxy.workflow module.
-
get_stored_workflow
(trans, workflow_id)[source]¶ Use a supplied ID (UUID or encoded stored workflow ID) to find a workflow.
-
get_stored_accessible_workflow
(trans, workflow_id)[source]¶ Get a stored workflow from a encoded stored workflow id and make sure it accessible to the user.
-
get_owned_workflow
(trans, encoded_workflow_id)[source]¶ Get a workflow (non-stored) from a encoded workflow id and make sure it accessible to the user.
-
-
class
galaxy.managers.workflows.
CreatedWorkflow
(stored_workflow, workflow, missing_tools)¶ Bases:
tuple
-
missing_tools
¶ Alias for field number 2
-
stored_workflow
¶ Alias for field number 0
-
workflow
¶ Alias for field number 1
-
-
class
galaxy.managers.workflows.
WorkflowContentsManager
(app)[source]¶ Bases:
galaxy.model.item_attrs.UsesAnnotations
-
build_workflow_from_dict
(trans, data, source=None, add_to_menu=False, publish=False, create_stored_workflow=True, exact_tools=True)[source]¶
-
workflow_to_dict
(trans, stored, style='export')[source]¶ Export the workflow contents to a dictionary ready for JSON-ification and to be sent out via API for instance. There are three styles of export allowed ‘export’, ‘instance’, and ‘editor’. The Galaxy team will do it best to preserve the backward compatibility of the ‘export’ stye - this is the export method meant to be portable across Galaxy instances and over time. The ‘editor’ style is subject to rapid and unannounced changes. The ‘instance’ export option describes the workflow in a context more tied to the current Galaxy instance and includes fields like ‘url’ and ‘url’ and actual unencoded step ids instead of ‘order_index’.
-