Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/MrMino/wheelfile

🔪🧀 API for creating and inspecting Python .whl files (wheels)
https://github.com/MrMino/wheelfile

metadata packages packaging packaging-python python python-wheel python-wheels

Last synced: 30 days ago
JSON representation

🔪🧀 API for creating and inspecting Python .whl files (wheels)

Awesome Lists containing this project

README

        

Wheelfile 🔪🧀

This library aims to make it dead simple to create a format-compliant [.whl
file (wheel)](https://pythonwheels.com/). It provides an API comparable to
[zipfile](https://docs.python.org/3/library/zipfile.html). Use this if you wish
to inspect or create wheels in your code.

For a quick look, see the example on the right, which packages the wheelfile
module itself into a wheel 🤸.

#### What's the difference between this and [wheel](https://pypi.org/project/wheel/)?

"Wheel" tries to provide a reference implementation for the standard. It is used
by setuptools and has its own CLI, but no stable API. The goal of Wheelfile is
to provide a simple API.

Wheelfile does not depend on Wheel.

## Acknowledgements

Thanks to [Paul Moore](https://github.com/pfmoore) for providing
[his gist](https://gist.github.com/pfmoore/20f3654ca33f8b14f0fcb6dfa1a6b469)
of basic metadata parsing logic, which helped to avoid many foolish mistakes
in the initial implementation.










```
pip install wheelfile
```

```py
from wheelfile import WheelFile, __version__

spec = {
'distname': 'wheelfile',
'version': __version__
}

requirements = [
'packaging >= 20.8',
]

with WheelFile(mode='w', **spec) as wf:
wf.metadata.requires_dists = requirements
wf.write('./wheelfile.py')

# 🧀
```


More examples:
buildscript |
PEP-517 builder