Python bindings for the YAML version of the Multiscale Modeling and Simulation Language
Project description
yMMSL Python bindings
Python bindings for the YAML version of the Multiscale Modeling and Simulation Language
Project Setup
Here we provide some details about the project setup. Most of the choices are explained in the guide. Links to the relevant sections are included below. Feel free to remove this text when the development of the software package takes off.
For a quick reference on software development, we refer to the software guide checklist.
Version control
Once your Python package is created, put it under version control! We recommend using git and github.
cd ymmsl-python
git init
git add -A
git commit
To put your code on github, follow this tutorial.
Python versions
This repository is set up with Python versions: * 3.4 * 3.5 * 3.6
Add or remove Python versions based on project requirements. The guide contains more information about Python versions and writing Python 2 and 3 compatible code.
Package management and dependencies
You can use either pip or conda for installing dependencies and package management. This repository does not force you to use one or the other, as project requirements differ. For advice on what to use, please check the relevant section of the guide.
Dependencies should be added to setup.py in the install_requires list.
Packaging/One command install
You can distribute your code using pipy or conda. Again, the project template does not enforce the use of either one. The guide can help you decide which tool to use for packaging.
Testing and code coverage
Tests should be put in the tests folder.
The testing framework used is PyTest
Tests can be run with python setup.py test
This is configured in setup.py and setup.cfg
Use Travis CI to automatically run tests and to test using multiple Python versions
Configuration can be found in .travis.yml
TODO: add something about code quality/coverage tool?
Documentation
Documentation should be put in the docs folder. The contents have been generated using sphinx-quickstart (Sphinx version 1.6.5).
We recommend writing the documentation using Restructured Text (reST) and Google style docstrings.
To generate html documentation run python setup.py build_sphinx
This is configured in setup.cfg
Alternatively, run make html in the docs folder.
The docs/_static and docs/_templates contain an (empty) .gitignore file, to be able to add them to the repository. These two files can be safely removed (or you can just leave them there).
To put the documentation on Read the Docs, log in to your Read the Docs account, and import the repository (under ‘My Projects’).
Include the link to the documentation in this README.
Coding style conventions and code quality
Check your code style with prospector
You may need run pip install .[dev] first, to install the required dependencies
You can use yapf to fix the readability of your code style and isort to format and group your imports
CHANGELOG.rst
Document changes to your software package
CITATION.cff
To allow others to cite your software, add a CITATION.cff file
It only makes sense to do this once there is something to cite (e.g., a software release with a DOI).
To generate a CITATION.cff file given a DOI, use doi2cff.
CODE_OF_CONDUCT.rst
Information about how to behave professionally
CONTRIBUTING.rst
Information about how to contribute to this software package
MANIFEST.in
List non-Python files that should be included in a source distribution
NOTICE
List of attributions of this project and Apache-license dependencies
Installation
To install ymmsl-python, do:
git clone https://github.com/multiscale/ymmsl-python.git
cd ymmsl-python
pip install .
Run tests (including coverage) with:
python setup.py test
Documentation
Include a link to your project’s full documentation here.
Contributing
If you want to contribute to the development of yMMSL Python bindings, have a look at the contribution guidelines.
License
Copyright (c) 2018, Netherlands eScience Center and University of Amsterdam
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Credits
This package was created with Cookiecutter and the NLeSC/python-template.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.