Skip to main content

A simple importable Python package

Project description

import-ready

image image image image image image

This repository demonstrates steps needed to publish an importable Python package first to TestPyPI, and second to PyPI. If this demonstration deviates from best practice in any way, please submit an issue on GitHub.

Inside import-ready is a package called huntsville_havoc that divulges a couple of bona fide secrets that most diehard SPHL Huntsville Havoc fans don't know.

Prepare the Package

  1. Prepare your environment before installing Python packages.
  2. Update version in setup.py per semantic versioning guidance.

Test in Development Environment

Run as follows from the top level directory in a clean venv with pip-tools installed:

python -m piptools compile --upgrade --generate-hashes dev-requirements.in
python -m piptools sync dev-requirements.txt
python -m pytest -s tests

Publish to TestPyPI

  1. Git commit, tag, & push all desired edits for release.
  2. Create a new release in GitHub to mirror your new version.
  3. Generate distribution archives for your package.
  4. Upload your package to TestPyPI.

Test the TestPyPI-Published Package

Run as follows from the tests directory in another clean venv with pip-tools installed:

TEST_PYPI_FLAG='--extra-index-url https://test.pypi.org/simple/'
python -m piptools compile --upgrade --generate-hashes $TEST_PYPI_FLAG \
      --output-file testpypi-requirements.txt pub-requirements.in
python -m piptools sync $TEST_PYPI_FLAG testpypi-requirements.txt
python -m pytest -s

Publish to PyPI

After passing the above tests, upload your package to PyPI.

Test the PyPI-Published Package

Run as follows from the tests directory in yet another clean venv with pip-tools installed:

python -m piptools compile --upgrade --generate-hashes \
      --output-file pypi-requirements.txt pub-requirements.in
python -m piptools sync pypi-requirements.txt
python -m pytest -s

Thanks

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for import-ready, version 0.12.0
Filename, size File type Python version Upload date Hashes
Filename, size import_ready-0.12.0-py3-none-any.whl (4.0 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size import-ready-0.12.0.tar.gz (3.9 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page