# IMPORTANT: for compatibility with `python -m pymake [alias]`, ensure: # 1. Every alias is preceded by @[+]make (eg: @make alias) # 2. A maximum of one @make alias or command per line # see: https://github.com/tqdm/py-make/issues/1 .PHONY: alltests all flake8 test pytest testsetup testnb testcoverage testperf testtimer distclean coverclean prebuildclean clean toxclean install_dev install build buildupload pypi snap docker help none run help: @python -m pymake -p alltests: @+make testcoverage @+make testperf @+make flake8 @+make testsetup all: @+make alltests @+make build flake8: @+pre-commit run -a flake8 @+pre-commit run -a nbstripout test: TOX_SKIP_ENV=perf tox --skip-missing-interpreters -p all tox -e perf pytest: pytest testsetup: @make README.rst @make tqdm/tqdm.1 @make tqdm/completion.sh @make help testnb: pytest tests_notebook.ipynb --cov=tqdm.notebook --cov-report=term -W=ignore --nbval --current-env --sanitize-with=.meta/nbval.ini testcoverage: @make coverclean pytest tests_notebook.ipynb --cov=tqdm --cov-report= -W=ignore --nbval --current-env --sanitize-with=.meta/nbval.ini pytest -k "not perf" --cov=tqdm --cov-report=xml --cov-report=term --cov-append --cov-fail-under=80 testperf: # do not use coverage (which is extremely slow) pytest -k perf testtimer: pytest # another performance test, to check evolution across commits testasv: # Test only the last 3 commits (quick test) asv run -j 8 HEAD~3..HEAD @make viewasv testasvfull: # Test all the commits since the beginning (full test) asv run --skip-existing-commits -j 8 v1.0.0..HEAD @make testasv viewasv: asv publish asv preview tqdm/tqdm.1: .meta/.tqdm.1.md tqdm/cli.py tqdm/std.py # TODO: add to mkdocs.py python -m tqdm --help | tail -n+5 |\ sed -r -e 's/\\/\\\\/g' \ -e 's/^ (--.*)=<(.*)> : (.*)$$/\n\\\1=*\2*\n: \3./' \ -e 's/^ (--.*) : (.*)$$/\n\\\1\n: \2./' \ -e 's/ (-.*, )(--.*) /\n\1\\\2\n: /' |\ cat "$<" - |\ pandoc -o "$@" -s -t man tqdm/completion.sh: .meta/mkcompletion.py tqdm/std.py tqdm/cli.py @python .meta/mkcompletion.py README.rst: .meta/.readme.rst tqdm/std.py tqdm/cli.py @python .meta/mkdocs.py snapcraft.yaml: .meta/mksnap.py @python .meta/mksnap.py .dockerignore: @+python -c "fd=open('.dockerignore', 'w'); fd.write('*\n!dist/*.whl\n')" Dockerfile: @+python -c 'fd=open("Dockerfile", "w"); fd.write("FROM python:3.8-alpine\nCOPY dist/*.whl .\nRUN pip install -U $$(ls ./*.whl) && rm ./*.whl\nENTRYPOINT [\"tqdm\"]\n")' distclean: @+make coverclean @+make prebuildclean @+make clean prebuildclean: @+python -c "import shutil; shutil.rmtree('build', True)" @+python -c "import shutil; shutil.rmtree('dist', True)" @+python -c "import shutil; shutil.rmtree('tqdm.egg-info', True)" @+python -c "import shutil; shutil.rmtree('.eggs', True)" @+python -c "import os; os.remove('tqdm/_dist_ver.py') if os.path.exists('tqdm/_dist_ver.py') else None" coverclean: @+python -c "import os; os.remove('.coverage') if os.path.exists('.coverage') else None" @+python -c "import os, glob; [os.remove(i) for i in glob.glob('.coverage.*')]" @+python -c "import shutil; shutil.rmtree('tests/__pycache__', True)" @+python -c "import shutil; shutil.rmtree('benchmarks/__pycache__', True)" @+python -c "import shutil; shutil.rmtree('tqdm/__pycache__', True)" @+python -c "import shutil; shutil.rmtree('tqdm/contrib/__pycache__', True)" @+python -c "import shutil; shutil.rmtree('tqdm/examples/__pycache__', True)" clean: @+python -c "import os, glob; [os.remove(i) for i in glob.glob('*.py[co]')]" @+python -c "import os, glob; [os.remove(i) for i in glob.glob('tests/*.py[co]')]" @+python -c "import os, glob; [os.remove(i) for i in glob.glob('benchmarks/*.py[co]')]" @+python -c "import os, glob; [os.remove(i) for i in glob.glob('tqdm/*.py[co]')]" @+python -c "import os, glob; [os.remove(i) for i in glob.glob('tqdm/contrib/*.py[co]')]" @+python -c "import os, glob; [os.remove(i) for i in glob.glob('tqdm/examples/*.py[co]')]" toxclean: @+python -c "import shutil; shutil.rmtree('.tox', True)" submodules: git clone git@github.com:tqdm/tqdm.wiki wiki git clone git@github.com:tqdm/tqdm.github.io docs git clone git@github.com:conda-forge/tqdm-feedstock feedstock cd feedstock && git remote add autotick-bot git@github.com:regro-cf-autotick-bot/tqdm-feedstock install: python -m pip install . install_dev: python -m pip install -e . install_build: python -m pip install -r .meta/requirements-build.txt install_test: python -m pip install -r .meta/requirements-test.txt pre-commit install build: @make prebuildclean @make testsetup python -m build python -m twine check dist/* pypi: python -m twine upload dist/* buildupload: @make build @make pypi snap: @make -B snapcraft.yaml snapcraft docker: @make build @make .dockerignore @make Dockerfile docker build . -t tqdm/tqdm docker tag tqdm/tqdm:latest tqdm/tqdm:$(shell docker run -i --rm tqdm/tqdm -v) none: # used for unit testing run: python -Om tqdm --help