Metadata-Version: 2.4
Name: funcsnap
Version: 0.0.1.dev1
Summary: Analyze Python functions and extract dependency source for reconstruction
Project-URL: Repository, https://github.com/yourusername/funcsnap
Author: funcsnap contributors
License-Expression: MIT
License-File: LICENSE
Keywords: ast,introspection,serialization,source
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.10
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == 'dev'
Requires-Dist: numpy>=1.26; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: ruff>=0.8; extra == 'dev'
Requires-Dist: twine>=5; extra == 'dev'
Description-Content-Type: text/markdown

# funcsnap

Analyze Python functions, walk their dependencies, and **reconstruct** a self-contained source string suitable for `exec()`.

## Install

```bash
pip install funcsnap
```

## Development

Clone the repo, create a virtual environment, then:

```bash
pip install -e ".[dev]"
ruff check .
pytest
```

Version strings are derived from Git tags ([hatch-vcs](https://github.com/ofek/hatch-vcs)). Without a repository or tags, builds use the fallback version from `pyproject.toml`.

### PyPI releases (maintainers)

1. Configure **trusted publishing** on [PyPI](https://pypi.org/manage/account/publishing/) for this repository and workflow `.github/workflows/publish.yml` (optional GitHub Environment `pypi`).
2. Merge your changes to `main`, then tag and push: `git tag v0.1.0 && git push origin v0.1.0` (use the next semantic version). The publish workflow runs on tags matching `v*`.

Update the `Repository` URL in `pyproject.toml` under `[project.urls]` to match your GitHub repo.

## License

MIT — see [LICENSE](LICENSE).
