mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge remote-tracking branch 'upstream/dev' into dev_update_rst
This commit is contained in:
@@ -18,6 +18,7 @@ database/files
|
||||
database/jobs_directory
|
||||
database/job_working_directory
|
||||
database/pbs
|
||||
database/shed_tools
|
||||
database/test_errors
|
||||
database/tmp
|
||||
database/*.sqlite
|
||||
|
||||
+1
-1
@@ -112,5 +112,5 @@ If no existing Galaxy issue seems appropriate, a new issue can be opened using
|
||||
this repository - please checkout the
|
||||
[tools-iuc](https://github.com/galaxyproject/tools-iuc) repository on GitHub.
|
||||
|
||||
More information about tool development can be found [on the comunity
|
||||
More information about tool development can be found [on the community
|
||||
hub](https://galaxyproject.org/develop).
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
<template>
|
||||
<b-card>
|
||||
<h4 slot="header" class="mb-0">
|
||||
References
|
||||
</h4>
|
||||
<table>
|
||||
<tr v-for="(xref, index) in xrefs" v-bind:key="index">
|
||||
<th> - {{xref.reftype}}: </th>
|
||||
<td>
|
||||
<template v-if="xref.reftype == 'bio.tools'">
|
||||
<a :href="`https://bio.tools/${xref.value}`" target="_blank">{{xref.value}}</a>
|
||||
</template>
|
||||
<template v-else>
|
||||
{{ xref.value }}
|
||||
</template>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</b-card>
|
||||
</template>
|
||||
<script>
|
||||
import { getAppRoot } from "onload/loadConfig";
|
||||
import axios from "axios";
|
||||
|
||||
export default {
|
||||
props: {
|
||||
source: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
id: {
|
||||
type: String,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
xrefs: [],
|
||||
errors: []
|
||||
};
|
||||
},
|
||||
created: function() {
|
||||
axios
|
||||
.get(`${getAppRoot()}api/${this.source}/${this.id}/xrefs`)
|
||||
.then(response => {
|
||||
this.xrefs = response.data;
|
||||
})
|
||||
.catch(e => {
|
||||
console.error(e);
|
||||
});
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -12,6 +12,7 @@ import Ui from "mvc/ui/ui-misc";
|
||||
import FormBase from "mvc/form/form-view";
|
||||
import Webhooks from "mvc/webhooks";
|
||||
import Citations from "components/Citations.vue";
|
||||
import xrefs from "components/xrefs.vue";
|
||||
import Vue from "vue";
|
||||
import axios from "axios";
|
||||
|
||||
@@ -279,6 +280,17 @@ export default FormBase.extend({
|
||||
}
|
||||
}).$mount(vm);
|
||||
}
|
||||
if (options.xrefs) {
|
||||
var xrefInstance = Vue.extend(xrefs);
|
||||
vm = document.createElement("div");
|
||||
$el.append(vm);
|
||||
new xrefInstance({
|
||||
propsData: {
|
||||
id: options.id,
|
||||
source: "tools"
|
||||
}
|
||||
}).$mount(vm);
|
||||
}
|
||||
return $el;
|
||||
},
|
||||
|
||||
|
||||
@@ -18,6 +18,8 @@ $tag:tool|description://element[@name='tool']//element[@name='description']
|
||||
$tag:tool|macros://complexType[@name='Macros']
|
||||
$tag:tool|edam_topics://complexType[@name='EdamTopics']
|
||||
$tag:tool|edam_operations://complexType[@name='EdamOperations']
|
||||
$tag:tool|xrefs://complexType[@name='xrefs']
|
||||
$tag:tool|xrefs|xref://complexType[@name='xref']
|
||||
$tag:tool|requirements://complexType[@name='Requirements']
|
||||
$tag:tool|requirements|requirement://complexType[@name='Requirement']
|
||||
$tag:tool|requirements|container://complexType[@name='Container']
|
||||
|
||||
@@ -2394,22 +2394,3 @@ class NoopQueue(object):
|
||||
|
||||
def shutdown(self):
|
||||
return
|
||||
|
||||
|
||||
class ParallelismInfo(object):
|
||||
"""
|
||||
Stores the information (if any) for running multiple instances of the tool in parallel
|
||||
on the same set of inputs.
|
||||
"""
|
||||
|
||||
def __init__(self, tag):
|
||||
self.method = tag.get('method')
|
||||
if isinstance(tag, dict):
|
||||
items = tag.items()
|
||||
else:
|
||||
items = tag.attrib.items()
|
||||
self.attributes = dict([item for item in items if item[0] != 'method'])
|
||||
if len(self.attributes) == 0:
|
||||
# legacy basic mode - provide compatible defaults
|
||||
self.attributes['split_size'] = 20
|
||||
self.attributes['split_mode'] = 'number_of_parts'
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import logging
|
||||
import os
|
||||
|
||||
from ..deps import commands
|
||||
from ..deps import docker_util
|
||||
from ..deps.container_classes import docker_cache_path
|
||||
from ..deps.requirements import parse_requirements_from_xml
|
||||
from ...tools import loader_directory
|
||||
from galaxy.tool_util.deps import commands
|
||||
from galaxy.tool_util.deps import docker_util
|
||||
from galaxy.tool_util.deps.container_classes import docker_cache_path
|
||||
from galaxy.tool_util.deps.requirements import parse_requirements_from_xml
|
||||
from galaxy.tool_util.loader_directory import load_tool_elements_from_path
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@@ -22,7 +22,7 @@ def docker_host_args(**kwds):
|
||||
def dockerfile_build(path, dockerfile=None, error=log.error, **kwds):
|
||||
expected_container_names = set()
|
||||
tool_directories = set()
|
||||
for (tool_path, tool_xml) in loader_directory.load_tool_elements_from_path(path):
|
||||
for (tool_path, tool_xml) in load_tool_elements_from_path(path):
|
||||
requirements, containers = parse_requirements_from_xml(tool_xml)
|
||||
for container in containers:
|
||||
if container.type == "docker":
|
||||
|
||||
@@ -95,6 +95,12 @@ class XmlToolSource(ToolSource):
|
||||
return []
|
||||
return [edam_topic.text for edam_topic in edam_topics.findall("edam_topic")]
|
||||
|
||||
def parse_xrefs(self):
|
||||
xrefs = self.root.find("xrefs")
|
||||
if xrefs is None:
|
||||
return []
|
||||
return [dict(value=xref.text.strip(), reftype=xref.attrib['type']) for xref in xrefs.findall("xref") if xref.get("type")]
|
||||
|
||||
def parse_description(self):
|
||||
return xml_text(self.root, "description")
|
||||
|
||||
@@ -191,7 +197,6 @@ class XmlToolSource(ToolSource):
|
||||
parallelism = self.root.find("parallelism")
|
||||
parallelism_info = None
|
||||
if parallelism is not None and parallelism.get("method"):
|
||||
from galaxy.jobs import ParallelismInfo
|
||||
return ParallelismInfo(parallelism)
|
||||
return parallelism_info
|
||||
|
||||
@@ -1092,3 +1097,22 @@ class XmlInputSource(InputSource):
|
||||
case_page_source = XmlPageSource(case_elem)
|
||||
sources.append((value, case_page_source))
|
||||
return sources
|
||||
|
||||
|
||||
class ParallelismInfo(object):
|
||||
"""
|
||||
Stores the information (if any) for running multiple instances of the tool in parallel
|
||||
on the same set of inputs.
|
||||
"""
|
||||
|
||||
def __init__(self, tag):
|
||||
self.method = tag.get('method')
|
||||
if isinstance(tag, dict):
|
||||
items = tag.items()
|
||||
else:
|
||||
items = tag.attrib.items()
|
||||
self.attributes = dict([item for item in items if item[0] != 'method'])
|
||||
if len(self.attributes) == 0:
|
||||
# legacy basic mode - provide compatible defaults
|
||||
self.attributes['split_size'] = 20
|
||||
self.attributes['split_mode'] = 'number_of_parts'
|
||||
|
||||
@@ -40,6 +40,10 @@ class YamlToolSource(ToolSource):
|
||||
def parse_edam_topics(self):
|
||||
return self.root_dict.get("edam_topics", [])
|
||||
|
||||
def parse_xrefs(self):
|
||||
xrefs = self.root_dict.get("xrefs", [])
|
||||
return [dict(value=xref["value"], reftype=xref["type"]) for xref in xrefs if xref["type"]]
|
||||
|
||||
def parse_is_multi_byte(self):
|
||||
return self.root_dict.get("is_multi_byte", self.default_is_multi_byte)
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ A ``data_source`` tool contains a few more relevant attributes.
|
||||
<xs:element name="macros" type="Macros" minOccurs="0"/>
|
||||
<xs:element name="edam_topics" type="EdamTopics" minOccurs="0"/>
|
||||
<xs:element name="edam_operations" type="EdamOperations" minOccurs="0"/>
|
||||
<xs:element name="xrefs" type="xrefs" minOccurs="0" />
|
||||
<xs:element name="requirements" type="Requirements" minOccurs="0"/>
|
||||
<xs:element name="description" type="xs:string" minOccurs="0">
|
||||
<xs:annotation gxdocs:best_practices="tool-descriptions">
|
||||
@@ -5581,14 +5582,60 @@ A tool can have any number of EDAM operation references.
|
||||
]]></xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="edam_operation" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="operation_[0-9]{4}"></xs:pattern>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="edam_operation" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="operation_[0-9]{4}"></xs:pattern>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="xrefs">
|
||||
<xs:annotation>
|
||||
<xs:documentation xml:lang="en"><![CDATA[
|
||||
Container tag set for the ``<xref>`` tags.
|
||||
A tool can refer multiple reference IDs.
|
||||
|
||||
```xml
|
||||
<!-- Example: this tool is seqtk -->
|
||||
<xrefs>
|
||||
<xref type="bio.tools">seqtk</xref>
|
||||
</xrefs>
|
||||
<!-- https://bio.tools/seqtk -->
|
||||
```
|
||||
|
||||
]]></xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="xref" type="xref" minOccurs="0" maxOccurs="unbounded">
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="xref">
|
||||
<xs:annotation>
|
||||
<xs:documentation xml:lang="en">The ``xref`` element specifies reference
|
||||
information according to a catalog.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="type" type="xrefType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation xml:lang="en">Type of reference - currently ``bio.tools``
|
||||
is the only supported options.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="xrefType">
|
||||
<xs:annotation>
|
||||
<xs:documentation xml:lang="en">Type of Reference.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="bio.tools"/>
|
||||
<!--xs:enumeration value="whatelse"/-->
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
</xs:schema>
|
||||
|
||||
@@ -797,6 +797,7 @@ class Tool(Dictifiable):
|
||||
self.containers = containers
|
||||
|
||||
self.citations = self._parse_citations(tool_source)
|
||||
self.xrefs = tool_source.parse_xrefs()
|
||||
|
||||
# Determine if this tool can be used in workflows
|
||||
self.is_workflow_compatible = self.check_workflow_compatible(tool_source)
|
||||
@@ -1865,6 +1866,7 @@ class Tool(Dictifiable):
|
||||
|
||||
tool_dict["edam_operations"] = self.edam_operations
|
||||
tool_dict["edam_topics"] = self.edam_topics
|
||||
tool_dict["xrefs"] = self.xrefs
|
||||
|
||||
# Fill in ToolShedRepository info
|
||||
if hasattr(self, 'tool_shed') and self.tool_shed:
|
||||
|
||||
@@ -12,7 +12,7 @@ from six.moves.urllib.parse import urlparse
|
||||
|
||||
from galaxy.exceptions import MessageException, ObjectNotFound
|
||||
from galaxy.tool_util.deps import build_dependency_manager
|
||||
from galaxy.tools.loader_directory import looks_like_a_tool
|
||||
from galaxy.tool_util.loader_directory import looks_like_a_tool
|
||||
from galaxy.util import (
|
||||
ExecutionTimer,
|
||||
listify,
|
||||
|
||||
@@ -403,6 +403,11 @@ class ToolsController(BaseAPIController, UsesVisualizationMixin):
|
||||
rval.append(citation.to_dict('bibtex'))
|
||||
return rval
|
||||
|
||||
@expose_api_anonymous_and_sessionless
|
||||
def xrefs(self, trans, id, **kwds):
|
||||
tool = self._get_tool(id, user=trans.user)
|
||||
return tool.xrefs
|
||||
|
||||
@web.legacy_expose_api_raw
|
||||
@web.require_admin
|
||||
def download(self, trans, id, **kwds):
|
||||
|
||||
@@ -349,6 +349,7 @@ def populate_api_routes(webapp, app):
|
||||
webapp.mapper.connect('/api/tools/{id:.+?}/test_data', action='test_data', controller="tools")
|
||||
webapp.mapper.connect('/api/tools/{id:.+?}/diagnostics', action='diagnostics', controller="tools")
|
||||
webapp.mapper.connect('/api/tools/{id:.+?}/citations', action='citations', controller="tools")
|
||||
webapp.mapper.connect('/api/tools/{id:.+?}/xrefs', action='xrefs', controller="tools")
|
||||
webapp.mapper.connect('/api/tools/{id:.+?}/download', action='download', controller="tools")
|
||||
webapp.mapper.connect('/api/tools/{id:.+?}/requirements', action='requirements', controller="tools")
|
||||
webapp.mapper.connect('/api/tools/{id:.+?}/install_dependencies', action='install_dependencies', controller="tools", conditions=dict(method=["POST"]))
|
||||
|
||||
@@ -6,9 +6,9 @@ import tempfile
|
||||
from sqlalchemy import and_
|
||||
|
||||
from galaxy import util
|
||||
from galaxy.tool_util.loader_directory import looks_like_a_tool
|
||||
from galaxy.tool_util.parser.interface import TestCollectionDef
|
||||
from galaxy.tools.data_manager.manager import DataManager
|
||||
from galaxy.tools.loader_directory import looks_like_a_tool
|
||||
from galaxy.tools.repositories import ValidationContext
|
||||
from galaxy.web import url_for
|
||||
from tool_shed.repository_types import util as rt_util
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
.. :changelog:
|
||||
|
||||
History
|
||||
-------
|
||||
|
||||
.. to_doc
|
||||
|
||||
---------------------
|
||||
19.9.0.dev0
|
||||
---------------------
|
||||
|
||||
* Initial import from dev branch of Galaxy during 19.09 development cycle.
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../LICENSE.txt
|
||||
@@ -0,0 +1 @@
|
||||
include *.rst LICENSE
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../package.Makefile
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
.. image:: https://badge.fury.io/py/galaxy-app.svg
|
||||
:target: https://pypi.org/project/galaxy-app/
|
||||
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
The Galaxy_ application logic (backend).
|
||||
|
||||
* Free software: Academic Free License version 3.0
|
||||
* Code: https://github.com/galaxyproject/galaxy
|
||||
|
||||
.. _Galaxy: http://galaxyproject.org/
|
||||
+1
@@ -0,0 +1 @@
|
||||
../package-dev-requirements.txt
|
||||
@@ -0,0 +1 @@
|
||||
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../../lib/galaxy/actions
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../../lib/galaxy/forms
|
||||
@@ -0,0 +1,13 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
__version__ = '19.9.0.dev0'
|
||||
|
||||
PROJECT_NAME = "galaxy-app"
|
||||
PROJECT_OWNER = PROJECT_USERAME = "galaxyproject"
|
||||
PROJECT_URL = "https://github.com/galaxyproject/galaxy"
|
||||
PROJECT_AUTHOR = 'Galaxy Project and Community'
|
||||
PROJECT_DESCRIPTION = 'Galaxy Application (backend)'
|
||||
PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org'
|
||||
RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % (
|
||||
PROJECT_USERAME, PROJECT_NAME
|
||||
)
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../../lib/galaxy/tours
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../../lib/galaxy/webhooks
|
||||
@@ -0,0 +1,3 @@
|
||||
galaxy-auth
|
||||
galaxy-job-execution
|
||||
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../build_scripts
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../setup.cfg
|
||||
@@ -0,0 +1,103 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import ast
|
||||
import os
|
||||
import re
|
||||
try:
|
||||
from setuptools import setup
|
||||
except ImportError:
|
||||
from distutils.core import setup
|
||||
|
||||
SOURCE_DIR = "galaxy"
|
||||
|
||||
_version_re = re.compile(r'__version__\s+=\s+(.*)')
|
||||
|
||||
project_short_name = os.path.basename(os.path.dirname(os.path.realpath(__file__)))
|
||||
with open('%s/project_galaxy_%s.py' % (SOURCE_DIR, project_short_name), 'rb') as f:
|
||||
init_contents = f.read().decode('utf-8')
|
||||
|
||||
def get_var(var_name):
|
||||
pattern = re.compile(r'%s\s+=\s+(.*)' % var_name)
|
||||
match = pattern.search(init_contents).group(1)
|
||||
return str(ast.literal_eval(match))
|
||||
|
||||
version = get_var("__version__")
|
||||
PROJECT_NAME = get_var("PROJECT_NAME")
|
||||
PROJECT_URL = get_var("PROJECT_URL")
|
||||
PROJECT_AUTHOR = get_var("PROJECT_AUTHOR")
|
||||
PROJECT_EMAIL = get_var("PROJECT_EMAIL")
|
||||
PROJECT_DESCRIPTION = get_var("PROJECT_DESCRIPTION")
|
||||
|
||||
TEST_DIR = 'tests'
|
||||
PACKAGES = [
|
||||
'galaxy',
|
||||
'galaxy.actions',
|
||||
'galaxy.forms',
|
||||
'galaxy.tours',
|
||||
'galaxy.webhooks',
|
||||
]
|
||||
ENTRY_POINTS = '''
|
||||
[console_scripts]
|
||||
'''
|
||||
PACKAGE_DATA = {
|
||||
# Be sure to update MANIFEST.in for source dist.
|
||||
'galaxy': [
|
||||
],
|
||||
}
|
||||
PACKAGE_DIR = {
|
||||
SOURCE_DIR: SOURCE_DIR,
|
||||
}
|
||||
|
||||
readme = open('README.rst').read()
|
||||
history = open('HISTORY.rst').read().replace('.. :changelog:', '')
|
||||
|
||||
if os.path.exists("requirements.txt"):
|
||||
requirements = open("requirements.txt").read().split("\n")
|
||||
else:
|
||||
# In tox, it will cover them anyway.
|
||||
requirements = []
|
||||
|
||||
|
||||
test_requirements = [
|
||||
# TODO: put package test requirements here
|
||||
]
|
||||
|
||||
|
||||
setup(
|
||||
name=PROJECT_NAME,
|
||||
version=version,
|
||||
description=PROJECT_DESCRIPTION,
|
||||
long_description=readme + '\n\n' + history,
|
||||
long_description_content_type='text/x-rst',
|
||||
author=PROJECT_AUTHOR,
|
||||
author_email=PROJECT_EMAIL,
|
||||
url=PROJECT_URL,
|
||||
packages=PACKAGES,
|
||||
entry_points=ENTRY_POINTS,
|
||||
package_data=PACKAGE_DATA,
|
||||
package_dir=PACKAGE_DIR,
|
||||
include_package_data=True,
|
||||
install_requires=requirements,
|
||||
license="AFL",
|
||||
zip_safe=False,
|
||||
keywords='galaxy',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Intended Audience :: Developers',
|
||||
'Environment :: Console',
|
||||
'License :: OSI Approved :: Academic Free License (AFL)',
|
||||
'Operating System :: POSIX',
|
||||
'Topic :: Software Development',
|
||||
'Topic :: Software Development :: Code Generators',
|
||||
'Topic :: Software Development :: Testing',
|
||||
'Natural Language :: English',
|
||||
"Programming Language :: Python :: 2",
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3.5',
|
||||
'Programming Language :: Python :: 3.6',
|
||||
'Programming Language :: Python :: 3.7',
|
||||
],
|
||||
test_suite=TEST_DIR,
|
||||
tests_require=test_requirements
|
||||
)
|
||||
@@ -0,0 +1,12 @@
|
||||
.. :changelog:
|
||||
|
||||
History
|
||||
-------
|
||||
|
||||
.. to_doc
|
||||
|
||||
---------------------
|
||||
19.9.0.dev0
|
||||
---------------------
|
||||
|
||||
* Initial import from dev branch of Galaxy during 19.09 development cycle.
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../LICENSE.txt
|
||||
@@ -0,0 +1 @@
|
||||
include *.rst LICENSE
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../package.Makefile
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
.. image:: https://badge.fury.io/py/galaxy-auth.svg
|
||||
:target: https://pypi.org/project/galaxy-auth/
|
||||
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
The Galaxy_ auth framework and default plugins.
|
||||
|
||||
* Free software: Academic Free License version 3.0
|
||||
* Code: https://github.com/galaxyproject/galaxy
|
||||
|
||||
.. _Galaxy: http://galaxyproject.org/
|
||||
+1
@@ -0,0 +1 @@
|
||||
../package-dev-requirements.txt
|
||||
@@ -0,0 +1 @@
|
||||
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../../lib/galaxy/auth
|
||||
@@ -0,0 +1,13 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
__version__ = '19.9.0.dev0'
|
||||
|
||||
PROJECT_NAME = "galaxy-auth"
|
||||
PROJECT_OWNER = PROJECT_USERAME = "galaxyproject"
|
||||
PROJECT_URL = "https://github.com/galaxyproject/galaxy"
|
||||
PROJECT_AUTHOR = 'Galaxy Project and Community'
|
||||
PROJECT_DESCRIPTION = 'Galaxy Auth Framework and Implementations'
|
||||
PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org'
|
||||
RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % (
|
||||
PROJECT_USERAME, PROJECT_NAME
|
||||
)
|
||||
@@ -0,0 +1 @@
|
||||
galaxy-data
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../build_scripts
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../setup.cfg
|
||||
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import ast
|
||||
import os
|
||||
import re
|
||||
try:
|
||||
from setuptools import setup
|
||||
except ImportError:
|
||||
from distutils.core import setup
|
||||
|
||||
SOURCE_DIR = "galaxy"
|
||||
|
||||
_version_re = re.compile(r'__version__\s+=\s+(.*)')
|
||||
|
||||
project_short_name = os.path.basename(os.path.dirname(os.path.realpath(__file__)))
|
||||
with open('%s/project_galaxy_%s.py' % (SOURCE_DIR, project_short_name), 'rb') as f:
|
||||
init_contents = f.read().decode('utf-8')
|
||||
|
||||
def get_var(var_name):
|
||||
pattern = re.compile(r'%s\s+=\s+(.*)' % var_name)
|
||||
match = pattern.search(init_contents).group(1)
|
||||
return str(ast.literal_eval(match))
|
||||
|
||||
version = get_var("__version__")
|
||||
PROJECT_NAME = get_var("PROJECT_NAME")
|
||||
PROJECT_URL = get_var("PROJECT_URL")
|
||||
PROJECT_AUTHOR = get_var("PROJECT_AUTHOR")
|
||||
PROJECT_EMAIL = get_var("PROJECT_EMAIL")
|
||||
PROJECT_DESCRIPTION = get_var("PROJECT_DESCRIPTION")
|
||||
|
||||
TEST_DIR = 'tests'
|
||||
PACKAGES = [
|
||||
'galaxy',
|
||||
'galaxy.auth',
|
||||
'galaxy.auth.providers',
|
||||
]
|
||||
ENTRY_POINTS = '''
|
||||
[console_scripts]
|
||||
'''
|
||||
PACKAGE_DATA = {
|
||||
# Be sure to update MANIFEST.in for source dist.
|
||||
'galaxy': [
|
||||
],
|
||||
}
|
||||
PACKAGE_DIR = {
|
||||
SOURCE_DIR: SOURCE_DIR,
|
||||
}
|
||||
|
||||
readme = open('README.rst').read()
|
||||
history = open('HISTORY.rst').read().replace('.. :changelog:', '')
|
||||
|
||||
if os.path.exists("requirements.txt"):
|
||||
requirements = open("requirements.txt").read().split("\n")
|
||||
else:
|
||||
# In tox, it will cover them anyway.
|
||||
requirements = []
|
||||
|
||||
|
||||
test_requirements = [
|
||||
# TODO: put package test requirements here
|
||||
]
|
||||
|
||||
|
||||
setup(
|
||||
name=PROJECT_NAME,
|
||||
version=version,
|
||||
description=PROJECT_DESCRIPTION,
|
||||
long_description=readme + '\n\n' + history,
|
||||
long_description_content_type='text/x-rst',
|
||||
author=PROJECT_AUTHOR,
|
||||
author_email=PROJECT_EMAIL,
|
||||
url=PROJECT_URL,
|
||||
packages=PACKAGES,
|
||||
entry_points=ENTRY_POINTS,
|
||||
package_data=PACKAGE_DATA,
|
||||
package_dir=PACKAGE_DIR,
|
||||
include_package_data=True,
|
||||
install_requires=requirements,
|
||||
license="AFL",
|
||||
zip_safe=False,
|
||||
keywords='galaxy',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Intended Audience :: Developers',
|
||||
'Environment :: Console',
|
||||
'License :: OSI Approved :: Academic Free License (AFL)',
|
||||
'Operating System :: POSIX',
|
||||
'Topic :: Software Development',
|
||||
'Topic :: Software Development :: Code Generators',
|
||||
'Topic :: Software Development :: Testing',
|
||||
'Natural Language :: English',
|
||||
"Programming Language :: Python :: 2",
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3.5',
|
||||
'Programming Language :: Python :: 3.6',
|
||||
'Programming Language :: Python :: 3.7',
|
||||
],
|
||||
test_suite=TEST_DIR,
|
||||
tests_require=test_requirements
|
||||
)
|
||||
@@ -0,0 +1,12 @@
|
||||
.. :changelog:
|
||||
|
||||
History
|
||||
-------
|
||||
|
||||
.. to_doc
|
||||
|
||||
---------------------
|
||||
19.9.0.dev0
|
||||
---------------------
|
||||
|
||||
* Initial import from dev branch of Galaxy during 19.09 development cycle.
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../LICENSE.txt
|
||||
@@ -0,0 +1 @@
|
||||
include *.rst LICENSE
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../package.Makefile
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
.. image:: https://badge.fury.io/py/galaxy-authnz.svg
|
||||
:target: https://pypi.org/project/galaxy-authnz/
|
||||
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
The Galaxy_ authnz module.
|
||||
|
||||
* Free software: Academic Free License version 3.0
|
||||
* Code: https://github.com/galaxyproject/galaxy
|
||||
|
||||
.. _Galaxy: http://galaxyproject.org/
|
||||
+1
@@ -0,0 +1 @@
|
||||
../package-dev-requirements.txt
|
||||
@@ -0,0 +1 @@
|
||||
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../../lib/galaxy/authnz
|
||||
@@ -0,0 +1,13 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
__version__ = '19.9.0.dev0'
|
||||
|
||||
PROJECT_NAME = "galaxy-authnz"
|
||||
PROJECT_OWNER = PROJECT_USERAME = "galaxyproject"
|
||||
PROJECT_URL = "https://github.com/galaxyproject/galaxy"
|
||||
PROJECT_AUTHOR = 'Galaxy Project and Community'
|
||||
PROJECT_DESCRIPTION = 'Galaxy AuthNZ'
|
||||
PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org'
|
||||
RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % (
|
||||
PROJECT_USERAME, PROJECT_NAME
|
||||
)
|
||||
@@ -0,0 +1,7 @@
|
||||
galaxy-data
|
||||
pyjwt
|
||||
cloudauthz
|
||||
# Following three shouldn't be needed, cloudauthz should be updated to require them
|
||||
google-api-python-client
|
||||
httplib2
|
||||
oauth2client
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../build_scripts
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../setup.cfg
|
||||
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import ast
|
||||
import os
|
||||
import re
|
||||
try:
|
||||
from setuptools import setup
|
||||
except ImportError:
|
||||
from distutils.core import setup
|
||||
|
||||
SOURCE_DIR = "galaxy"
|
||||
|
||||
_version_re = re.compile(r'__version__\s+=\s+(.*)')
|
||||
|
||||
project_short_name = os.path.basename(os.path.dirname(os.path.realpath(__file__)))
|
||||
with open('%s/project_galaxy_%s.py' % (SOURCE_DIR, project_short_name), 'rb') as f:
|
||||
init_contents = f.read().decode('utf-8')
|
||||
|
||||
def get_var(var_name):
|
||||
pattern = re.compile(r'%s\s+=\s+(.*)' % var_name)
|
||||
match = pattern.search(init_contents).group(1)
|
||||
return str(ast.literal_eval(match))
|
||||
|
||||
version = get_var("__version__")
|
||||
PROJECT_NAME = get_var("PROJECT_NAME")
|
||||
PROJECT_URL = get_var("PROJECT_URL")
|
||||
PROJECT_AUTHOR = get_var("PROJECT_AUTHOR")
|
||||
PROJECT_EMAIL = get_var("PROJECT_EMAIL")
|
||||
PROJECT_DESCRIPTION = get_var("PROJECT_DESCRIPTION")
|
||||
|
||||
TEST_DIR = 'tests'
|
||||
PACKAGES = [
|
||||
'galaxy',
|
||||
'galaxy.authnz',
|
||||
]
|
||||
ENTRY_POINTS = '''
|
||||
[console_scripts]
|
||||
'''
|
||||
PACKAGE_DATA = {
|
||||
# Be sure to update MANIFEST.in for source dist.
|
||||
'galaxy': [
|
||||
],
|
||||
}
|
||||
PACKAGE_DIR = {
|
||||
SOURCE_DIR: SOURCE_DIR,
|
||||
}
|
||||
|
||||
readme = open('README.rst').read()
|
||||
history = open('HISTORY.rst').read().replace('.. :changelog:', '')
|
||||
|
||||
if os.path.exists("requirements.txt"):
|
||||
requirements = open("requirements.txt").read().split("\n")
|
||||
else:
|
||||
# In tox, it will cover them anyway.
|
||||
requirements = []
|
||||
|
||||
|
||||
test_requirements = [
|
||||
# TODO: put package test requirements here
|
||||
]
|
||||
|
||||
|
||||
setup(
|
||||
name=PROJECT_NAME,
|
||||
version=version,
|
||||
description=PROJECT_DESCRIPTION,
|
||||
long_description=readme + '\n\n' + history,
|
||||
long_description_content_type='text/x-rst',
|
||||
author=PROJECT_AUTHOR,
|
||||
author_email=PROJECT_EMAIL,
|
||||
url=PROJECT_URL,
|
||||
packages=PACKAGES,
|
||||
entry_points=ENTRY_POINTS,
|
||||
package_data=PACKAGE_DATA,
|
||||
package_dir=PACKAGE_DIR,
|
||||
include_package_data=True,
|
||||
install_requires=requirements,
|
||||
license="AFL",
|
||||
zip_safe=False,
|
||||
keywords='galaxy',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Intended Audience :: Developers',
|
||||
'Environment :: Console',
|
||||
'License :: OSI Approved :: Academic Free License (AFL)',
|
||||
'Operating System :: POSIX',
|
||||
'Topic :: Software Development',
|
||||
'Topic :: Software Development :: Code Generators',
|
||||
'Topic :: Software Development :: Testing',
|
||||
'Natural Language :: English',
|
||||
"Programming Language :: Python :: 2",
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3.5',
|
||||
'Programming Language :: Python :: 3.6',
|
||||
'Programming Language :: Python :: 3.7',
|
||||
],
|
||||
test_suite=TEST_DIR,
|
||||
tests_require=test_requirements
|
||||
)
|
||||
@@ -0,0 +1 @@
|
||||
../../../test/unit/authnz/test_custos_authnz.py
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
.. image:: https://badge.fury.io/py/galaxy-containers.svg
|
||||
:target: https://pypi.python.org/pypi/galaxy-containers/
|
||||
:target: https://pypi.org/project/galaxy-containers/
|
||||
|
||||
|
||||
Overview
|
||||
|
||||
@@ -7,7 +7,7 @@ PROJECT_OWNER = PROJECT_USERAME = "galaxyproject"
|
||||
PROJECT_URL = "https://github.com/galaxyproject/galaxy"
|
||||
PROJECT_AUTHOR = 'Galaxy Project and Community'
|
||||
PROJECT_DESCRIPTION = 'Galaxy Container Modeling and Interaction Abstractions'
|
||||
PROJECT_EMAIL = 'jmchilton@gmail.com'
|
||||
PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org'
|
||||
RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % (
|
||||
PROJECT_USERAME, PROJECT_NAME
|
||||
)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
.. image:: https://badge.fury.io/py/galaxy-data.svg
|
||||
:target: https://pypi.python.org/pypi/galaxy-data/
|
||||
:target: https://pypi.org/project/galaxy-data/
|
||||
|
||||
|
||||
Overview
|
||||
|
||||
@@ -7,7 +7,7 @@ PROJECT_OWNER = PROJECT_USERAME = "galaxyproject"
|
||||
PROJECT_URL = "https://github.com/galaxyproject/galaxy"
|
||||
PROJECT_AUTHOR = 'Galaxy Project and Community'
|
||||
PROJECT_DESCRIPTION = 'Galaxy Datatype Framework and Datatypes'
|
||||
PROJECT_EMAIL = 'jmchilton@gmail.com'
|
||||
PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org'
|
||||
RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % (
|
||||
PROJECT_USERAME, PROJECT_NAME
|
||||
)
|
||||
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../../lib/galaxy/quota
|
||||
@@ -42,6 +42,7 @@ PACKAGES = [
|
||||
'galaxy.model.orm',
|
||||
'galaxy.model.store',
|
||||
'galaxy.model.tool_shed_install',
|
||||
'galaxy.quota',
|
||||
'galaxy.security',
|
||||
]
|
||||
ENTRY_POINTS = '''
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
.. image:: https://badge.fury.io/py/galaxy-job-execution.svg
|
||||
:target: https://pypi.python.org/pypi/galaxy-job-execution/
|
||||
:target: https://pypi.org/project/galaxy-job-execution/
|
||||
|
||||
|
||||
Overview
|
||||
|
||||
@@ -7,7 +7,7 @@ PROJECT_OWNER = PROJECT_USERAME = "galaxyproject"
|
||||
PROJECT_URL = "https://github.com/galaxyproject/galaxy"
|
||||
PROJECT_AUTHOR = 'Galaxy Project and Community'
|
||||
PROJECT_DESCRIPTION = 'Galaxy Job Execution Runtime Utilities'
|
||||
PROJECT_EMAIL = 'jmchilton@gmail.com'
|
||||
PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org'
|
||||
RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % (
|
||||
PROJECT_USERAME, PROJECT_NAME
|
||||
)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
.. image:: https://badge.fury.io/py/galaxy-job-metrics.svg
|
||||
:target: https://pypi.python.org/pypi/galaxy-job-metrics/
|
||||
:target: https://pypi.org/project/galaxy-job-metrics/
|
||||
|
||||
|
||||
Overview
|
||||
|
||||
@@ -7,7 +7,7 @@ PROJECT_OWNER = PROJECT_USERAME = "galaxyproject"
|
||||
PROJECT_URL = "https://github.com/galaxyproject/galaxy"
|
||||
PROJECT_AUTHOR = 'Galaxy Project and Community'
|
||||
PROJECT_DESCRIPTION = 'Galaxy Job Metrics'
|
||||
PROJECT_EMAIL = 'jmchilton@gmail.com'
|
||||
PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org'
|
||||
RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % (
|
||||
PROJECT_USERAME, PROJECT_NAME
|
||||
)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
.. image:: https://badge.fury.io/py/galaxy-objectstore.svg
|
||||
:target: https://pypi.python.org/pypi/galaxy-objectstore/
|
||||
:target: https://pypi.org/project/galaxy-objectstore/
|
||||
|
||||
|
||||
Overview
|
||||
|
||||
@@ -7,7 +7,7 @@ PROJECT_OWNER = PROJECT_USERAME = "galaxyproject"
|
||||
PROJECT_URL = "https://github.com/galaxyproject/galaxy"
|
||||
PROJECT_AUTHOR = 'Galaxy Project and Community'
|
||||
PROJECT_DESCRIPTION = 'Galaxy Objectstore Framework and Plugins'
|
||||
PROJECT_EMAIL = 'jmchilton@gmail.com'
|
||||
PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org'
|
||||
RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % (
|
||||
PROJECT_USERAME, PROJECT_NAME
|
||||
)
|
||||
|
||||
+4
-1
@@ -22,10 +22,13 @@ PACKAGE_DIRS=(
|
||||
tool_util
|
||||
data
|
||||
job_execution
|
||||
auth
|
||||
authnz
|
||||
app
|
||||
)
|
||||
# containers has no tests, tool_util not yet working 100%,
|
||||
# data has many problems quota, tool shed install database, etc..
|
||||
RUN_TESTS=(1 1 1 0 0 0 0 1)
|
||||
RUN_TESTS=(1 1 1 0 1 0 0 0 1 0)
|
||||
|
||||
for ((i=0; i<${#PACKAGE_DIRS[@]}; i++)); do
|
||||
package_dir=${PACKAGE_DIRS[$i]}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
.. image:: https://badge.fury.io/py/galaxy-tool-util.svg
|
||||
:target: https://pypi.python.org/pypi/galaxy-tool-util/
|
||||
:target: https://pypi.org/project/galaxy-tool-util/
|
||||
|
||||
|
||||
Overview
|
||||
|
||||
@@ -7,7 +7,7 @@ PROJECT_OWNER = PROJECT_USERAME = "galaxyproject"
|
||||
PROJECT_URL = "https://github.com/galaxyproject/galaxy"
|
||||
PROJECT_AUTHOR = 'Galaxy Project and Community'
|
||||
PROJECT_DESCRIPTION = 'Galaxy Tool and Tool Dependency Utilities'
|
||||
PROJECT_EMAIL = 'jmchilton@gmail.com'
|
||||
PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org'
|
||||
RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % (
|
||||
PROJECT_USERAME, PROJECT_NAME
|
||||
)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
.. image:: https://badge.fury.io/py/galaxy-util.svg
|
||||
:target: https://pypi.python.org/pypi/galaxy-util/
|
||||
:target: https://pypi.org/project/galaxy-util/
|
||||
|
||||
|
||||
Overview
|
||||
|
||||
@@ -7,7 +7,7 @@ PROJECT_OWNER = PROJECT_USERAME = "galaxyproject"
|
||||
PROJECT_URL = "https://github.com/galaxyproject/galaxy"
|
||||
PROJECT_AUTHOR = 'Galaxy Project and Community'
|
||||
PROJECT_DESCRIPTION = 'Galaxy Generic Utilities'
|
||||
PROJECT_EMAIL = 'jmchilton@gmail.com'
|
||||
PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org'
|
||||
RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % (
|
||||
PROJECT_USERAME, PROJECT_NAME
|
||||
)
|
||||
|
||||
@@ -24,7 +24,7 @@ from whoosh.filedb.filestore import FileStorage
|
||||
sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, 'lib')))
|
||||
|
||||
import galaxy.webapps.tool_shed.model.mapping
|
||||
from galaxy.tools.loader_directory import load_tool_elements_from_path
|
||||
from galaxy.tool_util.loader_directory import load_tool_elements_from_path
|
||||
from galaxy.util import (
|
||||
directory_hash_id,
|
||||
pretty_print_time_interval,
|
||||
|
||||
@@ -12,6 +12,9 @@ from galaxy.util import galaxy_directory
|
||||
TOOL_XML_1 = """
|
||||
<tool name="BWA Mapper" id="bwa" version="1.0.1" is_multi_byte="true" display_interface="true" require_login="true" hidden="true">
|
||||
<description>The BWA Mapper</description>
|
||||
<xrefs>
|
||||
<xref type="bio.tools">bwa</xref>
|
||||
</xrefs>
|
||||
<version_command interpreter="python">bwa.py --version</version_command>
|
||||
<parallelism method="multi" split_inputs="input1" split_mode="to_size" split_size="1" merge_outputs="out_file1" />
|
||||
<command interpreter="python">bwa.py --arg1=42</command>
|
||||
@@ -84,6 +87,9 @@ class: GalaxyTool
|
||||
id: bowtie
|
||||
version: 1.0.2
|
||||
description: "The Bowtie Mapper"
|
||||
xrefs:
|
||||
- type: bio.tools
|
||||
value: bwa
|
||||
command: "bowtie_wrapper.pl --map-the-stuff"
|
||||
interpreter: "perl"
|
||||
runtime_version:
|
||||
@@ -311,6 +317,10 @@ class XmlLoaderTestCase(BaseLoaderTestCase):
|
||||
assert attributes1["compare"] == "sim_size"
|
||||
assert attributes1["lines_diff"] == 4
|
||||
|
||||
def test_xrefs(self):
|
||||
xrefs = self._tool_source.parse_xrefs()
|
||||
assert xrefs == [{'value': 'bwa', 'reftype': 'bio.tools'}]
|
||||
|
||||
def test_exit_code(self):
|
||||
tool_source = self._get_tool_source(source_contents="""<tool id="bwa" name="bwa">
|
||||
<command detect_errors="exit_code">
|
||||
@@ -468,6 +478,10 @@ class YamlLoaderTestCase(BaseLoaderTestCase):
|
||||
assert attributes1["compare"] == "sim_size"
|
||||
assert attributes1["lines_diff"] == 4
|
||||
|
||||
def test_xrefs(self):
|
||||
xrefs = self._tool_source.parse_xrefs()
|
||||
assert xrefs == [{'value': 'bwa', 'reftype': 'bio.tools'}]
|
||||
|
||||
def test_sanitize(self):
|
||||
assert self._tool_source.parse_sanitize() is True
|
||||
|
||||
|
||||
Reference in New Issue
Block a user