Skip to main content
****
Micc
****

.. image:: https://img.shields.io/pypi/v/micc.svg
:target: https://pypi.python.org/pypi/micc

.. image:: https://img.shields.io/travis/etijskens/micc.svg
:target: https://travis-ci.org/etijskens/micc

.. image:: https://readthedocs.org/projects/micc/badge/?version=latest
:target: https://micc.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status


`Micc <https://github.com/etijskens/et-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 <https://readthedocs.org>`_.
* 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 <https://pypi.org>`_, 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 <https://github.com/pyenv/pyenv>`_: management of different Python versions.
* `Pipx <https://github.com/pipxproject/pipx/>`_ for installation of CLIs in a system-wide
way.
* `Poetry <https://github.com/sdispater/poetry>`_ for dependency management, virtual
environment management, packaging and publishing.
* `Git <https://www.git-scm.com/>`_ for version control.
* `CMake <https://cmake.org>`_ 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 <https://github.com/audreyr/cookiecutter>`_ for creating boilerplate
code from templates for all the parts that can be added to your project.
* `Python-semanticversion <https://github.com/rbarrois/python-semanticversion/blob/master/docs/index.rst>`_
for managing version strings and dependency version constraints according to the
`Semver 2.0 <http://semver.org/>`_ specification.
* `Pytest <https://www.git-scm.com/>`_ for testing your code.
* `Click <https://click.palletsprojects.com/en/7.x/>`_ for a pythonic and intuitive definition
of command-line interfaces (CLIs).
* `Sphinx <http://www.sphinx-doc.org/>`_ to extract documentation from your project's
doc-strings.
* `Sphinx-click <https://sphinx-click.readthedocs.io/en/latest/>`_ for extracting documentation
from the click_ command descriptions.
* `F2py <https://docs.scipy.org/doc/numpy/f2py/>`_ for transforming modern Fortran code into performant
binary extension modules interfacing nicely with `Numpy <https://numpy.org/>`_.
* `Pybind11 <https://pybind11.readthedocs.io/en/stable/>`_ 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:

* Contininous integtration (CI)
* Code style, e.g. `flake8 <http://flake8.pycqa.org/en/latest/>`_ or `black <https://github.com/psf/black>`_
* Profiling
* Gui for debugging C++/Fortran binary extensions
* Micc projects on Windows (So far, only support on Linux and MacOS).

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-1.1.8.tar.gz (48.5 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-1.1.8-py3-none-any.whl (69.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: et-micc-1.1.8.tar.gz
  • Upload date:
  • Size: 48.5 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-micc-1.1.8.tar.gz
Algorithm Hash digest
SHA256 37c7b2d666c7c8326db4503a5d541f105786207015107fa88410d2d34615ec99
MD5 2f189271023a48b569c14344d73e2a26
BLAKE2b-256 8cd3743f6ce072f133c6184d337e451084a4693c902bc1324a8f11d3d6bb24cd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: et_micc-1.1.8-py3-none-any.whl
  • Upload date:
  • Size: 69.3 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_micc-1.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 1893b7c9d0ddb16545f0b7b6b260aea0cbcf9fe5d7dbf210b5e8f4a3022eba76
MD5 f32acab86c96da2c07b0110415050671
BLAKE2b-256 30b5560cbd46b3c8ddaf009d2bd39dcfc11367b5db5c94b2e240ab8237bb4f91

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.8 This release

2 files

1.1.7

2 files

1.1.6

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.0.22

2 files

1.0.21

2 files

1.0.20

2 files

1.0.19

2 files

1.0.18

2 files

1.0.17

2 files

1.0.16

2 files

1.0.15

2 files

1.0.14

2 files

1.0.13

2 files

1.0.12

2 files

1.0.11

2 files

1.0.10

2 files

1.0.9

2 files

1.0.8

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

0.10.31

2 files

0.10.30

2 files

0.10.29

2 files

0.10.28

2 files

0.10.27

2 files

0.10.26

2 files

0.10.25

2 files

0.10.24

2 files

0.10.23

2 files

0.10.22

2 files

0.10.21

2 files

0.10.20

2 files

0.10.19

2 files

0.10.18

2 files

0.10.17

2 files

0.10.16

2 files

0.10.15

2 files

0.10.14

2 files

0.10.13

2 files

0.10.12

2 files

0.10.11

2 files

0.10.10

2 files

0.10.9

2 files

0.10.8

2 files

0.10.7

2 files

0.10.6

2 files

0.10.5

2 files

0.10.4

2 files

0.10.3

2 files

0.10.2

2 files

0.10.1

2 files

0.10.0

2 files

0.9.46

2 files

0.9.45

2 files

0.9.44

2 files

0.9.43

2 files

0.9.42

2 files

0.9.41

2 files

0.9.40

2 files

0.9.39

2 files

0.9.38

2 files

0.9.37

2 files

0.9.36

2 files

0.9.35

2 files

0.9.34

2 files

0.9.33

2 files

0.9.32

2 files

0.9.31

2 files

0.9.30

2 files

0.9.29

2 files

0.9.28

2 files

0.9.27

2 files

0.9.24

2 files

0.9.23

2 files

0.9.22

2 files

0.9.21

2 files

0.9.20

2 files

0.9.19

2 files

0.9.18

2 files

0.9.17

2 files

0.9.16

2 files

0.9.15

2 files

0.9.14

2 files

0.9.13

2 files

0.9.12

2 files

0.9.11

2 files

0.9.10

2 files

0.9.8

2 files

0.9.7

2 files

0.9.6

2 files

0.9.5

2 files

0.9.4

2 files

0.9.3

2 files

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.5

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page