Metadata-Version: 2.4
Name: suoyin
Version: 0.1.0
Summary: Compact Python symbol manifests for codebases
Project-URL: Homepage, https://github.com/alexdong/suoyin
Project-URL: Repository, https://github.com/alexdong/suoyin
Project-URL: Issues, https://github.com/alexdong/suoyin/issues
Author-email: Alex Dong <alex@rumenaut.com>
License-Expression: MIT
License-File: LICENSE
Keywords: ast,cli,codebase,manifest,symbols
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Documentation
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.12
Description-Content-Type: text/markdown

# suoyin

`suoyin` generates a compact Markdown manifest of Python modules, classes, members, and functions.

It is designed for fast codebase inspection and for feeding a high-signal summary into LLM workflows.

Repository: <https://github.com/alexdong/suoyin>

## Features

- Recursively scans a project directory
- Respects `.gitignore` and `.ignore`
- Skips test files and `conftest.py`
- Renders compact function signatures such as `def func(a: int) -> str`
- Expands classes to show both members and methods

## Usage

```bash
uvx suoyin
uvx suoyin path/to/project
```

Local development:

```bash
uv run suoyin
uv run suoyin ../some-project
uv run python -m suoyin --help
```

## Example

```text
# Manifest

## pkg.module  (pkg/module.py)
  classes:
    - class Widget @L10
      members:
        - name: str @L11
      functions:
        - def render(self) -> str @L14
  functions:
    - def make_widget(name: str) -> Widget @L21
```

## Build And Publish

```bash
uv build
uv publish
```

If you have not published with `uv` before, configure a PyPI token first.
