Metadata-Version: 2.4
Name: pyinvoke
Version: 1.0.4
Home-page: https://github.com/NiklasRosenstein/pyinvoke
Author: Niklas Rosenstein
Author-email: rosensteinniklas@gmail.com
License: MIT
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Dynamic: author
Dynamic: author-email
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file

# pyinvoke

`pyinvoke` is a simple module that is used to invoked Python applications
using a full function specifier, similar to distlib entrypoints.

The key advantage is that the Python application you want to run will be
loaded as its proper module instead of as the `__main__` module. `pyinvoke`
will be the `__main__` module for this operation.

One of the motivating cases where `pyinvoke` comes in handy is the following:

    $ python -m module.main
    Traceback (most recent call last):
      File "module/main.py", line 7, in <module>
        from .stuff import ham
    SystemError: Parent module '' not loaded, cannot perform relative import

To run the application with `pyinvoke`:

    $ python3 -m pyinvoke module.main:main

Applications that depend on restarting can read the original commandline
from `sys.__argv__`:

```python
argv = getattr(sys, '__argv__', sys.argv)
```

---

<p align="center">Copyright &copy; 2018 Niklas Rosenstein</p>
