Code Monkey home page Code Monkey logo

python-template's Introduction

Netherlands eScience Center Python Template

Travis-CI Build Status Appveyor Build Status DOI

Spend less time setting up and configuring your new Python packages and comply with the Netherlands eScience Center Software Development Guide from the start.

Use this Cookiecutter template to generate an empty Python package. Features include:

The file structure of the generated package looks like:

path/to/package/
├── CHANGELOG.rst
├── CODE_OF_CONDUCT.rst
├── CONTRIBUTING.rst
├── docs
│   ├── conf.py
│   ├── index.rst
│   └── ...
├── LICENSE
├── MANIFEST.in
├── NOTICE
├── package
│   ├── __init__.py
|   ├── __version__.py
│   └── package.py
├── README.rst
├── requirements.txt
├── setup.cfg
├── setup.py
└── tests
    ├── __init__.py
    └── test_package.py
  • Code (existing or new) should be placed in path/to/package/package/ (please choose a better name for your software!).
  • Add documentation by editing path/to/package/docs/index.rst
  • Tests go in the path/to/package/tests/ directory
  • The generated README contains extensive documentation about the project setup and provides further instructions on what to do.

How to use

We recommend developing your software in an isolated Python environment and assume you are familiar with either virtualenv + pip or conda (check the guide if you are not).

Step 1: Install cookiecutter

We recommend installing cookiecutter outside the virtual environment you will be using for developing your software. This way, you don't have to install cookiecutter for every new project.

  • If you are using virtualenv + pip:

     pip install --user cookiecutter
  • If you are using conda:

     conda install -c conda-forge cookiecutter

Step 2: Generate the files and directory structure

To create a new package, type:

cookiecutter https://github.com/nlesc/python-template.git

You will be asked to supply the following information:

Name Default value Explanation
project_name My Python Project Full project/package name.
project_slug my_python_project This will be the name of the directory to be created and the git repository.
project_short_description The information that you enter here will end up in the README, documentation, license, and setup.py, so it may be a good idea to prepare something in advance.
version 0.1.0
github_organization GitHub organization that will contain this project's repository. This can also be your github user name.
open_source_license Apache 2.0 (1) The software license under which the code is made available.
Python_version Python 3 (1) The Python version(s) supported by your package.
apidoc no (1) Add support for automatically generating a module index from the docstrings in your Python package (look at the scriptcwl package for an example).
pypi_user no_travis_pypi_deployment If you want to deploy your package via travis to pypi when you make a release, specify your pypi user name. If not, use the default value. Please note that if you are using this option, some additional configuration is required. The README of the generated package explains what to do.
full_name John Smith Your full name, e.g. John Smith.
email [email protected] Your (work) email address
copyright_holder Name(s) of the organization(s) or person(s) who hold the copyright of the software (e.g., Netherlands eScience Center).
code_of_conduct_email [email protected] Email address of the person who should be contacted in case of violations of the Code of Conduct.

Step 3: Create and activate a Python environment

  • If you are using virtualenv + pip, do:
     $ virtualenv -p python3 env
     $ . env/bin/activate
  • If you are using conda, type:
     $ conda create -n env python=3
     $ source activate env
    (On windows use activate env to activate the conda environment.)

How to contribute

Suggestions/improvements/edits are most welcome. Please read the contribution guidelines before creating an issue or a pull request.

python-template's People

Contributors

benvanwerkhoven avatar lourensveen avatar jspaaks avatar sverhoeven avatar egpbos avatar tbkkr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.