RFC Editor Library
A Python library for parsing and editing RFC (Request for Comments) TXT documents.
Features
- Parse RFC TXT documents and extract all sections
- Edit all RFC document sections including:
- Title
- Abstract
- Status of This Memo
- Copyright Notice
- Table of Contents
- Numbered sections (1., 2., etc.)
- Acknowledgements
- Contributors
- Author's Address
- Add, update, and delete sections
- Save modified documents back to TXT format
Installation
pip install rfc-editor
Or install from source:
pip install -e .
Usage
Parse an RFC Document
from rfc_editor import RFCEditor
editor = RFCEditor()
doc = editor.load("rfc1234.txt")
# Or parse from string
doc = editor.parse(rfc_content_string)
Access Document Sections
print(doc.rfc_number) # RFC number
print(doc.category) # e.g., "Standards Track"
print(doc.title) # RFC title
print(doc.abstract) # Abstract content
Query Sections
# Get title
title = editor.get_title()
# Get abstract
abstract = editor.get_abstract()
# Get status of this memo
status = editor.get_status_of_memo()
# Get copyright (returns tuple of year and holders)
year, holders = editor.get_copyright()
# Get table of contents
toc = editor.get_toc()
# Get acknowledgements
acknowledgements = editor.get_acknowledgements()
# Get contributors
contributors = editor.get_contributors()
# Get author's address
address = editor.get_authors_address()
# Get section by title (returns RFCSection or None)
section = editor.get_section_by_title("Introduction")
Edit Sections
# Edit title
editor.set_title("New Title")
# Edit abstract
editor.set_abstract("New abstract content...")
# Edit status
editor.set_status_of_memo("New status content...")
# Edit copyright
editor.set_copyright(2024, "Example Corp")
# Edit TOC
editor.set_toc("1. Introduction\n2. Body")
# Update a numbered section
editor.update_section("1", content="Updated introduction content...")
# Add a new section
editor.add_section("5", "New Section", "Section content...")
# Delete a section
editor.delete_section("1")
# Edit by section title
editor.set_section_by_title("Introduction", "New content...")
Save the Document
editor.save("output.txt")
Convert to Dictionary
data = editor.to_dict()
print(data["title"])
print(data["sections"])
Development
Install Dev Dependencies
pip install -e ".[dev]"
Run Tests
pytest tests/
Run Linting
flake8 src/ tests/
ruff check src/ tests/
black --check src/ tests/
Project Structure
rfc-editor/
├── src/
│ └── rfc_editor/
│ └── __init__.py # Main library code
├── tests/
│ ├── test_author.py
│ ├── test_document.py
│ ├── test_editor.py
│ └── test_section.py
├── pyproject.toml
├── README.md
├── .gitignore
└── SPEC.md
Version
0.1.0.1
License
MIT
Metadata
Release files for rfc-editor 0.1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rfc_editor-0.1.0.3.tar.gz | 11.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rfc_editor-0.1.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.0 kB
Release files / rfc_editor-0.1.0.3.tar.gz
| Download URL | rfc_editor-0.1.0.3.tar.gz |
|---|---|
| Size | 11.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
435fb7d402b5fb186a2482d27ccb32835e41523a09569240aa63534b4e945a7f
|
|
BLAKE2b-256 checksum How to use checksums |
9a3dfb76a11ca8e9a67b932609ea68dd4b1bb2c03164cfa6dc48bfcd8b0d9df2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 23, 2026.
Transparency logRelease files / rfc_editor-0.1.0.3-py3-none-any.whl
| Download URL | rfc_editor-0.1.0.3-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6952aea8cd6fb22d285a3037323002bb6705b81f5b25c612bca32bbe3228693c
|
|
BLAKE2b-256 checksum How to use checksums |
56ad3e0e6ca054a89ce17a2def8486f6ebdb35d1ab195060f2ecdedeafcf8d5e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 23, 2026.
Transparency log