README

Build status Build Status Windows https://badge.fury.io/py/project_name.svg GitHub Issues MIT License https://coveralls.io/repos/sdpython/python3_module_template/badge.svg?branch=master&service=github Code Health Requirements Status https://codecov.io/github/sdpython/python3_module_template/coverage.svg?branch=master

Links:

Quick start

  • install: python setup.py install
  • documentation: python setup.py build_sphinx
  • unit tests: python setup.py unittests

Introduction

This project is a skeleton for any new project. It contains:

  • a source folder: src
  • a unit test folder: _unittests, go to this folder and run run_unittests.py
  • a _doc folder: _doc, it will contains the documentation
  • a file setup.py to build and to install the module

All theses steps were only tested on Windows. Suppot for linux will be added later. To create your own project, you need to rename the folder project_name in src by your true module name. You also need to replace project_name wherever it is found:

  • project_var_name  = 'project_name' in setup.py, make_help.py and _doc/sphinxdoc/source/conf.py
  • from src.project_name.subproject.myexample import myclass in _unittests/ut_example/test_example.py
  • many places in _doc/sphinxdoc/source/index.rst
  • many places in README.rst

Automation

Adding a new module or subpackage

Any new module or subpackage should be added in src/project_name. Every subfolder should contain a file __init__.py. If the new file needs an existing submodule, you need to add something like the following:

import os,sys

from ..subproject.myexample import myclass

You must use relative imports. To add a module at deeper level than the previous one, you should add relative imports in every __init__.py along the way.