skillfed

udtools

Python tools for Universal Dependencies

udtools v0.2.8 251.0K downloads/30d#8,602 on PyPI220
Copyleft license GPL-2.0-or-later Active released

What it is and what it does

udtools provides the official validator and scoring tools for Universal Dependencies, a cross-linguistic annotation framework. It reads CoNLL-U formatted files and checks compliance with UD specifications across multiple validity levels, from basic file structure to detailed linguistic annotation rules. The package also includes the official parsing scorer used in CoNLL and IWPT shared tasks.

The validator can be invoked from the command line or imported as a Python library. When used programmatically, it returns a State object containing validation results that can be inspected for errors and warnings, optionally suppressing console output. The validator supports language-specific checks and can load custom data files from a local UD tools repository, though the pip-installed version may lag behind the authoritative specification.

Use it for:

  • Validate CoNLL-U treebank files before submission to Universal Dependencies releases or shared task competitions.
  • Integrate validation into a linguistic annotation pipeline to catch format and specification violations early.
  • Score dependency parsing system outputs against gold-standard UD treebanks in research or evaluation workflows.
  • Check compliance of custom language-specific UD annotations with the framework's rules and feature inventories.
  • Batch-validate multiple treebank files and collect structured error reports for quality assurance.

Worth the install?

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

Validates CoNLL-U format files against Universal Dependencies specifications and scores dependency parsing results from shared tasks.

Yes, if you work with Universal Dependencies data or need to validate CoNLL-U files. The package is actively maintained, has low install friction, and provides the official validator and scorer. The copyleft license is a consideration for proprietary work. Note that pip-installed versions may not have the most current language-specific data; clone the authoritative repository if you need cutting-edge specifications.

Install

udtools on PyPI

pip

pip install udtools

uv

uv add udtools

poetry

poetry add udtools

Installing udtools

Before you install

Low install friction with only two runtime dependencies (udapi and regex). Active maintenance with a recent release 57 days ago and ongoing repository activity.

License in practice

GPL-2.0-or-later copyleft license means any derivative work or distribution must also be open-source under a compatible license; suitable for research and open-source projects but requires careful consideration in proprietary contexts.

Quickstart

pip install udtools

from udtools import Validator

validator = Validator(lang='la', output=None)
state = validator.validate_files(['la_proiel-ud-train.conllu'])
if state:
    print('Validation passed')
else:
    print('Validation failed')

Requires Python 3.10 or later.

Verify before relying

  • Whether language-specific data files bundled with pip releases stay current with the authoritative UD specification
  • Performance characteristics when validating very large treebanks or many files in sequence

Package facts

License GPL-2.0-or-later (copyleft)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 2 — udapi, regex
Maintenance actively maintained — 57 days since the last release
Last repo commit
First released
Downloads 251,021/month — #8,602 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: udtools-0.2.8-py3-none-any.whl

Development Status :: 2 - Pre-AlphaIntended Audience :: Science/ResearchOperating System :: OS IndependentProgramming Language :: Python :: 3

Tags

universal dependencies validatorconllu file validationud parsing scorerdependency parsing evaluationconll-u format checkerlinguistic annotation validatorud treebank validation
nlp-toolsdata-validationlinguistic-annotation

More Linguistic packages