Commit 3eabdc30 authored by Matt Clarkson's avatar Matt Clarkson

Initial commit.

parents
Pipeline #281 passed with stages
in 6 minutes and 46 seconds
[run]
omit =
./sksurgeryimage/_version.py
./sksurgeryimage/__init__.py
./sksurgeryimage/__main__.py
\ No newline at end of file
sksurgeryimage/_version.py export-subst
# Pycharm
/.idea
# Generated files
.tox
.coverage
*.rst
*.pyc
stages:
- build
- installer
- test
- deploy
build docs:
stage: build
script:
- tox -e docs
tags:
- shared-linux
artifacts:
paths:
- doc/
expire_in: 1 week
build linux installer:
stage: build
script:
- tox -e installer
tags:
- shared-linux
artifacts:
paths:
- dist/
expire_in: 1 week
build mac installer:
stage: build
script:
- tox -e installer
tags:
- shared-mac
artifacts:
paths:
- dist/
expire_in: 1 week
build windows installer:
stage: build
script:
- tox -e installer
tags:
- shared-win
artifacts:
paths:
- dist/
expire_in: 1 week
test Linux:
stage: test
script:
- tox
tags:
- shared-linux
coverage: '/^TOTAL.*\s+(\d+\%)$/'
test macOS:
stage: test
script:
- tox
tags:
- shared-mac
test Windows:
stage: test
script:
- tox
tags:
- shared-win
deploy docs to staging:
stage: deploy
script:
# Note: the group/username directory must already exist on the server before calling this command
- rsync -avz -e'ssh -v' --numeric-ids --delete doc/build/html/* staging_docs_rsync:WEISS/SoftwareRepositories/scikit-surgeryimage 2>&1
tags:
- docs-staging
environment:
name: staging
url: http://weisslab-lin.cs.ucl.ac.uk/staging/WEISS/SoftwareRepositories/scikit-surgeryimage
only:
- master
dependencies:
- build docs
deploy docs to production:
stage: deploy
script:
# Note: the group/username directory must already exist on the server before calling this command
- rsync -avz -e'ssh -v' --numeric-ids --delete doc/build/html/* production_docs_rsync:WEISS/SoftwareRepositories/scikit-surgeryimage 2>&1
tags:
- docs-production
environment:
name: production
only:
- public
dependencies:
- build docs
.. highlight:: shell
===============================================
Contributing to scikit-surgeryimage
===============================================
We welcome contributions to scikit-surgeryimage.
Reporting bugs and feature requests
-----------------------------------
Please create a new issue on https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/issues/new
When reporting a bug, please include:
* The version of scikit-surgeryimage you are using
* Your OS version (for example Windows 10 64-bit, macOS High Sierra, Ubuntu 16.04)
* Detailed steps to reproduce the bug.
Fixing bugs or implement features
---------------------------------
The easiest way to contribute is to follow these guidelines:
1. Look through the issues on https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/issues and assign the relevant issue to yourself. If there is not an existing issue that covers your work, please create one: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/issues/new
2. Fork the repository: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/forks/new
3. Create a branch for your changes. The branch name should start with the issue number, followed by hyphen separated words describing the issue. For example: 1-update-contribution-guidelines
4. Make your changes following the coding guidelines below.
5. Commit and push your changes to your fork. The commit message should start with `Issue #<issue number>`, for example: "Issue #1: Fixed typo". Commit in small, related chunks. Review each commit and explain its purpose in the commit message.
6. Submit a merge request: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/merge_requests/new
Coding guidelines
-----------------
1. Please follow PEP8 guidelines https://www.python.org/dev/peps/pep-0008/
2. Create a python virtual environment (virtualenv) for development
3. Make sure that pylint passes. You may disable specific warnings within the code where it is reasonable to do so
4. Add unit tests for new and modified code
5. Make sure all existing and new tests pass
6. Make sure all docstrings have been added
7. Make sure all dependencies have been added to requirements
8. Make sure your code works for all required versions of Python
9. Make sure your code works for all required operating systems
BSD License
Copyright (c) 2018, University College London
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
include versioneer.py
include sksurgeryimage/_version.py
scikit-surgeryimage
===============================
.. image:: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/raw/master/project-icon.png
:height: 128px
:width: 128px
:target: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage
.. image:: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/badges/master/build.svg
:target: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/pipelines
:alt: GitLab-CI test status
.. image:: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/badges/master/coverage.svg
:target: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/commits/master
:alt: Test coverage
.. image:: https://travis-ci.org/WEISS/SoftwareRepositories/scikit-surgeryimage.svg?branch=master
:target: https://travis-ci.org/WEISS/SoftwareRepositories/scikit-surgeryimage
:alt: Travis test status
.. image:: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/badges/master/coverage.svg
:target: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/pipelines
.. image:: https://readthedocs.org/projects/scikit-surgeryimage/badge/?version=latest
:target: http://scikit-surgeryimage.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
scikit-surgeryimage is a python project that does interesting things.
Author: Matt Clarkson
scikit-surgeryimage was developed at the `Wellcome EPSRC Centre for Interventional and Surgical Sciences`_ in `University College London (UCL)`_.
Installing
~~~~~~~~~~
You can pip install directly from the repository as follows:
::
pip install git+https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage
Developing
^^^^^^^^^^
You can clone the repository using the following command:
::
git clone https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage
Running the tests
^^^^^^^^^^^^^^^^^
You can run the unit tests by installing and running tox:
::
pip install tox
tox
Get started with PyCharm
^^^^^^^^^^^^^^^^^^^^^^^^
This assumes you have PyCharm installed and configured to support virtual environments.
1. Start PyCharm
2. Select File > Open
3. Select the project's folder
4. Open in a new window
5. Open Preferences
6. Click on Project: [YourProject] and select Project Interpreter
7. At the right of the Project Interpreterm, click the cog
8. Select Add Local...
9. Select Virtual Environment
10. Choose a location for your virtual environment (for example, [YourHomeFolder]/VirtualEnvs/[YourProjectName])
11. Select a base interpreter (usually the latest version of Python 3).
12. Recommended settings: Do not inherit global site-packages, and do not make available to all projects.
13. Click OK
14. Click on Terminal
15. `pip install tox`
16. `tox`
17. Expand the project
18. Right-click on the Tests folder and choose "Run Unittests in tests". This will create a new configuration for running tests
19. Right-click on sksurgeryimage and select Run sksurgeryimage. This will create a new configuration for running the project.
20. Switch between the program and test configurations using the drop-down at the top of the screen, and the green arrow to run or the green bug to debug.
Contributing
^^^^^^^^^^^^
Please see the `contributing guidelines`_.
Useful links
^^^^^^^^^^^^
`Source code repository`_
`Documentation`_
Licensing and copyright
-----------------------
Copyright 2018 University College London.
scikit-surgeryimage is released under the BSD-3 license. Please see the `license file`_ for details.
Acknowledgements
----------------
Supported by `Wellcome`_ and `EPSRC`_.
.. _`Wellcome EPSRC Centre for Interventional and Surgical Sciences`: http://www.ucl.ac.uk/weiss
.. _`source code repository`: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage
.. _`Documentation`: https://scikit-surgeryimage.readthedocs.io
.. _`University College London (UCL)`: http://www.ucl.ac.uk/
.. _`Wellcome`: https://wellcome.ac.uk/
.. _`EPSRC`: https://www.epsrc.ac.uk/
.. _`contributing guidelines`: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/blob/master/CONTRIBUTING.rst
.. _`license file`: https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage/blob/master/LICENSE
.. toctree::
:maxdepth: 4
:caption: Contents:
/scikit-surgeryimage.rst
/scikit-surgeryimage.*.rst
/modules.rst
/build
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# scikit-surgeryimage documentation build configuration file, created by
# sphinx-quickstart on Tue Dec 19 17:02:44 2017.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import subprocess
import os
import sys
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
working_dir = os.path.abspath(os.path.dirname(__file__))
root_dir_rel = os.path.join('..')
root_dir_abs = os.path.abspath(root_dir_rel)
module_path = root_dir_abs
sys.path.insert(0, module_path)
logo_file = 'project-icon.png'
logo_path = os.path.join('..', logo_file)
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = [
'tests',
'run_*',
'setup.py',
'_build',
'Thumbs.db',
'.DS_Store',
]
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
static_folder = 'static'
html_static_path = [static_folder]
def generate_apidocs(*args):
"""Generate API docs automatically by trawling the available modules"""
global working_dir, module_path
output_path = working_dir
apidoc_command_path = 'sphinx-apidoc'
if hasattr(sys, 'real_prefix'): # called from a virtualenv
apidoc_command_path = os.path.join(sys.prefix, 'bin', 'sphinx-apidoc')
apidoc_command_path = os.path.abspath(apidoc_command_path)
subprocess.check_call(
[apidoc_command_path, '--force', '--separate'] +
['-o', output_path, module_path] +
[os.path.join(root_dir_abs, pattern) for pattern in exclude_patterns])
def setup(app):
# Hook to allow for automatic generation of API docs
# before doc deployment begins.
app.connect('builder-inited', generate_apidocs)
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode', 'sphinx.ext.imgmath']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# This allows modules to be indexed under the submodule name rather than all appearing under sksurgeryimage
modindex_common_prefix = [
'sksurgeryimage.'
]
# General information about the project.
project = u'scikit-surgeryimage'
copyright = u"2018, University College London"
author = u'Matt Clarkson'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = u''
# The full version, including alpha/beta/rc tags.
release = u''
# The short X.Y version.
# version = sksurgeryimage.__version__
# The full version, including alpha/beta/rc tags.
# release = sksurgeryimage.__version__
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
# html_theme = 'alabaster'
html_theme = 'classic'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
doc_black = '#0A0A0A'
doc_red = '#E03C31'
doc_gray = '#979999'
doc_blue = '#00627D'
doc_dark_red = '#C53B2C'
doc_white = '#FEFEFE'
html_theme_options = {
'footerbgcolor': doc_gray,
'footertextcolor': doc_black,
'sidebarbgcolor': doc_white,
'sidebartextcolor': doc_black,
'sidebarlinkcolor': doc_red,
'relbarbgcolor': doc_white,
'relbartextcolor': doc_black,
'relbarlinkcolor': doc_red,
'bgcolor': doc_white,
'textcolor': doc_black,
'linkcolor': doc_red,
'visitedlinkcolor': doc_dark_red,
'headbgcolor': doc_white,
'headtextcolor': doc_black,
'headlinkcolor': doc_red,
'codebgcolor': doc_blue,
'codetextcolor': doc_black,
'stickysidebar': 'true',
}
html_logo = logo_path
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['static']
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# This is required for the alabaster theme
# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
html_sidebars = {
'**': [
'relations.html', # needs 'show_related': True theme option to display
'searchbox.html',
]
}
# -- Options for HTMLHelp output ------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'scikit-surgeryimagedoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
('index', 'scikit-surgeryimage.tex',
u'scikit-surgeryimage Documentation',
u'Matt Clarkson', 'manual'),
]
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'scikit-surgeryimage',
u'scikit-surgeryimage Documentation',
[u'Matt Clarkson'], 1)
]
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('index', 'scikit-surgeryimage',
u'scikit-surgeryimage Documentation',
u'Matt Clarkson',
'scikit-surgeryimage',
'One line description of project.',
'Miscellaneous'),
]
.. include:: ../README.rst
API reference
^^^^^^^^^^^^^
* :ref:`modindex`
* :ref:`genindex`
* :ref:`search`
.. toctree::
:maxdepth: 4
:caption: Contents:
body {
font-family: "Helvetica", sans-serif;
letter-spacing: 0.02em;
line-height: 23px;
}
input,
button,
select,
textarea {
font-family: "Helvetica", sans-serif;
}
h1, h2 {
clear: left;
}
h1 {
font-size: 28px;
line-height: 36px;
}
h2 {
font-size: 22px;
line-height: 30px;
}
-r requirements.txt
coverage
mock
pyfakefs
parameterized
pylint
sphinx
pyinstaller
pytest
tox
python -m unittest discover -s "tests" -p "*.py"
[bdist_wheel]
universal=1
[versioneer]
VCS = git
style = pep440
versionfile_source = sksurgeryimage/_version.py
tag_prefix = v
# coding=utf-8
"""
Setup for scikit-surgeryimage
"""
from setuptools import setup, find_packages
import versioneer
# Get the long description
with open('README.rst') as f:
long_description = f.read()
setup(
name='scikit-surgeryimage',
version=versioneer.get_version(),
cmdclass=versioneer.get_cmdclass(),
description='scikit-surgeryimage',
long_description=long_description,
url='https://weisslab.cs.ucl.ac.uk/WEISS/SoftwareRepositories/scikit-surgeryimage',
author='Matt Clarkson',
author_email='YOUR-EMAIL@ucl.ac.uk',
license='BSD-3 license',
classifiers=[
'Development Status :: 3 - Alpha',
'Intended Audience :: Developers',
'Intended Audience :: Healthcare Industry',
'Intended Audience :: Information Technology',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: BSD License',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 3',
'Topic :: Scientific/Engineering :: Information Analysis',
'Topic :: Scientific/Engineering :: Medical Science Apps.',
],
keywords='medical imaging',
packages=find_packages(
exclude=[
'doc',
'tests',
]
),
install_requires=[
'six>=1.10',
'numpy>=1.11',
'pillow',
],
entry_points={
'console_scripts': [
'sksurgeryimage=sksurgeryimage.__main__:main',
],
},
)
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from sksurgeryimage.ui.sksurgeryimage_command_line import main
if __name__ == "__main__":
sys.exit(main(sys.argv[1:]))
# coding=utf-8
"""scikit-surgeryimage"""
from ._version import get_versions
__version__ = get_versions()['version']
del get_versions
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""scikit-surgeryimage"""
import sys
if __name__ == "__main__" and not __package__:
# To allow the package's main function to be executed without the -m switch,
# i.e. "python sksurgeryimage", we have to explicitly set the
# module name and append the parent directory to the sys.path (see PEP 366)
from os import path