Skip to main content

A practical Python project skeleton generator.

Project description

https://img.shields.io/pypi/v/micc.svg https://img.shields.io/travis/etijskens/micc.svg Documentation Status

Micc is a Python project manager: it helps you organize your Python project from simple single file modules to fully fledged Python packages containing modules, sub-modules, apps and binary extension modules written in Fortran or C++. Micc organizes your project in a way that is considered good practice by a large part of the Python community.

  • Micc helps you create new projects. You can start small with a simple one-file package and add material as you go, such as:

    • Python sub-modules and sub-packages,

    • applications, also known as command line interfaces (CLIs).

    • binary extension modules written in C++ and Fortran. Boiler plate code is automatically added as to build these binary extension with having to go through al the details. This is, in fact, the foremost reason that got me started on this project: For High Performance Python it is essential to rewrite slow and time consuming parts of a Python script or module in a language that is made for High Performance Computing. As figuring out how that can be done, requires quite some effort, Micc was made to automate this part while maintaining the flexibility.

    • Micc adds typically files containing example code to show you how to add your own functionality.

  • You can automatically extract documentation from the doc-strings of your files, and build html documentation that you can consult in your browser, or a .pdf documentation file.

  • With a little extra effort the generated html documentation is automatically published to readthedocs.

  • Micc helps you with version management and control.

  • Micc helps you with testing your code.

  • Micc helps you with publishing your code to e.g. PyPI, so that you colleagues can use your code by simply running:

    > pip install your_nifty_package

Credits

Micc does not do all of this by itself. For many things it relies on other strong open source tools and it is therefor open source as well (MIT Licence). Here is a list of tools micc is using or cooperating with happily:

  • Pyenv: management of different Python versions.

  • Pipx for installation of CLIs in a system-wide way.

  • Poetry for dependency management, virtual environment management, packaging and publishing.

  • Git for version control.

  • CMake is usde for building binary extension modules written in C++.

The above tools are not dependencies of Micc and must be installed separately. Then there are a number of python packages on which micc depends and which are automatically installed when poetry creates a virtual environment for a project.

  • Cookiecutter for creating boilerplate code from templates for all the parts that can be added to your project.

  • Python-semanticversion for managing version strings and dependency version constraints according to the Semver 2.0 specification.

  • Pytest for testing your code.

  • Click for a pythonic and intuitive definition of command-line interfaces (CLIs).

  • Sphinx to extract documentation from your project’s doc-strings.

  • Sphinx-click for extracting documentation from the click command descriptions.

  • F2py for transforming modern Fortran code into performant binary extension modules interfacing nicely with Numpy.

  • Pybind11 as the glue between C++ source code and performant binary extension modules, also interfacing nicely with Numpy.

Roadmap

These features are still on our wish list:

  • Deployment on the VSC clusters

  • Contininous integtration (CI)

  • Code style, e.g. flake8 or black

  • Profiling

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.

Source Distribution

et-micc-0.10.28.tar.gz (41.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

et_micc-0.10.28-py3-none-any.whl (60.6 kB view details)

Uploaded Python 3

File details

Details for the file et-micc-0.10.28.tar.gz.

File metadata

  • Download URL: et-micc-0.10.28.tar.gz
  • Upload date:
  • Size: 41.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.5 Darwin/19.6.0

File hashes

Hashes for et-micc-0.10.28.tar.gz
Algorithm Hash digest
SHA256 6c6c9fae9fd9db48ea4b6ffc39681f8f505c781096200f084ac5a3a85c7068c5
MD5 dab2538b16f4fd50f1fabb092a257f23
BLAKE2b-256 ef73f082a5db82b909cfa1a15752484a74d5a77c0bf8fdf1ed5e090d3d27d4da

See more details on using hashes here.

File details

Details for the file et_micc-0.10.28-py3-none-any.whl.

File metadata

  • Download URL: et_micc-0.10.28-py3-none-any.whl
  • Upload date:
  • Size: 60.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.5 Darwin/19.6.0

File hashes

Hashes for et_micc-0.10.28-py3-none-any.whl
Algorithm Hash digest
SHA256 1f86385c2aec2d7b87e2796d9a35ac7d08d877d3086c14f8d4c57e0c2b134730
MD5 4edfd429dfca4ef9df43748a60aae667
BLAKE2b-256 895e3687a5bbf9913f6c6e2f2779a8726e67d5df28665ff4d73c09e1ad50cc4f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page