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
- class galaxy.managers.annotatable.AnnotatableSerializerMixin[source]¶
Bases:
object
- serializers: Dict[str, Serializer]¶
galaxy.managers.api_keys module¶
- class galaxy.managers.api_keys.ApiKeyManager(app: BasicSharedApp)[source]¶
Bases:
object
- __init__(app: BasicSharedApp)[source]¶
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.
- class galaxy.managers.base.ParsedFilter(filter_type, filter, case_insensitive)[source]¶
Bases:
tuple
- property filter_type¶
Alias for field number 0
- property filter¶
Alias for field number 1
- property case_insensitive¶
Alias for field number 2
- galaxy.managers.base.parsed_filter¶
alias of
ParsedFilter
- 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.decode_with_security(security: IdEncodingHelper, id: Any, kind: Optional[str] = None)[source]¶
- galaxy.managers.base.encode_with_security(security: IdEncodingHelper, id: Any, kind: Optional[str] = None)[source]¶
- 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: BasicSharedApp)[source]¶
Bases:
Generic
[U
]Base class for all model/resource managers.
Provides common queries and CRUD operations as a (hopefully) light layer over the ORM.
- __init__(app: BasicSharedApp)[source]¶
- app: BasicSharedApp¶
- query(eagerloads: bool = True, filters=None, order_by=None, limit: Optional[int] = None, offset: Optional[int] = None) Query [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: MinimalManagerApp, manager=None, **kwargs)[source]¶
Bases:
Generic
[T
]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: Type[T]¶
the class used to create this serializer’s generically accessible model_manager
- __init__(app: MinimalManagerApp, manager=None, **kwargs)[source]¶
- app: MinimalManagerApp¶
- property manager: T¶
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:
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:
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:
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.Serializer(*args, **kwds)[source]¶
Bases:
Protocol
- __init__(*args, **kwargs)¶
- class galaxy.managers.base.ModelSerializer(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
HasAModelManager
[T
]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 )
- __init__(app: MinimalManagerApp, **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.ModelValidator[source]¶
Bases:
object
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.
- static matches_type(key: str, val: Any, types: Union[type, Tuple[Union[type, Tuple[Any, ...]], ...]])[source]¶
Check val against the type (or tuple of types) in types.
- Raises
exceptions.RequestParameterInvalidException – if not an instance.
- class galaxy.managers.base.Deserializer(*args, **kwds)[source]¶
Bases:
Protocol
- __init__(*args, **kwargs)¶
- class galaxy.managers.base.ModelDeserializer(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
HasAModelManager
[T
]An object that converts an incoming serialized dict into values that can be directly assigned to an item’s attributes and assigns them.
- validate = <galaxy.managers.base.ModelValidator object>¶
- app: MinimalManagerApp¶
- __init__(app: MinimalManagerApp, **kwargs)[source]¶
Set up deserializers and validator.
- 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.ModelFilterParser(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
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.
- parsed_filter¶
alias of
ParsedFilter
- __init__(app: MinimalManagerApp, **kwargs)[source]¶
Set up serializer map, any additional serializable keys, and views here.
- date_string_re¶
regex for testing/dicing iso8601 date strings, with optional time and ms, but allowing only UTC timezone
- fn_filter_parsers: Dict[str, Any]¶
dictionary containing parsing data for functional filters - applied after a query is made
- build_filter_params(query_params: ValueFilterQueryParams, filter_attr_key: str = 'q', filter_value_key: str = 'qv', attr_op_split_char: str = '-') List[Tuple[str, str, str]] [source]¶
Builds a list of tuples containing filtering information in the form of (attribute, operator, value).
- parse_query_filters(query_filters: ValueFilterQueryParams)[source]¶
Convenience function to parse a ValueFilterQueryParams object into a collection of filtering criteria.
- 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
- parse_date(date_string)[source]¶
Reformats a string containing either seconds from epoch or an iso8601 formated date string into a new date string usable within a filter query.
Seconds from epoch can be a floating point value as well (i.e containing ms).
- contains_non_orm_filter(filters: List[ParsedFilter]) bool [source]¶
Whether the list of filters contains any non-orm filter.
- galaxy.managers.base.parse_bool(bool_string: Union[str, bool]) bool [source]¶
Parse a boolean from a string.
galaxy.managers.citations module¶
- class galaxy.managers.citations.CitationsManager(app: BasicSharedApp)[source]¶
Bases:
object
- __init__(app: BasicSharedApp) None [source]¶
- galaxy.managers.citations.parse_citation(elem, citation_manager)[source]¶
Parse an abstract citation entry from the specified XML element.
- class galaxy.managers.citations.BibtexCitation(elem, citation_manager)[source]¶
Bases:
BaseCitation
galaxy.managers.cloud module¶
Manager and serializer for cloud-based storages.
- class galaxy.managers.cloud.CloudManager(app: MinimalManagerApp)[source]¶
Bases:
SharableModelManager
- static configure_provider(provider, credentials)[source]¶
Given a provider name and required credentials, it configures and returns a cloudbridge connection to the provider.
- Parameters
provider (string) – the name of cloud-based resource provided. A list of supported providers is given in SUPPORTED_PROVIDERS variable.
credentials (dict) – a dictionary containing all the credentials required to authenticated to the specified provider.
- Return type
provider specific, e.g., cloudbridge.cloud.providers.aws.provider.AWSCloudProvider for AWS.
- Returns
a cloudbridge connection to the specified provider.
- get(trans, history_id, bucket_name, objects, authz_id, input_args=None)[source]¶
Implements the logic of getting a file from a cloud-based storage (e.g., Amazon S3) and persisting it as a Galaxy dataset.
This manager does NOT require use credentials, instead, it uses a more secure method, which leverages CloudAuthz (https://github.com/galaxyproject/cloudauthz) and automatically requests temporary credentials to access the defined resources.
- Parameters
trans (galaxy.webapps.base.webapp.GalaxyWebTransaction) – Galaxy web transaction
history_id (string) – the (decoded) id of history to which the object should be received to.
bucket_name (string) – the name of a bucket from which data should be fetched (e.g., a bucket name on AWS S3).
objects (list of string) – the name of objects to be fetched.
authz_id (int) – the ID of CloudAuthz to be used for authorizing access to the resource provider. You may get a list of the defined authorizations sending GET to /api/cloud/authz. Also, you can POST to /api/cloud/authz to define a new authorization.
input_args (dict) – a [Optional] a dictionary of input parameters: dbkey, file_type, space_to_tab, to_posix_lines (see galaxy/webapps/galaxy/api/cloud.py)
- Return type
- Returns
a list of datasets created for the fetched files.
- send(trans, history_id, bucket_name, authz_id, dataset_ids=None, overwrite_existing=False)[source]¶
Implements the logic of sending dataset(s) from a given history to a given cloud-based storage (e.g., Amazon S3).
- Parameters
trans (galaxy.webapps.base.webapp.GalaxyWebTransaction) – Galaxy web transaction
history_id (string) – the (encoded) id of history from which the object should be sent.
bucket_name (string) – the name of a bucket to which data should be sent (e.g., a bucket name on AWS S3).
authz_id (int) – the ID of CloudAuthz to be used for authorizing access to the resource provider. You may get a list of the defined authorizations via /api/cloud/authz. Also, you can use /api/cloud/authz/create to define a new authorization.
dataset_ids (set) – [Optional] The list of (decoded) dataset ID(s) belonging to the given history which should be sent to the given provider. If not provided, Galaxy sends all the datasets belonging to the given history.
overwrite_existing (boolean) – [Optional] If set to “True”, and an object with same name of the dataset to be sent already exist in the bucket, Galaxy replaces the existing object with the dataset to be sent. If set to “False”, Galaxy appends datetime to the dataset name to prevent overwriting the existing object.
- Return type
- Returns
A tuple of two lists of labels of the objects that were successfully and unsuccessfully sent to cloud.
the model used for UserShareAssociations with this model
galaxy.managers.cloudauthzs module¶
Manager and (de)serializer for cloud authorizations (cloudauthzs).
- class galaxy.managers.cloudauthzs.CloudAuthzManager(app: MinimalManagerApp)[source]¶
Bases:
SharableModelManager
- model_class¶
alias of
CloudAuthz
the model used for UserShareAssociations with this model
- class galaxy.managers.cloudauthzs.CloudAuthzsSerializer(app, **kwargs)[source]¶
Bases:
ModelSerializer
Interface/service object for serializing cloud authorizations (cloudauthzs) into dictionaries.
- model_manager_class¶
alias of
CloudAuthzManager
- __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.
- serializers: Dict[str, Serializer]¶
- app: MinimalManagerApp¶
- class galaxy.managers.cloudauthzs.CloudAuthzsDeserializer(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
ModelDeserializer
Service object for validating and deserializing dictionaries that update/alter cloudauthz configurations.
- model_manager_class¶
alias of
CloudAuthzManager
- add_deserializers()[source]¶
Register a map of attribute keys -> functions that will deserialize data into attributes to be assigned to the item.
- deserialize_and_validate_authn_id(item, key, val, **context)[source]¶
Deserializes an authentication ID (authn_id), and asserts if the current user can assume that authentication.
- Parameters
item (galaxy.model.CloudAuthz) – an instance of cloudauthz
key (string) – authn_id attribute of the cloudauthz object (i.e., the item param).
val (string) – the value of authn_id attribute of the cloudauthz object (i.e., the item param).
context (dict) – a dictionary object containing Galaxy trans.
- Return type
string
- Returns
decoded authentication ID.
- app: MinimalManagerApp¶
- deserializers: Dict[str, Deserializer]¶
galaxy.managers.collections module¶
- class galaxy.managers.collections.DatasetCollectionManager(model: GalaxyModelMapping, security: IdEncodingHelper, hda_manager: HDAManager, history_manager: HistoryManager, tag_handler: GalaxyTagHandler, ldda_manager: LDDAManager, short_term_storage_monitor: ShortTermStorageMonitor)[source]¶
Bases:
object
Abstraction for interfacing with dataset collections instance - ideally abstracts out model and plugin details.
- ELEMENTS_UNINITIALIZED = <object object>¶
- __init__(model: GalaxyModelMapping, security: IdEncodingHelper, hda_manager: HDAManager, history_manager: HistoryManager, tag_handler: GalaxyTagHandler, ldda_manager: LDDAManager, short_term_storage_monitor: ShortTermStorageMonitor)[source]¶
- precreate_dataset_collection_instance(trans, parent, name, structure, implicit_inputs=None, implicit_output_name=None, tags=None, completed_collection=None)[source]¶
- precreate_dataset_collection(structure, allow_unitialized_element=True, completed_collection=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, copy_elements=False, history=None, set_hid=True, flush=True, completed_job=None, output_name=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, copy_elements=False, history=None)[source]¶
- get_converters_for_collection(trans, id, datatypes_registry: Registry, instance_type='history')[source]¶
- copy(trans, parent, source, encoded_source_id, copy_elements=False, dataset_instance_attributes=None)[source]¶
PRECONDITION: security checks on ability to add to parent occurred during load.
- match_collections(collections_to_match)[source]¶
May seem odd to place it here, but planning to grow sophistication and get plugin types involved so it will likely make sense in the future.
- get_dataset_collection_instance(trans, instance_type: typing_extensions.Literal[history], id, **kwds: Any) HistoryDatasetCollectionAssociation [source]¶
- get_dataset_collection_instance(trans, instance_type: typing_extensions.Literal[library], id, **kwds: Any) LibraryDatasetCollectionAssociation
- get_collection_contents(trans, parent_id, limit=None, offset=None)[source]¶
Find first level of collection contents by containing collection parent_id
- write_dataset_collection(request: PrepareDatasetCollectionDownload)[source]¶
galaxy.managers.collections_util module¶
galaxy.managers.configuration module¶
Managers, 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.ConfigurationManager(app: StructuredApp)[source]¶
Bases:
object
Interface/service object for interacting with configuration and related data.
- __init__(app: StructuredApp)[source]¶
- get_configuration(trans: ProvidesUserContext, serialization_params: SerializationParams) Dict[str, Any] [source]¶
- class galaxy.managers.configuration.ConfigSerializer(app)[source]¶
Bases:
ModelSerializer
Configuration (galaxy.ini) settings viewable by all users
- add_serializers()[source]¶
Register a map of attribute keys -> serializing functions that will serialize the attribute.
- serializers: Dict[str, Serializer]¶
- model_manager_class: Type[T]¶
the class used to create this serializer’s generically accessible model_manager
- app: MinimalManagerApp¶
- class galaxy.managers.configuration.AdminConfigSerializer(app)[source]¶
Bases:
ConfigSerializer
Configuration attributes viewable only by admin users
- add_serializers()[source]¶
Register a map of attribute keys -> serializing functions that will serialize the attribute.
- serializers: Dict[str, Serializer]¶
- model_manager_class: Type[T]¶
the class used to create this serializer’s generically accessible model_manager
- app: MinimalManagerApp¶
galaxy.managers.context module¶
Interfaces/mixins for transaction-like objects.
These objects describe the context around a unit of work. This unit of work is very broad and can be anything from the response to a web request, the scheduling of a workflow, the reloading the toolbox, etc.. Traditionally, Galaxy has simply passed around a GalaxyWebTransaction object through all layers and large components of the Galaxy app. Having random backend components define explicit dependencies on this however is inappropriate because Galaxy may not be used in all sort of non-web contexts. The future use of message queues and web sockets as well as the decomposition of the backend into packages only further make this heavy reliance on GalaxyWebTransaction inappropriate.
A better approach is for components to annotate their reliance on much narrower, typed views of the GalaxyWebTransaction. This allows explicit declaration of what is being required in the context of a method or class and allows the Python type system to ensure the transaction supplied to the method is appropriate for the context. For instance, an effective use of the type system in this way can prevent the backend work context used to schedule workflow from being supplied to a method that requires an older-style WSGI web response object.
There are various levels of transactions defined in this file - these
include galaxy.managers.context.ProvidesAppContext
,
galaxy.managers.context.ProvidesUserContext
,
and galaxy.managers.context.ProvidesHistoryContext
. Methods
should annotate their dependency on the narrowest context they require.
A method that requires a user but not a history should declare its
trans
argument as requiring type galaxy.managers.context.ProvidesUserContext
.
- class galaxy.managers.context.ProvidesAppContext[source]¶
Bases:
object
For transaction-like objects to provide Galaxy convenience layer for database and event handling.
Mixed in class must provide app property.
- abstract property app: MinimalManagerApp¶
Provide access to the Galaxy
app
object.
- abstract property url_builder: Optional[Callable[[...], str]]¶
Provide access to Galaxy URLs (if available).
- Parameters
qualified (bool) – if True, the fully qualified URL is returned, else a relative URL is returned (default False).
- property security: IdEncodingHelper¶
Provide access to Galaxy app’s id encoding helper.
- Return type
- 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.
- property sa_session: galaxy_scoped_session¶
Provide access to Galaxy’s SQLAlchemy session.
- property model: ModelMapping¶
Provide access to Galaxy’s model mapping class.
This is sometimes used for quick access to classes in
galaxy.model
but this is discouraged. Those classes should be imported by the consumer for stronger static checking.This is more proper use for this is accessing the threadbound SQLAlchemy session or engine.
- Return type
- property install_model: ModelMapping¶
Provide access to Galaxy’s install mapping.
Comments on the
model
property apply here also.
- class galaxy.managers.context.ProvidesUserContext[source]¶
Bases:
ProvidesAppContext
For transaction-like objects to provide Galaxy convenience layer for reasoning about users.
Mixed in class must provide user and app properties.
- property async_request_user: RequestUser¶
- abstract property user¶
Provide access to the user object.
- property user_vault¶
Provide access to a user’s personal vault.
- class galaxy.managers.context.ProvidesHistoryContext[source]¶
Bases:
ProvidesUserContext
For transaction-like objects to provide Galaxy convenience layer for reasoning about histories.
Mixed in class must provide user, history, and app properties.
- abstract property history: Optional[History]¶
Provide access to the user’s current history model object.
- Return type
Optional[galaxy.model.History]
- db_dataset_for(dbkey) Optional[HistoryDatasetAssociation] [source]¶
Optionally return the db_file dataset associated/needed by dataset.
- property 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: MinimalManagerApp)[source]¶
Bases:
ModelManager
[Dataset
],AccessibleManagerMixin
,PurgableManagerMixin
Manipulate datasets: the components contained in DatasetAssociations/DatasetInstances/HDAs/LDDAs
- app: MinimalManagerApp¶
- __init__(app: MinimalManagerApp)[source]¶
- 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
- is_accessible(item: Any, user: Optional[User], **kwargs) bool [source]¶
Is this dataset readable/viewable to user?
- has_access_permission(dataset, user)[source]¶
Return T/F if the user has role-based access to the dataset.
- compute_hash(request: ComputeDatasetHashTaskRequest)[source]¶
- class galaxy.managers.datasets.DatasetSerializer(app: MinimalManagerApp, user_manager: UserManager)[source]¶
Bases:
ModelSerializer
[DatasetManager
],PurgableSerializerMixin
- model_manager_class¶
alias of
DatasetManager
- __init__(app: MinimalManagerApp, user_manager: UserManager)[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.
- serialize_file_name(item, 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.
- serialize_extra_files_path(item, key, user=None, **context)[source]¶
If the config allows or the user is admin, return the file path.
- serializers: Dict[str, Serializer]¶
- app: MinimalManagerApp¶
- class galaxy.managers.datasets.DatasetAssociationManager(app)[source]¶
Bases:
ModelManager
[DatasetInstance
],AccessibleManagerMixin
,OwnableManagerMixin
,PurgableManagerMixin
DatasetAssociation/DatasetInstances are intended to be working proxies to a Dataset, associated with either a library or a user/history (HistoryDatasetAssociation).
- app: MinimalManagerApp¶
- is_accessible(item, user: Optional[User], **kwargs: Any) bool [source]¶
Is this DA accessible to user?
- delete(item, flush: bool = True, stop_job: bool = False, **kwargs)[source]¶
Marks this dataset association as deleted. If stop_job is True, will stop the creating job if all other outputs are deleted.
- stop_creating_job(dataset_assoc, flush=False)[source]¶
Stops an dataset_assoc’s creating job if all the job’s other outputs are deleted.
- is_composite(dataset_assoc)[source]¶
Return True if this hda/ldda is a composite type dataset.
Note
see also (whereever we keep information on composite datatypes?)
- extra_files(dataset_assoc)[source]¶
Return a list of file paths for composite files, an empty list otherwise.
- ensure_can_change_datatype(dataset: DatasetInstance, raiseException: bool = True) bool [source]¶
- ensure_can_set_metadata(dataset: DatasetInstance, raiseException: bool = True) bool [source]¶
- detect_datatype(trans, dataset_assoc)[source]¶
Sniff and assign the datatype to a given dataset association (ldda or hda)
- class galaxy.managers.datasets.DatasetAssociationSerializer(app)[source]¶
Bases:
_UnflattenedMetadataDatasetAssociationSerializer
[T
]- add_serializers()[source]¶
Register a map of attribute keys -> serializing functions that will serialize the attribute.
- serialize(dataset_assoc, keys, **context)[source]¶
Override to add metadata as flattened keys on the serialized DatasetInstance.
- serializers: Dict[str, Serializer]¶
- model_manager_class: Type[T]¶
the class used to create this serializer’s generically accessible model_manager
- app: MinimalManagerApp¶
- class galaxy.managers.datasets.DatasetAssociationDeserializer(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
ModelDeserializer
,PurgableDeserializerMixin
- add_deserializers()[source]¶
Register a map of attribute keys -> functions that will deserialize data into attributes to be assigned to the item.
- app: MinimalManagerApp¶
- model_manager_class: Type[T]¶
the class used to create this serializer’s generically accessible model_manager
- class galaxy.managers.datasets.DatasetAssociationFilterParser(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
ModelFilterParser
,PurgableFiltersMixin
- eq_datatype(dataset_assoc, class_str)[source]¶
Is the dataset_assoc datatype equal to the registered datatype class_str?
- isinstance_datatype(dataset_assoc, class_strs)[source]¶
Is the dataset_assoc datatype derived from any of the registered datatypes in the comma separated string class_strs?
- fn_filter_parsers: Dict[str, Any]¶
dictionary containing parsing data for functional filters - applied after a query is made
- model_manager_class: Type[T]¶
the class used to create this serializer’s generically accessible model_manager
- app: MinimalManagerApp¶
galaxy.managers.datatypes module¶
- class galaxy.managers.datatypes.DatatypeConverterList(*, __root__: List[DatatypeConverter] = [])[source]¶
Bases:
BaseModel
- class galaxy.managers.datatypes.DatatypeDetails(*, extension: str, description: Optional[str] = None, description_url: Optional[HttpUrl] = None, display_in_upload: bool = False, composite_files: Optional[List[CompositeFileInfo]] = None)[source]¶
Bases:
BaseModel
- class galaxy.managers.datatypes.DatatypesCombinedMap(*, datatypes: List[str], datatypes_mapping: DatatypesMap)[source]¶
Bases:
BaseModel
- datatypes_mapping: DatatypesMap¶
- class galaxy.managers.datatypes.DatatypesEDAMDetailsDict(*, __root__: Dict[str, DatatypeEDAMDetails] = {})[source]¶
Bases:
BaseModel
- class galaxy.managers.datatypes.DatatypesMap(*, ext_to_class_name: Dict[str, str], class_to_classes: Dict[str, Dict[str, bool]])[source]¶
Bases:
BaseModel
- galaxy.managers.datatypes.view_index(datatypes_registry: Registry, extension_only: Optional[bool] = True, upload_only: Optional[bool] = True) Union[List[DatatypeDetails], List[str]] [source]¶
- galaxy.managers.datatypes.view_mapping(datatypes_registry: Registry) DatatypesMap [source]¶
- galaxy.managers.datatypes.view_types_and_mapping(datatypes_registry: Registry, extension_only: Optional[bool] = True, upload_only: Optional[bool] = True) DatatypesCombinedMap [source]¶
- galaxy.managers.datatypes.view_converters(datatypes_registry: Registry) DatatypeConverterList [source]¶
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.DeletableDeserializerMixin[source]¶
Bases:
object
- deserializers: Dict[str, Deserializer]¶
- class galaxy.managers.deletable.PurgableManagerMixin[source]¶
Bases:
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).
- class galaxy.managers.deletable.PurgableSerializerMixin[source]¶
Bases:
DeletableSerializerMixin
- class galaxy.managers.deletable.PurgableDeserializerMixin[source]¶
Bases:
DeletableDeserializerMixin
- deserializers: Dict[str, Deserializer] = {}¶
galaxy.managers.display_applications module¶
- class galaxy.managers.display_applications.DisplayApplicationsManager(app: StructuredApp)[source]¶
Bases:
object
Interface/service object for sharing logic between controllers.
- __init__(app: StructuredApp)[source]¶
galaxy.managers.executables module¶
Utilities for loading tools and workflows from paths for admin user requests.
galaxy.managers.folders module¶
Manager and Serializer for Library Folders.
- class galaxy.managers.folders.SecurityParams(user_role_ids: List[Role], security_agent: RBACAgent, is_admin: bool)[source]¶
Bases:
object
Contains security data bundled for reusability.
- class galaxy.managers.folders.FolderManager[source]¶
Bases:
object
Interface/service object for interacting with folders.
- get(trans, decoded_folder_id: int, check_manageable: bool = False, check_accessible: bool = True)[source]¶
Get the folder from the DB.
- Parameters
decoded_folder_id – decoded folder id
check_manageable – flag whether the check that user can manage item
check_accessible – flag whether to check that user can access item
- 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_modifyable(trans, folder)[source]¶
Check whether the user can modify the folder (name and description).
- Returns
the original folder
- Return type
- Raises
AuthenticationRequired, InsufficientPermissionsException
- check_manageable(trans, folder)[source]¶
Check whether the user can manage the folder.
- Returns
the original folder
- Return type
- 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
- decode_folder_id(trans, encoded_folder_id)[source]¶
Decode the folder id given that it has already lost the prefixed ‘F’.
- Parameters
encoded_folder_id (string) – encoded id of the Folder object
- Returns
decoded Folder id
- Return type
- Raises
MalformedId
- cut_and_decode(trans, encoded_folder_id)[source]¶
Cuts the folder prefix (the prepended ‘F’) and returns the decoded id.
- Parameters
encoded_folder_id (string) – encoded id of the Folder object
- Returns
decoded Folder id
- Return type
- get_contents(trans, folder: LibraryFolder, payload: LibraryFolderContentsIndexQueryPayload) Tuple[List[Union[LibraryFolder, LibraryDataset]], int] [source]¶
Retrieves the contents of the given folder that match the provided filters and pagination parameters. Returns a tuple with the list of paginated contents and the total number of items contained in the folder.
- build_folder_path(sa_session: galaxy_scoped_session, security: IdEncodingHelper, folder: LibraryFolder) List[Tuple[str, str]] [source]¶
Returns the folder path from root to the given folder.
The path items are tuples with the name and id of each folder for breadcrumb building purposes.
galaxy.managers.genomes module¶
galaxy.managers.group_roles module¶
- class galaxy.managers.group_roles.GroupRolesManager(app: MinimalManagerApp)[source]¶
Bases:
object
Interface/service object shared by controllers for interacting with group roles.
- __init__(app: MinimalManagerApp) None [source]¶
- index(trans: ProvidesAppContext, group_id: int) List[GroupRoleAssociation] [source]¶
Returns a collection roles associated with the given group.
- show(trans: ProvidesAppContext, role_id: int, group_id: int) Role [source]¶
Returns information about a group role.
galaxy.managers.group_users module¶
- class galaxy.managers.group_users.GroupUsersManager(app: MinimalManagerApp)[source]¶
Bases:
object
Interface/service object shared by controllers for interacting with group users.
- __init__(app: MinimalManagerApp) None [source]¶
- index(trans: ProvidesAppContext, group_id: int) List[User] [source]¶
Returns a collection (list) with some information about users associated with the given group.
- show(trans: ProvidesAppContext, user_id: int, group_id: int) User [source]¶
Returns information about a group user.
galaxy.managers.groups module¶
- class galaxy.managers.groups.GroupsManager(app: MinimalManagerApp)[source]¶
Bases:
object
Interface/service object shared by controllers for interacting with groups.
- __init__(app: MinimalManagerApp) None [source]¶
- index(trans: ProvidesAppContext)[source]¶
Displays a collection (list) of groups.
- show(trans: ProvidesAppContext, group_id: int)[source]¶
Displays information about a group.
galaxy.managers.hdas module¶
Manager and Serializer for HDAs.
HistoryDatasetAssociations (HDAs) are datasets contained or created in a history.
- exception galaxy.managers.hdas.HistoryDatasetAssociationNoHistoryException[source]¶
Bases:
Exception
- class galaxy.managers.hdas.HDAManager(app: MinimalManagerApp, user_manager: UserManager, ldda_manager: LDDAManager, tag_handler: GalaxyTagHandler)[source]¶
Bases:
DatasetAssociationManager
,OwnableManagerMixin
,TaggableManagerMixin
,AnnotatableManagerMixin
Interface/service object for interacting with HDAs.
- model_class¶
alias of
HistoryDatasetAssociation
- tag_assoc¶
- annotation_assoc¶
- app: MinimalManagerApp¶
- __init__(app: MinimalManagerApp, user_manager: UserManager, ldda_manager: LDDAManager, tag_handler: GalaxyTagHandler)[source]¶
Set up and initialize other managers needed by hdas.
- is_accessible(item: HistoryDatasetAssociation, user: Optional[User], **kwargs: Any) bool [source]¶
Override to allow owners (those that own the associated history).
- is_owner(item: Base, user: Optional[User], current_history=None, **kwargs: Any) bool [source]¶
Use history to see if current user owns HDA.
- create(flush: bool = True, history=None, dataset=None, *args: Any, **kwargs: Any) HistoryDatasetAssociation [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.
- materialize(request: MaterializeDatasetInstanceTaskRequest) None [source]¶
- copy(item: Any, history=None, hide_copy: bool = False, flush: bool = True, **kwargs: Any) HistoryDatasetAssociation [source]¶
Copy hda, including annotation and tags, add to history and return the given HDA.
- class galaxy.managers.hdas.HDASerializer(app: StructuredApp)[source]¶
Bases:
DatasetAssociationSerializer
[HDAManager
],TaggableSerializerMixin
,AnnotatableSerializerMixin
- model_manager_class¶
alias of
HDAManager
- app: StructuredApp¶
- __init__(app: StructuredApp)[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.
- serialize(hda, keys, user=None, **context)[source]¶
Override to hide information to users not able to access.
- serialize_display_apps(item, key, trans=None, **context)[source]¶
Return dictionary containing new-style display app urls.
- class galaxy.managers.hdas.HDADeserializer(app: MinimalManagerApp)[source]¶
Bases:
DatasetAssociationDeserializer
,TaggableDeserializerMixin
,AnnotatableDeserializerMixin
Interface/service object for validating and deserializing dictionaries into histories.
- model_manager_class¶
alias of
HDAManager
- __init__(app: MinimalManagerApp)[source]¶
Set up deserializers and validator.
- add_deserializers()[source]¶
Register a map of attribute keys -> functions that will deserialize data into attributes to be assigned to the item.
- app: MinimalManagerApp¶
- class galaxy.managers.hdas.HDAFilterParser(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
DatasetAssociationFilterParser
,TaggableFilterMixin
,AnnotatableFilterMixin
- model_manager_class¶
alias of
HDAManager
- model_class¶
alias of
HistoryDatasetAssociation
- fn_filter_parsers: Dict[str, Any]¶
dictionary containing parsing data for functional filters - applied after a query is made
- app: MinimalManagerApp¶
galaxy.managers.hdcas module¶
Manager and Serializer for HDCAs.
HistoryDatasetCollectionAssociations (HDCAs) are datasets contained or created in a history.
- galaxy.managers.hdcas.stream_dataset_collection(dataset_collection_instance, upstream_mod_zip=False, upstream_gzip=False)[source]¶
- class galaxy.managers.hdcas.HDCAManager(app: MinimalManagerApp)[source]¶
Bases:
ModelManager
,AccessibleManagerMixin
,OwnableManagerMixin
,PurgableManagerMixin
,TaggableManagerMixin
,AnnotatableManagerMixin
Interface/service object for interacting with HDCAs.
- model_class¶
alias of
HistoryDatasetCollectionAssociation
- tag_assoc¶
- annotation_assoc¶
alias of
HistoryDatasetCollectionAssociationAnnotationAssociation
- __init__(app: MinimalManagerApp)[source]¶
Set up and initialize other managers needed by hdas.
- map_datasets(content, fn, *parents)[source]¶
Iterate over the datasets of a given collection, recursing into collections, and calling fn on each dataset.
Uses the same kwargs as contents above.
- app: BasicSharedApp¶
- class galaxy.managers.hdcas.DCESerializer(app: StructuredApp)[source]¶
Bases:
ModelSerializer
Serializer for DatasetCollectionElements.
- __init__(app: StructuredApp)[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.
- serializers: Dict[str, Serializer]¶
- model_manager_class: Type[T]¶
the class used to create this serializer’s generically accessible model_manager
- app: MinimalManagerApp¶
- class galaxy.managers.hdcas.DCSerializer(app: StructuredApp, dce_serializer=None)[source]¶
Bases:
ModelSerializer
Serializer for DatasetCollections.
- __init__(app: StructuredApp, dce_serializer=None)[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.
- serializers: Dict[str, Serializer]¶
- model_manager_class: Type[T]¶
the class used to create this serializer’s generically accessible model_manager
- app: MinimalManagerApp¶
- class galaxy.managers.hdcas.DCASerializer(app: StructuredApp, dce_serializer=None)[source]¶
Bases:
ModelSerializer
Base (abstract) Serializer class for HDCAs and LDCAs.
- app: StructuredApp¶
- __init__(app: StructuredApp, dce_serializer=None)[source]¶
Set up serializer map, any additional serializable keys, and views here.
- class galaxy.managers.hdcas.HDCASerializer(app: StructuredApp)[source]¶
Bases:
DCASerializer
,TaggableSerializerMixin
,AnnotatableSerializerMixin
Serializer for HistoryDatasetCollectionAssociations.
- __init__(app: StructuredApp)[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.
- app: StructuredApp¶
- serializers: Dict[str, Serializer]¶
- model_manager_class: Type[T]¶
the class used to create this serializer’s generically accessible model_manager
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: MinimalManagerApp, hda_manager: HDAManager, contents_manager: HistoryContentsManager, contents_filters: HistoryContentsFilters)[source]¶
Bases:
SharableModelManager
,PurgableManagerMixin
,SortableManager
alias of
HistoryUserShareAssociation
- tag_assoc¶
alias of
HistoryTagAssociation
- annotation_assoc¶
alias of
HistoryAnnotationAssociation
- rating_assoc¶
alias of
HistoryRatingAssociation
- __init__(app: MinimalManagerApp, hda_manager: HDAManager, contents_manager: HistoryContentsManager, contents_filters: HistoryContentsFilters) None [source]¶
- by_user(user: User, current_history: Optional[History] = None, **kwargs: Any) List[History] [source]¶
Get all the histories for a given user (allowing anon users’ theirs) ordered by update time.
- is_owner(item: Base, user: Optional[User], current_history: Optional[History] = None, **kwargs: Any) bool [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.
- parse_order_by(order_by_string, default=None)[source]¶
Return an ORM compatible order_by using the given string
- non_ready_jobs(history)[source]¶
Return the currently running job objects associated with this history.
Where running is defined as new, waiting, queued, running, resubmitted, and upload.
- get_ready_history_export_file_path(trans, jeha) str [source]¶
Serves the history export archive for use as a streaming response so the file doesn’t need to be loaded into memory.
- queue_history_export(trans, history, gzip=True, include_hidden=False, include_deleted=False, directory_uri=None, file_name=None)[source]¶
- get_sharing_extra_information(trans, item, users: Set[User], errors: Set[str], option: Optional[SharingOptions] = None) Optional[ShareWithExtra] [source]¶
Returns optional extra information about the datasets of the history that can be accessed by the users.
- class galaxy.managers.histories.HistoryExportManager(app: MinimalManagerApp, export_tracker: StoreExportTracker)[source]¶
Bases:
object
- export_object_type = 'history'¶
- __init__(app: MinimalManagerApp, export_tracker: StoreExportTracker)[source]¶
- get_task_exports(trans, history_id: int, limit: Optional[int] = None, offset: Optional[int] = None)[source]¶
Returns task-based exports associated with this history
- create_export_association(history_id: int) StoreExportAssociation [source]¶
- serialize(trans, history_id: int, jeha: JobExportHistoryArchive) dict [source]¶
- class galaxy.managers.histories.HistorySerializer(app: MinimalManagerApp, hda_manager: HDAManager, hda_serializer: HDASerializer, history_contents_serializer: HistoryContentsSerializer)[source]¶
Bases:
SharableModelSerializer
,PurgableSerializerMixin
Interface/service object for serializing histories into dictionaries.
- model_manager_class¶
alias of
HistoryManager
- __init__(app: MinimalManagerApp, hda_manager: HDAManager, hda_serializer: HDASerializer, history_contents_serializer: HistoryContentsSerializer)[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.
- serialize_state_ids(item, 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(item, 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(item, key, **context)[source]¶
Returns the history state based on the states of the HDAs it contains.
- serialize_contents_states(item, 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(item, 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: MinimalManagerApp)[source]¶
Bases:
SharableModelDeserializer
,PurgableDeserializerMixin
Interface/service object for validating and deserializing dictionaries into histories.
- model_manager_class¶
alias of
HistoryManager
- __init__(app: MinimalManagerApp)[source]¶
Set up deserializers and validator.
- add_deserializers()[source]¶
Register a map of attribute keys -> functions that will deserialize data into attributes to be assigned to the item.
- app: MinimalManagerApp¶
- class galaxy.managers.histories.HistoryFilters(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
SharableModelFilters
,PurgableFiltersMixin
- model_manager_class¶
alias of
HistoryManager
- fn_filter_parsers: Dict[str, Any]¶
dictionary containing parsing data for functional filters - applied after a query is made
- app: MinimalManagerApp¶
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: MinimalManagerApp)[source]¶
Bases:
SortableManager
- contained_class¶
alias of
HistoryDatasetAssociation
- contained_class_manager_class¶
alias of
HDAManager
- contained_class_type_name = 'dataset'¶
- subcontainer_class¶
alias of
HistoryDatasetCollectionAssociation
- subcontainer_class_manager_class¶
alias of
HDCAManager
- subcontainer_class_type_name = 'dataset_collection'¶
- common_columns = ('history_id', 'history_content_type', 'id', 'type_id', 'hid', 'extension', 'dataset_id', 'collection_id', 'name', 'state', 'size', 'deleted', 'purged', 'visible', 'create_time', 'update_time')¶
- default_order_by = 'hid'¶
- __init__(app: MinimalManagerApp)[source]¶
- 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.
- active_counts(history)[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.history_contents.HistoryContentsSerializer(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
ModelSerializer
,PurgableSerializerMixin
Interface/service object for serializing histories into dictionaries.
- model_manager_class¶
alias of
HistoryContentsManager
- __init__(app: MinimalManagerApp, **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.
- serialize_id_or_skip(item: Any, key: str, **context)[source]¶
Serialize id or skip if attribute with key is not present.
- serializers: Dict[str, Serializer]¶
- app: MinimalManagerApp¶
- class galaxy.managers.history_contents.HistoryContentsFilters(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
ModelFilterParser
,AnnotatableFilterMixin
,PurgableFiltersMixin
,GenomeFilterMixin
,TaggableFilterMixin
,ToolFilterMixin
- model_class¶
alias of
HistoryDatasetAssociation
- parse_query_filters_with_relations(query_filters: ValueFilterQueryParams, history_id)[source]¶
Parse query filters but consider case where related filter is included.
- fn_filter_parsers: Dict[str, Any]¶
dictionary containing parsing data for functional filters - applied after a query is made
- model_manager_class: Type[T]¶
the class used to create this serializer’s generically accessible model_manager
- app: MinimalManagerApp¶
galaxy.managers.interactivetool module¶
- class galaxy.managers.interactivetool.InteractiveToolSqlite(sqlite_filename, encode_id)[source]¶
Bases:
object
- save(key, key_type, token, host, port, info=None)[source]¶
Writeout a key, key_type, token, value store that is can be used for coordinating with external resources.
galaxy.managers.jobs module¶
- class galaxy.managers.jobs.JobManager(app: StructuredApp)[source]¶
Bases:
object
- __init__(app: StructuredApp)[source]¶
- index_query(trans, payload: JobIndexQueryPayload)[source]¶
- class galaxy.managers.jobs.JobSearch(sa_session: galaxy_scoped_session, hda_manager: HDAManager, dataset_collection_manager: DatasetCollectionManager, ldda_manager: LDDAManager, id_encoding_helper: IdEncodingHelper)[source]¶
Bases:
object
Search for jobs using tool inputs or other jobs
- __init__(sa_session: galaxy_scoped_session, hda_manager: HDAManager, dataset_collection_manager: DatasetCollectionManager, ldda_manager: LDDAManager, id_encoding_helper: IdEncodingHelper)[source]¶
- galaxy.managers.jobs.summarize_invocation_jobs(invocation_id, job_summaries, implicit_collection_job_summaries, invocation_state, invocation_step_states)[source]¶
- galaxy.managers.jobs.summarize_jobs_to_dict(sa_session, jobs_source)[source]¶
Produce a summary of jobs for job summary endpoints.
- Parameters
jobs_source (a Job or ImplicitCollectionJobs or None) – the object to summarize
- Return type
- Returns
dictionary containing job summary information
- galaxy.managers.jobs.summarize_job_metrics(trans, job)[source]¶
Produce a dict-ified version of job metrics ready for tabular rendering.
Precondition: the caller has verified the job is accessible to the user represented by the trans parameter.
- galaxy.managers.jobs.summarize_destination_params(trans, job)[source]¶
Produce a dict-ified version of job destination parameters ready for tabular rendering.
Precondition: the caller has verified the job is accessible to the user represented by the trans parameter.
galaxy.managers.lddas module¶
- class galaxy.managers.lddas.LDDAManager(app: MinimalManagerApp)[source]¶
Bases:
DatasetAssociationManager
A fairly sparse manager for LDDAs.
- model_class¶
alias of
LibraryDatasetDatasetAssociation
- __init__(app: MinimalManagerApp)[source]¶
Set up and initialize other managers needed by lddas.
- get(trans, id: int, check_accessible=True) LibraryDatasetDatasetAssociation [source]¶
- app: MinimalManagerApp¶
galaxy.managers.libraries module¶
Manager and Serializer for libraries.
- class galaxy.managers.libraries.LibraryManager[source]¶
Bases:
object
Interface/service object for interacting with libraries.
- get(trans, decoded_library_id: int, check_accessible: bool = True) Library [source]¶
Get the library from the DB.
- Parameters
- Returns
the requested library
- Return type
- create(trans, name: str, description: Optional[str] = '', synopsis: Optional[str] = '') Library [source]¶
Create a new library.
- update(trans, library: Library, name: Optional[str] = None, description: Optional[str] = None, synopsis: Optional[str] = None) Library [source]¶
Update the given library
- delete(trans, library: Library, undelete: Optional[bool] = False) Library [source]¶
Mark given library deleted/undeleted based on the flag.
- list(trans, deleted: Optional[bool] = False) Tuple[Query, Dict[str, Set]] [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
- secure(trans, library: Library, check_accessible: bool = True) Library [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
- check_accessible(trans, library: Library) Library [source]¶
Check whether the library is accessible to current user.
- get_library_dict(trans, library: Library, prefetched_ids: Optional[Dict[str, Set]] = None) dict [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: Library) dict [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
- get_access_roles(trans, library: Library) Set[Role] [source]¶
Load access roles for all library permissions
- get_modify_roles(trans, library: Library) Set[Role] [source]¶
Load modify roles for all library permissions
- get_manage_roles(trans, library: Library) Set[Role] [source]¶
Load manage roles for all library permissions
- get_add_roles(trans, library: Library) Set[Role] [source]¶
Load add roles for all library permissions
galaxy.managers.library_datasets module¶
Manager and Serializer for library datasets.
- class galaxy.managers.library_datasets.LibraryDatasetsManager(app: MinimalManagerApp)[source]¶
Bases:
DatasetAssociationManager
Interface/service object for interacting with library datasets.
- model_class¶
alias of
LibraryDatasetDatasetAssociation
- __init__(app: MinimalManagerApp)[source]¶
- app: MinimalManagerApp¶
- get(trans, decoded_library_dataset_id, check_accessible=True)[source]¶
Get the library dataset from the DB.
- Parameters
- Returns
the requested library dataset
- Return type
- update(trans, ld, payload)[source]¶
Update the given library dataset - the latest linked ldda. Updating older lddas (versions) is not allowed.
- Parameters
ld (LibraryDataset) – library dataset to change
payload (dict) – dictionary structure containing:: :param name: new ld’s name, must be longer than 0 :type name: str :param misc_info: new ld’s misc info :type misc_info: str :param file_ext: new ld’s extension, must exist in the Galaxy registry :type file_ext: str :param genome_build: new ld’s genome build :type genome_build: str :param tags: list of dataset tags :type tags: list
- Returns
the changed library dataset
- Return type
- secure(trans, ld, check_accessible=True, check_ownership=False)[source]¶
Check if library dataset is accessible to current user or the user is an admin.
- Parameters
ld (galaxy.model.LibraryDataset) – library dataset
check_accessible (bool) – flag whether to check that user can access library dataset
- Returns
the original library dataset
- Return type
- check_accessible(trans, ld)[source]¶
Check whether the current user has permissions to access library dataset.
- Parameters
ld (galaxy.model.LibraryDataset) – library dataset
- Returns
the original library dataset
- Return type
- Raises
ObjectNotFound
- check_modifiable(trans, ld)[source]¶
Check whether the current user has permissions to modify library dataset.
- Parameters
ld (galaxy.model.LibraryDataset) – library dataset
- Returns
the original library dataset
- Return type
- Raises
ObjectNotFound
galaxy.managers.licenses module¶
- class galaxy.managers.licenses.LicenseMetadataModel(*, licenseId: str, name: str, reference: str, referenceNumber: int, isDeprecatedLicenseId: bool, isOsiApproved: bool, seeAlso: List[HttpUrl], detailsUrl: HttpUrl, recommended: bool, url: HttpUrl, spdxUrl: HttpUrl)[source]¶
Bases:
BaseModel
- detailsUrl: HttpUrl¶
- url: HttpUrl¶
- spdxUrl: HttpUrl¶
galaxy.managers.markdown_parse module¶
Utilities for parsing “Galaxy Flavored Markdown”.
See markdown_util.py for loading objects and interacting with the rest of Galaxy. This file is meant to be relatively self contained and just used to “parse” and validate Galaxy Markdown. Keeping things isolated to allow re-use of these utilities in other projects (e.g. gxformat2).
galaxy.managers.markdown_util module¶
Utilities defining “Galaxy Flavored Markdown”.
This is an extension of markdown designed to allow rendering Galaxy object references.
The core “Galaxy Flavored Markdown” format should just reference objects by encoded IDs - but preprocessing should allow for instance workflow objects to be referenced relative to the workflow (inputs, outputs, steps, etc..) and potential history flavor would allow objects to be referenced by HID. This second idea is unimplemented, it is just an example of the general concept of context specific processing.
- galaxy.managers.markdown_util.internal_galaxy_markdown_to_pdf(trans, internal_galaxy_markdown: str, document_type: PdfDocumentType) bytes [source]¶
- galaxy.managers.markdown_util.ready_galaxy_markdown_for_export(trans, internal_galaxy_markdown)[source]¶
Fill in details needed to render Galaxy flavored markdown.
Take it from a minimal internal version to an externally render-able version with more details populated and actual IDs replaced with encoded IDs to render external links. Return expanded markdown and extra data useful for rendering custom container tags.
- galaxy.managers.markdown_util.ready_galaxy_markdown_for_import(trans, external_galaxy_markdown)[source]¶
Convert from encoded IDs to decoded numeric IDs for storing in the DB.
- galaxy.managers.markdown_util.resolve_invocation_markdown(trans, invocation, workflow_markdown)[source]¶
Resolve invocation objects to convert markdown to ‘internal’ representation.
Replace references to abstract workflow parts with actual galaxy object IDs corresponding to the actual executed workflow. For instance:
convert output=name -to- history_dataset_id=<id> | history_dataset_collection_id=<id> convert input=name -to- history_dataset_id=<id> | history_dataset_collection_id=<id> convert step=name -to- job_id=<id>
Also expand/convert workflow invocation specific container sections into actual Galaxy markdown - these containers include: invocation_inputs, invocation_outputs, invocation_workflow. Hopefully this list will be expanded to include invocation_qc.
galaxy.managers.metrics module¶
- class galaxy.managers.metrics.Metric(*, namespace: str, time: str, level: int, args: str)[source]¶
Bases:
BaseModel
- class galaxy.managers.metrics.CreateMetricsPayload(*, metrics: List[Metric] = [])[source]¶
Bases:
BaseModel
- class galaxy.managers.metrics.MetricsManager(app: MinimalManagerApp)[source]¶
Bases:
object
Interface/service object shared by controllers for interacting with metrics.
- __init__(app: MinimalManagerApp) None [source]¶
- debugging¶
set to true to send additional debugging info to the log
- create(trans, payload: CreateMetricsPayload)[source]¶
Record any metrics sent and return some status object.
Note
Anonymous users can post metrics
- Parameters
payload (dict) –
(optional) dictionary structure containing: * metrics: a list containing dictionaries of the form
namespace: label indicating the source of the metric time: isoformat datetime when the metric was recorded level: an integer representing the metric’s log level args: a json string containing an array of extra data
- Return type
- Returns
status object
galaxy.managers.model_stores module¶
- class galaxy.managers.model_stores.ModelStoreUserContext(app: MinimalManagerApp, user: User)[source]¶
Bases:
ProvidesUserContext
- __init__(app: MinimalManagerApp, user: User) None [source]¶
- property app¶
Provide access to the Galaxy
app
object.
- property url_builder¶
Provide access to Galaxy URLs (if available).
- Parameters
qualified (bool) – if True, the fully qualified URL is returned, else a relative URL is returned (default False).
- property user¶
Provide access to the user object.
- class galaxy.managers.model_stores.ModelStoreManager(app: MinimalManagerApp, history_manager: HistoryManager, export_tracker: StoreExportTracker, sa_session: galaxy_scoped_session, job_manager: JobManager, short_term_storage_monitor: ShortTermStorageMonitor, user_manager: UserManager)[source]¶
Bases:
object
- __init__(app: MinimalManagerApp, history_manager: HistoryManager, export_tracker: StoreExportTracker, sa_session: galaxy_scoped_session, job_manager: JobManager, short_term_storage_monitor: ShortTermStorageMonitor, user_manager: UserManager)[source]¶
- setup_history_export_job(request: SetupHistoryExportJob)[source]¶
- prepare_history_download(request: GenerateHistoryDownload)[source]¶
- prepare_history_content_download(request: GenerateHistoryContentDownload)[source]¶
- prepare_invocation_download(request: GenerateInvocationDownload)[source]¶
- write_invocation_to(request: WriteInvocationTo)[source]¶
- write_history_content_to(request: WriteHistoryContentTo)[source]¶
- write_history_to(request: WriteHistoryTo)[source]¶
- set_history_export_request_metadata(request: Union[WriteHistoryTo, GenerateHistoryDownload]) Optional[ExportObjectMetadata] [source]¶
- set_history_export_result_metadata(export_association_id: Optional[int], export_metadata: Optional[ExportObjectMetadata], success: bool, error: Optional[str] = None)[source]¶
- import_model_store(request: ImportModelStoreTaskRequest)[source]¶
- galaxy.managers.model_stores.create_objects_from_store(app: MinimalManagerApp, galaxy_user: Optional[User], payload, history: Optional[History] = None, for_library: bool = False) ObjectImportTracker [source]¶
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: MinimalManagerApp)[source]¶
Bases:
SharableModelManager
,UsesAnnotations
Provides operations for managing a Page.
alias of
PageUserShareAssociation
- tag_assoc¶
alias of
PageTagAssociation
- annotation_assoc¶
alias of
PageAnnotationAssociation
- rating_assoc¶
alias of
PageRatingAssociation
- __init__(app: MinimalManagerApp)[source]¶
- index_query(trans: ProvidesUserContext, payload: PageIndexQueryPayload) Tuple[List[Page], int] [source]¶
- create_page(trans, payload: CreatePagePayload)[source]¶
- class galaxy.managers.pages.PageSerializer(app: MinimalManagerApp)[source]¶
Bases:
SharableModelSerializer
Interface/service object for serializing pages into dictionaries.
- model_manager_class¶
alias of
PageManager
- __init__(app: MinimalManagerApp)[source]¶
Set up serializer map, any additional serializable keys, and views here.
- class galaxy.managers.pages.PageDeserializer(app: MinimalManagerApp)[source]¶
Bases:
SharableModelDeserializer
Interface/service object for validating and deserializing dictionaries into pages.
- model_manager_class¶
alias of
PageManager
- __init__(app: MinimalManagerApp)[source]¶
Set up deserializers and validator.
- add_deserializers()[source]¶
Register a map of attribute keys -> functions that will deserialize data into attributes to be assigned to the item.
- app: MinimalManagerApp¶
- deserializers: Dict[str, Deserializer]¶
- class galaxy.managers.pages.PageContentProcessor(trans, render_embed_html_fn: Callable)[source]¶
Bases:
HTMLParser
Processes page content to produce HTML that is suitable for display. For now, processor renders embedded objects.
- bare_ampersand = re.compile('&(?!#\\d+;|#x[0-9a-fA-F]+;|\\w+;)')¶
- elements_no_end_tag = {'area', 'base', 'basefont', 'br', 'col', 'command', 'embed', 'frame', 'hr', 'img', 'input', 'isindex', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'}¶
- __init__(trans, render_embed_html_fn: Callable)[source]¶
Initialize and reset this instance.
If convert_charrefs is True (the default), all character references are automatically converted to the corresponding Unicode characters.
- feed(data)[source]¶
Feed data to the parser.
Call this as often as you want, with as little or as much text as you want (may include ‘n’).
- handle_starttag(tag, attrs)[source]¶
Called for each start tag
attrs is a list of (attr, value) tuples, e.g. for <pre class=’screen’>, tag=’pre’, attrs=[(‘class’, ‘screen’)]
- galaxy.managers.pages.placeholderRenderForEdit(trans: ProvidesHistoryContext, item_class, item_id)[source]¶
- galaxy.managers.pages.placeholderRenderForSave(trans: ProvidesHistoryContext, item_class, item_id, encode=False)[source]¶
galaxy.managers.quotas module¶
Manager and Serializers for Quotas.
For more information about quotas: https://galaxyproject.org/admin/disk-quotas/
- class galaxy.managers.quotas.QuotaManager(app: StructuredApp)[source]¶
Bases:
object
Interface/service object to interact with Quotas.
- __init__(app: StructuredApp)[source]¶
- property sa_session¶
- property quota_agent: DatabaseQuotaAgent¶
galaxy.managers.ratable module¶
Mixins for Ratable model managers and serializers.
- class galaxy.managers.ratable.RatableManagerMixin[source]¶
Bases:
object
- rating_assoc: Type[ItemRatingAssociation]¶
- 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).
- permission_failed_error_class¶
alias of
RBACPermissionFailedException
- class galaxy.managers.rbac_secured.DatasetRBACPermission(app)[source]¶
Bases:
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
DatasetPermissions
- action_name = None¶
- exception galaxy.managers.rbac_secured.DatasetManagePermissionFailedException(err_msg=None, type='info', **extra_error_info)[source]¶
- class galaxy.managers.rbac_secured.ManageDatasetRBACPermission(app)[source]¶
Bases:
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]¶
- class galaxy.managers.rbac_secured.AccessDatasetRBACPermission(app)[source]¶
Bases:
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.remote_files module¶
- class galaxy.managers.remote_files.RemoteFilesManager(app: MinimalManagerApp)[source]¶
Bases:
object
Interface/service object for interacting with remote files.
- __init__(app: MinimalManagerApp)[source]¶
- index(user_ctx: ProvidesUserContext, target: str, format: Optional[RemoteFilesFormat], recursive: Optional[bool], disable: Optional[RemoteFilesDisableMode]) List[Dict[str, Any]] [source]¶
Returns a list of remote files available to the user.
- get_files_source_plugins(user_context: ProvidesUserContext) FilesSourcePluginList [source]¶
Display plugin information for each of the gxfiles:// URI targets available.
galaxy.managers.roles module¶
Manager and Serializer for Roles.
- class galaxy.managers.roles.RoleManager(app: BasicSharedApp)[source]¶
Bases:
ModelManager
[Role
]Business logic for roles.
- user_assoc¶
alias of
UserRoleAssociation
- group_assoc¶
alias of
GroupRoleAssociation
- get(trans: ProvidesUserContext, role_id: int) Role [source]¶
Method loads the role from the DB based on the given role id.
- Parameters
role_id (int) – id of the role to load from the DB
- Returns
the loaded Role object
- Return type
- Raises
InconsistentDatabase, RequestParameterInvalidException, InternalServerError
- list_displayable_roles(trans: ProvidesUserContext) List[Role] [source]¶
- create_role(trans: ProvidesUserContext, role_definition_model: RoleDefinitionModel) Role [source]¶
- app: BasicSharedApp¶
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.
- is_accessible(item: Query, user: User, **kwargs: Any) bool [source]¶
Return True if the item accessible to user.
- get_accessible(id: int, user: User, **kwargs: Any) Query [source]¶
Return the item with the given id if it’s accessible to user, otherwise raise an error.
- error_unless_accessible(item: Query, user, **kwargs)[source]¶
Raise an error if the item is NOT accessible to user, otherwise return the item.
- 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.
- is_owner(item: Base, user: Optional[User], **kwargs: Any) bool [source]¶
Return True if user owns the item.
- get_owned(id: int, user: Optional[User], **kwargs: Any) Any [source]¶
Return the item with the given id if owned by the user, otherwise raise an error.
- Raises
- error_unless_owner(item, user: Optional[User], **kwargs: Any)[source]¶
Raise an error if the item is NOT owned by user, otherwise return the item.
galaxy.managers.session module¶
- class galaxy.managers.session.GalaxySessionManager(model: SharedModelMapping)[source]¶
Bases:
object
Manages GalaxySession.
- __init__(model: SharedModelMapping)[source]¶
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.SharableModelDeserializer(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
ModelDeserializer
,TaggableDeserializerMixin
,AnnotatableDeserializerMixin
,RatableDeserializerMixin
- __init__(app: MinimalManagerApp, **kwargs)[source]¶
Set up deserializers and validator.
- add_deserializers()[source]¶
Register a map of attribute keys -> functions that will deserialize data into attributes to be assigned to the item.
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.
- app: MinimalManagerApp¶
- deserializers: Dict[str, Deserializer]¶
- model_manager_class: Type[T]¶
the class used to create this serializer’s generically accessible model_manager
- class galaxy.managers.sharable.SharableModelFilters(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
ModelFilterParser
,TaggableFilterMixin
,AnnotatableFilterMixin
,RatableFilterMixin
- fn_filter_parsers: Dict[str, Any]¶
dictionary containing parsing data for functional filters - applied after a query is made
- model_manager_class: Type[T]¶
the class used to create this serializer’s generically accessible model_manager
- app: MinimalManagerApp¶
- class galaxy.managers.sharable.SharableModelManager(app: MinimalManagerApp)[source]¶
Bases:
ModelManager
,OwnableManagerMixin
,AccessibleManagerMixin
,TaggableManagerMixin
,AnnotatableManagerMixin
,RatableManagerMixin
the model used for UserShareAssociations with this model
- SINGLE_CHAR_ABBR: Optional[str] = None¶
the single character abbreviation used in username_and_slug: e.g. ‘h’ for histories: u/user/h/slug
- __init__(app: MinimalManagerApp)[source]¶
- by_user(user: User, **kwargs: Any) List[Any] [source]¶
Return list for all items (of model_class type) associated with the given user.
- is_owner(item: Query, user: Optional[User], **kwargs: Any) bool [source]¶
Return true if this sharable belongs to user (or user is an admin).
- is_accessible(item: Query, user: Optional[User], **kwargs: Any) bool [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.
Delete a user share from the database.
Return a list of those models shared with a particular user.
- get_sharing_extra_information(trans, item, users: Set[User], errors: Set[str], option: Optional[SharingOptions] = None) Optional[ShareWithExtra] [source]¶
Returns optional extra information about the shareability of the given item.
This function should be overridden in the particular manager class that wants to provide the extra information, otherwise, it will be None by default.
- make_members_public(trans, item)[source]¶
Make potential elements of this item public.
This method must be overridden in managers that need to change permissions of internal elements contained associated with the given item.
- update_current_sharing_with_users(item, new_users_shared_with: Set[User], flush=True)[source]¶
Updates the currently list of users this item is shared with by adding new users and removing missing ones.
- class galaxy.managers.sharable.SharableModelSerializer(app, **kwargs)[source]¶
Bases:
ModelSerializer
,TaggableSerializerMixin
,AnnotatableSerializerMixin
,RatableSerializerMixin
- __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.
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.SharingOptions(value)[source]¶
-
Options for sharing resources that may have restricted access to all or part of their contents.
- make_public = 'make_public'¶
- no_changes = 'no_changes'¶
galaxy.managers.taggable module¶
Mixins for Taggable model managers and serializers.
- class galaxy.managers.taggable.TaggableManagerMixin[source]¶
Bases:
object
- tag_assoc: Type[ItemTagAssociation]¶
- tag_handler: GalaxyTagHandler¶
- class galaxy.managers.taggable.TaggableDeserializerMixin[source]¶
Bases:
object
- tag_handler: GalaxyTagHandler¶
- validate: ModelValidator¶
galaxy.managers.tags module¶
- class galaxy.managers.tags.TaggableItemClass(value)¶
Bases:
Enum
An enumeration.
- History = 'History'¶
- HistoryDatasetAssociation = 'HistoryDatasetAssociation'¶
- LibraryDatasetDatasetAssociation = 'LibraryDatasetDatasetAssociation'¶
- Page = 'Page'¶
- WorkflowStep = 'WorkflowStep'¶
- StoredWorkflow = 'StoredWorkflow'¶
- Visualization = 'Visualization'¶
- HistoryDatasetCollection = 'HistoryDatasetCollection'¶
- LibraryDatasetCollection = 'LibraryDatasetCollection'¶
- Tool = 'Tool'¶
- class galaxy.managers.tags.ItemTagsPayload(*, item_id: DecodedDatabaseIdField, item_class: TaggableItemClass, item_tags: Optional[TagCollection] = None)[source]¶
Bases:
Model
- item_id: DecodedDatabaseIdField¶
- item_class: TaggableItemClass¶
- item_tags: Optional[TagCollection]¶
- class galaxy.managers.tags.TagsManager[source]¶
Bases:
object
Interface/service object shared by controllers for interacting with tags.
- update(trans: ProvidesUserContext, payload: ItemTagsPayload) None [source]¶
Apply a new set of tags to an item; previous tags are deleted.
galaxy.managers.tool_data module¶
- class galaxy.managers.tool_data.ToolDataManager(app: StructuredApp)[source]¶
Bases:
object
Interface/service object for interacting with tool data.
- __init__(app: StructuredApp)[source]¶
- property data_tables: Dict[str, ToolDataTable]¶
- show_field(table_name: str, field_name: str) ToolDataField [source]¶
Get information about a partiular field in a tool data table
- class galaxy.managers.tool_data.ToolDataImportManager(app: MinimalManagerApp)[source]¶
Bases:
object
- __init__(app: MinimalManagerApp)[source]¶
- file_sources: ConfiguredFileSources¶
- tool_data_tables: ToolDataTableManager¶
- import_data_bundle_by_dataset(config, dataset: DatasetInstance, tool_data_file_path=None)[source]¶
galaxy.managers.tools module¶
- class galaxy.managers.tools.DynamicToolManager(app: BasicSharedApp)[source]¶
Bases:
ModelManager
Manages dynamic tools stored in Galaxy’s database.
- model_class¶
alias of
DynamicTool
- app: BasicSharedApp¶
galaxy.managers.users module¶
Manager and Serializer for Users.
- class galaxy.managers.users.UserManager(app: BasicSharedApp)[source]¶
Bases:
ModelManager
,PurgableManagerMixin
- __init__(app: BasicSharedApp)[source]¶
- register(trans, email=None, username=None, password=None, confirm=None, subscribe=False)[source]¶
Register a new user.
- is_admin(user: Optional[User], trans=None) bool [source]¶
Return True if this user is an admin (or session is authenticated as admin).
Do not pass trans to simply check if an existing user object is an admin user, pass trans when checking permissions.
- 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.
- tags_used(user, tag_models=None)[source]¶
Return a list of distinct ‘user_tname:user_value’ strings that the given user has used.
- change_password(trans, password=None, confirm=None, token=None, id=None, current=None)[source]¶
Allows to change a user password with a token.
- send_activation_email(trans, email, username)[source]¶
Send the verification email containing the activation link to the user’s email.
- send_reset_email(trans, payload, **kwd)[source]¶
Reset the user’s password. Send an email with token that allows a password change.
- app: BasicSharedApp¶
- class galaxy.managers.users.UserSerializer(app: MinimalManagerApp)[source]¶
Bases:
ModelSerializer
,PurgableSerializerMixin
- model_manager_class¶
alias of
UserManager
- __init__(app: MinimalManagerApp)[source]¶
Convert a User and associated data to a dictionary representation.
- add_serializers()[source]¶
Register a map of attribute keys -> serializing functions that will serialize the attribute.
- serializers: Dict[str, Serializer]¶
- app: MinimalManagerApp¶
- class galaxy.managers.users.UserDeserializer(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
ModelDeserializer
Service object for validating and deserializing dictionaries that update/alter users.
- model_manager_class¶
alias of
UserManager
- add_deserializers()[source]¶
Register a map of attribute keys -> functions that will deserialize data into attributes to be assigned to the item.
- app: MinimalManagerApp¶
- deserializers: Dict[str, Deserializer]¶
- class galaxy.managers.users.CurrentUserSerializer(app: MinimalManagerApp)[source]¶
Bases:
UserSerializer
- model_manager_class¶
alias of
UserManager
- serialize(user, keys, **kwargs)[source]¶
Override to return at least some usage info if user is anonymous.
- serializers: Dict[str, Serializer]¶
- app: MinimalManagerApp¶
- class galaxy.managers.users.AdminUserFilterParser(app: MinimalManagerApp, **kwargs)[source]¶
Bases:
ModelFilterParser
,PurgableFiltersMixin
- model_manager_class¶
alias of
UserManager
- fn_filter_parsers: Dict[str, Any]¶
dictionary containing parsing data for functional filters - applied after a query is made
- app: MinimalManagerApp¶
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: MinimalManagerApp)[source]¶
Bases:
SharableModelManager
Handle operations outside and between visualizations and other models.
- model_class¶
alias of
Visualization
alias of
VisualizationUserShareAssociation
- tag_assoc¶
alias of
VisualizationTagAssociation
- annotation_assoc¶
alias of
VisualizationAnnotationAssociation
- rating_assoc¶
alias of
VisualizationRatingAssociation
- app: BasicSharedApp¶
- tag_handler: GalaxyTagHandler¶
- class galaxy.managers.visualizations.VisualizationSerializer(app: MinimalManagerApp)[source]¶
Bases:
SharableModelSerializer
Interface/service object for serializing visualizations into dictionaries.
- model_manager_class¶
alias of
VisualizationManager
- __init__(app: MinimalManagerApp)[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.
- serializers: Dict[str, Serializer]¶
- app: MinimalManagerApp¶
- class galaxy.managers.visualizations.VisualizationDeserializer(app)[source]¶
Bases:
SharableModelDeserializer
Interface/service object for validating and deserializing dictionaries into visualizations.
- model_manager_class¶
alias of
VisualizationManager
- add_deserializers()[source]¶
Register a map of attribute keys -> functions that will deserialize data into attributes to be assigned to the item.
- app: MinimalManagerApp¶
- deserializers: Dict[str, Deserializer]¶
- tag_handler: GalaxyTagHandler¶
galaxy.managers.workflows module¶
- class galaxy.managers.workflows.WorkflowsManager(app: MinimalManagerApp)[source]¶
Bases:
SharableModelManager
,DeletableManagerMixin
Handle CRUD type operations related to workflows. More interesting stuff regarding workflow execution, step sorting, etc… can be found in the galaxy.workflow module.
- model_class¶
alias of
StoredWorkflow
alias of
StoredWorkflowUserShareAssociation
- __init__(app: MinimalManagerApp)[source]¶
- app: BasicSharedApp¶
- index_query(trans: ProvidesUserContext, payload: WorkflowIndexQueryPayload, include_total_count: bool = False) Tuple[Query, Optional[int]] [source]¶
- get_stored_workflow(trans, workflow_id, by_stored_id=True) StoredWorkflow [source]¶
Use a supplied ID (UUID or encoded stored workflow ID) to find a workflow.
- get_stored_accessible_workflow(trans, workflow_id, by_stored_id=True)[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.
- check_security(trans, has_workflow, check_ownership=True, check_accessible=True)[source]¶
check accessibility or ownership of workflows, storedworkflows, and workflowinvocations. Throw an exception or returns True if user has needed level of access.
- get_invocation(trans, decoded_invocation_id, eager=False) WorkflowInvocation [source]¶
- build_invocations_query(trans: ProvidesUserContext, stored_workflow_id=None, history_id=None, job_id=None, user_id=None, include_terminal=True, limit=None, offset=None, sort_by=None, sort_desc=None) Tuple[Query, int] [source]¶
Get invocations owned by the current user.
- tag_assoc: Type[model.ItemTagAssociation]¶
- tag_handler: GalaxyTagHandler¶
- rating_assoc: Type[ItemRatingAssociation]¶
- class galaxy.managers.workflows.CreatedWorkflow(stored_workflow, workflow, missing_tools)[source]¶
Bases:
tuple
- property stored_workflow¶
Alias for field number 0
- property workflow¶
Alias for field number 1
- property missing_tools¶
Alias for field number 2
- class galaxy.managers.workflows.WorkflowSerializer(app: MinimalManagerApp)[source]¶
Bases:
SharableModelSerializer
Interface/service object for serializing stored workflows into dictionaries.
These are used for simple workflow operations - much more detailed serialization operations that allow recovering the workflow in its entirity or rendering it in a workflow editor are available inside the WorkflowContentsManager.
- model_manager_class¶
alias of
WorkflowsManager
- __init__(app: MinimalManagerApp)[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.
- serializers: Dict[str, Serializer]¶
- app: MinimalManagerApp¶
- class galaxy.managers.workflows.WorkflowContentsManager(app: MinimalManagerApp)[source]¶
Bases:
UsesAnnotations
- __init__(app: MinimalManagerApp)[source]¶
- normalize_workflow_format(trans, as_dict)[source]¶
Process incoming workflow descriptions for consumption by other methods.
Currently this mostly means converting format 2 workflows into standard Galaxy workflow JSON for consumption for the rest of this module. In the future we will want to be a lot more precise about this - preserve the original description along side the data model and apply updates in a way that largely preserves YAML structure so workflows can be extracted.
- build_workflow_from_raw_description(trans, raw_workflow_description, workflow_create_options, source=None, add_to_menu=False, hidden=False, is_subworkflow=False) CreatedWorkflow [source]¶
- update_workflow_from_raw_description(trans, stored_workflow, raw_workflow_description, workflow_update_options)[source]¶
- workflow_to_dict(trans, stored, style='export', version=None, history=None)[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 its best to preserve the backward compatibility of the ‘export’ style - 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’.
- static get_step_map_over(current_step, steps)[source]¶
Given a tool step and its input steps guess that maximum level of mapping over. All data outputs of a step need to be mapped over to this level.
- class galaxy.managers.workflows.RefactorRequest(*, actions: List[Action], dry_run: bool = False, style: str = 'export')[source]¶
Bases:
RefactorActions
- class galaxy.managers.workflows.RefactorResponse(*, action_executions: List[RefactorActionExecution], workflow: dict, dry_run: bool)[source]¶
Bases:
BaseModel
- action_executions: List[RefactorActionExecution]¶
- class Config[source]¶
Bases:
object
- json_dumps(**kwargs)¶
This is a wrapper around dumps that encodes Infinity and NaN values. It’s a fairly rare case (which will be low in request volume). Basically, we tell json.dumps to blow up if it encounters Infinity/NaN, or Decimal values and we ‘fix’ it before re-encoding.
- class galaxy.managers.workflows.WorkflowStateResolutionOptions(*, fill_defaults: bool = False, from_tool_form: bool = False, exact_tools: bool = True)[source]¶
Bases:
BaseModel
- class galaxy.managers.workflows.WorkflowUpdateOptions(*, fill_defaults: bool = False, from_tool_form: bool = False, exact_tools: bool = True, update_stored_workflow_attributes: bool = True, allow_missing_tools: bool = False, dry_run: bool = False)[source]¶
- class galaxy.managers.workflows.WorkflowCreateOptions(*, fill_defaults: bool = False, from_tool_form: bool = False, exact_tools: bool = True, import_tools: bool = False, publish: bool = False, importable: Optional[bool] = None, install_repository_dependencies: bool = False, install_resolver_dependencies: bool = False, install_tool_dependencies: bool = False, new_tool_panel_section_label: str = '', tool_panel_section_id: str = '', tool_panel_section_mapping: Dict = {}, shed_tool_conf: Optional[str] = None, archive_source: Optional[str] = '', trs_tool_id: str = '', trs_version_id: str = '', trs_server: str = '', trs_url: str = '')[source]¶
Bases:
WorkflowStateResolutionOptions
- property is_importable¶
- property install_options¶
- exception galaxy.managers.workflows.MissingToolsException(workflow, errors)[source]¶
Bases:
MessageException