Metadata-Version: 2.1
Name: py-make
Version: 0.1.2
Summary: Makefile execution powered by pure Python
Author-email: Stephen Larroque <lrq3000@gmail.com>, Casper da Costa-Luis <tqdm@cdcl.ml>
Maintainer-email: tqdm developers <tqdm@cdcl.ml>
License: MPL-2.0
Project-URL: repository, https://github.com/tqdm/py-make
Project-URL: changelog, https://github.com/tqdm/py-make/releases
Keywords: make,makefile,gnumake,gnu,console,terminal,cli
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: MacOS X
Classifier: Environment :: Other Environment
Classifier: Environment :: Win32 (MS Windows)
Classifier: Environment :: X11 Applications
Classifier: Framework :: IPython
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Other Audience
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Classifier: Operating System :: MacOS
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft
Classifier: Operating System :: Microsoft :: MS-DOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: BSD
Classifier: Operating System :: POSIX :: BSD :: FreeBSD
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: POSIX :: SunOS/Solaris
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
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 :: Only
Classifier: Programming Language :: Python :: Implementation
Classifier: Programming Language :: Python :: Implementation :: IronPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Programming Language :: Unix Shell
Classifier: Topic :: Desktop Environment
Classifier: Topic :: Education :: Computer Aided Instruction (CAI)
Classifier: Topic :: Education :: Testing
Classifier: Topic :: Office/Business
Classifier: Topic :: Other/Nonlisted Topic
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Pre-processors
Classifier: Topic :: Software Development :: User Interfaces
Classifier: Topic :: System :: Installation/Setup
Classifier: Topic :: System :: Logging
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: System :: Shells
Classifier: Topic :: Terminals
Classifier: Topic :: Utilities
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
License-File: LICENCE
Requires-Dist: docopt >=0.6.0
Provides-Extra: dev
Requires-Dist: pytest >=6 ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: pytest-timeout ; extra == 'dev'
Requires-Dist: pytest-xdist ; extra == 'dev'

py-make
=======

|PyPI-Status| |PyPI-Versions|

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

|DOI-URI| |LICENCE| |OpenHub-Status|


Bring basic ``Makefile`` support to any system with Python.

Inspired by work in `tqdm <https://github.com/tqdm/tqdm>`__.

Simply install then execute ``pymake`` in a directory containing a ``Makefile``.

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

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

------------------------------------------

.. contents:: Table of contents
   :backlinks: top
   :local:


Installation
------------

Latest PyPI stable release
~~~~~~~~~~~~~~~~~~~~~~~~~~

|PyPI-Status| |PyPI-Downloads| |Libraries-Dependents|

.. code:: sh

    pip install py-make

Latest development release on GitHub
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

Pull and install in the current directory:

.. code:: sh

    pip install -e git+https://github.com/tqdm/py-make.git@master#egg=py-make


Changelog
---------

The list of all changes is available either on GitHub's Releases:
|GitHub-Status| or on crawlers such as
`allmychanges.com <https://allmychanges.com/p/python/py-make/>`_.


Usage
-----

Simply install then execute ``pymake -p`` to list commands and ``pymake <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

A full list of what is and is not supported is on the
`issue tracker <https://github.com/tqdm/py-make/issues/1>`__.

Sample makefile compatible with ``pymake``:

.. code:: sh

    PY=python -m py_compile
    .PHONY:
    	all
    	test
        install
        compile
    all:
    	@+make test
    	@make install
    test:
    	pytest
    install:
    	python -m pip 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 <https://stackoverflow.com/questions/56974927/permission-denied-trying-to-run-python-on-windows-10>`__.

Documentation
-------------

|PyPI-Versions| |README-Hits| (Since 28 Oct 2016)

.. code:: sh

    pymake --help


Contributions
-------------

|GitHub-Commits| |GitHub-Issues| |GitHub-PRs| |OpenHub-Status|

All source code is hosted on `GitHub <https://github.com/tqdm/py-make>`__.
Contributions are welcome.

See the
`CONTRIBUTING.md <https://raw.githubusercontent.com/tqdm/py-make/master/CONTRIBUTING.md>`__
file for more information.


LICENCE
-------

Open Source (OSI approved): |LICENCE|

Citation information: |DOI-URI|


Authors
-------

The main developers, ranked by surviving lines of code
(`git fame -wMC <https://github.com/casperdcl/git-fame>`__), are:

- Stephen Larroque (`lrq3000 <https://github.com/lrq3000>`__, core logic)
- Casper da Costa-Luis (`casperdcl <https://github.com/casperdcl>`__, modularization & maintenance)

We are grateful for all |GitHub-Contributions|.

|README-Hits| (Since 28 Oct 2016)

.. |Build-Status| image:: https://img.shields.io/github/actions/workflow/status/tqdm/py-make/test.yml?branch=master&label=py-make&logo=GitHub
   :target: https://github.com/tqdm/py-make/actions/workflows/test.yml
.. |Coverage-Status| image:: https://coveralls.io/repos/tqdm/py-make/badge.svg?branch=master
   :target: https://coveralls.io/github/tqdm/py-make
.. |Branch-Coverage-Status| image:: https://codecov.io/gh/tqdm/py-make/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/tqdm/py-make
.. |Codacy-Grade| image:: https://api.codacy.com/project/badge/Grade/1f1dab515f294a05af8fc45e200660e5
   :target: https://www.codacy.com/app/tqdm/py-make/dashboard
.. |GitHub-Status| image:: https://img.shields.io/github/tag/tqdm/py-make.svg?maxAge=86400&logo=github&logoColor=white
   :target: https://github.com/tqdm/py-make/releases
.. |GitHub-Forks| image:: https://img.shields.io/github/forks/tqdm/py-make.svg?logo=github&logoColor=white
   :target: https://github.com/tqdm/py-make/network
.. |GitHub-Stars| image:: https://img.shields.io/github/stars/tqdm/py-make.svg?logo=github&logoColor=white
   :target: https://github.com/tqdm/py-make/stargazers
.. |GitHub-Commits| image:: https://img.shields.io/github/commit-activity/y/tqdm/py-make.svg?logo=git&logoColor=white
   :target: https://github.com/tqdm/py-make/graphs/commit-activity
.. |GitHub-Issues| image:: https://img.shields.io/github/issues-closed/tqdm/py-make.svg?logo=github&logoColor=white
   :target: https://github.com/tqdm/py-make/issues
.. |GitHub-PRs| image:: https://img.shields.io/github/issues-pr-closed/tqdm/py-make.svg?logo=github&logoColor=white
   :target: https://github.com/tqdm/py-make/pulls
.. |GitHub-Contributions| image:: https://img.shields.io/github/contributors/tqdm/py-make.svg?logo=github&logoColor=white
   :target: https://github.com/tqdm/py-make/graphs/contributors
.. |GitHub-Updated| image:: https://img.shields.io/github/last-commit/tqdm/py-make/master.svg?logo=github&logoColor=white&label=pushed
   :target: https://github.com/tqdm/py-make/pulse
.. |PyPI-Status| image:: https://img.shields.io/pypi/v/py-make.svg
   :target: https://pypi.org/project/py-make
.. |PyPI-Downloads| image:: https://img.shields.io/pypi/dm/py-make.svg?label=pypi%20downloads&logo=python&logoColor=white
   :target: https://pypi.org/project/py-make
.. |PyPI-Versions| image:: https://img.shields.io/pypi/pyversions/py-make.svg?logo=python&logoColor=white
   :target: https://pypi.org/project/py-make
.. |Libraries-Rank| image:: https://img.shields.io/librariesio/sourcerank/pypi/py-make.svg?logo=koding&logoColor=white
   :target: https://libraries.io/pypi/py-make
.. |Libraries-Dependents| image:: https://img.shields.io/librariesio/dependent-repos/pypi/py-make.svg?logo=koding&logoColor=white
    :target: https://github.com/tqdm/py-make/network/dependents
.. |OpenHub-Status| image:: https://www.openhub.net/p/tqdm_py-make/widgets/project_thin_badge?format=gif
   :target: https://www.openhub.net/p/tqdm_py-make?ref=Thin+badge
.. |LICENCE| image:: https://img.shields.io/pypi/l/py-make.svg
   :target: https://raw.githubusercontent.com/tqdm/py-make/master/LICENCE
.. |DOI-URI| image:: https://img.shields.io/badge/DOI-10.5281/zenodo.2546871-blue.svg
   :target: https://doi.org/10.5281/zenodo.2546871
.. |README-Hits| image:: https://caspersci.uk.to/cgi-bin/hits.cgi?q=py-make&style=social&r=https://github.com/tqdm/py-make
   :target: https://caspersci.uk.to/cgi-bin/hits.cgi?q=py-make&a=plot&r=https://github.com/tqdm/py-make&style=social
