Metadata-Version: 2.4
Name: esys-lpip
Version: 0.4.2
Summary: Git-backed, name-oriented front end to pip for internal Python packages
Author: Project maintainers
License-Expression: MIT
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: packaging>=23.0
Requires-Dist: platformdirs>=4.0
Requires-Dist: tomlkit>=0.11
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0; extra == "dev"
Requires-Dist: ruff>=0.8; extra == "dev"
Requires-Dist: mypy>=1.11; extra == "dev"
Requires-Dist: lxml>=5.0; extra == "dev"
Requires-Dist: bandit[toml]>=1.7; extra == "dev"
Requires-Dist: pip-audit>=2.7; extra == "dev"
Requires-Dist: pre-commit>=3.0; extra == "dev"
Dynamic: license-file

# lpip

Install internal Python packages **by name**, from **Git you already have**.
No private package index.

On PyPI this tool is **`esys-lpip`**. The command you run is **`lpip`**.

```bash
pip install esys-lpip
lpip --help
```

## Why it exists

A private PyPI is another service to host, another login, another secret.
Most teams already have Git, SSH keys, and a rule that the default branch
stays green.

**lpip treats that Git as the index.** A short catalog maps a name to a
repository. `lpip install libfoo` becomes an ordinary `pip` install of that
tree. Access control is clone access — nothing new.

Public PyPI is only how you install *this* client. Your packages stay in
the Git you already operate.

## What that unlocks

- **`pip install <name>` for internals** — without standing up a registry.
- **One catalog for the org** — add it once; everyone uses the same names.
- **Share work when a PR merges** — if the catalog tracks `main` / `master`,
  a green merge is enough. `lpip upgrade libfoo` picks up the tip. A tagged
  release is optional, for when you need a pin, not for when you need to
  *share*.

It is a thin front end to pip, not a replacement for pip, and not a
workspace manager.

## Try it

Point `lpip` at a catalog (a local file or a Git repo that contains
`lpip-sources.toml`), then:

```bash
lpip install libfoo
lpip upgrade libfoo
lpip list
```

## Next

Product documentation:

https://esys-lpip.org

Source and contributor contracts:

https://gitlab.com/libesys/tools/lpip

License: MIT (see the `LICENSE` file in the repository).
