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.

Source Distribution

import-ready-0.12.0.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

import_ready-0.12.0-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file import-ready-0.12.0.tar.gz.

File metadata

  • Download URL: import-ready-0.12.0.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4

File hashes

Hashes for import-ready-0.12.0.tar.gz
Algorithm Hash digest
SHA256 ef690e05da568ea4e7aa389d6884aa10931ef5935992b5dc26ff6f9492479ebc
MD5 92812d66b8056beefbde04c72c4f416d
BLAKE2b-256 21b930b75564bf575821c0271722d3dcf3881169440eeaae758bbc27a9cec871

See more details on using hashes here.

File details

Details for the file import_ready-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: import_ready-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4

File hashes

Hashes for import_ready-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 082a0107cbc41efef7e4dbc07d8c33ea2ee453a6329c1630cb31671b350eae74
MD5 8b843aa2ad479e5cd563308f404c7a35
BLAKE2b-256 37659eb32acc15a2559b8a5f229b0974e05f2f5172a2242800d35b37aeaa9ecf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page