py3make
=======
|PyPI-Status| |PyPI-Versions| |PyPI-Downloads|
|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 <https://github.com/lrq3000?tab=repositories&q=&type=&language=python&sort=>`__.
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.
------------------------------------------
.. contents:: Table of contents
:backlinks: top
:local:
Installation
------------
Latest PyPI stable release
~~~~~~~~~~~~~~~~~~~~~~~~~~
|PyPI-Status| |PyPI-Downloads| |Libraries-Dependents|
.. code:: sh
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:
.. code:: sh
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 <https://allmychanges.com/p/python/py3make/>`_.
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``:
.. code:: sh
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 <https://stackoverflow.com/questions/56974927/permission-denied-trying-to-run-python-on-windows-10>`__.
Documentation
-------------
|PyPI-Versions|
.. code:: sh
py3make --help
Contributions
-------------
|GitHub-Commits| |GitHub-Issues| |GitHub-PRs|
All source code is hosted on `GitHub <https://github.com/lrq3000/py3make>`__.
Contributions are welcome.
See the
`CONTRIBUTE <https://raw.githubusercontent.com/lrq3000/py3make/master/CONTRIBUTE>`__
file for more information.
LICENCE
-------
Open Source (OSI approved): |LICENCE|
Authors
-------
The main developers, ranked by surviving lines of code
(`git fame -wMC <https://github.com/casperdcl/git-fame>`__), are:
- Stephen Karl Larroque (`lrq3000 <https://github.com/lrq3000>`__, core logic & maintenance Py3)
- Casper da Costa-Luis (`casperdcl <https://github.com/casperdcl>`__, modularization & self-referential aliases & ironing out edge cases & documentation)
We are grateful for all |GitHub-Contributions|!
.. |Build-Status| image:: https://github.com/lrq3000/py3make/actions/workflows/ci-build.yml/badge.svg?event=push
:target: https://github.com/lrq3000/py3make/actions/workflows/ci-build.yml
.. |Coverage-Status| image:: https://coveralls.io/repos/github/lrq3000/py3make/badge.svg?branch=main
:target: https://coveralls.io/github/lrq3000/py3make?branch=main
.. |Branch-Coverage-Status| image:: https://codecov.io/gh/lrq3000/py3make/branch/main/graph/badge.svg?token=JCKB7CEBCC
:target: https://codecov.io/gh/lrq3000/py3make
.. |Codacy-Grade| image:: https://app.codacy.com/project/badge/Grade/64b870375f664419b5f2a0a956006db7
:target: https://app.codacy.com/gh/lrq3000/py3make/dashboard
.. |GitHub-Status| image:: https://img.shields.io/github/tag/lrq3000/py3make.svg?maxAge=86400&logo=github&logoColor=white
:target: https://github.com/lrq3000/py3make/releases
.. |GitHub-Forks| image:: https://img.shields.io/github/forks/lrq3000/py3make.svg?logo=github&logoColor=white
:target: https://github.com/lrq3000/py3make/network
.. |GitHub-Stars| image:: https://img.shields.io/github/stars/lrq3000/py3make.svg?logo=github&logoColor=white
:target: https://github.com/lrq3000/py3make/stargazers
.. |GitHub-Commits| image:: https://img.shields.io/github/commit-activity/y/lrq3000/py3make.svg?logo=git&logoColor=white
:target: https://github.com/lrq3000/py3make/graphs/commit-activity
.. |GitHub-Issues| image:: https://img.shields.io/github/issues-closed/lrq3000/py3make.svg?logo=github&logoColor=white
:target: https://github.com/lrq3000/py3make/issues
.. |GitHub-PRs| image:: https://img.shields.io/github/issues-pr-closed/lrq3000/py3make.svg?logo=github&logoColor=white
:target: https://github.com/lrq3000/py3make/pulls
.. |GitHub-Contributions| image:: https://img.shields.io/github/contributors/lrq3000/py3make.svg?logo=github&logoColor=white
:target: https://github.com/lrq3000/py3make/graphs/contributors
.. |GitHub-Updated| image:: https://img.shields.io/github/last-commit/lrq3000/py3make/master.svg?logo=github&logoColor=white&label=pushed
:target: https://github.com/lrq3000/py3make/pulse
.. |PyPI-Status| image:: https://img.shields.io/pypi/v/py3make.svg
:target: https://pypi.org/project/py3make
.. |PyPI-Versions| image:: https://img.shields.io/pypi/pyversions/py3make.svg?logo=python&logoColor=white
:target: https://pypi.org/project/py3make
.. |PyPI-Downloads| image:: https://img.shields.io/pypi/dm/py3make.svg?label=pypi%20downloads&logo=python&logoColor=white
:target: https://pypi.org/project/py3make
.. |Libraries-Rank| image:: https://img.shields.io/librariesio/sourcerank/pypi/py3make.svg?logo=koding&logoColor=white
:target: https://libraries.io/pypi/py3make
.. |Libraries-Dependents| image:: https://img.shields.io/librariesio/dependent-repos/pypi/py3make.svg?logo=koding&logoColor=white
:target: https://github.com/lrq3000/py3make/network/dependents
.. |LICENCE| image:: https://img.shields.io/badge/License-MIT-yellow.svg
:target: https://opensource.org/licenses/MIT
.. |LICENCEAUTO| image:: https://img.shields.io/pypi/l/py3make.svg
:target: https://raw.githubusercontent.com/lrq3000/py3make/master/LICENCE
Raw data
{
"_id": null,
"home_page": "",
"name": "py3make",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "tqdm developers <python.tqdm@gmail.com>",
"keywords": "make,makefile,gnumake,gnu,console,terminal,cli,py3make,pymake,py-make",
"author": "",
"author_email": "Stephen Karl Larroque <LRQ3000@gmail.com>, Casper da Costa-Luis <casper.dcl@physics.org>",
"download_url": "https://files.pythonhosted.org/packages/18/89/c82f64db09188a58bdd548896e43ea64687b320a4fb90838853a496b17c0/py3make-1.0.4.tar.gz",
"platform": null,
"description": "py3make\r\n=======\r\n\r\n|PyPI-Status| |PyPI-Versions| |PyPI-Downloads|\r\n\r\n|Build-Status| |Coverage-Status| |Branch-Coverage-Status| |Codacy-Grade| |Libraries-Rank|\r\n\r\n|LICENCE|\r\n\r\n\r\nBring basic ``Makefile`` support to any system with Python.\r\n\r\nSimply install with ``pip install py3make`` then execute ``py3make`` in a directory containing a ``Makefile``.\r\n\r\n``py3make`` works on any platform (Linux, Windows, Mac, FreeBSD, Solaris/SunOS).\r\n\r\n``py3make`` does not require any library to run, just a vanilla Python\r\ninterpreter will do.\r\n\r\nThe goal is not to reproduce a whole implementation of ``GNU make``, but only a very fast and succinct\r\ncommands runner. This is often used to ease running tests and deployments locally, before uploading to\r\na continuous integration/continuous deployment system such as GitHub Workflows.\r\n\r\nDo not be fooled by the lack of updates: this module is very stable and is very frequently (daily) used\r\nin most of `my Python projects <https://github.com/lrq3000?tab=repositories&q=&type=&language=python&sort=>`__.\r\n\r\nThis repository is a \"fork\" by the original author to regain full editing permissions stolen by a co-author,\r\nto update this package with full freedom.\r\n\r\n------------------------------------------\r\n\r\n.. contents:: Table of contents\r\n :backlinks: top\r\n :local:\r\n\r\n\r\nInstallation\r\n------------\r\n\r\nLatest PyPI stable release\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\n|PyPI-Status| |PyPI-Downloads| |Libraries-Dependents|\r\n\r\n.. code:: sh\r\n\r\n pip install py3make\r\n\r\nLatest development release on GitHub\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\n|GitHub-Status| |GitHub-Stars| |GitHub-Commits| |GitHub-Forks| |GitHub-Updated|\r\n\r\nPull and install in the current directory:\r\n\r\n.. code:: sh\r\n\r\n pip install -e git+https://github.com/lrq3000/py3make.git\r\n\r\n\r\nChangelog\r\n---------\r\n\r\nThe list of all changes is available either on GitHub's Releases:\r\n|GitHub-Status| or on crawlers such as\r\n`allmychanges.com <https://allmychanges.com/p/python/py3make/>`_.\r\n\r\n\r\nUsage\r\n-----\r\n\r\nSimply install then execute ``py3make -p`` to list commands and ``py3make <command>`` to use a command, in a directory containing a ``Makefile``.\r\n\r\n\r\nKnown Issues\r\n------------\r\n\r\nFor compatibility, ensure:\r\n\r\n1. Every alias is preceded by @[+]make (eg: @make alias)\r\n2. A maximum of one @make alias or command per line\r\n\r\nSample makefile compatible with ``py3make``:\r\n\r\n.. code:: sh\r\n\r\n PY=python -m py_compile\r\n .PHONY:\r\n \tall\r\n \ttest\r\n install\r\n compile\r\n all:\r\n \t@+make test\r\n \t@make install\r\n test:\r\n \tnosetest\r\n install:\r\n \tpython setup.py\\\r\n install\r\n compile:\r\n \t$(PY) test.py\r\n circle:\r\n \t# of life\r\n \tcircle\r\n empty:\r\n \t# this is a comment\r\n\r\nIf 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>`__.\r\n\r\nDocumentation\r\n-------------\r\n\r\n|PyPI-Versions|\r\n\r\n.. code:: sh\r\n\r\n py3make --help\r\n\r\n\r\nContributions\r\n-------------\r\n\r\n|GitHub-Commits| |GitHub-Issues| |GitHub-PRs|\r\n\r\nAll source code is hosted on `GitHub <https://github.com/lrq3000/py3make>`__.\r\nContributions are welcome.\r\n\r\nSee the\r\n`CONTRIBUTE <https://raw.githubusercontent.com/lrq3000/py3make/master/CONTRIBUTE>`__\r\nfile for more information.\r\n\r\n\r\nLICENCE\r\n-------\r\n\r\nOpen Source (OSI approved): |LICENCE|\r\n\r\n\r\nAuthors\r\n-------\r\n\r\nThe main developers, ranked by surviving lines of code\r\n(`git fame -wMC <https://github.com/casperdcl/git-fame>`__), are:\r\n\r\n- Stephen Karl Larroque (`lrq3000 <https://github.com/lrq3000>`__, core logic & maintenance Py3)\r\n- Casper da Costa-Luis (`casperdcl <https://github.com/casperdcl>`__, modularization & self-referential aliases & ironing out edge cases & documentation)\r\n\r\nWe are grateful for all |GitHub-Contributions|!\r\n\r\n.. |Build-Status| image:: https://github.com/lrq3000/py3make/actions/workflows/ci-build.yml/badge.svg?event=push\r\n :target: https://github.com/lrq3000/py3make/actions/workflows/ci-build.yml\r\n.. |Coverage-Status| image:: https://coveralls.io/repos/github/lrq3000/py3make/badge.svg?branch=main\r\n :target: https://coveralls.io/github/lrq3000/py3make?branch=main\r\n.. |Branch-Coverage-Status| image:: https://codecov.io/gh/lrq3000/py3make/branch/main/graph/badge.svg?token=JCKB7CEBCC \r\n :target: https://codecov.io/gh/lrq3000/py3make\r\n.. |Codacy-Grade| image:: https://app.codacy.com/project/badge/Grade/64b870375f664419b5f2a0a956006db7\r\n :target: https://app.codacy.com/gh/lrq3000/py3make/dashboard\r\n.. |GitHub-Status| image:: https://img.shields.io/github/tag/lrq3000/py3make.svg?maxAge=86400&logo=github&logoColor=white\r\n :target: https://github.com/lrq3000/py3make/releases\r\n.. |GitHub-Forks| image:: https://img.shields.io/github/forks/lrq3000/py3make.svg?logo=github&logoColor=white\r\n :target: https://github.com/lrq3000/py3make/network\r\n.. |GitHub-Stars| image:: https://img.shields.io/github/stars/lrq3000/py3make.svg?logo=github&logoColor=white\r\n :target: https://github.com/lrq3000/py3make/stargazers\r\n.. |GitHub-Commits| image:: https://img.shields.io/github/commit-activity/y/lrq3000/py3make.svg?logo=git&logoColor=white\r\n :target: https://github.com/lrq3000/py3make/graphs/commit-activity\r\n.. |GitHub-Issues| image:: https://img.shields.io/github/issues-closed/lrq3000/py3make.svg?logo=github&logoColor=white\r\n :target: https://github.com/lrq3000/py3make/issues\r\n.. |GitHub-PRs| image:: https://img.shields.io/github/issues-pr-closed/lrq3000/py3make.svg?logo=github&logoColor=white\r\n :target: https://github.com/lrq3000/py3make/pulls\r\n.. |GitHub-Contributions| image:: https://img.shields.io/github/contributors/lrq3000/py3make.svg?logo=github&logoColor=white\r\n :target: https://github.com/lrq3000/py3make/graphs/contributors\r\n.. |GitHub-Updated| image:: https://img.shields.io/github/last-commit/lrq3000/py3make/master.svg?logo=github&logoColor=white&label=pushed\r\n :target: https://github.com/lrq3000/py3make/pulse\r\n.. |PyPI-Status| image:: https://img.shields.io/pypi/v/py3make.svg\r\n :target: https://pypi.org/project/py3make\r\n.. |PyPI-Versions| image:: https://img.shields.io/pypi/pyversions/py3make.svg?logo=python&logoColor=white\r\n :target: https://pypi.org/project/py3make\r\n.. |PyPI-Downloads| image:: https://img.shields.io/pypi/dm/py3make.svg?label=pypi%20downloads&logo=python&logoColor=white\r\n :target: https://pypi.org/project/py3make\r\n.. |Libraries-Rank| image:: https://img.shields.io/librariesio/sourcerank/pypi/py3make.svg?logo=koding&logoColor=white\r\n :target: https://libraries.io/pypi/py3make\r\n.. |Libraries-Dependents| image:: https://img.shields.io/librariesio/dependent-repos/pypi/py3make.svg?logo=koding&logoColor=white\r\n :target: https://github.com/lrq3000/py3make/network/dependents\r\n.. |LICENCE| image:: https://img.shields.io/badge/License-MIT-yellow.svg\r\n :target: https://opensource.org/licenses/MIT\r\n.. |LICENCEAUTO| image:: https://img.shields.io/pypi/l/py3make.svg\r\n :target: https://raw.githubusercontent.com/lrq3000/py3make/master/LICENCE\r\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Makefile execution powered by pure Python",
"version": "1.0.4",
"project_urls": {
"Changelog": "https://allmychanges.com/p/python/py3make/",
"Documentation": "https://github.com/lrq3000/py3make/blob/master/README.md",
"Download": "https://github.com/lrq3000/py3make/releases",
"Homepage": "https://github.com/lrq3000/py3make",
"Source": "https://github.com/lrq3000/py3make",
"Tracker": "https://github.com/lrq3000/py3make/issues"
},
"split_keywords": [
"make",
"makefile",
"gnumake",
"gnu",
"console",
"terminal",
"cli",
"py3make",
"pymake",
"py-make"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1c05d60fc23af406dd375f9ef2ad9940866797527f3eb49a7c9d8a7df139a7e1",
"md5": "4e63ad48881a2f92366fcaffd336bbfd",
"sha256": "c4374965e4c8a4ff4b4fdbd9375fd094ed5f455e4952d8cbe16549d8392c44f3"
},
"downloads": -1,
"filename": "py3make-1.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4e63ad48881a2f92366fcaffd336bbfd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 10961,
"upload_time": "2023-07-15T21:10:21",
"upload_time_iso_8601": "2023-07-15T21:10:21.816295Z",
"url": "https://files.pythonhosted.org/packages/1c/05/d60fc23af406dd375f9ef2ad9940866797527f3eb49a7c9d8a7df139a7e1/py3make-1.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1889c82f64db09188a58bdd548896e43ea64687b320a4fb90838853a496b17c0",
"md5": "1de814a58064750359b2f4497c2b90ee",
"sha256": "aa66fc7ed66d5cba5ec801341cfded1418968dd2005f1ec836d2d1e7c44d03c6"
},
"downloads": -1,
"filename": "py3make-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "1de814a58064750359b2f4497c2b90ee",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 20214,
"upload_time": "2023-07-15T21:10:23",
"upload_time_iso_8601": "2023-07-15T21:10:23.411065Z",
"url": "https://files.pythonhosted.org/packages/18/89/c82f64db09188a58bdd548896e43ea64687b320a4fb90838853a496b17c0/py3make-1.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-15 21:10:23",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lrq3000",
"github_project": "py3make",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"tox": true,
"lcname": "py3make"
}