Skip to main content

mesonpy PyPI version

pre-commit.ci status checks tests codecov

Python build backend (PEP 517) for Meson projects.

Usage

Enabling the build backend

To use this build backend, you must specify it in your pyproject.toml file.

[build-system]
build-backend = 'mesonpy'
requires = [
  'meson-python',
]

If you have any other build dependencies, you must also add them to the requires list.

Specifying the project metadata

mesonpy supports specifying Python package metadata in the project table in pyproject.toml (PEP 621).

To do so, you just need to add a project section with the details you want to specify (see PEP 621 for the specification of the format).

...

[project]
name = 'orion'
version = '1.2.3'
description = 'The Orion constellation!'
readme = 'README.md'
license = { file = 'LICENSE' }
keyword = ['constellation', 'stars', 'sky']
authors = [
  { name = 'Filipe Laíns', email = 'lains@riseup.net' },
]
classifiers = [
  'Development Status :: 4 - Beta',
  'Programming Language :: Python',
]

requires-python = '>=3.7'
dependencies = [
  'stars >= 1.0.0',
  'location < 3',
]

[project.optional-dependencies]
test = [
  'pytest >= 3',
  'telescope',
]

[project.urls]
homepage = 'https://constellations.example.com/orion'
repository = 'https://constellations.example.com/orion/repo'
documentation = 'https://constellations.example.com/orion/docs'
changelog = 'https://constellations.example.com/orion/docs/changelog.html'

In case you want mesonpy to detect the version automatically from Meson, you can omit the version field and add it to project.dynamic.

[project]
name = 'orion'
dynamic = [
  'version',
]
...

Automatic metadata

If no other metadata is specified, mesonpy will fetch the project name and version from Meson. In which case, you don't need to add anything else to your pyproject.toml file.

This is not recommended. Please consider specifying the Python package metadata.

Status

  • Pure Python modules 👍
  • Native modules
    • Don't link against anything 👍
    • Link aginst external libraries 👍
    • Link aginst libraries from the Meson project 👍
    • Detect the ABI 👍
  • Scripts (executables in Meson)
    • Don't link aginst anything 👍
    • Link against external libraries 👍
    • Link against libraries from the Meson project 🔨

Platform Support

  • Linux 👍
  • Windows 🔜
  • MacOS 🔜
  • Other UNIX-like ⚠️
    • Most platforms should work, but currently that is not tested or guaranteed

Limitations

No data

Data (install_data) is not supported by the wheel standard. Project should install data as Python source instead (Python source does not have to be only Python files!) and use importlib.resources (or the importlib_resources backport) to access the data. If you really need the data to be installed where it was previously (eg. /usr/data), you can do so at runtime.

Release files for meson-python 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 meson-python 0.2.1
File Size Uploaded
meson_python-0.2.1.tar.gz 26.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for meson-python 0.2.1
File Interpreter ABI Platform
meson_python-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 42.1 kB

Release files / meson_python-0.2.1.tar.gz

Download URL meson_python-0.2.1.tar.gz
Size 26.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3094f3b90ef3ca54c08c1068977d9aa4cb2dff7a546e85f52178833a135020fb
BLAKE2b-256 checksum
How to use checksums
9c65b85b46e7fd68079c7716403070eb55957ff1d471fad77024b6c492bc24e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2

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

Download URL meson_python-0.2.1-py3-none-any.whl
Size 15.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9b5ff5d7c577e4bae36c401b27f8c77fbc2f3f529901cfae9729b5cd6faa10ab
BLAKE2b-256 checksum
How to use checksums
cd74abbee31dbfe4b21963e9465e2cd4c7437bd151ac766340a485b066b84652
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2

Release history Release notifications | RSS feed

0.21.1

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.17.1

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.13.2

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

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