a standard library module ➤ Currently frozen in time (~ 10 years ago or so) ➤ Very old, very few benefits ➤ setuptools is a third-party module ➤ Actively developed and released ➤ Builds on distutils’ legacy ➤ Both generate: ➤ metadata ➤ installation instructions
a standard library module ➤ Currently frozen in time (~ 10 years ago or so) ➤ Very old, very few benefits ➤ setuptools is a third-party module ➤ Actively developed and released ➤ Builds on distutils’ legacy ➤ Both generate: ➤ metadata ➤ installation instructions
a standard library module ➤ Currently frozen in time (~ 10 years ago or so) ➤ Very old, very few benefits ➤ setuptools is a third-party module ➤ Actively developed and released ➤ Builds on distutils’ legacy ➤ Both generate: ➤ metadata ➤ installation instructions
project does ➤ specific examples of how to use it (or a link to those) ➤ alternatives (or competitors) that you’re aware of and why this project is better than them ➤ how to install the project (e.g., pip install flake8)
the standard location for the text of whatever license you pick ➤ No I’m not going to tell you what license is best ➤ https://opensource.org/licenses ➤ http://choosealicense.com/
help? ➤ Docs? ➤ Issues? ➤ Code submission? ➤ Other? ➤ How do others comport themselves? ➤ i.e., Code of Conduct ➤ Useful for open and closed source projects
run tests against the installed version ➤ Want to run tests from directory containing “src” ➤ Want to avoid accidentally importing package in tests ➤ Makes it explicit what is the package source code
(or pypi.io) ➤ Verifies the download before installing ➤ Correctly installs and uninstalls packages ➤ Caches packages locally on disk for future installation speed ➤ Will cache wheels if it can build them
binary format for Python packages ➤ Makes installations FAST ➤ pip install wheel ➤ https://www.python.org/dev/peps/pep-0427/ ➤ Advanced features: ➤ Universal wheels can be installed on Python 2 and 3 ➤ Can contain compiled extensions ➤ If not universal, will contain platform tags ➤ All of this can be chatted about afterwards
PyPI) ➤ Verifies HTTPS connection before upload ➤ Authenticates for you ➤ Will properly upload multiple package files ➤ Will GPG sign your package for you and upload signatures
Python core developers to document Python ➤ Extendable, extends RST ➤ Used by docs.python.org ➤ Mkdocs ➤ Uses Markdown ➤ Both supported by readthedocs.org
Primarily used for running tests ➤ Manages virtual environments for you ➤ Makes it a good tool for running things in a virtualenv ➤ E.g., docs generation, releasing projects, linting, etc.