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.19-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (39.0 MB view details)

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

usql_bin-0.19.19-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (55.2 MB view details)

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

usql_bin-0.19.19-py3-none-macosx_11_0_arm64.whl (50.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

usql_bin-0.19.19-py3-none-macosx_10_9_x86_64.whl (54.5 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for usql_bin-0.19.19-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 be25a8899c28177fa031acce9a9ceb61dbec37ab4e7b41846e8f7aaf9f1fef69
MD5 9fa72e745f5085c9f638035af38a6f80
BLAKE2b-256 fa05ec33dbbf6ee53ce5685908a5c3b9da576be9f426ac2e22f35aff65962bc2

See more details on using hashes here.

File details

Details for the file usql_bin-0.19.19-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.19-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4eb29aac373468903160948e5ba37b4a7df0b141d9bbfb05b40c1a3c5345b77e
MD5 a29d38ae2327c7cd700f5a4b5b915cb1
BLAKE2b-256 8068a4ed3deef5aa840cdefe6d5ecd4a6a55a53bf5c7806953b7ffb6d356025e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usql_bin-0.19.19-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1e5fb95a3336b622c2f30972aa42c4da7e90a2eed0a1d30d8f976f37da30bd60
MD5 7576a16b9326cc8359d330f1ab6c4370
BLAKE2b-256 985abc79cb3c60db1f1a23577e85fd60bec0dded4ea24e9913273e209e851597

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usql_bin-0.19.19-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 878666e80527583b82e2891eef2336dd0553e14be723566e2e1aa46b8f30b8b3
MD5 a67a30c9325e6e6c5d8212f1dac12eb9
BLAKE2b-256 059b676120269b734c42c7acf3f2c7a04e1b2a9d36d8adfa7446da2652738466

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