rjdbcm/Aspidites

View on GitHub
Makefile

Summary

Maintainability
Test Coverage
.PHONY:
    docker
    docs
    clean-md5
    clean-build
    clean-pyc
    clean-woma
    clean-test
    clean
    test-all
    xtest
    coverage
    patch
    minor
    major
    build
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS    ?=
SPHINXBUILD   ?= sphinx-build
SOURCEDIR     = docs
BUILDDIR      = build
VERSION       = $(shell python -c "import sys;from Aspidites import __version__;sys.stdout.write(__version__)");
clean: clean-build clean-pyc clean-test clean-sha clean-woma## remove all build, test, coverage and Python artifacts
    rm -fr CHANGELOG.bak

clean-build: ## remove build artifacts
    rm -fr build/
    rm -fr prof/
    rm -fr dist/
    rm -fr .eggs/
    rm -fr __main__.pyi
    rm -fr main.spec
    rm -fr Aspidites/_vendor/contracts/metaclass.c
    rm -fr Aspidites/_vendor/contracts/interface.c
    rm -fr Aspidites/_vendor/contracts/syntax.c
    rm -fr Aspidites/_vendor/contracts/inspection.c
    rm -fr Aspidites/_vendor/contracts/docstring_parsing.c
    rm -fr Aspidites/_vendor/contracts/main_actual.c
    rm -fr Aspidites/_vendor/contracts/useful_contracts/numpy_specific.c
    rm -fr Aspidites/_vendor/contracts/useful_contracts/numbers.c
    rm -fr Aspidites/_vendor/contracts/library/*.c
    rm -fr Aspidites/_vendor/contracts/parser.c
    rm -fr Aspidites/_vendor/apm/_util.c
    rm -fr Aspidites/_vendor/apm/error.c
    rm -fr Aspidites/_vendor/apm/generic.c
    rm -fr Aspidites/_vendor/apm/match.c
    rm -fr Aspidites/_vendor/apm/no_value.c
    rm -fr Aspidites/_vendor/apm/overload.c
    rm -fr Aspidites/_vendor/apm/patterns.c
    rm -fr Aspidites/_vendor/apm/try_match.c
    rm -fr Aspidites/_vendor/fn/*.c
    rm -fr Aspidites/_vendor/RestrictedPython/Limits.c
    rm -fr Aspidites/api/convert.c
    rm -fr Aspidites/api/parser.c
    rm -fr Aspidites/api/reserved.c
    rm -fr Aspidites/_vendor/decorator_extension.c
    rm -fr Aspidites/_vendor/pyparsing_extension.c
    rm -fr Aspidites/api/templates.c
    rm -fr Aspidites/api/monads.c
    rm -fr Aspidites/api/math.c
    rm -fr Aspidites/api/api.c
    rm -fr Aspidites/__main__.c
    rm -fr Aspidites/api/compiler.c
    rm -fr Aspidites/api/compiler.*.so
    rm -fr Aspidites/api/__main__.*.so
    rm -fr Aspidites/api/api.*.so
    rm -fr Aspidites/api/math.*.so
    rm -fr Aspidites/api/monads.*.so
    rm -fr Aspidites/api/templates.*.so
    rm -fr Aspidites/_vendor/apm/_util.*.so
    rm -fr Aspidites/_vendor/apm/error.*.so
    rm -fr Aspidites/_vendor/apm/generic.*.so
    rm -fr Aspidites/_vendor/apm/match.*.so
    rm -fr Aspidites/_vendor/apm/no_value.*.so
    rm -fr Aspidites/_vendor/apm/overload.*.so
    rm -fr Aspidites/_vendor/apm/patterns.*.so
    rm -fr Aspidites/_vendor/apm/try_match.*.so
    rm -fr Aspidites/_vendor/decorator_extension.*.so
    rm -fr Aspidites/_vendor/pyparsing_extension.*.so
    rm -fr Aspidites/_vendor/fn/*.*.so
    rm -fr Aspidites/_vendor/contracts/metaclass.*.so
    rm -fr Aspidites/_vendor/contracts/interface.*.so
    rm -fr Aspidites/_vendor/contracts/parser.*.so
    rm -fr Aspidites/_vendor/contracts/syntax.*.so
    rm -fr Aspidites/_vendor/contracts/inspection.*.so
    rm -fr Aspidites/_vendor/contracts/docstring_parsing.*.so
    rm -fr Aspidites/_vendor/contracts/main_actual.*.so
    rm -fr Aspidites/_vendor/contracts/library/*.*.so
    rm -fr Aspidites/_vendor/contracts/useful_contracts/numpy_specific.*.so
    rm -fr Aspidites/_vendor/contracts/useful_contracts/numbers.*.so
    rm -fr Aspidites/_vendor/pyrsistent/_helpers.*.so
    rm -fr Aspidites/_vendor/pyrsistent/_checked_types.*.so
    rm -fr Aspidites/_vendor/pyrsistent/_immutable.*.so
    rm -fr Aspidites/_vendor/pyrsistent/_pbag.*.so
    rm -fr Aspidites/_vendor/pyrsistent/_pclass.*.so
    rm -fr Aspidites/_vendor/pyrsistent/_pdeque.*.so
    rm -fr Aspidites/_vendor/pyrsistent/_plist.*.so
    rm -fr Aspidites/_vendor/pyrsistent/_pmap.*.so
    rm -fr Aspidites/_vendor/pyrsistent/_precord.*.so
    rm -fr Aspidites/_vendor/pyrsistent/_pset.*.so
    rm -fr Aspidites/_vendor/pyrsistent/_pvector.*.so
    rm -fr Aspidites/_vendor/pyrsistent/_toolz.*.so
    rm -fr Aspidites/_vendor/pyrsistent/pvectorc.*.so
    rm -fr Aspidites/_vendor/pyrsistent/typing.*.so
    rm -fr Aspidites/_vendor/RestrictedPython/Limits.*.so
    rm -fr Aspidites/api/convert.*.so
    rm -fr Aspidites/api/parser.*.so
    rm -fr Aspidites/api/reserved.*.so
    find . -name '*.egg-info' -exec rm -fr {} +
    find . -name '*.egg' -exec rm -f {} +
    find . -name '*.DS_Store' -exec rm -f {} +


clean-sha:
    find . -name '*.sha256' -exec rm -f {} +

clean-pyc: ## remove Python file artifacts
    find . -name '*.pyc' -exec rm -f {} +
    find . -name '*.pyo' -exec rm -f {} +
    find . -name '*~' -exec rm -f {} +
    find . -name '__pycache__' -exec rm -fr {} +

clean-test: ## remove test and coverage artifacts
    rm -fr .tox/
    rm -f .coverage
    rm -fr htmlcov/
    rm -fr .hypothesis/
    rm -fr .coverage_html/
    rm -fr .pytest_cache
    rm -fr .mypy_cache
    -cd Aspidites/tests/examples && $(MAKE) uninstall

clean-woma: ## remove compiled woma files
    -cd Aspidites/woma && $(MAKE) uninstall

docker:
    docker -v build . --no-cache -t rjdbcm/aspidites:$(VERSION)

test-all:
    python -m pytest Aspidites/tests --cov Aspidites --cov-report=html:.coverage_html --full-trace --capture=tee-sys

build-ext: clean
    python setup.py build_ext --inplace

quickbuild: clean-woma
    -cd Aspidites/tests/examples && $(MAKE) uninstall
    python setup.py build_ext --inplace

proftest: build-ext
    python -m pytest Aspidites/tests -x --profile --profile-svg

xtest: build-ext
    python -m pytest Aspidites/tests -x

quicktest: quickbuild
    python -m pytest Aspidites/tests -x

coverage:
    python -m pytest Aspidites/tests --cov-report=xml --cov=Aspidites

release:
    git add CHANGELOG.md
    bump2version --config-file ./dev/.bumpversion.cfg release

prerel:
    git add CHANGELOG.md
    bump2version --config-file ./dev/.bumpversion.cfg prerel

patch:
    python -m dev.scripts.bumpversion_hook patch
    git add CHANGELOG.md
    git commit -m 'changelog updated'
    bump2version --config-file ./dev/.bumpversion.cfg patch

minor:
    python -m dev.scripts.bumpversion_hook minor
    git add CHANGELOG.md
    git commit -m 'changelog updated'
    bump2version --config-file ./dev/.bumpversion.cfg minor

major:
    python -m dev.scripts.bumpversion_hook major
    git add CHANGELOG.md
    git commit -m 'changelog updated'
    bump2version major

build: clean test-all clean
    python setup.py sdist bdist_wheel

%:
    @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)