Metadata-Version: 2.4
Name: patpubrender
Version: 0.1.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Text Processing :: Markup
Classifier: Topic :: Scientific/Engineering
Summary: Parse USPTO patent XML into a structured document and render Markdown.
Keywords: uspto,patent,xml,markdown,parser
Home-Page: https://github.com/jhnoel/patpubrender
Author: Jamie Noel
License: Apache-2.0
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/jhnoel/patpubrender
Project-URL: Repository, https://github.com/jhnoel/patpubrender

# patpubrender (Python)

Python bindings for [`patpubrender`](https://github.com/jhnoel/patpubrender) —
parse USPTO patent grant/application XML into a structured document and render
compact Markdown. The heavy lifting is done in Rust.

```bash
pip install patpubrender
```

```python
import patpubrender

xml = open("US12345678.xml").read()

# One-shot render
md = patpubrender.parse_to_markdown(xml)
md = patpubrender.parse_to_markdown(xml, template="{{title}}\n\n{{claims}}")

# Structured access
doc = patpubrender.parse(xml)
doc.publication_number      # -> str | None
doc.title                   # -> str | None
doc.inventors               # -> list[str]
doc.claims[0].number        # -> int
doc.claims[0].text          # -> str
doc.abstract_text           # -> str | None
doc.to_markdown()           # -> str
doc.to_markdown(template="{{frontmatter}}\n\n{{body}}")

patpubrender.detect_format(xml)   # -> str, e.g. "UsptoGrantV47"
```

## Templates

`to_markdown` / `parse_to_markdown` accept an optional section-placeholder
template. Placeholders: `{{frontmatter}}`, `{{title}}`, `{{abstract}}`,
`{{description}}`, `{{claims}}`, `{{body}}`. Each expands to a fully-rendered
block (`{{title}}` already includes its `# ` heading); the template controls
section order and surrounding text.

## License

Apache-2.0.

