From: Michael R. Crusoe <michael.crusoe@gmail.com>
Subject: Add setup.py
--- ctdconverter.orig/convert.py
+++ ctdconverter/convert.py
@@ -8,7 +8,7 @@
from common.exceptions import ApplicationException, ModelError
__all__ = []
-__version__ = 2.0
+__version__ = '2.0'
__date__ = '2014-09-17'
__updated__ = '2017-08-09'
@@ -269,4 +269,4 @@
if __name__ == "__main__":
- sys.exit(main())
\ No newline at end of file
+ sys.exit(main())
--- /dev/null
+++ ctdconverter/setup.py
@@ -0,0 +1,171 @@
+"""A setuptools based setup module.
+
+See:
+https://packaging.python.org/en/latest/distributing.html
+https://github.com/pypa/sampleproject
+"""
+
+# Always prefer setuptools over distutils
+from setuptools import setup, find_packages
+# To use a consistent encoding
+from codecs import open
+from os import path
+import re
+
+here = path.abspath(path.dirname(__file__))
+
+# Get the long description from the README file
+with open(path.join(here, 'README.md'), encoding='utf-8') as f:
+ long_description = f.read()
+
+def read(*parts):
+ with open(path.join(here, *parts), 'r') as fp:
+ return fp.read()
+
+def find_version(*file_paths):
+ version_file = read(*file_paths)
+ version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]",
+ version_file, re.M)
+ if version_match:
+ return version_match.group(1)
+ raise RuntimeError("Unable to find version string.")
+
+# Arguments marked as "Required" below must be included for upload to PyPI.
+# Fields marked as "Optional" may be commented out.
+
+setup(
+ # This is the name of your project. The first time you publish this
+ # package, this name will be registered for you. It will determine how
+ # users can install this project, e.g.:
+ #
+ # $ pip install sampleproject
+ #
+ # And where it will live on PyPI: https://pypi.org/project/sampleproject/
+ name='ctdconverter', # Required
+
+ # Versions should comply with PEP 440:
+ # https://www.python.org/dev/peps/pep-0440/
+ #
+ # For a discussion on single-sourcing the version across setup.py and the
+ # project code, see
+ # https://packaging.python.org/en/latest/single_source_version.html
+ version=find_version("convert.py"), # Required
+
+ # This is a one-line description or tagline of what your project does. This
+ # corresponds to the "Summary" metadata field:
+ # https://packaging.python.org/specifications/core-metadata/#summary
+ description='Convert CTD files into Galaxy tool and CWL CommandLineTool files', # Required
+
+ # This is an optional longer description of your project that represents
+ # the body of text which users will see when they visit PyPI.
+ #
+ # Often, this is the same as your README, so you can just read it in from
+ # that file directly (as we have already done above)
+ #
+ # This field corresponds to the "Description" metadata field:
+ # https://packaging.python.org/specifications/core-metadata/#description-optional
+ long_description=long_description, # Optional
+
+ # This should be a valid link to your project's main homepage.
+ #
+ # This field corresponds to the "Home-Page" metadata field:
+ # https://packaging.python.org/specifications/core-metadata/#home-page-optional
+ url='https://github.com/WorkflowConversion/CTDConverter', # Optional
+
+ # This should be your name or the name of the organization which owns the
+ # project.
+ author='The WorkflowConversion team', # Optional
+
+ # This should be a valid email address corresponding to the author listed
+ # above.
+ # author_email='authors@example.com', # Optional
+
+ # Classifiers help users find your project by categorizing it.
+ #
+ # For a list of valid classifiers, see
+ # https://pypi.python.org/pypi?%3Aaction=list_classifiers
+ classifiers=[ # Optional
+ # How mature is this project? Common values are
+ # 3 - Alpha
+ # 4 - Beta
+ # 5 - Production/Stable
+ 'Development Status :: 3 - Alpha',
+
+ # Indicate who your project is intended for
+ 'Intended Audience :: Developers',
+ 'Topic :: Software Development :: Build Tools',
+
+ 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
+ 'License :: OSI Approved :: Apache Software License',
+
+ # Specify the Python versions you support here. In particular, ensure
+ # that you indicate whether you support Python 2, Python 3 or both.
+ 'Programming Language :: Python :: 2',
+ 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.4',
+ 'Programming Language :: Python :: 3.5',
+ 'Programming Language :: Python :: 3.6',
+ ],
+
+ # This field adds keywords for your project which will appear on the
+ # project page. What does your project relate to?
+ #
+ # Note that this is a string of words separated by whitespace, not a list.
+ keywords='CTD CWL CommonWL Galaxy Workflows WorkflowConversion', # Optional
+
+ # You can just specify package directories manually here if your project is
+ # simple. Or you can use find_packages().
+ #
+ # Alternatively, if you just want to distribute a single Python file, use
+ # the `py_modules` argument instead as follows, which will expect a file
+ # called `my_module.py` to exist:
+ #
+ py_modules=["convert"],
+ #
+ packages=find_packages(exclude=['contrib', 'docs', 'tests']), # Required
+
+ # This field lists other packages that your project depends on to run.
+ # Any package you put here will be installed by pip when your project is
+ # installed, so they must be valid existing projects.
+ #
+ # For an analysis of "install_requires" vs pip's requirements files see:
+ # https://packaging.python.org/en/latest/requirements.html
+ install_requires=['lxml', 'ruamel.yaml'], # Optional
+ # install_requires=['lxml', 'ctdopts'], # Optional
+
+ # List additional groups of dependencies here (e.g. development
+ # dependencies). Users will be able to install these using the "extras"
+ # syntax, for example:
+ #
+ # $ pip install sampleproject[dev]
+ #
+ # Similar to `install_requires` above, these must be valid existing
+ # projects.
+ # extras_require={ # Optional
+ # 'dev': ['check-manifest'],
+ # 'test': ['coverage'],
+ # },
+
+ # If there are data files included in your packages that need to be
+ # installed, specify them here.
+ #
+ # If using Python 2.6 or earlier, then these have to be included in
+ # MANIFEST.in as well.
+ package_data={ # Optional
+ 'ctdconverter': ['galaxy/macros.xml'],
+ },
+
+ # To provide executable scripts, use entry points in preference to the
+ # "scripts" keyword. Entry points provide cross-platform support and allow
+ # `pip` to create the appropriate form of executable for the target
+ # platform.
+ #
+ # For example, the following would provide a command called `sample` which
+ # executes the function `main` from this package when invoked:
+ entry_points={ # Optional
+ 'console_scripts': [
+ 'CTDConverter=convert:main',
+ ],
+ },
+)