Metadata-Version: 2.4
Name: wuff
Version: 1.4.0
Summary: Analysis engine for WooWoo workspaces.
Home-page: https://github.com/woowoo-dev/wuff
Author: Michal Janecek
Author-email: michal.janecek@gmail.com
Project-URL: Source, https://github.com/woowoo-dev/wuff
Project-URL: Changelog, https://github.com/woowoo-dev/wuff/blob/master/CHANGELOG.md
Project-URL: Issues, https://github.com/woowoo-dev/wuff/issues
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
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: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Provides-Extra: test
Requires-Dist: pytest>=8.0; extra == "test"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-python
Dynamic: summary

# wuff

`wuff` is the analysis engine behind the [WooWoo Language Server](https://github.com/woowoo-dev/woowoo-language-server).
It is written in C++, parses WooWoo with tree-sitter and is distributed as a Python package (pybind11).

## Installation

```bash
pip install wuff
```

[PyPI](https://pypi.org/project/wuff/#files) has wheels for CPython 3.10 to 3.15 on Linux, macOS and Windows.
Elsewhere pip builds `wuff` from source, which needs a C++20 compiler.

## Development

```bash
git clone https://github.com/woowoo-dev/wuff.git
cd wuff
pip install ".[test]"
pytest
```

CMake downloads the C++ dependencies (tree-sitter, yaml-cpp, pybind11) during the build, so it needs network access.

## Releasing

1. Bump `version` in `setup.py` and add a section to `CHANGELOG.md`.
2. Create a GitHub release with the tag `vX.Y.Z`.
3. The *Wheels* workflow builds the wheels and the sdist. After an approval in the `pypi` environment it uploads them to PyPI (Trusted Publishing, no token).

## Changelog

See [CHANGELOG.md](https://github.com/woowoo-dev/wuff/blob/master/CHANGELOG.md).
