Skip to main content

A thin wrapper to distribute https://github.com/wagoodman/dive via pip.

Project description

pybin

This project was inspired by how Maturin packages rust binaries. The key observation is that in the wheel format, the distribution-1.0.data/scripts/ directory is copied to bin, which means we can leverage this to seamlessly copy binaries into a user's PATH.

Combined with Python's platform-specific wheels, this allows us to use pip as a "cross-platform package manager" for distributing single-binary CLI applications.

Wheel Building Process

The core of the logic lies in the buildlib.py module.

  • A mapping from download URL (often github releases) to pypi platform tag is required.
  • For each platform:
    • Download the release & extract the binary.
    • Set file permissions and place into scripts directory within wheel archive.
    • Create the METADATA and WHEEL files within wheel archive.
    • Place wheel into dist/ folder.
  • Once all wheels are constructed, the distribution is uploaded to PyPI.

CICD is configured to automatically recognize new PyPI releases by looking for a diff on the PYPI_VERSION. When this happens, a build-and-release cycle is performed for that release version.

Catalog

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

dive_bin-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (3.6 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64 musllinux: musl 1.1+ ARM64

dive_bin-0.12.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (3.9 MB view details)

Uploaded Python 3 manylinux: glibc 2.12+ x86-64 musllinux: musl 1.1+ x86-64

dive_bin-0.12.0-py3-none-macosx_11_0_arm64.whl (3.9 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

dive_bin-0.12.0-py3-none-macosx_10_9_x86_64.whl (4.1 MB view details)

Uploaded Python 3 macOS 10.9+ x86-64

File details

Details for the file dive_bin-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for dive_bin-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 daad905a17ad588d8ad511f524e5132c59a68bd4c8c11d0ede3bb308309ff964
MD5 ce811e47c95325b340041b8abaf93abb
BLAKE2b-256 e8044a6cea502dcc1493a7dc88ba3c0082bf7d87cf30dc2ab569f76a1a37da3f

See more details on using hashes here.

File details

Details for the file dive_bin-0.12.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for dive_bin-0.12.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 63048fee8ccbc53a06e7f66c42eb7ec6e18e65de997c14fb669a8e4d07a46846
MD5 0a306aa97399d4430c2d5b1ded8a0a39
BLAKE2b-256 11e4a11c9ff746e2d3eb0c0c69e667e5c2aee644fa709964ca081b96a3784f20

See more details on using hashes here.

File details

Details for the file dive_bin-0.12.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dive_bin-0.12.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 447afb34880e71281d75520eb857d6effb831dde709b3ad3a158d1e26df41d78
MD5 754954623309824d64b125a074555c14
BLAKE2b-256 97e78ab97254c498e3a844e611b76f484901555164a3b5a2f266cefc372dbbc5

See more details on using hashes here.

File details

Details for the file dive_bin-0.12.0-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for dive_bin-0.12.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0a7a9f620df6faf09f30d49612b56be4b5b87009baafa8cf6f6ce0832bc192d1
MD5 8cbc152e5b5bc4f510845618974ca011
BLAKE2b-256 4afd842a9d3c6a57adbb89336800727b04ae384f94253f8597367ddf19d706b2

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