Skip to main content

cheese chef

little-cheesemonger

little-cheesemonger is a package that can set up a manylinux build environment to compile a correctly linked manylinux wheel. Configuration data is loaded from a pyproject.toml file, or a custom data loader can be implemented.

Installation

pip install little-cheesemonger==0.2.1

Quickstart

To trigger environment setup, either run little-cheesemonger from the root directory of a package, or pass the path to the package you want compiled. The package must contain configuration data in its pyproject.toml file for environment setup to work.

little-cheesemonger path/to/package

Default Configuration

The manylinux image version is controlled by last section of the configuration heading. The latest tag is always used.

[tool.little-cheesemonger.manylinux2014_x86_64]
environment_variables = [
  "FOO=BAR"
]
system_dependencies = [
  "atlas"
]
python_dependencies = [
  "nyancat==0.1.2"
]
python_versions = [
  "cp36-cp36m"
  "cp38-cp38"
]
steps = [
  "touch /foobar.txt"
]
  • environment_variables is a list of environment variables to set in the container prior to building the wheel. They are expected to be in KEY=VALUE format.
  • system_dependencies is a list of CentOS system dependencies to install via YUM. They are expected to be in package-version format.
  • python_dependencies is a list of Python dependencies to install via pip. They are expected to be in package==version format. They are currently installed for all available versions of Python in a given manylinux image.
  • python_versions is a list of Python versions to install Python dependencies for in a given manylinux image. They are expected to follow the Python installation directory naming convention from in the specified manyliniux image, ex. cp36-cp36m. Python version names can be found by running ls /opt/python in a manylinux image.
  • steps is a list of steps to execute via bash. Package building and uploading could be implemented here, or little-cheesemonger could be integrated into a larger system!

Custom Data Loader

You can pass the path to an importable function, as well as positional and keyword arguments to little-cheesemonger to customize how configuration data is loaded.

little-cheesemonger --data-loader path.to.function --loader-arg foo --loader-kwarg foo=bar

Custom data loader functions must accept directory as the first argument with positional and keyword arguments passed to the loader function after. The function must return a dictionary of configuration data matching the fields above.

def my_custom_loader(directory: Path, ...) -> Dict:
  pass

Release files for little-cheesemonger 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for little-cheesemonger 0.2.1
File Size Uploaded
little-cheesemonger-0.2.1.tar.gz 13.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for little-cheesemonger 0.2.1
File Interpreter ABI Platform
little_cheesemonger-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 31.2 kB

Release files / little-cheesemonger-0.2.1.tar.gz

Download URL little-cheesemonger-0.2.1.tar.gz
Size 13.3 kB
Tags Source
SHA-256 checksum
How to use checksums
4904c515b4b4416724348ddc2c5c2afdc271346cdd52c5d594f949d769ee6239
BLAKE2b-256 checksum
How to use checksums
2b224fce9796596da55653e6bf62e7f29519a0a8c889cec432679843df82be3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

Release files / little_cheesemonger-0.2.1-py3-none-any.whl

Download URL little_cheesemonger-0.2.1-py3-none-any.whl
Size 17.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc8793327bce5688c87a7c0781b67258fb49a3512a5831bb157b7732d8af5ab1
BLAKE2b-256 checksum
How to use checksums
34cf44bb4768fef2244f230421d9b0afb479c9ba358e475e0d5b99948376e8c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page