Skip to main content

A practical Python project skeleton generator.

Project description

https://img.shields.io/pypi/v/et-micc2.svg Documentation Status

Micc2_ 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++. Micc2 organizes your project in a way that is considered good practice by a large part of the Python community.

  • Micc2 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, Micc2 was made to automate this part while maintaining the flexibility.

    • Micc2 adds typically files containing example code that shows 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.

  • Micc2 helps you with version management and control.

  • Micc2 helps you with testing your code.

  • Micc2 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

Micc2 does not do all of this by itself. For many things it relies on other strong open source tools. Here is a list of tools micc2 is using or cooperating with happily:

  • Pyenv: management of different Python versions on your desktop.

  • Poetry for packaging and publishing.

  • Git for version control.

  • Pytest for testing your code.

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

  • CMake is used for building binary extension modules written in C++ and Fortran.

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

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

Roadmap

These features are still on our wish list:

  • Contininous integtration (CI)

  • Code style, e.g. flake8 or black

  • Profiling

  • Gui for debugging C++/Fortran binary extensions

  • Micc2 projects on Windows (So far, only support on Linux and MacOS).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

et-micc2-2.3.4.tar.gz (58.8 kB view details)

Uploaded Source

Built Distribution

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

et_micc2-2.3.4-py3-none-any.whl (81.7 kB view details)

Uploaded Python 3

File details

Details for the file et-micc2-2.3.4.tar.gz.

File metadata

  • Download URL: et-micc2-2.3.4.tar.gz
  • Upload date:
  • Size: 58.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.8.5 Darwin/20.3.0

File hashes

Hashes for et-micc2-2.3.4.tar.gz
Algorithm Hash digest
SHA256 99caeec158305d3f3bcf48c2d55a18f9f5ecd3c8c1ae66cfceaf5d1af08b2c7c
MD5 f6db0515dfc9951976fc0a5501d7b3b5
BLAKE2b-256 d0a5dc8e5e62dc012dfd1e776ebc60af0396e651e4b74c9bbed070edd47627ff

See more details on using hashes here.

File details

Details for the file et_micc2-2.3.4-py3-none-any.whl.

File metadata

  • Download URL: et_micc2-2.3.4-py3-none-any.whl
  • Upload date:
  • Size: 81.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.8.5 Darwin/20.3.0

File hashes

Hashes for et_micc2-2.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 30cf90f4bbadf9ea2e371d010838c316148435e6cc82a17f45024395cb8b08a8
MD5 6d4a6fd237fa8c751707e60a3c3dd0a7
BLAKE2b-256 e6a1bc7522c5f37b70264f3d093a8c0702b8ed2cb6b3f751e0e913ad98e693c9

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