Skip to main content

Makefile execution powered by pure Python

Project description

PyPI-Status PyPI-Versions

Build-Status Coverage-Status Branch-Coverage-Status Codacy-Grade Libraries-Rank

LICENCE

Bring basic Makefile support to any system with Python.

Simply install with pip install py3make then execute py3make in a directory containing a Makefile.

py3make works on any platform (Linux, Windows, Mac, FreeBSD, Solaris/SunOS).

py3make does not require any library to run, just a vanilla Python interpreter will do.

The goal is not to reproduce a whole implementation of GNU make, but only a very fast and succinct commands runner. This is often used to ease running tests and deployments locally, before uploading to a continuous integration/continuous deployment system such as GitHub Workflows.

Do not be fooled by the lack of updates: this module is very stable and is very frequently (daily) used in most of my Python projects.

This repository is a “fork” by the original author to regain full editing permissions stolen by a co-author, to update this package with full freedom.


Installation

Latest PyPI stable release

PyPI-Status PyPI-Downloads Libraries-Dependents

pip install py3make

Latest development release on GitHub

GitHub-Status GitHub-Stars GitHub-Commits GitHub-Forks GitHub-Updated

Pull and install in the current directory:

pip install -e git+https://github.com/lrq3000/py3make.git

Changelog

The list of all changes is available either on GitHub’s Releases: GitHub-Status or on crawlers such as allmychanges.com.

Usage

Simply install then execute py3make -p to list commands and py3make <command> to use a command, in a directory containing a Makefile.

Known Issues

For compatibility, ensure:

  1. Every alias is preceded by @[+]make (eg: @make alias)

  2. A maximum of one @make alias or command per line

Sample makefile compatible with py3make:

PY=python -m py_compile
.PHONY:
    all
    test
    install
    compile
all:
    @+make test
    @make install
test:
    nosetest
install:
    python setup.py\
    install
compile:
    $(PY) test.py
circle:
    # of life
    circle
empty:
    # this is a comment

If you get a “Permission Denied” error, please check if maybe your antivirus may be preventing the launch of compiled python scripts, if the Scripts subdirectory is in the PATH, or other issues with the Python install.

Documentation

PyPI-Versions

py3make --help

Contributions

GitHub-Commits GitHub-Issues GitHub-PRs

All source code is hosted on GitHub. Contributions are welcome.

See the CONTRIBUTE file for more information.

LICENCE

Open Source (OSI approved): LICENCE

Authors

The main developers, ranked by surviving lines of code (git fame -wMC), are:

  • Stephen Karl Larroque (lrq3000, core logic & maintenance Py3)

  • Casper da Costa-Luis (casperdcl, modularization & self-referential aliases & ironing out edge cases & documentation)

We are grateful for all GitHub-Contributions!

Download files

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

Source Distribution

py3make-1.0.0b1.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

py3make-1.0.0b1-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file py3make-1.0.0b1.tar.gz.

File metadata

  • Download URL: py3make-1.0.0b1.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for py3make-1.0.0b1.tar.gz
Algorithm Hash digest
SHA256 e815660f446f2d9a5afa0d7acd6273d7c3b1f86161e7249c9e2f788fb5f0de01
MD5 94e5c35c7168218e25307ea2f6ed2395
BLAKE2b-256 d30ad0ad84919cd42ee373ba40644b5020d31c268230173ab34283f0f35a82df

See more details on using hashes here.

File details

Details for the file py3make-1.0.0b1-py3-none-any.whl.

File metadata

  • Download URL: py3make-1.0.0b1-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for py3make-1.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 0426cebe29dcedac96ce3556c73c34d6d9120ecf9b8a7f99ca73330bc3d047f4
MD5 a0f966441bc187fb5e0f4f9e334acf3b
BLAKE2b-256 4658fb8a35aae49db9d8ac2b7dedb20e90d6e4511b5b63c6dfcad77a0b4c6edf

See more details on using hashes here.

Supported by

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