Developing Python Packages
James Fulton
Climate informatics researcher
Inside setup.py
of mysklearn
setup(
...
classifiers=[
'Development Status :: 2 - Pre-Alpha',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Natural Language :: English',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
],
...
)
mysklearn/
...
|-- README.md
|-- setup.py
|-- Makefile <---
...
Inside Makefile
... dist: ## builds source and wheel package python3 setup.py sdist bdist_wheel
clean-build: ## remove build artifacts rm -fr build/ rm -fr dist/ rm -fr .eggs/
test: ## run tests quickly with the default Python pytest
release: dist ## package and upload a release twine upload dist/*
make <function-name>
mysklearn/ <--- navigate to here
...
|-- README.md
|-- setup.py
|-- Makefile
...
To use the dist function type this in terminal
make dist
Inside Makefile
...
dist: ## builds source and wheel package
python3 setup.py sdist bdist_wheel
clean-build: ## remove build artifacts
rm -fr build/
rm -fr dist/
rm -fr .eggs/
test: ## run tests quickly with the default Python
pytest
release: dist ## package and upload a release
twine upload dist/*
make help
clean remove all build, test, coverage and Python artifacts
clean-build remove build artifacts
clean-pyc remove Python file artifacts
clean-test remove test and coverage artifacts
lint check style with flake8
test run tests quickly with the default Python
test-all run tests on every Python version with tox
release package and upload a release
dist builds source and wheel package
install install the package to the active Python's site-packages
Developing Python Packages