Make conandeps installable with uv

Add a hatchling build backend, a `conandeps` console script and a uv.lock
so `uv tool install .` (or from a git URL) yields a `conandeps` command in
an isolated venv. Add PEP 723 inline metadata to conandeps.py so the single
file also works standalone via `uv run conandeps.py`.

Pin requires-python to <3.12: Conan 1.x imports the removed `imp` module
(the Containerfile comment wrongly blamed distutils). Add uv to the dev
image so both install paths are verified inside the container.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYNdaGDrpaqDyT8QtrTQbM
This commit is contained in:
Ole-Morten Duesund 2026-08-25 14:51:38 +02:00
commit 45d800bacd
5 changed files with 784 additions and 3 deletions

View file

@ -2,9 +2,21 @@
name = "conan-utils"
version = "0.1.0"
description = "Small utilities for Conan 1.x (targets 1.66)"
requires-python = ">=3.8"
# Conan 1.x imports the `imp` module, which was removed in Python 3.12.
requires-python = ">=3.8,<3.12"
dependencies = ["conan>=1.66,<2"]
[project.scripts]
conandeps = "conandeps:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
# Single-module layout: ship conandeps.py itself, not a package directory.
[tool.hatch.build.targets.wheel]
only-include = ["conandeps.py"]
[dependency-groups]
dev = ["pytest", "ruff"]