mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge branch 'dev' into remove_unused_workflow_endpoint
This commit is contained in:
@@ -1,177 +0,0 @@
|
||||
client/galaxy/style/source_material/circle.py
|
||||
config/
|
||||
contrib/
|
||||
cron/
|
||||
doc/parse_gx_xsd.py
|
||||
lib/galaxy/actions/
|
||||
lib/galaxy/auth/
|
||||
lib/galaxy/config.py
|
||||
lib/galaxy/containers/
|
||||
lib/galaxy/dataset_collections/
|
||||
lib/galaxy/datatypes/
|
||||
lib/galaxy/dependencies/
|
||||
lib/galaxy/eggs/
|
||||
lib/galaxy/exceptions/
|
||||
lib/galaxy/external_services/__init__.py
|
||||
lib/galaxy/external_services/parameters.py
|
||||
lib/galaxy/external_services/result_handlers/basic.py
|
||||
lib/galaxy/external_services/result_handlers/__init__.py
|
||||
lib/galaxy/forms/__init__.py
|
||||
lib/galaxy/jobs/actions/
|
||||
lib/galaxy/jobs/command_factory.py
|
||||
lib/galaxy/jobs/datasets.py
|
||||
lib/galaxy/jobs/deferred/
|
||||
lib/galaxy/jobs/error_level.py
|
||||
lib/galaxy/jobs/handler.py
|
||||
lib/galaxy/jobs/__init__.py
|
||||
lib/galaxy/jobs/manager.py
|
||||
lib/galaxy/jobs/metrics/
|
||||
lib/galaxy/jobs/output_checker.py
|
||||
lib/galaxy/jobs/rules/
|
||||
lib/galaxy/jobs/runners/
|
||||
lib/galaxy/jobs/splitters/basic.py
|
||||
lib/galaxy/jobs/splitters/__init__.py
|
||||
lib/galaxy/jobs/stock_rules.py
|
||||
lib/galaxy/jobs/transfer_manager.py
|
||||
lib/galaxy/main.py
|
||||
lib/galaxy/managers/annotatable.py
|
||||
lib/galaxy/managers/api_keys.py
|
||||
lib/galaxy/managers/base.py
|
||||
lib/galaxy/managers/collections.py
|
||||
lib/galaxy/managers/collections_util.py
|
||||
lib/galaxy/managers/context.py
|
||||
lib/galaxy/managers/deletable.py
|
||||
lib/galaxy/managers/__init__.py
|
||||
lib/galaxy/managers/jobs.py
|
||||
lib/galaxy/managers/lddas.py
|
||||
lib/galaxy/managers/libraries.py
|
||||
lib/galaxy/managers/secured.py
|
||||
lib/galaxy/managers/taggable.py
|
||||
lib/galaxy/model/
|
||||
lib/galaxy/objectstore/pulsar.py
|
||||
lib/galaxy/objectstore/s3_multipart_upload.py
|
||||
lib/galaxy/objectstore/s3.py
|
||||
lib/galaxy/openid/__init__.py
|
||||
lib/galaxy/quota/
|
||||
lib/galaxy/sample_tracking/
|
||||
lib/galaxy/security/
|
||||
lib/galaxy/tags/
|
||||
lib/galaxy/tools/
|
||||
lib/galaxy/util/
|
||||
lib/galaxy/version.py
|
||||
lib/galaxy/visualization/data_providers/basic.py
|
||||
lib/galaxy/visualization/data_providers/cigar.py
|
||||
lib/galaxy/visualization/data_providers/genome.py
|
||||
lib/galaxy/visualization/data_providers/__init__.py
|
||||
lib/galaxy/visualization/data_providers/phyloviz/baseparser.py
|
||||
lib/galaxy/visualization/genome/
|
||||
lib/galaxy/visualization/genomes.py
|
||||
lib/galaxy/visualization/__init__.py
|
||||
lib/galaxy/visualization/plugins/__init__.py
|
||||
lib/galaxy/visualization/plugins/plugin.py
|
||||
lib/galaxy/visualization/plugins/utils.py
|
||||
lib/galaxy/visualization/tracks/
|
||||
lib/galaxy/web/base/
|
||||
lib/galaxy/web/buildapp.py
|
||||
lib/galaxy/web/formatting.py
|
||||
lib/galaxy/web/form_builder.py
|
||||
lib/galaxy/web/framework/base.py
|
||||
lib/galaxy/web/framework/decorators.py
|
||||
lib/galaxy/web/framework/helpers/grids.py
|
||||
lib/galaxy/web/framework/__init__.py
|
||||
lib/galaxy/web/framework/middleware/error.py
|
||||
lib/galaxy/web/framework/middleware/__init__.py
|
||||
lib/galaxy/web/framework/middleware/request_id.py
|
||||
lib/galaxy/web/framework/middleware/sentry.py
|
||||
lib/galaxy/web/framework/middleware/static.py
|
||||
lib/galaxy/web/framework/middleware/statsd.py
|
||||
lib/galaxy/web/framework/middleware/translogger.py
|
||||
lib/galaxy/web/framework/middleware/xforwardedhost.py
|
||||
lib/galaxy/web/framework/webapp.py
|
||||
lib/galaxy/web/__init__.py
|
||||
lib/galaxy/web/params.py
|
||||
lib/galaxy/web/stack/
|
||||
lib/galaxy/webapps/galaxy/api/authenticate.py
|
||||
lib/galaxy/webapps/galaxy/api/forms.py
|
||||
lib/galaxy/webapps/galaxy/api/genomes.py
|
||||
lib/galaxy/webapps/galaxy/api/group_roles.py
|
||||
lib/galaxy/webapps/galaxy/api/group_users.py
|
||||
lib/galaxy/webapps/galaxy/api/groups.py
|
||||
lib/galaxy/webapps/galaxy/api/histories.py
|
||||
lib/galaxy/webapps/galaxy/api/__init__.py
|
||||
lib/galaxy/webapps/galaxy/api/jobs.py
|
||||
lib/galaxy/webapps/galaxy/api/library_contents.py
|
||||
lib/galaxy/webapps/galaxy/api/library_datasets.py
|
||||
lib/galaxy/webapps/galaxy/api/requests.py
|
||||
lib/galaxy/webapps/galaxy/api/request_types.py
|
||||
lib/galaxy/webapps/galaxy/api/roles.py
|
||||
lib/galaxy/webapps/galaxy/api/samples.py
|
||||
lib/galaxy/webapps/galaxy/api/tool_data.py
|
||||
lib/galaxy/webapps/galaxy/api/tools.py
|
||||
lib/galaxy/webapps/galaxy/api/tours.py
|
||||
lib/galaxy/webapps/galaxy/api/users.py
|
||||
lib/galaxy/webapps/galaxy/api/workflows.py
|
||||
lib/galaxy/webapps/galaxy/buildapp.py
|
||||
lib/galaxy/webapps/galaxy/config_watchers.py
|
||||
lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
|
||||
lib/galaxy/webapps/galaxy/controllers/async.py
|
||||
lib/galaxy/webapps/galaxy/controllers/data_manager.py
|
||||
lib/galaxy/webapps/galaxy/controllers/dataset.py
|
||||
lib/galaxy/webapps/galaxy/controllers/error.py
|
||||
lib/galaxy/webapps/galaxy/controllers/external_services.py
|
||||
lib/galaxy/webapps/galaxy/controllers/forms.py
|
||||
lib/galaxy/webapps/galaxy/controllers/history.py
|
||||
lib/galaxy/webapps/galaxy/controllers/__init__.py
|
||||
lib/galaxy/webapps/galaxy/controllers/library_common.py
|
||||
lib/galaxy/webapps/galaxy/controllers/mobile.py
|
||||
lib/galaxy/webapps/galaxy/controllers/page.py
|
||||
lib/galaxy/webapps/galaxy/controllers/requests_admin.py
|
||||
lib/galaxy/webapps/galaxy/controllers/requests_common.py
|
||||
lib/galaxy/webapps/galaxy/controllers/requests.py
|
||||
lib/galaxy/webapps/galaxy/controllers/request_type.py
|
||||
lib/galaxy/webapps/galaxy/controllers/root.py
|
||||
lib/galaxy/webapps/galaxy/controllers/search.py
|
||||
lib/galaxy/webapps/galaxy/controllers/tool_runner.py
|
||||
lib/galaxy/webapps/galaxy/controllers/userskeys.py
|
||||
lib/galaxy/webapps/galaxy/__init__.py
|
||||
lib/galaxy/webapps/__init__.py
|
||||
lib/galaxy/webapps/reports/buildapp.py
|
||||
lib/galaxy/webapps/reports/config.py
|
||||
lib/galaxy/webapps/reports/controllers/__init__.py
|
||||
lib/galaxy/webapps/reports/controllers/query.py
|
||||
lib/galaxy/webapps/reports/controllers/system.py
|
||||
lib/galaxy/webapps/reports/controllers/tools.py
|
||||
lib/galaxy/webapps/reports/__init__.py
|
||||
lib/galaxy/webapps/tool_shed/api/__init__.py
|
||||
lib/galaxy/webapps/tool_shed/buildapp.py
|
||||
lib/galaxy/webapps/tool_shed/config.py
|
||||
lib/galaxy/webapps/tool_shed/controllers/groups.py
|
||||
lib/galaxy/webapps/tool_shed/controllers/__init__.py
|
||||
lib/galaxy/webapps/tool_shed/controllers/repository.py
|
||||
lib/galaxy/webapps/tool_shed/controllers/user.py
|
||||
lib/galaxy/webapps/tool_shed/framework/__init__.py
|
||||
lib/galaxy/webapps/tool_shed/framework/middleware/__init__.py
|
||||
lib/galaxy/webapps/tool_shed/framework/middleware/remoteuser.py
|
||||
lib/galaxy/webapps/tool_shed/__init__.py
|
||||
lib/galaxy/webapps/tool_shed/model/__init__.py
|
||||
lib/galaxy/webapps/tool_shed/model/mapping.py
|
||||
lib/galaxy/webapps/tool_shed/model/migrate/
|
||||
lib/galaxy/webapps/tool_shed/search/__init__.py
|
||||
lib/galaxy/webapps/tool_shed/search/repo_search.py
|
||||
lib/galaxy/webapps/tool_shed/security/
|
||||
lib/galaxy/webapps/tool_shed/util/__init__.py
|
||||
lib/galaxy/webapps/tool_shed/util/ratings_util.py
|
||||
lib/galaxy/webapps/tool_shed/util/shed_statistics.py
|
||||
lib/galaxy/webapps/util.py
|
||||
lib/galaxy/webhooks/
|
||||
lib/galaxy/work/
|
||||
lib/galaxy/workflow/
|
||||
lib/galaxy_ext/
|
||||
lib/log_tempfile.py
|
||||
lib/mimeparse.py
|
||||
lib/psyco_full.py
|
||||
lib/tool_shed/
|
||||
scripts/
|
||||
test/
|
||||
tool_list.py
|
||||
tools/
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
flake8 `paste .ci/flake8_lint_include_list.txt`
|
||||
@@ -9,15 +9,12 @@ env:
|
||||
- TOX_ENV=py27-unit
|
||||
- TOX_ENV=qunit
|
||||
- TOX_ENV=first_startup
|
||||
- TOX_ENV=py27-lint-imports
|
||||
- TOX_ENV=py27-lint-imports-include-list
|
||||
- TOX_ENV=validate-test-tools
|
||||
- TOX_ENV=py27-lint-docstring-include-list
|
||||
- TOX_ENV=check-python-dependencies
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- env: TOX_ENV=py27-lint-imports
|
||||
- env: TOX_ENV=check-python-dependencies
|
||||
|
||||
addons:
|
||||
|
||||
@@ -129,9 +129,10 @@ var DatasetDCE = DATASET_MODEL.DatasetAssociation.extend(
|
||||
),
|
||||
|
||||
_downloadQueryParameters: function() {
|
||||
return `?to_ext=${this.get("file_ext")}&hdca_id=${this.get(
|
||||
"parent_hdca_id"
|
||||
)}&element_identifier=${this.get("element_identifier")}`;
|
||||
var fileExt = this.get("file_ext");
|
||||
var elementIdentifier = this.get("element_identifier");
|
||||
var parentHdcaId = this.get("parent_hdca_id");
|
||||
return `?to_ext=${fileExt}&hdca_id=${parentHdcaId}&element_identifier=${elementIdentifier}`;
|
||||
},
|
||||
|
||||
// because all objects have constructors (as this hashmap would even if this next line wasn't present)
|
||||
@@ -152,7 +153,7 @@ var DatasetDCE = DATASET_MODEL.DatasetAssociation.extend(
|
||||
/** String representation. */
|
||||
toString: function() {
|
||||
var objStr = this.get("element_identifier");
|
||||
return ["DatasetDCE(", objStr, ")"].join("");
|
||||
return `DatasetDCE({objStr})`;
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
@@ -42,7 +42,6 @@ var CollectionView = _super.extend(
|
||||
/** foldout or drilldown */
|
||||
this.foldoutStyle = attributes.foldoutStyle || "foldout";
|
||||
this.downloadUrl = `${Galaxy.root}api/dataset_collections/${this.model.attributes.id}/download`;
|
||||
console.log(this);
|
||||
},
|
||||
|
||||
_queueNewRender: function($newRender, speed) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import DATASET_LI from "mvc/dataset/dataset-li";
|
||||
import BASE_MVC from "mvc/base-mvc";
|
||||
import HISTORY_ITEM_LI from "mvc/history/history-item-li";
|
||||
import _l from "utils/localization";
|
||||
|
||||
//==============================================================================
|
||||
@@ -29,28 +30,17 @@ var HDAListItemView = _super.extend(
|
||||
// ............................................................................ TEMPLATES
|
||||
/** underscore templates */
|
||||
HDAListItemView.prototype.templates = (() => {
|
||||
var titleBarTemplate = BASE_MVC.wrapTemplate(
|
||||
[
|
||||
// adding the hid display to the title
|
||||
'<div class="title-bar clear" tabindex="0">',
|
||||
'<span class="state-icon"></span>',
|
||||
'<div class="title">',
|
||||
//TODO: remove whitespace and use margin-right
|
||||
'<span class="hid"><%- dataset.hid %></span> ',
|
||||
'<span class="name"><%- dataset.name %></span>',
|
||||
"</div>",
|
||||
"</br>",
|
||||
'<span class="nametags">',
|
||||
"<% _.each(_.sortBy(_.uniq(dataset.tags), function(x) { return x }), function(tag){ %>",
|
||||
'<% if (tag.indexOf("name:") == 0){ %>',
|
||||
'<span class="label label-info"><%- tag.slice(5) %></span>',
|
||||
"<% } %>",
|
||||
"<% }); %>",
|
||||
"</span>",
|
||||
"</div>"
|
||||
],
|
||||
"dataset"
|
||||
);
|
||||
var titleBarTemplate = dataset => `
|
||||
<div class="title-bar clear" tabindex="0">
|
||||
<span class="state-icon"></span>
|
||||
<div class="title">
|
||||
<span class="hid">${dataset.hid}</span>
|
||||
<span class="name">${_.escape(dataset.name)}</span>
|
||||
</div>
|
||||
</br>
|
||||
${HISTORY_ITEM_LI.nametagTemplate(dataset)}
|
||||
</div>
|
||||
`;
|
||||
|
||||
var warnings = _.extend({}, _super.prototype.templates.warnings, {
|
||||
hidden: BASE_MVC.wrapTemplate(
|
||||
|
||||
@@ -14,7 +14,8 @@ var HDCAListItemEdit = _super.extend(
|
||||
|
||||
/** Override to return editable versions of the collection panels */
|
||||
_getFoldoutPanelClass: function() {
|
||||
switch (this.model.get("collection_type")) {
|
||||
var collectionType = this.model.get("collection_type");
|
||||
switch (collectionType) {
|
||||
case "list":
|
||||
return DC_VIEW_EDIT.ListCollectionViewEdit;
|
||||
case "paired":
|
||||
@@ -24,7 +25,7 @@ var HDCAListItemEdit = _super.extend(
|
||||
case "list:list":
|
||||
return DC_VIEW_EDIT.ListOfListsCollectionViewEdit;
|
||||
}
|
||||
throw new TypeError(`Uknown collection_type: ${this.model.get("collection_type")}`);
|
||||
throw new TypeError(`Unknown collection_type: ${collectionType}`);
|
||||
},
|
||||
|
||||
// ......................................................................... delete
|
||||
@@ -37,17 +38,16 @@ var HDCAListItemEdit = _super.extend(
|
||||
|
||||
/** Render icon-button to delete this collection. */
|
||||
_renderDeleteButton: function() {
|
||||
var self = this;
|
||||
var deleted = this.model.get("deleted");
|
||||
return faIconButton({
|
||||
title: deleted ? _l("Dataset collection is already deleted") : _l("Delete"),
|
||||
classes: "delete-btn",
|
||||
faIcon: "fa-times",
|
||||
disabled: deleted,
|
||||
onclick: function() {
|
||||
onclick: () => {
|
||||
// ...bler... tooltips being left behind in DOM (hover out never called on deletion)
|
||||
self.$el.find(".icon-btn.delete-btn").trigger("mouseout");
|
||||
self.model["delete"]();
|
||||
this.$el.find(".icon-btn.delete-btn").trigger("mouseout");
|
||||
this.model["delete"]();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
@@ -2,6 +2,7 @@ import STATES from "mvc/dataset/states";
|
||||
import DC_LI from "mvc/collection/collection-li";
|
||||
import DC_VIEW from "mvc/collection/collection-view";
|
||||
import BASE_MVC from "mvc/base-mvc";
|
||||
import HISTORY_ITEM_LI from "mvc/history/history-item-li";
|
||||
import _l from "utils/localization";
|
||||
|
||||
//==============================================================================
|
||||
@@ -24,7 +25,8 @@ var HDCAListItemView = _super.extend(
|
||||
|
||||
/** Override to provide the proper collections panels as the foldout */
|
||||
_getFoldoutPanelClass: function() {
|
||||
switch (this.model.get("collection_type")) {
|
||||
var collectionType = this.model.get("collection_type");
|
||||
switch (collectionType) {
|
||||
case "list":
|
||||
return DC_VIEW.ListCollectionView;
|
||||
case "paired":
|
||||
@@ -34,7 +36,7 @@ var HDCAListItemView = _super.extend(
|
||||
case "list:list":
|
||||
return DC_VIEW.ListOfListsCollectionView;
|
||||
}
|
||||
throw new TypeError(`Uknown collection_type: ${this.model.get("collection_type")}`);
|
||||
throw new TypeError(`Unknown collection_type: ${collectionType}`);
|
||||
},
|
||||
|
||||
/** In this override, add the state as a class for use with state-based CSS */
|
||||
@@ -60,42 +62,25 @@ var HDCAListItemView = _super.extend(
|
||||
/** underscore templates */
|
||||
HDCAListItemView.prototype.templates = (() => {
|
||||
var warnings = _.extend({}, _super.prototype.templates.warnings, {
|
||||
hidden: BASE_MVC.wrapTemplate(
|
||||
[
|
||||
// add a warning when hidden
|
||||
"<% if( !collection.visible ){ %>",
|
||||
'<div class="hidden-msg warningmessagesmall">',
|
||||
_l("This collection has been hidden"),
|
||||
"</div>",
|
||||
"<% } %>"
|
||||
],
|
||||
"collection"
|
||||
)
|
||||
hidden: collection => {
|
||||
collection.visible
|
||||
? ""
|
||||
: `<div class="hidden-msg warningmessagesmall">${_l("This collection has been hidden")}</div>`;
|
||||
}
|
||||
});
|
||||
|
||||
// could steal this from hda-base (or use mixed content)
|
||||
var titleBarTemplate = BASE_MVC.wrapTemplate(
|
||||
[
|
||||
// adding the hid display to the title
|
||||
'<div class="title-bar clear" tabindex="0">',
|
||||
'<span class="state-icon"></span>',
|
||||
'<div class="title">',
|
||||
//TODO: remove whitespace and use margin-right
|
||||
'<span class="hid"><%- collection.hid %></span> ',
|
||||
'<span class="name"><%- collection.name %></span>',
|
||||
"</div>",
|
||||
'<div class="subtitle"></div>',
|
||||
'<span class="nametags">',
|
||||
"<% _.each(_.sortBy(_.uniq(collection.tags), function(x) { return x }), function(tag){ %>",
|
||||
'<% if (tag.indexOf("name:") == 0){ %>',
|
||||
'<span class="label label-info"><%- tag.slice(5) %></span>',
|
||||
"<% } %>",
|
||||
"<% }); %>",
|
||||
"</span>",
|
||||
"</div>"
|
||||
],
|
||||
"collection"
|
||||
);
|
||||
var titleBarTemplate = collection => `
|
||||
<div class="title-bar clear" tabindex="0">
|
||||
<span class="state-icon"></span>
|
||||
<div class="title">
|
||||
<span class="hid">${collection.hid}</span>
|
||||
<span class="name">${_.escape(collection.name)}</span>
|
||||
</div>
|
||||
<div class="subtitle"></div>
|
||||
${HISTORY_ITEM_LI.nametagTemplate(collection)}
|
||||
</div>
|
||||
`;
|
||||
|
||||
return _.extend({}, _super.prototype.templates, {
|
||||
warnings: warnings,
|
||||
|
||||
@@ -107,7 +107,7 @@ var HistoryListOfListsDatasetCollection = ListOfListsDC.extend(hcontentMixin).ex
|
||||
|
||||
/** String representation. */
|
||||
toString: function() {
|
||||
return ["HistoryListOfListsDatasetCollection(", this.get("name"), ")"].join("");
|
||||
return `HistoryListOfListsDatasetCollection(${this.get("name")})`;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -54,9 +54,10 @@ var HistoryContentMixin = {
|
||||
|
||||
/** full url spec. for this content */
|
||||
url: function() {
|
||||
var url = `${this.urlRoot + this.get("history_id")}/contents/${this.get("history_content_type")}s/${this.get(
|
||||
"id"
|
||||
)}`;
|
||||
var historyContentType = this.get("history_content_type");
|
||||
var historyId = this.get("history_id");
|
||||
var historyContentId = this.get("id");
|
||||
var url = `${this.urlRoot}${historyId}/contents/${historyContentType}s/${historyContentId}`;
|
||||
return url;
|
||||
},
|
||||
|
||||
|
||||
@@ -267,7 +267,6 @@ var HistoryContents = _super.extend(BASE_MVC.LoggableMixin).extend({
|
||||
/** fetch all the deleted==true contents of this collection */
|
||||
fetchDeleted: function(options) {
|
||||
options = options || {};
|
||||
var self = this;
|
||||
options.filters = _.extend(options.filters, {
|
||||
// all deleted, purged or not
|
||||
deleted: true,
|
||||
@@ -275,9 +274,9 @@ var HistoryContents = _super.extend(BASE_MVC.LoggableMixin).extend({
|
||||
});
|
||||
options.remove = false;
|
||||
|
||||
self.trigger("fetching-deleted", self);
|
||||
return self.fetch(options).always(() => {
|
||||
self.trigger("fetching-deleted-done", self);
|
||||
this.trigger("fetching-deleted", this);
|
||||
return this.fetch(options).always(() => {
|
||||
this.trigger("fetching-deleted-done", this);
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
function _labelIfName(tag) {
|
||||
if (tag.indexOf("name:") == 0) {
|
||||
return `<span class="label label-info">${_.escape(tag.slice(5))}</span>`;
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
function nametagTemplate(historyItem) {
|
||||
return `<span class="nametags">${_.sortBy(_.uniq(historyItem.tags))
|
||||
.map(_labelIfName)
|
||||
.join("")}</span>`;
|
||||
}
|
||||
|
||||
export default {
|
||||
nametagTemplate: nametagTemplate
|
||||
};
|
||||
@@ -171,24 +171,23 @@ var History = Backbone.Model.extend(BASE_MVC.LoggableMixin).extend(
|
||||
refresh: function(options) {
|
||||
// console.log( this + '.refresh' );
|
||||
options = options || {};
|
||||
var self = this;
|
||||
|
||||
// note if there was no previous update time, all summary contents will be fetched
|
||||
var lastUpdateTime = self.lastUpdateTime;
|
||||
var lastUpdateTime = this.lastUpdateTime;
|
||||
// if we don't flip this, then a fully-fetched list will not be re-checked via fetch
|
||||
this.contents.allFetched = false;
|
||||
var fetchFn =
|
||||
self.contents.currentPage !== 0
|
||||
? () => self.contents.fetchPage(self.contents.currentPage)
|
||||
: () => self.contents.fetchUpdated(lastUpdateTime);
|
||||
this.contents.currentPage !== 0
|
||||
? () => this.contents.fetchPage(this.contents.currentPage)
|
||||
: () => this.contents.fetchUpdated(lastUpdateTime);
|
||||
// note: if there was no previous update time, all summary contents will be fetched
|
||||
return fetchFn().done((response, status, xhr) => {
|
||||
var serverResponseDatetime;
|
||||
try {
|
||||
serverResponseDatetime = new Date(xhr.getResponseHeader("Date"));
|
||||
} catch (err) {}
|
||||
self.lastUpdateTime = serverResponseDatetime || new Date();
|
||||
self.checkForUpdates(options);
|
||||
this.lastUpdateTime = serverResponseDatetime || new Date();
|
||||
this.checkForUpdates(options);
|
||||
});
|
||||
},
|
||||
|
||||
@@ -197,18 +196,17 @@ var History = Backbone.Model.extend(BASE_MVC.LoggableMixin).extend(
|
||||
// console.log( this + '.checkForUpdates' );
|
||||
options = options || {};
|
||||
var delay = this.UPDATE_DELAY;
|
||||
var self = this;
|
||||
if (!self.id) {
|
||||
if (!this.id) {
|
||||
return;
|
||||
}
|
||||
|
||||
function _delayThenUpdate() {
|
||||
var _delayThenUpdate = () => {
|
||||
// prevent buildup of updater timeouts by clearing previous if any, then set new and cache id
|
||||
self.clearUpdateTimeout();
|
||||
self.updateTimeoutId = setTimeout(() => {
|
||||
self.refresh(options);
|
||||
this.clearUpdateTimeout();
|
||||
this.updateTimeoutId = setTimeout(() => {
|
||||
this.refresh(options);
|
||||
}, delay);
|
||||
}
|
||||
};
|
||||
|
||||
// if there are still datasets in the non-ready state, recurse into this function with the new time
|
||||
var nonReadyContentCount = this.numOfUnfinishedShownContents();
|
||||
@@ -219,13 +217,13 @@ var History = Backbone.Model.extend(BASE_MVC.LoggableMixin).extend(
|
||||
// no datasets are running, but currently runnning jobs may still produce new datasets
|
||||
// see if the history has any running jobs and continue to update if so
|
||||
// (also update the size for the user in either case)
|
||||
self._fetchContentRelatedAttributes().done(historyData => {
|
||||
this._fetchContentRelatedAttributes().done(historyData => {
|
||||
// console.log( 'non_ready_jobs:', historyData.non_ready_jobs );
|
||||
if (self.numOfUnfinishedJobs() > 0) {
|
||||
if (this.numOfUnfinishedJobs() > 0) {
|
||||
_delayThenUpdate();
|
||||
} else {
|
||||
// otherwise, let listeners know that all updates have stopped
|
||||
self.trigger("ready");
|
||||
this.trigger("ready");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -101,13 +101,12 @@ var HistoryView = _super.extend(
|
||||
error: function(model, xhr, options, msg, details) {
|
||||
this.errorHandler(model, xhr, options, msg, details);
|
||||
},
|
||||
"loading-done": function() {
|
||||
var self = this;
|
||||
"loading-done": () => {
|
||||
// after the initial load, decorate with more time consuming fields (like HDCA element_counts)
|
||||
self.detailedFetchTimeoutId = _.delay(() => {
|
||||
self.detailedFetchTimeoutId = null;
|
||||
self.model.contents.fetchCollectionCounts();
|
||||
}, self.FETCH_COLLECTION_COUNTS_DELAY);
|
||||
this.detailedFetchTimeoutId = _.delay(() => {
|
||||
this.detailedFetchTimeoutId = null;
|
||||
this.model.contents.fetchCollectionCounts();
|
||||
}, this.FETCH_COLLECTION_COUNTS_DELAY);
|
||||
},
|
||||
"views:ready view:attached view:removed": function(view) {
|
||||
this._renderSelectButton();
|
||||
@@ -124,14 +123,13 @@ var HistoryView = _super.extend(
|
||||
loadHistory: function(historyId, options, contentsOptions) {
|
||||
contentsOptions = _.extend(contentsOptions || { silent: true });
|
||||
this.info("loadHistory:", historyId, options, contentsOptions);
|
||||
var self = this;
|
||||
self.setModel(new HISTORY_MODEL.History({ id: historyId }));
|
||||
this.setModel(new HISTORY_MODEL.History({ id: historyId }));
|
||||
|
||||
contentsOptions.silent = true;
|
||||
self.trigger("loading");
|
||||
return self.model.fetchWithContents(options, contentsOptions).always(() => {
|
||||
self.render();
|
||||
self.trigger("loading-done");
|
||||
this.trigger("loading");
|
||||
return this.model.fetchWithContents(options, contentsOptions).always(() => {
|
||||
this.render();
|
||||
this.trigger("loading-done");
|
||||
});
|
||||
},
|
||||
|
||||
@@ -209,19 +207,17 @@ var HistoryView = _super.extend(
|
||||
|
||||
/** override to avoid showing intial empty message using contents_active */
|
||||
_renderEmptyMessage: function($whereTo) {
|
||||
var self = this;
|
||||
var $emptyMsg = self.$emptyMessage($whereTo);
|
||||
|
||||
var empty = self.model.get("contents_active").active <= 0;
|
||||
var $emptyMsg = this.$emptyMessage($whereTo);
|
||||
var empty = this.model.get("contents_active").active <= 0;
|
||||
if (empty) {
|
||||
return $emptyMsg
|
||||
.empty()
|
||||
.append(self.emptyMsg)
|
||||
.append(this.emptyMsg)
|
||||
.show();
|
||||
} else if (self.searchFor && self.model.contents.haveSearchDetails() && !self.views.length) {
|
||||
} else if (this.searchFor && this.model.contents.haveSearchDetails() && !this.views.length) {
|
||||
return $emptyMsg
|
||||
.empty()
|
||||
.append(self.noneFoundMsg)
|
||||
.append(this.noneFoundMsg)
|
||||
.show();
|
||||
}
|
||||
$emptyMsg.hide();
|
||||
@@ -251,27 +247,26 @@ var HistoryView = _super.extend(
|
||||
renderItems: function($whereTo) {
|
||||
// console.log( this + '.renderItems-----------------', new Date() );
|
||||
$whereTo = $whereTo || this.$el;
|
||||
var self = this;
|
||||
var $list = self.$list($whereTo);
|
||||
var $list = this.$list($whereTo);
|
||||
|
||||
// TODO: bootstrap hack to remove orphaned tooltips
|
||||
$(".tooltip").remove();
|
||||
|
||||
$list.empty();
|
||||
self.views = [];
|
||||
this.views = [];
|
||||
|
||||
var models = self._filterCollection();
|
||||
var models = this._filterCollection();
|
||||
if (models.length) {
|
||||
self._renderPagination($whereTo);
|
||||
self.views = self._renderSomeItems(models, $list);
|
||||
this._renderPagination($whereTo);
|
||||
this.views = this._renderSomeItems(models, $list);
|
||||
} else {
|
||||
// TODO: consolidate with _renderPagination above by (???) passing in models/length?
|
||||
$whereTo.find("> .controls .list-pagination").empty();
|
||||
}
|
||||
self._renderEmptyMessage($whereTo).toggle(!models.length);
|
||||
this._renderEmptyMessage($whereTo).toggle(!models.length);
|
||||
|
||||
self.trigger("views:ready", self.views);
|
||||
return self.views;
|
||||
this.trigger("views:ready", this.views);
|
||||
return this.views;
|
||||
},
|
||||
|
||||
/** render pagination controls if not searching and contents says we're paginating */
|
||||
@@ -295,13 +290,12 @@ var HistoryView = _super.extend(
|
||||
|
||||
/** render a subset of the entire collection (client-side pagination) */
|
||||
_renderSomeItems: function(models, $list) {
|
||||
var self = this;
|
||||
var views = [];
|
||||
$list.append(
|
||||
models.map(m => {
|
||||
var view = self._createItemView(m);
|
||||
var view = this._createItemView(m);
|
||||
views.push(view);
|
||||
return self._renderItemView$el(view);
|
||||
return this._renderItemView$el(view);
|
||||
})
|
||||
);
|
||||
return views;
|
||||
@@ -310,12 +304,11 @@ var HistoryView = _super.extend(
|
||||
// ------------------------------------------------------------------------ sub-views
|
||||
/** in this override, check if the contents would also display based on includeDeleted/hidden */
|
||||
_filterItem: function(model) {
|
||||
var self = this;
|
||||
var contents = self.model.contents;
|
||||
var contents = this.model.contents;
|
||||
return (
|
||||
(contents.includeHidden || !model.hidden()) &&
|
||||
(contents.includeDeleted || !model.isDeletedOrPurged()) &&
|
||||
_super.prototype._filterItem.call(self, model)
|
||||
_super.prototype._filterItem.call(this, model)
|
||||
);
|
||||
},
|
||||
|
||||
@@ -405,10 +398,9 @@ var HistoryView = _super.extend(
|
||||
*/
|
||||
toggleShowDeleted: function(show, options) {
|
||||
show = show !== undefined ? show : !this.model.contents.includeDeleted;
|
||||
var self = this;
|
||||
var contents = self.model.contents;
|
||||
var contents = this.model.contents;
|
||||
contents.setIncludeDeleted(show, options);
|
||||
self.trigger("show-deleted", show);
|
||||
this.trigger("show-deleted", show);
|
||||
|
||||
contents.fetchCurrentPage({ renderAll: true });
|
||||
return show;
|
||||
@@ -420,10 +412,9 @@ var HistoryView = _super.extend(
|
||||
toggleShowHidden: function(show, store, options) {
|
||||
// console.log( 'toggleShowHidden', show, store );
|
||||
show = show !== undefined ? show : !this.model.contents.includeHidden;
|
||||
var self = this;
|
||||
var contents = self.model.contents;
|
||||
var contents = this.model.contents;
|
||||
contents.setIncludeHidden(show, options);
|
||||
self.trigger("show-hidden", show);
|
||||
this.trigger("show-hidden", show);
|
||||
|
||||
contents.fetchCurrentPage({ renderAll: true });
|
||||
return show;
|
||||
@@ -431,48 +422,46 @@ var HistoryView = _super.extend(
|
||||
|
||||
/** On the first search, if there are no details - load them, then search */
|
||||
_firstSearch: function(searchFor) {
|
||||
var self = this;
|
||||
var inputSelector = "> .controls .search-input";
|
||||
this.log("onFirstSearch", searchFor);
|
||||
|
||||
// if the contents already have enough details to search, search and return now
|
||||
if (self.model.contents.haveSearchDetails()) {
|
||||
self.searchItems(searchFor);
|
||||
if (this.model.contents.haveSearchDetails()) {
|
||||
this.searchItems(searchFor);
|
||||
return;
|
||||
}
|
||||
|
||||
// otherwise, load the details progressively here
|
||||
self.$(inputSelector).searchInput("toggle-loading");
|
||||
this.$(inputSelector).searchInput("toggle-loading");
|
||||
// set this now so that only results will show during progress
|
||||
self.searchFor = searchFor;
|
||||
var xhr = self.model.contents
|
||||
this.searchFor = searchFor;
|
||||
var xhr = this.model.contents
|
||||
.progressivelyFetchDetails({ silent: true })
|
||||
.progress((response, limit, offset) => {
|
||||
self.renderItems();
|
||||
self.trigger("search:loading-progress", limit, offset);
|
||||
this.renderItems();
|
||||
this.trigger("search:loading-progress", limit, offset);
|
||||
})
|
||||
.always(() => {
|
||||
self.$el.find(inputSelector).searchInput("toggle-loading");
|
||||
this.$el.find(inputSelector).searchInput("toggle-loading");
|
||||
})
|
||||
.done(() => {
|
||||
self.searchItems(searchFor, "force");
|
||||
this.searchItems(searchFor, "force");
|
||||
});
|
||||
},
|
||||
|
||||
/** clear the search filters and show all views that are normally shown */
|
||||
clearSearch: function(searchFor) {
|
||||
var self = this;
|
||||
if (!self.searchFor) return self;
|
||||
//self.log( 'onSearchClear', self );
|
||||
self.searchFor = "";
|
||||
self.trigger("search:clear", self);
|
||||
self.$("> .controls .search-query").val("");
|
||||
if (!this.searchFor) return this;
|
||||
//this.log( 'onSearchClear', this );
|
||||
this.searchFor = "";
|
||||
this.trigger("search:clear", this);
|
||||
this.$("> .controls .search-query").val("");
|
||||
// NOTE: silent + render prevents collection update event with merge only
|
||||
// - which causes an empty page due to event handler above
|
||||
self.model.contents.fetchCurrentPage({ silent: true }).done(() => {
|
||||
self.renderItems();
|
||||
this.model.contents.fetchCurrentPage({ silent: true }).done(() => {
|
||||
this.renderItems();
|
||||
});
|
||||
return self;
|
||||
return this;
|
||||
},
|
||||
|
||||
// ........................................................................ error handling
|
||||
@@ -550,14 +539,12 @@ var HistoryView = _super.extend(
|
||||
|
||||
//------------------------------------------------------------------------------ TEMPLATES
|
||||
HistoryView.prototype.templates = (() => {
|
||||
var mainTemplate = BASE_MVC.wrapTemplate([
|
||||
// temp container
|
||||
"<div>",
|
||||
'<div class="controls"></div>',
|
||||
'<ul class="list-items"></ul>',
|
||||
'<div class="empty-message infomessagesmall"></div>',
|
||||
"</div>"
|
||||
]);
|
||||
var mainTemplate = () =>
|
||||
`<div>
|
||||
<div class="controls"></div>
|
||||
<ul class="list-items"></ul>
|
||||
<div class="empty-message infomessagesmall"></div>',
|
||||
</div>`;
|
||||
|
||||
var controlsTemplate = BASE_MVC.wrapTemplate(
|
||||
[
|
||||
|
||||
@@ -122,6 +122,7 @@ export default FormBase.extend({
|
||||
|
||||
// button for options e.g. search, help
|
||||
var menu_button = new Ui.ButtonMenu({
|
||||
id: "options",
|
||||
icon: "fa-caret-down",
|
||||
title: (!options.narrow && "Options") || null,
|
||||
tooltip: "View available options"
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<datatype extension="len" type="galaxy.datatypes.chrominfo:ChromInfo" display_in_upload="true">
|
||||
<converter file="len_to_linecount.xml" target_datatype="linecount" />
|
||||
</datatype>
|
||||
<datatype extension="dmnd" type="galaxy.datatypes.binary:Binary:DMND" subclass="True" display_in_upload="false"/>
|
||||
<datatype extension="dmnd" type="galaxy.datatypes.binary:Binary:DMND" display_in_upload="false"/>
|
||||
<datatype extension="bigbed" type="galaxy.datatypes.binary:BigBed" mimetype="application/octet-stream" display_in_upload="true">
|
||||
<display file="ucsc/bigbed.xml" />
|
||||
<display file="igb/bb.xml" />
|
||||
|
||||
@@ -1105,6 +1105,8 @@ use_interactive = True
|
||||
# stable API.
|
||||
#enable_beta_workflow_modules = False
|
||||
|
||||
# Following options only apply to workflows scheduled using the legacy workflow
|
||||
# run API (running workflows via a POST to /api/workflows).
|
||||
# Force usage of Galaxy's beta workflow scheduler under certain circumstances -
|
||||
# this workflow scheduling forces Galaxy to schedule workflows in the background
|
||||
# so initial submission of the workflows is significantly sped up. This does
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# This file lists acceptable images to allow runing.
|
||||
#
|
||||
# This allows you, the admin, to create multiple flavours
|
||||
# for your users to run. E.g. maybe you need a geosciences flavour,
|
||||
# you can create the image based on our default image and add the
|
||||
# appropriate `apt-get/pip install` statements.
|
||||
---
|
||||
-
|
||||
image: askomics/askomics-ie
|
||||
description: |
|
||||
AskOmics, a visual SPARQL query builder
|
||||
@@ -0,0 +1,43 @@
|
||||
[main]
|
||||
# Unused
|
||||
|
||||
[docker]
|
||||
# Command to launch docker container. For example `sudo docker` or `docker-lxc`.
|
||||
# If you need to use a command like `sg` you can do that here, just be sure to
|
||||
# wrap all of the docker portion in single quotes. E.g. `sg 'docker' 'docker {docker_args}'`
|
||||
#
|
||||
# It is recommended that you use command_inject if you need to inject
|
||||
# additional parameters. This command string is re-used for a `docker inspect`
|
||||
# command and will likely cause errors if it is extensively modified, past the
|
||||
# usual group/sudo changes.
|
||||
#command = docker {docker_args}
|
||||
|
||||
# The image argument was moved to "allowed_images.yml.sample"
|
||||
|
||||
# Additional arguments that are passed to the `docker run` command.
|
||||
#command_inject = --sig-proxy=true -e DEBUG=false
|
||||
|
||||
# URL to access the Galaxy API with from the spawn Docker containter, if empty
|
||||
# this falls back to galaxy.ini's galaxy_infrastructure_url and finally to the
|
||||
# Docker host of the spawned container if that is also not set.
|
||||
#galaxy_url =
|
||||
|
||||
# The Docker hostname. It can be useful to run the Docker daemon on a different
|
||||
# host than Galaxy.
|
||||
#docker_hostname = localhost
|
||||
|
||||
# Try to set the tempdirectory to world execute - this can fix the issue
|
||||
# where 'sudo docker' is not able to mount the folder otherwise.
|
||||
# "finalize namespace chdir to /import permission denied"
|
||||
#wx_tempdir = False
|
||||
|
||||
# Overwride the IE tempdirectory. This can be useful if you regular tempdir is
|
||||
# located on an NFS share, which does not work well as Docker volume. In this case
|
||||
# you can have a shared sshfs share which you can use as temporary directory to
|
||||
# share data between the IE and Galaxy.
|
||||
#docker_galaxy_temp_dir = None
|
||||
|
||||
# If your Docker container exposes more then one port, Galaxy needs to know to
|
||||
# which ports it needs to connect. With this option you can specify the port number
|
||||
# inside your container to which Galaxy should connect the UI.
|
||||
docker_connect_port = 6543
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE interactive_environment SYSTEM "../../interactive_environments.dtd">
|
||||
<interactive_environment name="AskOmics">
|
||||
<data_sources>
|
||||
<data_source>
|
||||
<model_class>HistoryDatasetAssociation</model_class>
|
||||
<test type="isinstance" test_attr="datatype" result_type="datatype">tabular.Tabular</test>
|
||||
<test type="isinstance" test_attr="datatype" result_type="datatype">tabular.gff</test>
|
||||
<test type="isinstance" test_attr="datatype" result_type="datatype">tabular.gff3</test>
|
||||
<test type="isinstance" test_attr="datatype" result_type="datatype">tabular.bed</test>
|
||||
<to_param param_attr="id">dataset_id</to_param>
|
||||
</data_source>
|
||||
</data_sources>
|
||||
<params>
|
||||
<param type="dataset" var_name_in_template="hda" required="true">dataset_id</param>
|
||||
</params>
|
||||
<entry_point entry_point_type="mako">askomics.mako</entry_point>
|
||||
</interactive_environment>
|
||||
@@ -0,0 +1,9 @@
|
||||
var IES = window.IES;
|
||||
|
||||
function load_askomics(url){
|
||||
$( document ).ready(function() {
|
||||
IES.test_ie_availability(url, function(){
|
||||
IES.append_notebook(url);
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
<%namespace name="ie" file="ie.mako" />
|
||||
<%
|
||||
import random
|
||||
import string
|
||||
# Sets ID and sets up a lot of other variables
|
||||
ie_request.load_deploy_config()
|
||||
|
||||
# get an API key for AskOmics
|
||||
askomics_api_key = ie_request.notebook_pw
|
||||
|
||||
# Get ids of selected datasets
|
||||
additional_ids = trans.request.params.get('additional_dataset_ids', None)
|
||||
if not additional_ids:
|
||||
additional_ids = str(trans.security.encode_id( hda.id ) )
|
||||
else:
|
||||
additional_ids += "," + trans.security.encode_id( hda.id )
|
||||
|
||||
# Launch the IE. This builds and runs the docker command in the background.
|
||||
ie_request.launch(
|
||||
additional_ids=additional_ids if ie_request.use_volumes else None,
|
||||
env_override={
|
||||
'ASKO_load_url': 'http://localhost:6543',
|
||||
'ASKOMICS_API_KEY': askomics_api_key,
|
||||
'ASKO_files_dir': '/tmp/askomics-ie',
|
||||
'VIRT_Parameters_NumberOfBuffers': 10000, # see https://github.com/xgaia/askomics-docker-compose/tree/master/virtuoso#virtuoso for this values
|
||||
'VIRT_Parameters_MaxDirtyBuffers': 6000
|
||||
}
|
||||
)
|
||||
|
||||
# Only once the container is launched can we template our URLs. The ie_request
|
||||
# doesn't have all of the information needed until the container is running.
|
||||
url = ie_request.url_template('${PROXY_URL}/login_api_gie?key=' + askomics_api_key)
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
${ ie.load_default_js() }
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/javascript">
|
||||
${ ie.default_javascript_variables() }
|
||||
var url = '${ url }';
|
||||
${ ie.plugin_require_config() }
|
||||
requirejs(['galaxy.interactive_environments', 'plugin/askomics'], function(IES){
|
||||
window.IES = IES;
|
||||
load_askomics(url);
|
||||
});
|
||||
</script>
|
||||
<div id="main" width="100%" height="100%">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -58,7 +58,7 @@ $(document).ready(function() {
|
||||
},
|
||||
|
||||
_generateTour: function(data) {
|
||||
var tourData = Tours.hooked_tour_from_data(data);
|
||||
var tourData = Tours.default.hooked_tour_from_data(data);
|
||||
sessionStorage.setItem('activeGalaxyTour', JSON.stringify(data));
|
||||
|
||||
// Generate and run the tour
|
||||
|
||||
+17
-16
@@ -1,39 +1,40 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
import logging
|
||||
import signal
|
||||
import sys
|
||||
import time
|
||||
|
||||
from galaxy import config, jobs
|
||||
import galaxy.model
|
||||
import galaxy.security
|
||||
import galaxy.queues
|
||||
from galaxy.managers.collections import DatasetCollectionManager
|
||||
import galaxy.quota
|
||||
import galaxy.security
|
||||
from galaxy import config, jobs
|
||||
from galaxy.jobs import metrics as job_metrics
|
||||
from galaxy.managers.collections import DatasetCollectionManager
|
||||
from galaxy.managers.tags import GalaxyTagManager
|
||||
from galaxy.visualization.genomes import Genomes
|
||||
from galaxy.visualization.data_providers.registry import DataProviderRegistry
|
||||
from galaxy.visualization.plugins.registry import VisualizationsRegistry
|
||||
from galaxy.tools.special_tools import load_lib_tools
|
||||
from galaxy.tours import ToursRegistry
|
||||
from galaxy.webapps.galaxy.config_watchers import ConfigWatchers
|
||||
from galaxy.webhooks import WebhooksRegistry
|
||||
from galaxy.sample_tracking import external_service_types
|
||||
from galaxy.openid.providers import OpenIDProviders
|
||||
from galaxy.tools.data_manager.manager import DataManagers
|
||||
from galaxy.queue_worker import GalaxyQueueWorker
|
||||
from galaxy.sample_tracking import external_service_types
|
||||
from galaxy.tools.cache import (
|
||||
ToolCache,
|
||||
ToolShedRepositoryCache
|
||||
)
|
||||
from galaxy.jobs import metrics as job_metrics
|
||||
from galaxy.tools.data_manager.manager import DataManagers
|
||||
from galaxy.tools.error_reports import ErrorReports
|
||||
from galaxy.web.proxy import ProxyManager
|
||||
from galaxy.web.stack import application_stack_instance
|
||||
from galaxy.queue_worker import GalaxyQueueWorker
|
||||
from galaxy.tools.special_tools import load_lib_tools
|
||||
from galaxy.tours import ToursRegistry
|
||||
from galaxy.util import (
|
||||
ExecutionTimer,
|
||||
heartbeat
|
||||
)
|
||||
from galaxy.visualization.data_providers.registry import DataProviderRegistry
|
||||
from galaxy.visualization.genomes import Genomes
|
||||
from galaxy.visualization.plugins.registry import VisualizationsRegistry
|
||||
from galaxy.web.proxy import ProxyManager
|
||||
from galaxy.web.stack import application_stack_instance
|
||||
from galaxy.webapps.galaxy.config_watchers import ConfigWatchers
|
||||
from galaxy.webhooks import WebhooksRegistry
|
||||
from tool_shed.galaxy_install import update_repository_manager
|
||||
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@ import sys
|
||||
import tempfile
|
||||
import threading
|
||||
import time
|
||||
|
||||
from datetime import timedelta
|
||||
|
||||
from six import string_types
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
from galaxy import exceptions
|
||||
from galaxy.util import bunch
|
||||
|
||||
from .structure import (
|
||||
get_structure,
|
||||
leaf
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
from galaxy import model
|
||||
|
||||
from .types import (
|
||||
list,
|
||||
paired
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
from galaxy.model import DatasetCollectionElement
|
||||
|
||||
from ..types import BaseDatasetCollectionType
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
from galaxy.model import DatasetCollectionElement, HistoryDatasetAssociation
|
||||
|
||||
from ..types import BaseDatasetCollectionType
|
||||
|
||||
FORWARD_IDENTIFIER = "forward"
|
||||
|
||||
@@ -16,16 +16,19 @@ import six
|
||||
|
||||
from galaxy import util
|
||||
from galaxy.datatypes.metadata import MetadataElement # import directly to maintain ease of use in Datatype class definitions
|
||||
from galaxy.util import compression_utils
|
||||
from galaxy.util import FILENAME_VALID_CHARS
|
||||
from galaxy.util import inflector
|
||||
from galaxy.util import unicodify
|
||||
from galaxy.util import (
|
||||
compression_utils,
|
||||
FILENAME_VALID_CHARS,
|
||||
inflector,
|
||||
unicodify
|
||||
)
|
||||
from galaxy.util.bunch import Bunch
|
||||
from galaxy.util.odict import odict
|
||||
from galaxy.util.sanitize_html import sanitize_html
|
||||
|
||||
from . import dataproviders
|
||||
from . import metadata
|
||||
from . import (
|
||||
dataproviders,
|
||||
metadata
|
||||
)
|
||||
|
||||
XSS_VULNERABLE_MIME_TYPES = [
|
||||
'image/svg+xml', # Unfiltered by Galaxy and may contain JS that would be executed by some browsers.
|
||||
|
||||
@@ -14,7 +14,6 @@ from bx import (
|
||||
)
|
||||
|
||||
from galaxy.util import sqlite
|
||||
|
||||
from . import (
|
||||
base,
|
||||
column,
|
||||
|
||||
@@ -12,7 +12,6 @@ from galaxy.util import (
|
||||
from galaxy.util.odict import odict
|
||||
from galaxy.util.template import fill_template
|
||||
from galaxy.web import url_for
|
||||
|
||||
from .parameters import (
|
||||
DEFAULT_DATASET_NAME,
|
||||
DisplayApplicationDataParameter,
|
||||
|
||||
@@ -4,7 +4,6 @@ Graph content classes.
|
||||
import logging
|
||||
|
||||
from galaxy.util import simplegraph
|
||||
|
||||
from . import (
|
||||
data,
|
||||
dataproviders,
|
||||
|
||||
@@ -20,7 +20,6 @@ from galaxy.datatypes.sniff import (
|
||||
from galaxy.datatypes.tabular import Tabular
|
||||
from galaxy.datatypes.util.gff_util import parse_gff3_attributes, parse_gff_attributes
|
||||
from galaxy.web import url_for
|
||||
|
||||
from . import (
|
||||
data,
|
||||
dataproviders
|
||||
|
||||
@@ -13,7 +13,6 @@ from xml.etree.ElementTree import Element
|
||||
import yaml
|
||||
|
||||
import galaxy.util
|
||||
|
||||
from . import (
|
||||
binary,
|
||||
coverage,
|
||||
|
||||
@@ -30,9 +30,7 @@ from galaxy.util.checkers import (
|
||||
is_bz2,
|
||||
is_gzip
|
||||
)
|
||||
|
||||
from galaxy.util.image_util import check_image_type
|
||||
|
||||
from . import data
|
||||
|
||||
if sys.version_info > (3,):
|
||||
|
||||
@@ -23,7 +23,6 @@ from galaxy.datatypes.sniff import (
|
||||
iter_headers
|
||||
)
|
||||
from galaxy.util import compression_utils
|
||||
|
||||
from . import dataproviders
|
||||
|
||||
if sys.version_info > (3,):
|
||||
|
||||
@@ -4,7 +4,6 @@ Datatype classes for tracks/track views within galaxy.
|
||||
import logging
|
||||
|
||||
from galaxy.datatypes.text import Html
|
||||
|
||||
from . import binary
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@@ -5,7 +5,6 @@ import copy
|
||||
|
||||
from bx.intervals.io import GenomicInterval, GenomicIntervalReader, MissingFieldError, NiceReaderWrapper, ParseError
|
||||
from bx.tabular.io import Comment, Header
|
||||
|
||||
from six import Iterator
|
||||
|
||||
from galaxy.util.odict import odict
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
# is built properly (see #4982).
|
||||
numpy==1.9.2
|
||||
bx-python==0.7.3
|
||||
MarkupSafe==0.23
|
||||
PyYAML==3.11
|
||||
MarkupSafe==1.0
|
||||
PyYAML==3.12
|
||||
SQLAlchemy==1.0.15
|
||||
sqlalchemy-utils==0.32.19
|
||||
mercurial==3.7.3
|
||||
@@ -19,23 +19,24 @@ pysam>=0.13
|
||||
|
||||
# pure Python packages
|
||||
bz2file==0.98; python_version < '3.3'
|
||||
ipaddress==1.0.18; python_version < '3.3'
|
||||
boltons==17.1.0
|
||||
Paste==2.0.2
|
||||
PasteDeploy==1.5.2
|
||||
docutils==0.12
|
||||
docutils==0.14
|
||||
wchartype==0.1
|
||||
repoze.lru==0.6
|
||||
Routes==2.4.1
|
||||
WebOb==1.4.1
|
||||
WebHelpers==1.3
|
||||
Mako==1.0.2
|
||||
pytz==2015.4
|
||||
pytz==2017.3
|
||||
Babel==2.5.1
|
||||
Beaker==1.7.0
|
||||
dictobj==0.3.1
|
||||
nose==1.3.7
|
||||
Parsley==1.3
|
||||
six==1.10.0
|
||||
six==1.11.0
|
||||
Whoosh==2.7.4
|
||||
galaxy_sequence_utils==1.0.2
|
||||
h5py==2.7.1
|
||||
@@ -76,7 +77,7 @@ sqlalchemy-migrate==0.10.0
|
||||
decorator==4.0.2
|
||||
Tempita==0.5.3dev
|
||||
sqlparse==0.1.16
|
||||
pbr==1.8.0
|
||||
pbr==3.1.1
|
||||
|
||||
# svgwrite and dependencies
|
||||
svgwrite==1.1.6
|
||||
|
||||
@@ -11,4 +11,5 @@ name = "pypi"
|
||||
|
||||
[packages]
|
||||
|
||||
"flake8" = "*"
|
||||
"flake8" = "*"
|
||||
"flake8-import-order" = "==0.14.3"
|
||||
|
||||
+27
-6
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "23a9dc7e33425cf99801df781bf42cfb2ee9a72cfc8bbf725e1008ae543a821f"
|
||||
"sha256": "fd536e5360456866463f669e38bd7977303b59f1995671fcc2508dfdc744fd6b"
|
||||
},
|
||||
"host-environment-markers": {
|
||||
"implementation_name": "cpython",
|
||||
@@ -9,12 +9,12 @@
|
||||
"os_name": "posix",
|
||||
"platform_machine": "x86_64",
|
||||
"platform_python_implementation": "CPython",
|
||||
"platform_release": "16.7.0",
|
||||
"platform_system": "Darwin",
|
||||
"platform_version": "Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64",
|
||||
"python_full_version": "2.7.12",
|
||||
"platform_release": "3.13.0-133-generic",
|
||||
"platform_system": "Linux",
|
||||
"platform_version": "#182-Ubuntu SMP Tue Sep 19 15:49:21 UTC 2017",
|
||||
"python_full_version": "2.7.6",
|
||||
"python_version": "2.7",
|
||||
"sys_platform": "darwin"
|
||||
"sys_platform": "linux2"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {},
|
||||
@@ -27,6 +27,13 @@
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"asttokens": {
|
||||
"hashes": [
|
||||
"sha256:af77320626fbe29b8f5c6c43f82d5012a145a1dadbd2de286ea9398c640c072b",
|
||||
"sha256:3d630eb1532e6877bc01c0a933570693783b7c97ece3260bd3ad964aaf7d566b"
|
||||
],
|
||||
"version": "==1.1.7"
|
||||
},
|
||||
"configparser": {
|
||||
"hashes": [
|
||||
"sha256:5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a"
|
||||
@@ -51,6 +58,13 @@
|
||||
],
|
||||
"version": "==3.5.0"
|
||||
},
|
||||
"flake8-import-order": {
|
||||
"hashes": [
|
||||
"sha256:26c052d93d8b2d17c5e31bdcf0cdcb513c0b039d2671905dc9ddb5bcec8f72e1",
|
||||
"sha256:a025f6d691e6ca3a749ebcb9dea8ee3aa341407d767dda1c263060f80f6b377e"
|
||||
],
|
||||
"version": "==0.14.3"
|
||||
},
|
||||
"mccabe": {
|
||||
"hashes": [
|
||||
"sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42",
|
||||
@@ -71,6 +85,13 @@
|
||||
"sha256:8d616a382f243dbf19b54743f280b80198be0bca3a5396f1d2e1fca6223e8805"
|
||||
],
|
||||
"version": "==1.6.0"
|
||||
},
|
||||
"six": {
|
||||
"hashes": [
|
||||
"sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb",
|
||||
"sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9"
|
||||
],
|
||||
"version": "==1.11.0"
|
||||
}
|
||||
},
|
||||
"develop": {}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
mccabe==0.6.1 --hash=sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42 --hash=sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f
|
||||
pycodestyle==2.3.1 --hash=sha256:6c4245ade1edfad79c3446fadfc96b0de2759662dc29d07d80a6f27ad1ca6ba9 --hash=sha256:682256a5b318149ca0d2a9185d365d8864a768a28db66a84a2ea946bcc426766
|
||||
asttokens==1.1.7 --hash=sha256:af77320626fbe29b8f5c6c43f82d5012a145a1dadbd2de286ea9398c640c072b --hash=sha256:3d630eb1532e6877bc01c0a933570693783b7c97ece3260bd3ad964aaf7d566b
|
||||
pyflakes==1.6.0 --hash=sha256:08bd6a50edf8cffa9fa09a463063c425ecaaf10d1eb0335a7e8b1401aef89e6f --hash=sha256:8d616a382f243dbf19b54743f280b80198be0bca3a5396f1d2e1fca6223e8805
|
||||
enum34==1.1.6; python_version < '3.4' --hash=sha256:6bd0f6ad48ec2aa117d3d141940d484deccda84d4fcd884f5c3d93c23ecd8c79 --hash=sha256:644837f692e5f550741432dd3f223bbb9852018674981b1664e5dc339387588a --hash=sha256:8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1 --hash=sha256:2d81cbbe0e73112bdfe6ef8576f2238f2ba27dd0d55752a776c41d38b7da2850
|
||||
flake8-import-order==0.14.3 --hash=sha256:26c052d93d8b2d17c5e31bdcf0cdcb513c0b039d2671905dc9ddb5bcec8f72e1 --hash=sha256:a025f6d691e6ca3a749ebcb9dea8ee3aa341407d767dda1c263060f80f6b377e
|
||||
six==1.11.0 --hash=sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb --hash=sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9
|
||||
mccabe==0.6.1 --hash=sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42 --hash=sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f
|
||||
pycodestyle==2.3.1 --hash=sha256:6c4245ade1edfad79c3446fadfc96b0de2759662dc29d07d80a6f27ad1ca6ba9 --hash=sha256:682256a5b318149ca0d2a9185d365d8864a768a28db66a84a2ea946bcc426766
|
||||
flake8==3.5.0 --hash=sha256:c7841163e2b576d435799169b78703ad6ac1bbb0f199994fc05f700b2a90ea37 --hash=sha256:7253265f7abd8b313e3892944044a365e3f4ac3fcdcfb4298f55ee9ddf188ba0
|
||||
configparser==3.5.0; python_version < '3.2' --hash=sha256:5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
mccabe==0.6.1
|
||||
pycodestyle==2.3.1
|
||||
asttokens==1.1.7
|
||||
pyflakes==1.6.0
|
||||
enum34==1.1.6; python_version < '3.4'
|
||||
flake8-import-order==0.14.3
|
||||
six==1.11.0
|
||||
mccabe==0.6.1
|
||||
pycodestyle==2.3.1
|
||||
flake8==3.5.0
|
||||
configparser==3.5.0; python_version < '3.2'
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
[[source]]
|
||||
|
||||
url = "https://pypi.python.org/simple"
|
||||
verify_ssl = true
|
||||
name = "pypi"
|
||||
|
||||
|
||||
[dev-packages]
|
||||
|
||||
|
||||
|
||||
[packages]
|
||||
|
||||
"flake8" = "*"
|
||||
"flake8-import-order" = "*"
|
||||
@@ -1,98 +0,0 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "68f35c8c353b79ccfd80ad884f83009e2b196c6fe761fa91b01f3d3c6804bb93"
|
||||
},
|
||||
"host-environment-markers": {
|
||||
"implementation_name": "cpython",
|
||||
"implementation_version": "0",
|
||||
"os_name": "posix",
|
||||
"platform_machine": "x86_64",
|
||||
"platform_python_implementation": "CPython",
|
||||
"platform_release": "16.7.0",
|
||||
"platform_system": "Darwin",
|
||||
"platform_version": "Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64",
|
||||
"python_full_version": "2.7.12",
|
||||
"python_version": "2.7",
|
||||
"sys_platform": "darwin"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {},
|
||||
"sources": [
|
||||
{
|
||||
"name": "pypi",
|
||||
"url": "https://pypi.python.org/simple",
|
||||
"verify_ssl": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"asttokens": {
|
||||
"hashes": [
|
||||
"sha256:37d32633cdeaebfd171f548aa0e77cc863b0692a1e96dc93d49c997a8d655a1a",
|
||||
"sha256:97f568e6eaf9a133850bd5370193ef10a459fc9fff0c8954e986a30b44415a88"
|
||||
],
|
||||
"version": "==1.1.6"
|
||||
},
|
||||
"configparser": {
|
||||
"hashes": [
|
||||
"sha256:5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a"
|
||||
],
|
||||
"markers": "python_version < '3.2'",
|
||||
"version": "==3.5.0"
|
||||
},
|
||||
"enum34": {
|
||||
"hashes": [
|
||||
"sha256:6bd0f6ad48ec2aa117d3d141940d484deccda84d4fcd884f5c3d93c23ecd8c79",
|
||||
"sha256:644837f692e5f550741432dd3f223bbb9852018674981b1664e5dc339387588a",
|
||||
"sha256:8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1",
|
||||
"sha256:2d81cbbe0e73112bdfe6ef8576f2238f2ba27dd0d55752a776c41d38b7da2850"
|
||||
],
|
||||
"markers": "python_version < '3.4'",
|
||||
"version": "==1.1.6"
|
||||
},
|
||||
"flake8": {
|
||||
"hashes": [
|
||||
"sha256:c7841163e2b576d435799169b78703ad6ac1bbb0f199994fc05f700b2a90ea37",
|
||||
"sha256:7253265f7abd8b313e3892944044a365e3f4ac3fcdcfb4298f55ee9ddf188ba0"
|
||||
],
|
||||
"version": "==3.5.0"
|
||||
},
|
||||
"flake8-import-order": {
|
||||
"hashes": [
|
||||
"sha256:26c052d93d8b2d17c5e31bdcf0cdcb513c0b039d2671905dc9ddb5bcec8f72e1",
|
||||
"sha256:a025f6d691e6ca3a749ebcb9dea8ee3aa341407d767dda1c263060f80f6b377e"
|
||||
],
|
||||
"version": "==0.14.3"
|
||||
},
|
||||
"mccabe": {
|
||||
"hashes": [
|
||||
"sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42",
|
||||
"sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"
|
||||
],
|
||||
"version": "==0.6.1"
|
||||
},
|
||||
"pycodestyle": {
|
||||
"hashes": [
|
||||
"sha256:6c4245ade1edfad79c3446fadfc96b0de2759662dc29d07d80a6f27ad1ca6ba9",
|
||||
"sha256:682256a5b318149ca0d2a9185d365d8864a768a28db66a84a2ea946bcc426766"
|
||||
],
|
||||
"version": "==2.3.1"
|
||||
},
|
||||
"pyflakes": {
|
||||
"hashes": [
|
||||
"sha256:08bd6a50edf8cffa9fa09a463063c425ecaaf10d1eb0335a7e8b1401aef89e6f",
|
||||
"sha256:8d616a382f243dbf19b54743f280b80198be0bca3a5396f1d2e1fca6223e8805"
|
||||
],
|
||||
"version": "==1.6.0"
|
||||
},
|
||||
"six": {
|
||||
"hashes": [
|
||||
"sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb",
|
||||
"sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9"
|
||||
],
|
||||
"version": "==1.11.0"
|
||||
}
|
||||
},
|
||||
"develop": {}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
asttokens==1.1.6 --hash=sha256:37d32633cdeaebfd171f548aa0e77cc863b0692a1e96dc93d49c997a8d655a1a --hash=sha256:97f568e6eaf9a133850bd5370193ef10a459fc9fff0c8954e986a30b44415a88
|
||||
pyflakes==1.6.0 --hash=sha256:08bd6a50edf8cffa9fa09a463063c425ecaaf10d1eb0335a7e8b1401aef89e6f --hash=sha256:8d616a382f243dbf19b54743f280b80198be0bca3a5396f1d2e1fca6223e8805
|
||||
enum34==1.1.6; python_version < '3.4' --hash=sha256:6bd0f6ad48ec2aa117d3d141940d484deccda84d4fcd884f5c3d93c23ecd8c79 --hash=sha256:644837f692e5f550741432dd3f223bbb9852018674981b1664e5dc339387588a --hash=sha256:8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1 --hash=sha256:2d81cbbe0e73112bdfe6ef8576f2238f2ba27dd0d55752a776c41d38b7da2850
|
||||
flake8-import-order==0.14.3 --hash=sha256:26c052d93d8b2d17c5e31bdcf0cdcb513c0b039d2671905dc9ddb5bcec8f72e1 --hash=sha256:a025f6d691e6ca3a749ebcb9dea8ee3aa341407d767dda1c263060f80f6b377e
|
||||
six==1.11.0 --hash=sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb --hash=sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9
|
||||
mccabe==0.6.1 --hash=sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42 --hash=sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f
|
||||
pycodestyle==2.3.1 --hash=sha256:6c4245ade1edfad79c3446fadfc96b0de2759662dc29d07d80a6f27ad1ca6ba9 --hash=sha256:682256a5b318149ca0d2a9185d365d8864a768a28db66a84a2ea946bcc426766
|
||||
flake8==3.5.0 --hash=sha256:c7841163e2b576d435799169b78703ad6ac1bbb0f199994fc05f700b2a90ea37 --hash=sha256:7253265f7abd8b313e3892944044a365e3f4ac3fcdcfb4298f55ee9ddf188ba0
|
||||
configparser==3.5.0; python_version < '3.2' --hash=sha256:5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a
|
||||
@@ -1,9 +0,0 @@
|
||||
asttokens==1.1.6
|
||||
pyflakes==1.6.0
|
||||
enum34==1.1.6; python_version < '3.4'
|
||||
flake8-import-order==0.14.3
|
||||
six==1.11.0
|
||||
mccabe==0.6.1
|
||||
pycodestyle==2.3.1
|
||||
flake8==3.5.0
|
||||
configparser==3.5.0; python_version < '3.2'
|
||||
@@ -31,8 +31,7 @@ done
|
||||
|
||||
THIS_DIRECTORY="$(cd "$(dirname "$0")" > /dev/null && pwd)"
|
||||
ENVS="develop
|
||||
flake8
|
||||
flake8_imports"
|
||||
flake8"
|
||||
|
||||
for env in $ENVS
|
||||
do
|
||||
|
||||
@@ -16,6 +16,7 @@ pysam>=0.13
|
||||
|
||||
# pure Python packages
|
||||
bz2file; python_version < '3.3'
|
||||
ipaddress; python_version < '3.3'
|
||||
boltons
|
||||
Paste
|
||||
PasteDeploy
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
# Contains actions that are used in External Services
|
||||
import logging
|
||||
|
||||
import requests
|
||||
from galaxy.web import url_for
|
||||
|
||||
from galaxy.util.template import fill_template
|
||||
from result_handlers.basic import ExternalServiceActionResultHandler
|
||||
from galaxy.web import url_for
|
||||
from .result_handlers.basic import ExternalServiceActionResultHandler
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
# Contains objects for accessing external services applications
|
||||
import logging
|
||||
from parameters import ExternalServiceParameter
|
||||
from actions import ExternalServiceAction
|
||||
|
||||
from galaxy.util.bunch import Bunch
|
||||
from .actions import ExternalServiceAction
|
||||
from .parameters import ExternalServiceParameter
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -3,8 +3,11 @@ FormDefinition and field factories
|
||||
"""
|
||||
# TODO: A FormDefinitionField is closely linked to a form_builder result.
|
||||
# Can this functionality be further abstracted and merged with form_builder?
|
||||
from galaxy.model import (
|
||||
FormDefinition,
|
||||
FormDefinitionCurrent
|
||||
)
|
||||
from galaxy.util import string_as_bool
|
||||
from galaxy.model import FormDefinitionCurrent, FormDefinition
|
||||
|
||||
FORM_TYPES = dict([(f_type.lower(), f_descript) for f_type, f_descript in FormDefinition.types.items()])
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ from galaxy.util.bunch import Bunch
|
||||
from galaxy.util.expressions import ExpressionContext
|
||||
from galaxy.util.handlers import ConfiguresHandlers
|
||||
from galaxy.util.xml_macros import load
|
||||
|
||||
from .datasets import (DatasetPath, NullDatasetPathRewriter,
|
||||
OutputsToWorkingDirectoryPathRewriter, TaskPathRewriter)
|
||||
from .output_checker import check_output
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
from __future__ import print_function
|
||||
|
||||
__version__ = '1.0.0'
|
||||
import argparse
|
||||
import collections
|
||||
import copy
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
from functools import reduce
|
||||
|
||||
from yaml import load
|
||||
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
import copy
|
||||
import collections
|
||||
import re
|
||||
from functools import reduce
|
||||
|
||||
__version__ = '1.0.0'
|
||||
|
||||
# log to galaxy's logger
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import logging
|
||||
import inspect
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@ import os
|
||||
|
||||
from galaxy import util
|
||||
from galaxy.util import plugin_config
|
||||
|
||||
from ..metrics import formatting
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@@ -8,7 +8,6 @@ import sys
|
||||
import tempfile
|
||||
|
||||
from galaxy import util
|
||||
|
||||
from ..collectl import stats
|
||||
|
||||
if sys.version_info > (3,):
|
||||
|
||||
@@ -4,7 +4,6 @@ import os
|
||||
import shutil
|
||||
|
||||
from galaxy import util
|
||||
|
||||
from ..collectl import (
|
||||
cli,
|
||||
processes,
|
||||
|
||||
@@ -3,7 +3,6 @@ import logging
|
||||
import re
|
||||
|
||||
from galaxy import util
|
||||
|
||||
from ..instrumenters import InstrumentPlugin
|
||||
from ...metrics import formatting
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ import re
|
||||
import sys
|
||||
|
||||
from galaxy import util
|
||||
|
||||
from ..instrumenters import InstrumentPlugin
|
||||
from ...metrics import formatting
|
||||
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
from datetime import datetime
|
||||
import hashlib
|
||||
import logging
|
||||
import random
|
||||
from datetime import datetime
|
||||
|
||||
from sqlalchemy import func
|
||||
|
||||
from galaxy import model
|
||||
from galaxy import util
|
||||
from galaxy import (
|
||||
model,
|
||||
util
|
||||
)
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
VALID_JOB_HASH_STRATEGIES = ["job", "user", "history", "workflow_invocation"]
|
||||
|
||||
@@ -30,7 +30,6 @@ from galaxy.util import (
|
||||
)
|
||||
from galaxy.util.bunch import Bunch
|
||||
from galaxy.util.monitors import Monitors
|
||||
|
||||
from .state_handler_factory import build_state_handlers
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
import functools
|
||||
import logging
|
||||
|
||||
from galaxy import model
|
||||
from galaxy.jobs.runners import AsynchronousJobRunner, AsynchronousJobState
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@ from galaxy.jobs.runners import (
|
||||
AsynchronousJobState
|
||||
)
|
||||
from galaxy.util import asbool
|
||||
|
||||
from .util.cli import CliInterface, split_params
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@@ -16,7 +16,6 @@ from galaxy.util import (
|
||||
DATABASE_MAX_STRING_SIZE,
|
||||
shrink_stream_by_size
|
||||
)
|
||||
|
||||
from ..runners import (
|
||||
BaseJobRunner,
|
||||
JobState
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
import logging
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from galaxy import model
|
||||
from galaxy.jobs.runners import JobState
|
||||
from ._safe_eval import safe_eval
|
||||
|
||||
__all__ = ('failure', )
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
from galaxy import model
|
||||
from galaxy.jobs.runners import JobState
|
||||
|
||||
from ._safe_eval import safe_eval
|
||||
|
||||
|
||||
MESSAGES = dict(
|
||||
walltime_reached='it reached the walltime',
|
||||
memory_limit_reached='it exceeded the amount of allocated memory',
|
||||
|
||||
@@ -4,7 +4,6 @@ processes and interfacing with job managers. This module should contain
|
||||
functionality shared between Galaxy and the Pulsar.
|
||||
"""
|
||||
from galaxy.util.bunch import Bunch
|
||||
|
||||
from .kill import kill_pid
|
||||
|
||||
__all__ = ('kill_pid', 'Bunch')
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import os
|
||||
import logging
|
||||
import shutil
|
||||
import inspect
|
||||
import logging
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from galaxy import model, util
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import functools
|
||||
import logging
|
||||
import os
|
||||
import requests
|
||||
|
||||
import requests
|
||||
from beaker.cache import CacheManager
|
||||
from beaker.util import parse_cache_config_options
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -7,11 +7,11 @@ Used by both the API and bootstrapped data.
|
||||
# TODO: this is a bit of an odd duck. It uses the serializer structure from managers
|
||||
# but doesn't have a model like them. It might be better in config.py or a
|
||||
# totally new area, but I'm leaving it in managers for now for class consistency.
|
||||
|
||||
from galaxy.web.framework.base import server_starttime
|
||||
from galaxy.managers import base
|
||||
|
||||
import logging
|
||||
|
||||
from galaxy.managers import base
|
||||
from galaxy.web.framework.base import server_starttime
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -6,14 +6,13 @@ and other (nested) containers.
|
||||
"""
|
||||
# Histories should be DatasetCollections.
|
||||
# Libraries should be DatasetCollections.
|
||||
|
||||
import logging
|
||||
import operator
|
||||
|
||||
from galaxy import model
|
||||
import galaxy.exceptions
|
||||
import galaxy.util
|
||||
from galaxy import model
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -2,21 +2,25 @@
|
||||
Manager and Serializer for Datasets.
|
||||
"""
|
||||
import glob
|
||||
import logging
|
||||
import os
|
||||
|
||||
from six import string_types
|
||||
|
||||
from galaxy import model
|
||||
from galaxy import exceptions
|
||||
import galaxy.datatypes.metadata
|
||||
from galaxy import (
|
||||
exceptions,
|
||||
model
|
||||
)
|
||||
from galaxy.managers import (
|
||||
base,
|
||||
deletable,
|
||||
rbac_secured,
|
||||
roles,
|
||||
secured,
|
||||
users
|
||||
)
|
||||
|
||||
from galaxy.managers import base
|
||||
from galaxy.managers import secured
|
||||
from galaxy.managers import deletable
|
||||
from galaxy.managers import roles
|
||||
from galaxy.managers import rbac_secured
|
||||
from galaxy.managers import users
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -1,17 +1,23 @@
|
||||
"""
|
||||
Manager and Serializer for Library Folders.
|
||||
"""
|
||||
|
||||
from galaxy.exceptions import ItemAccessibilityException
|
||||
from galaxy.exceptions import InconsistentDatabase
|
||||
from galaxy.exceptions import RequestParameterInvalidException
|
||||
from galaxy.exceptions import InternalServerError
|
||||
from galaxy.exceptions import AuthenticationRequired
|
||||
from galaxy.exceptions import InsufficientPermissionsException
|
||||
from galaxy.exceptions import MalformedId
|
||||
from sqlalchemy.orm.exc import MultipleResultsFound
|
||||
from sqlalchemy.orm.exc import NoResultFound
|
||||
import logging
|
||||
|
||||
from sqlalchemy.orm.exc import (
|
||||
MultipleResultsFound,
|
||||
NoResultFound
|
||||
)
|
||||
|
||||
from galaxy.exceptions import (
|
||||
AuthenticationRequired,
|
||||
InconsistentDatabase,
|
||||
InsufficientPermissionsException,
|
||||
InternalServerError,
|
||||
ItemAccessibilityException,
|
||||
MalformedId,
|
||||
RequestParameterInvalidException
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
+15
-12
@@ -4,20 +4,23 @@ Manager and Serializer for HDAs.
|
||||
HistoryDatasetAssociations (HDAs) are datasets contained or created in a
|
||||
history.
|
||||
"""
|
||||
|
||||
import os
|
||||
import gettext
|
||||
|
||||
from galaxy import model
|
||||
from galaxy import exceptions
|
||||
from galaxy import datatypes
|
||||
from galaxy.managers import datasets
|
||||
from galaxy.managers import secured
|
||||
from galaxy.managers import taggable
|
||||
from galaxy.managers import annotatable
|
||||
from galaxy.managers import users
|
||||
|
||||
import logging
|
||||
import os
|
||||
|
||||
from galaxy import (
|
||||
datatypes,
|
||||
exceptions,
|
||||
model
|
||||
)
|
||||
from galaxy.managers import (
|
||||
annotatable,
|
||||
datasets,
|
||||
secured,
|
||||
taggable,
|
||||
users
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -4,18 +4,18 @@ Manager and Serializer for HDCAs.
|
||||
HistoryDatasetCollectionAssociations (HDCAs) are datasets contained or created in a
|
||||
history.
|
||||
"""
|
||||
import logging
|
||||
|
||||
from galaxy import model
|
||||
from galaxy.managers import (
|
||||
annotatable,
|
||||
base,
|
||||
deletable,
|
||||
hdas,
|
||||
secured,
|
||||
taggable
|
||||
)
|
||||
|
||||
from galaxy.managers import base
|
||||
from galaxy.managers import secured
|
||||
from galaxy.managers import deletable
|
||||
from galaxy.managers import taggable
|
||||
from galaxy.managers import annotatable
|
||||
|
||||
from galaxy.managers import hdas
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -4,19 +4,24 @@ Manager and Serializer for histories.
|
||||
Histories are containers for datasets or dataset collections
|
||||
created (or copied) by users over the course of an analysis.
|
||||
"""
|
||||
|
||||
from sqlalchemy import desc, asc
|
||||
|
||||
from galaxy import model
|
||||
from galaxy import exceptions as glx_exceptions
|
||||
from galaxy.managers import sharable
|
||||
from galaxy.managers import deletable
|
||||
from galaxy.managers import hdas
|
||||
# from galaxy.managers import hdcas
|
||||
from galaxy.managers import history_contents
|
||||
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import (
|
||||
asc,
|
||||
desc
|
||||
)
|
||||
|
||||
from galaxy import (
|
||||
exceptions as glx_exceptions,
|
||||
model
|
||||
)
|
||||
from galaxy.managers import (
|
||||
deletable,
|
||||
hdas,
|
||||
history_contents,
|
||||
sharable
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -2,25 +2,34 @@
|
||||
Heterogenous lists/contents are difficult to query properly since unions are
|
||||
not easily made.
|
||||
"""
|
||||
|
||||
from sqlalchemy import literal
|
||||
from sqlalchemy import sql
|
||||
from sqlalchemy import asc, desc
|
||||
from sqlalchemy import true, false
|
||||
from sqlalchemy import func
|
||||
from sqlalchemy.orm import eagerload
|
||||
from sqlalchemy.orm import undefer
|
||||
|
||||
from galaxy import model
|
||||
from galaxy import exceptions as glx_exceptions
|
||||
|
||||
from galaxy.managers import base
|
||||
from galaxy.managers import deletable
|
||||
from galaxy.managers import containers
|
||||
from galaxy.managers import hdas
|
||||
from galaxy.managers import hdcas
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import (
|
||||
asc,
|
||||
desc,
|
||||
false,
|
||||
func,
|
||||
literal,
|
||||
sql,
|
||||
true
|
||||
)
|
||||
from sqlalchemy.orm import (
|
||||
eagerload,
|
||||
undefer
|
||||
)
|
||||
|
||||
from galaxy import (
|
||||
exceptions as glx_exceptions,
|
||||
model
|
||||
)
|
||||
from galaxy.managers import (
|
||||
base,
|
||||
containers,
|
||||
deletable,
|
||||
hdas,
|
||||
hdcas
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -2,11 +2,12 @@
|
||||
import logging
|
||||
|
||||
from galaxy import util
|
||||
|
||||
from galaxy.exceptions import InternalServerError
|
||||
from galaxy.exceptions import InsufficientPermissionsException
|
||||
from galaxy.exceptions import ObjectNotFound
|
||||
from galaxy.exceptions import RequestParameterInvalidException
|
||||
from galaxy.exceptions import (
|
||||
InsufficientPermissionsException,
|
||||
InternalServerError,
|
||||
ObjectNotFound,
|
||||
RequestParameterInvalidException
|
||||
)
|
||||
from galaxy.managers import tags
|
||||
from galaxy.util import validation
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ 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.
|
||||
"""
|
||||
import logging
|
||||
|
||||
from galaxy import model
|
||||
from galaxy.managers import sharable
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
"""
|
||||
Mixins for Ratable model managers and serializers.
|
||||
"""
|
||||
import logging
|
||||
|
||||
from sqlalchemy.sql.expression import func
|
||||
|
||||
from . import base
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
from galaxy import security
|
||||
import logging
|
||||
|
||||
import galaxy.exceptions
|
||||
from galaxy import model
|
||||
from galaxy import (
|
||||
model,
|
||||
security
|
||||
)
|
||||
from galaxy.managers import users
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
"""
|
||||
Manager and Serializer for Roles.
|
||||
"""
|
||||
import logging
|
||||
|
||||
from sqlalchemy.orm import exc as sqlalchemy_exceptions
|
||||
|
||||
@@ -8,7 +9,6 @@ import galaxy.exceptions
|
||||
from galaxy import model
|
||||
from galaxy.managers import base
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -9,19 +9,21 @@ A sharable Galaxy object:
|
||||
can be published effectively making it available to all other Users
|
||||
can be rated
|
||||
"""
|
||||
import logging
|
||||
import re
|
||||
|
||||
from sqlalchemy import true
|
||||
import re
|
||||
|
||||
from galaxy import exceptions
|
||||
from galaxy.managers import (
|
||||
annotatable,
|
||||
base,
|
||||
ratable,
|
||||
secured,
|
||||
taggable,
|
||||
users
|
||||
)
|
||||
|
||||
from galaxy.managers import base
|
||||
from galaxy.managers import secured
|
||||
from galaxy.managers import taggable
|
||||
from galaxy.managers import annotatable
|
||||
from galaxy.managers import ratable
|
||||
from galaxy.managers import users
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import logging
|
||||
import re
|
||||
import galaxy.model
|
||||
|
||||
from galaxy.util import unicodify
|
||||
from six import string_types
|
||||
from sqlalchemy.sql import select
|
||||
from sqlalchemy.sql.expression import func
|
||||
|
||||
import galaxy.model
|
||||
from galaxy.util import unicodify
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
"""
|
||||
Manager and Serializer for Users.
|
||||
"""
|
||||
import logging
|
||||
|
||||
import sqlalchemy
|
||||
|
||||
from galaxy import model
|
||||
from galaxy import exceptions
|
||||
from galaxy import util
|
||||
|
||||
from galaxy.managers import base
|
||||
from galaxy.managers import deletable
|
||||
from galaxy.managers import api_keys
|
||||
from galaxy import (
|
||||
exceptions,
|
||||
model,
|
||||
util
|
||||
)
|
||||
from galaxy.managers import (
|
||||
api_keys,
|
||||
base,
|
||||
deletable
|
||||
)
|
||||
from galaxy.security import validate_user_input
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@ Manager and Serializers for Visualizations.
|
||||
Visualizations are saved configurations/variables used to
|
||||
reproduce a specific view in a Galaxy visualization.
|
||||
"""
|
||||
import logging
|
||||
|
||||
from galaxy import model
|
||||
from galaxy.managers import sharable
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@@ -1,31 +1,43 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from six import string_types
|
||||
|
||||
from collections import namedtuple
|
||||
import logging
|
||||
import json
|
||||
import logging
|
||||
import uuid
|
||||
from collections import namedtuple
|
||||
|
||||
from six import string_types
|
||||
from sqlalchemy import and_
|
||||
from sqlalchemy.orm import joinedload, subqueryload
|
||||
|
||||
from galaxy import model
|
||||
from galaxy import util
|
||||
from galaxy import exceptions
|
||||
from galaxy.model.item_attrs import UsesAnnotations
|
||||
from galaxy.util.json import safe_loads
|
||||
from galaxy.workflow import modules
|
||||
from .base import decode_id
|
||||
|
||||
# For WorkflowContentManager
|
||||
from galaxy.util.sanitize_html import sanitize_html
|
||||
from galaxy.workflow.steps import attach_ordered_steps
|
||||
from galaxy.workflow.modules import module_factory, is_tool_module_type, ToolModule, WorkflowModuleInjector
|
||||
from galaxy.tools.parameters.basic import DataToolParameter, DataCollectionToolParameter, RuntimeValue, workflow_building_modes
|
||||
from galaxy.tools.parameters import visit_input_values, params_to_incoming
|
||||
from galaxy import (
|
||||
exceptions,
|
||||
model,
|
||||
util
|
||||
)
|
||||
from galaxy.jobs.actions.post import ActionBox
|
||||
from galaxy.model.item_attrs import UsesAnnotations
|
||||
from galaxy.tools.parameters import (
|
||||
params_to_incoming,
|
||||
visit_input_values
|
||||
)
|
||||
from galaxy.tools.parameters.basic import (
|
||||
DataCollectionToolParameter,
|
||||
DataToolParameter,
|
||||
RuntimeValue,
|
||||
workflow_building_modes
|
||||
)
|
||||
from galaxy.util.json import safe_loads
|
||||
from galaxy.util.sanitize_html import sanitize_html
|
||||
from galaxy.web import url_for
|
||||
from galaxy.workflow import modules
|
||||
from galaxy.workflow.modules import (
|
||||
is_tool_module_type,
|
||||
module_factory,
|
||||
ToolModule,
|
||||
WorkflowModuleInjector
|
||||
)
|
||||
from galaxy.workflow.steps import attach_ordered_steps
|
||||
from .base import decode_id
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -28,7 +28,6 @@ import galaxy.model.metadata
|
||||
import galaxy.model.orm.now
|
||||
import galaxy.security.passwords
|
||||
import galaxy.util
|
||||
|
||||
from galaxy.managers import tags
|
||||
from galaxy.model.item_attrs import UsesAnnotations
|
||||
from galaxy.model.util import pgcalc
|
||||
|
||||
@@ -3,7 +3,6 @@ import os.path
|
||||
import sys
|
||||
|
||||
from migrate.versioning import repository, schema
|
||||
|
||||
from sqlalchemy import (
|
||||
create_engine,
|
||||
MetaData,
|
||||
|
||||
@@ -10,7 +10,6 @@ import os
|
||||
import random
|
||||
import shutil
|
||||
import threading
|
||||
|
||||
from xml.etree import ElementTree
|
||||
|
||||
try:
|
||||
@@ -22,11 +21,13 @@ from galaxy.exceptions import ObjectInvalid, ObjectNotFound
|
||||
from galaxy.util import (
|
||||
directory_hash_id,
|
||||
force_symlink,
|
||||
safe_makedirs,
|
||||
safe_relpath,
|
||||
umask_fix_perms,
|
||||
)
|
||||
from galaxy.util.odict import odict
|
||||
from galaxy.util.path import (
|
||||
safe_makedirs,
|
||||
safe_relpath,
|
||||
)
|
||||
from galaxy.util.sleeper import Sleeper
|
||||
|
||||
NO_SESSION_ERROR_MESSAGE = "Attempted to 'create' object store entity in configuration with no database session present."
|
||||
|
||||
@@ -7,14 +7,8 @@ import os
|
||||
import shutil
|
||||
import threading
|
||||
import time
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from galaxy.exceptions import ObjectInvalid, ObjectNotFound
|
||||
from galaxy.util import directory_hash_id, safe_relpath, umask_fix_perms
|
||||
from galaxy.util.sleeper import Sleeper
|
||||
from ..objectstore import convert_bytes, ObjectStore
|
||||
|
||||
try:
|
||||
from azure.common import AzureHttpError
|
||||
from azure.storage import CloudStorageAccount
|
||||
@@ -23,6 +17,21 @@ try:
|
||||
except ImportError:
|
||||
BlockBlobService = None
|
||||
|
||||
from galaxy.exceptions import (
|
||||
ObjectInvalid,
|
||||
ObjectNotFound
|
||||
)
|
||||
from galaxy.util import (
|
||||
directory_hash_id,
|
||||
umask_fix_perms
|
||||
)
|
||||
from galaxy.util.path import safe_relpath
|
||||
from galaxy.util.sleeper import Sleeper
|
||||
from ..objectstore import (
|
||||
convert_bytes,
|
||||
ObjectStore
|
||||
)
|
||||
|
||||
NO_BLOBSERVICE_ERROR_MESSAGE = ("ObjectStore configured, but no azure.storage.blob dependency available."
|
||||
"Please install and properly configure azure.storage.blob or modify Object Store configuration.")
|
||||
|
||||
|
||||
@@ -5,20 +5,29 @@
|
||||
import logging
|
||||
import os
|
||||
import shutil
|
||||
from galaxy.exceptions import ObjectInvalid, ObjectNotFound
|
||||
from galaxy.util import (
|
||||
directory_hash_id,
|
||||
safe_relpath,
|
||||
umask_fix_perms,
|
||||
)
|
||||
from ..objectstore import ObjectStore
|
||||
|
||||
try:
|
||||
from kamaki.clients import (
|
||||
astakos, pithos, utils, ClientError, Client as KamakiClient)
|
||||
astakos,
|
||||
Client as KamakiClient,
|
||||
ClientError,
|
||||
pithos,
|
||||
utils
|
||||
)
|
||||
except ImportError:
|
||||
KamakiClient = None
|
||||
|
||||
from galaxy.exceptions import (
|
||||
ObjectInvalid,
|
||||
ObjectNotFound
|
||||
)
|
||||
from galaxy.util import (
|
||||
directory_hash_id,
|
||||
umask_fix_perms,
|
||||
)
|
||||
from galaxy.util.path import safe_relpath
|
||||
from ..objectstore import ObjectStore
|
||||
|
||||
NO_KAMAKI_ERROR_MESSAGE = (
|
||||
"ObjectStore configured, but no kamaki.clients dependency available."
|
||||
"Please install and properly configure kamaki.clients or modify Object "
|
||||
|
||||
@@ -7,21 +7,26 @@ The module is named rods to avoid conflicting with the PyRods module, irods
|
||||
import logging
|
||||
import os
|
||||
import time
|
||||
|
||||
from posixpath import basename as path_basename
|
||||
from posixpath import dirname as path_dirname
|
||||
from posixpath import join as path_join
|
||||
|
||||
from galaxy.exceptions import ObjectInvalid, ObjectNotFound
|
||||
from galaxy.util import safe_relpath
|
||||
|
||||
from ..objectstore import DiskObjectStore, local_extra_dirs
|
||||
from posixpath import (
|
||||
basename as path_basename,
|
||||
dirname as path_dirname,
|
||||
join as path_join
|
||||
)
|
||||
|
||||
try:
|
||||
import irods
|
||||
except ImportError:
|
||||
irods = None
|
||||
|
||||
from galaxy.exceptions import (
|
||||
ObjectInvalid,
|
||||
ObjectNotFound
|
||||
)
|
||||
from galaxy.util.path import safe_relpath
|
||||
from ..objectstore import (
|
||||
DiskObjectStore,
|
||||
local_extra_dirs
|
||||
)
|
||||
|
||||
IRODS_IMPORT_MESSAGE = ('The Python irods package is required to use this '
|
||||
'feature, please install it')
|
||||
|
||||
@@ -22,13 +22,12 @@ except ImportError:
|
||||
from galaxy.exceptions import ObjectInvalid, ObjectNotFound
|
||||
from galaxy.util import (
|
||||
directory_hash_id,
|
||||
safe_relpath,
|
||||
string_as_bool,
|
||||
umask_fix_perms,
|
||||
which,
|
||||
)
|
||||
from galaxy.util.path import safe_relpath
|
||||
from galaxy.util.sleeper import Sleeper
|
||||
|
||||
from .s3_multipart_upload import multipart_upload
|
||||
from ..objectstore import convert_bytes, ObjectStore
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@ import glob
|
||||
import multiprocessing
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
from multiprocessing.pool import IMapIterator
|
||||
|
||||
try:
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
"""
|
||||
Contains OpenID provider functionality
|
||||
"""
|
||||
|
||||
import os
|
||||
import logging
|
||||
import os
|
||||
|
||||
from galaxy.util import parse_xml, string_as_bool
|
||||
from galaxy.util.odict import odict
|
||||
|
||||
|
||||
@@ -6,13 +6,13 @@ reloading the toolbox, etc., across multiple processes.
|
||||
import logging
|
||||
import threading
|
||||
|
||||
import galaxy.queues
|
||||
from galaxy import util
|
||||
|
||||
from kombu import Connection
|
||||
from kombu.mixins import ConsumerMixin
|
||||
from kombu.pools import producers
|
||||
|
||||
import galaxy.queues
|
||||
from galaxy import util
|
||||
|
||||
logging.getLogger('kombu').setLevel(logging.WARNING)
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -4,7 +4,11 @@ All message queues used by Galaxy
|
||||
|
||||
"""
|
||||
|
||||
from kombu import Exchange, Queue, Connection
|
||||
from kombu import (
|
||||
Connection,
|
||||
Exchange,
|
||||
Queue
|
||||
)
|
||||
|
||||
ALL_CONTROL = "control.*"
|
||||
galaxy_exchange = Exchange('galaxy_core_exchange', type='topic')
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
RequestType
|
||||
"""
|
||||
from galaxy.model import RequestType
|
||||
|
||||
from .sample import sample_state_factory
|
||||
|
||||
RENAME_DATASET_OPTIONS = dict([(f_type.lower(), f_descript) for f_type, f_descript in RequestType.rename_dataset_options.items()])
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user