Metadata-Version: 2.4
Name: panproto-grammars-functional
Version: 0.72.0
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Requires-Dist: panproto>=0.72,<0.73
Summary: panproto grammar pack: functional languages (Haskell, OCaml, Elm, Gleam, Erlang, Elixir, PureScript, F#, Clojure, Scheme, Racket)
Keywords: panproto,tree-sitter,grammar,haskell,ocaml
Author-email: Aaron Steven White <aaronstevenwhite@gmail.com>
License-Expression: MIT
Requires-Python: >=3.13
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/panproto/panproto
Project-URL: Issues, https://github.com/panproto/panproto/issues

# panproto-grammars-functional

Python companion package for Haskell, OCaml, Elm, Gleam, Erlang, Elixir, PureScript, F#, Clojure, Scheme, and Racket.

## Install

```bash
pip install panproto-grammars-functional
```

The package requires Python 3.13 or newer. Its current metadata requires the matching panproto minor release, `panproto>=0.72,<0.73`.

## Discovery

The wheel registers `panproto_grammars_functional._impl` in the `panproto.grammars` entry-point group. Each call to `panproto.AstParserRegistry()` loads installed entries and calls their `grammars_metadata()` functions. Duplicate names already registered by the core wheel or another pack are ignored. A pack that cannot load produces a `RuntimeWarning`. Registry construction continues without its grammars.

Application code does not need to import this companion package. Its top-level Python package exposes only `__version__`. Calling `panproto._native.AstParserRegistry()` directly bypasses companion discovery.

## Use

```python
import panproto

registry = panproto.AstParserRegistry()
schema = registry.parse_with_protocol("haskell", b"f x = x", "main.hs")
```

The Rust extension is implemented in `crates/panproto-grammars-functional/`. The wheel metadata and Python package are in this directory.

## License

MIT.

