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

If you're not sure about the file name format, learn more about wheel file names.

usql_bin-0.19.14-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (38.5 MB view details)

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

usql_bin-0.19.14-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (54.5 MB view details)

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

usql_bin-0.19.14-py3-none-macosx_11_0_arm64.whl (49.7 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

usql_bin-0.19.14-py3-none-macosx_10_9_x86_64.whl (53.9 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for usql_bin-0.19.14-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 eeea7df3320f8f3f138782cebd8d1fce98a96ae1ebdcc7d6104bb606f36fc974
MD5 f0fa7a3f17c55abfde47502f66457132
BLAKE2b-256 e27bac6c11cc4163cbe148a28c4867e4f6216243436c676fa9728beed5a145e2

See more details on using hashes here.

File details

Details for the file usql_bin-0.19.14-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.14-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9c653addba9b6ad3d97ee4c6c3ee881e1817d938ef383937095b84c45fc747f8
MD5 ebef9e6f53dcecb659e0d77efb8a4c7b
BLAKE2b-256 72742a27efc789131bdd5d96dc1a3ba187988610cd851df2b6d444f61b8c7f19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usql_bin-0.19.14-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 35d5e8c46c9bcdf5d0fed2148b37a11e380112b26ee5db7469ff332c6c060f69
MD5 307e6590b7df574b4fdfae750c249b4f
BLAKE2b-256 17ab1b9c3531f6ee5557c57911d998db47cd88aa9d044a1de17db0c2a6efa9b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usql_bin-0.19.14-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6f4cacb55d99e29869fe6774b755c3b69df2b68e973ea193cf6f46e6dab718f6
MD5 307046514e79283b17cc4d7f3e4144b4
BLAKE2b-256 155d4b28b51751b713eb273bf9447d43148023259582ffead7e362b37a3fe034

See more details on using hashes here.

Supported by

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