/elementary_math-project

Ease your python library development, use pygitrepo (https://github.com/MacHu-GWU/pygitrepo-project) to generate your code skeleton. This is just a dummy python library for demonstration.

Primary LanguagePythonMIT LicenseMIT

https://travis-ci.org/MacHu-GWU/elementary_math-project.svg?branch=master https://img.shields.io/badge/Star_Me_on_GitHub!--None.svg?style=social

elementary_math is a project to demonstrate: how to setup environment and toolsets for a python library project on github, includes these powerful components:

  • virtual environment setup (one command install everything)
  • setup.py file (one click install/uninstall)
  • auto Google stylize your code
  • fancy sphinx document (one click build/view/deploy)
  • unittest suits with pytest
  • code coverage test with coverall
  • multi python version test with tox
  • integration with https://travis-ci.org/
  • integration with https://codecov.io/
  • auto deploy to AWS S3
  • publish to PyPI
  1. Clone the repo.
  2. Navigate to elementary_math-project/start-a-project, edit init_project.py and run it.
  3. A <repo-name> directory will be created, you can use this as your github repo directory.
  4. Take a look at Makefile, all magic happens here!

Use AWS S3 to host your doc site is a good idea!

We need awscli to automate the deployment.

  1. Install awscli, just pip install awscli.
  2. Configure your API token, just aws configure and follow the instruction.

If you want to publish your package to PyPI or new PyPI, you need a pypi account and Configure your credential.

  1. Create a ${HOME}/.pypirc file.

  2. put these contents:

    [distutils]
    index-servers =
        pypi
    
    [pypi]
    username:<username>
    password:<password>
    
  1. Test with travis-ci, basically you just need to:
    • sign in using GitHub account.
    • toggle on your repo.
  2. Code Coverage Test with codecov.

Because Windows doesn't have shell script and make command, so we have to install some third-party software to make it works.

Install Git Bash as shell emulator

  1. Download and install git.
  2. Now you can use C:\Program Files\Git\git-bash.exe like the terminal in MacOS/Linux.

Install MinGW

  1. Download and install, use the installer to install MinGW Base.
  2. Find C:\MinGW\bin\mingw32-make.exe, copy and paste and rename as C:\MinGW\bin\make.exe.
  3. Add C:\MinGW\bin to $PATH (environment variable).

Now you can use make <target> in git-bash.exe now.

You have to make sure:

There's two way of using virtualenv in MacOS:

  1. Use generic virtualenv.
  2. Use pyenv + pyenv-virtualenv.

I prefer pyenv + pyenv-virtualenv, because it allows you:

  1. use tox to test against multiple python version locally before using cloud CI (continues integration).
  2. will not mess up your global python environment.
  3. the Makefile will do the pyenv + pyenv-virtualenv setup for you, just make sure that you have HomeBrew installed.

elementary_math is released on PyPI, so all you need is:

$ pip install elementary_math

To upgrade to latest version:

$ pip install --upgrade elementary_math