Skip to main content

A thin wrapper to distribute https://github.com/xo/usql 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.

This is the list of tools bundled this way, which can be installed with pip install $TOOLNAME-bin.

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.

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

usql_bin-0.19.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (41.7 MB view details)

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

usql_bin-0.19.12-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (57.3 MB view details)

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

usql_bin-0.19.12-py3-none-macosx_11_0_arm64.whl (52.4 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

usql_bin-0.19.12-py3-none-macosx_10_9_x86_64.whl (56.7 MB view details)

Uploaded Python 3 macOS 10.9+ x86-64

File details

Details for the file usql_bin-0.19.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for usql_bin-0.19.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 f6ae6ba0e023bae9b499c2bca84d28b490777763fb8f0cd3b676d177da8fe72f
MD5 5b3156e2e850ca09af6f2e21fade82d4
BLAKE2b-256 6841a1ffedf5c8faaef77ba89ab53b449dc21ba455a1179c07561f24d72036f3

See more details on using hashes here.

File details

Details for the file usql_bin-0.19.12-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for usql_bin-0.19.12-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 efe5f09f388fb6e69292ebafbb51793f3653f29c36a69fa260388ff989a8ac8f
MD5 f21741e4b0ffa7135892362e083d3253
BLAKE2b-256 27f28c9570856584b9f553aa1b65d443bcc8408ddf1fe6110309947739b515c3

See more details on using hashes here.

File details

Details for the file usql_bin-0.19.12-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for usql_bin-0.19.12-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ef50b2e80da737f95a2742f21a2c98a38394b07b158f1351ef7c01791e77f50
MD5 25daef56105630fdae4afc6d5b0e0d51
BLAKE2b-256 bd1c67d386cca28d2f18d53c59ba3bf87dd383a10caf12535fef7febf2e54cb9

See more details on using hashes here.

File details

Details for the file usql_bin-0.19.12-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for usql_bin-0.19.12-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 be40c7e439f39eab3ed23ad14406d0e704f3673449b3d439d5ce2dc7afa74c39
MD5 92a556776e9b7c98407b7a113b1181ca
BLAKE2b-256 216f293ae1b0e884d2342108000115798f0aa8c58a19e9cebead70a98d483c40

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