Metadata-Version: 2.1
Name: makepyz
Version: 0.0.1b23
Summary: a new kind of make tool
Author-email: Antonio Cavallo <a.cavallo@cavallinux.eu>
License: MIT
Project-URL: Issues, https://github.com/cav71/makepyz/issues
Project-URL: Source, https://github.com/cav71/makepyz
Keywords: git,scm,version
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: typing-extensions
Requires-Dist: jinja2

# makepyz - the makefile alternative

## Intro

`makepyz` is a simple tool to collect task in a `make.py` file, in the same
spirit of a `Makefile`: it allows you to write portable tasks in python
leveraging an extensive internal library.

## Install

There are two ways to install it, in standalone mode (eg. no dependencies)
good for project that want to not rely on the [makepyz](https://github.com/cav71/makepyz)
project (or they want to keep a tight control on third parties code),
and the usual `pip` installed [package](https://pypi.org/project/makepyz).


### Using pip

You can use pip to install [makepyz](https://github.com/cav71/makepyz):

```shell
pip install makepyz
```

### Stand alone

In standalone mod you can just get the latest `makepyz`:

```shell
curl -LO https://github.com/cav71/makepyz/raw/master/makepyz
```

```shell
echo hello
```

## Using

First you need to create a `make.py` file:

```python
from makepyz import api

@api.task()
def info(arguments: list[str]):
    """this is the hello world"""
    print(  # noqa: T201
        f"""
    Hi!
    python: {sys.executable}
    version: {sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}
    cwd: {Path.cwd()}
    arguments: {arguments}
    """)
```

Then:
```shell
makepyz
```


## API

**api.task** - decorates a new makepyz task.

Example:
```python
from make import api

@api.task()
def hello():
    print("Hello world")
```


**api.which** - finds an executablek.
Example:
```python
from make import api

print(api.which("dir"))
```
