pykwalify
Python lib/cli for JSON/YAML schema validation
Decision gist · record as of 2026-08-14
Yes, if you need YAML/JSON schema validation and are working within Python 3.6, 3.7, 3.8, or 3.9. The library is stable, has no known vulnerabilities, and low install friction. However, choose it cautiously for new projects: the package is dormant and may not support newer Python versions. For actively maintained alternatives, evaluate other validators first.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with three straightforward runtime dependencies (docopt, python-dateutil, ruamel.yaml).
- However, the package is dormant—last release was 2020-12-30 and no commits since 2024-01-21—so expect no active maintenance or updates.
License · maintenance · safety
MIT (permissive) — MIT license is permissive, allowing free use, modification, and distribution with minimal restrictions—suitable for both open-source and proprietary projects.
last release 2020-12-30 (2053 days) · last repo commit 2024-01-21 · 299 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 3,630,564 downloads/mo, #2,551 on PyPI
Alternatives
Verify before relying
pip install pykwalify
from pykwalify.core import Core
c = Core(source_data={'foo': 'bar'}, schema_data={'type': 'map', 'mapping': {'foo': {'type': 'str'}}})
c.validate()- Whether the package works reliably with Python versions beyond those listed (3.6, 3.7, 3.8, 3.9)
- Current state of compatibility with modern versions of ruamel.yaml and python-dateutil
- Whether dormancy affects real-world reliability for production use cases
What it is and what it does
pykwalify is a YAML and JSON schema validator that implements the Kwalify specification, originally ported from a Java framework. It lets you define validation rules in a schema file and check whether your data conforms to those rules, catching structural and type errors before they propagate downstream. The library works with both YAML and JSON formats and can be used programmatically in Python or invoked from the command line.
It depends on ruamel.yaml for YAML parsing (chosen for better YAML 1.2 spec compliance), python-dateutil for date handling, and docopt for CLI argument parsing. The package is marked as Production/Stable but has not been actively maintained since late 2020, so it may not integrate smoothly with recent dependency updates.
Use it for
- Validate configuration files (YAML or JSON) against a schema before loading them into an application
- Enforce data structure contracts in data pipelines or ETL workflows
- Test API responses or data exports against expected schemas in automated test suites
- Catch structural errors in user-supplied YAML/JSON input early in processing
- Define and enforce schema rules for multi-stage data transformations
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need YAML/JSON schema validation and are working within Python 3.6, 3.7, 3.8, or 3.9.
The library is stable, has no known vulnerabilities, and low install friction. However, choose it cautiously for new projects: the package is dormant and may not support newer Python versions. For actively maintained alternatives, evaluate other validators first.
Install
pykwalify on PyPI
Before you install
Low install friction with three straightforward runtime dependencies (docopt, python-dateutil, ruamel.yaml). However, the package is dormant—last release was 2020-12-30 and no commits since 2024-01-21—so expect no active maintenance or updates.
License in practice
MIT license is permissive, allowing free use, modification, and distribution with minimal restrictions—suitable for both open-source and proprietary projects.
Quickstart
pip install pykwalify
from pykwalify.core import Core
c = Core(source_data={'foo': 'bar'}, schema_data={'type': 'map', 'mapping': {'foo': {'type': 'str'}}})
c.validate()
Verify before relying
- Whether the package works reliably with Python versions beyond those listed (3.6, 3.7, 3.8, 3.9)
- Current state of compatibility with modern versions of ruamel.yaml and python-dateutil
- Whether dormancy affects real-world reliability for production use cases
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesdocoptpython-dateutilruamel.yaml |
| Maintenance | Dormant 2,053 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,630,564 / month, #2,551 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: pykwalify-1.8.0-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “yaml json schema validation”
- pykwalifyValidates YAML and JSON data against schemas using a Kwalify-based…
- check-jsonschemaA command-line tool and pre-commit hook that validates JSON and YAML…
- schema-saladSchema Salad is a schema language for validating and transforming…
Give your agent the search over MCP, or paste the wish link into any chat.
More Quality Assurance packages
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
Ruff is a Python linter and code formatter written in Rust that combines linting, formatting, and code fixing into a single tool, replacing Flake8, Black, isort, and related utilities.
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
Black reformats Python source code to a consistent style by parsing entire files and rewriting them according to an opinionated, deterministic set of rules, eliminating manual formatting decisions.
pytest-xdist distributes pytest tests across multiple CPU cores or machines to speed up test execution, with the simplest usage being `pytest -n auto` to spawn workers equal to available CPUs.
Install it if your test suite takes long enough that parallelization would save meaningful time.
Validates AWS CloudFormation templates in YAML or JSON format against resource provider schemas and best practices, checking property values and configuration correctness.
Install it if you work with CloudFormation templates.
See also yamale · annotatedyaml · strictyaml · validator-collection · swagger-spec-validator · warlock · check-jsonschema · eido · kubernetes-validate · yamlpath