About

Wiptools is a collection of tools for setting up a Python project skeleton and managing it.

I wrote Wiptools (and its predecessors micc and micc2) because with every new Python project I found myself loosing time looking up and fixing the nitty-gritty details for setting up a remote GitHub repo, creating C++ binary extension modules or a CLI with subcommands, setting up documentation, and many more. If you start new projects on a regular basis using the same project skeleton and tools every time significantly improves productivity.

It also turned out very useful for the Parallel Programming course, especially the ability to easily prototype and test in Python and provide performant C++ or Fortran as replacement modules.

Wiptools provides:

  • a project skeleton
  • automatic creation of a git repository (locally, as well as remotely on github.com)
  • integration with poetry for dependency management and virtual environments, publishing on PyPI
  • version management with bump2version
  • adding subcomponents
    • Python (sub)modules
    • binary extension modules in C++ with nanobind) and Fortran with f2py
    • command line interfaces with click, single command and with subcommands
  • test templates for all added components and pytest integration
  • documentation generation with mkdocs or sphinx (to be implemented)