skillfed

reqif

Python library for ReqIF format. ReqIF parsing and unparsing.

reqif v0.1.0 90.3K downloads/30d#13,599 on PyPI58
Permissive license Apache-2.0 Active released

What it is and what it does

ReqIF is a Python library for working with ReqIF (Requirements Interchange Format), an XML-based standard for exchanging requirements data between tools. It provides both a programmatic API and command-line tools to parse ReqIF and ReqIFz (compressed) files into Python objects, unparse them back to XML, validate them against internal checks and the official OMG schema, format them with consistent indentation, and anonymize them for safe sharing. The library depends on jinja2, lxml, openpyxl, and xmlschema for XML handling and templating.

Typical workflows include reading requirements from ReqIF files exported by commercial tools, transforming or filtering them programmatically, and writing them back out; validating ReqIF files for schema compliance; pretty-printing hand-written or poorly formatted ReqIF XML; and anonymizing sensitive requirement data before sending files to third parties for debugging. The library logs diagnostics through Python's standard logging module and supports progress callbacks for long-running parse and unparse operations on large files.

Use it for:

  • Parse ReqIF files exported from requirements management tools to extract and process specifications programmatically
  • Validate ReqIF documents against internal checks and the official OMG ReqIF schema before importing into other tools
  • Format and pretty-print hand-written or tool-generated ReqIF XML with consistent indentation and structure
  • Anonymize sensitive requirement data in ReqIF files for safe sharing with external developers or tool vendors
  • Round-trip ReqIF files (parse and unparse) to verify tool compatibility and detect parsing or generation issues
  • Build custom requirement processing pipelines that read, transform, and write ReqIF data

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

ReqIF is a Python library for parsing, unparsing, formatting, validating, and anonymizing ReqIF and ReqIFz files, with command-line tools for each operation.

Yes. The library is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive Apache-2.0 license. It fills a clear niche for ReqIF handling in Python. Install it if you work with ReqIF files or need to integrate requirements data from tools that export this format.

Install

reqif on PyPI

pip

pip install reqif

uv

uv add reqif

poetry

poetry add reqif

Installing reqif

Before you install

Low install friction with a pure-Python wheel and four common dependencies (jinja2, lxml, openpyxl, xmlschema). Active maintenance with a recent release (3 days old) and steady repository activity.

License in practice

Apache-2.0 is a permissive license; you can use, modify, and distribute this package freely in commercial and private projects, provided you include a copy of the license and state significant changes.

Quickstart

pip install reqif

from reqif.parser import ReqIFParser

reqif_bundle = ReqIFParser.parse("input.reqif")
for specification in reqif_bundle.core_content.req_if_content.specifications:
    print(specification.long_name)

Verify before relying

  • Whether the library handles all real-world ReqIF variants or only a subset of the official schema
  • Performance characteristics for very large ReqIF files (hundreds of thousands of spec objects mentioned in docs)

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.8)
Install friction low — pure-Python wheel
Runtime dependencies 4 — jinja2, lxml, openpyxl, xmlschema
Maintenance actively maintained — 3 days since the last release
Last repo commit
First released
Downloads 90,331/month — #13,599 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: reqif-0.1.0-py3-none-any.whl

License :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy

Tags

reqif parserrequirements interchange formatreqif validationreqif formattingxml requirements managementreqif anonymizationspecification parsing
requirements-managementxml-processingdata-interchange

More Markup packages