udtools 0.2.5__tar.gz → 0.2.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. {udtools-0.2.5/src/udtools.egg-info → udtools-0.2.7}/PKG-INFO +1 -1
  2. {udtools-0.2.5 → udtools-0.2.7}/pyproject.toml +1 -1
  3. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/__init__.py +1 -1
  4. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/argparser.py +34 -25
  5. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/cli.py +1 -1
  6. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/data/data.json +11 -2
  7. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/data/deprels.json +29 -0
  8. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/data/docdeps.json +6 -2
  9. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/data/docfeats.json +11 -5
  10. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/data/feats.json +56 -10
  11. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/incident.py +7 -0
  12. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/level2.py +78 -190
  13. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/level3.py +148 -0
  14. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/utils.py +38 -0
  15. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/validator.py +30 -17
  16. {udtools-0.2.5 → udtools-0.2.7/src/udtools.egg-info}/PKG-INFO +1 -1
  17. udtools-0.2.7/src/udtools.egg-info/SOURCES.txt +163 -0
  18. udtools-0.2.7/tests/test-cases/invalid-level1/.gitattributes +2 -0
  19. udtools-0.2.7/tests/test-cases/invalid-level1/columns-format-minimal.conllu +5 -0
  20. udtools-0.2.7/tests/test-cases/invalid-level1/columns-format.conllu +24 -0
  21. udtools-0.2.7/tests/test-cases/invalid-level1/extra-empty-line.conllu +13 -0
  22. udtools-0.2.7/tests/test-cases/invalid-level1/invalid-line.conllu +24 -0
  23. udtools-0.2.7/tests/test-cases/invalid-level1/invalid-word-id.conllu +5 -0
  24. udtools-0.2.7/tests/test-cases/invalid-level1/misplaced-comment.conllu +24 -0
  25. udtools-0.2.7/tests/test-cases/invalid-level1/misplaced-empty-node-2.conllu +13 -0
  26. udtools-0.2.7/tests/test-cases/invalid-level1/misplaced-empty-node.conllu +12 -0
  27. udtools-0.2.7/tests/test-cases/invalid-level1/misplaced-word-interval.conllu +12 -0
  28. udtools-0.2.7/tests/test-cases/invalid-level1/mwt-nonempty-field.conllu +12 -0
  29. udtools-0.2.7/tests/test-cases/invalid-level1/non-unix-newline.conllu +23 -0
  30. udtools-0.2.7/tests/test-cases/invalid-level1/overlapping-word-interval.conllu +12 -0
  31. udtools-0.2.7/tests/test-cases/invalid-level1/pseudo-empty-line.conllu +11 -0
  32. udtools-0.2.7/tests/test-cases/invalid-level1/reversed-word-interval.conllu +11 -0
  33. udtools-0.2.7/tests/test-cases/invalid-level1/word-id-sequence-2.conllu +6 -0
  34. udtools-0.2.7/tests/test-cases/invalid-level1/word-id-sequence.conllu +6 -0
  35. udtools-0.2.7/tests/test-cases/invalid-level2/empty-node-nonempty.conllu +7 -0
  36. udtools-0.2.7/tests/test-cases/invalid-level2/invalid-range-format.conllu +11 -0
  37. udtools-0.2.5/tests/test-cases/invalid-level1-2/multiple_roots.conllu → udtools-0.2.7/tests/test-cases/invalid-level2/multiple-roots.conllu +1 -1
  38. udtools-0.2.7/tests/test-cases/invalid-level2/multiple-sent_id.conllu +24 -0
  39. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/test.bat +11 -11
  40. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/test.log +300 -423
  41. udtools-0.2.5/src/udtools.egg-info/SOURCES.txt +0 -144
  42. udtools-0.2.5/tests/test-cases/invalid-level1-2/dos-newlines.conllu +0 -23
  43. {udtools-0.2.5 → udtools-0.2.7}/LICENSE.txt +0 -0
  44. {udtools-0.2.5 → udtools-0.2.7}/MANIFEST.in +0 -0
  45. {udtools-0.2.5 → udtools-0.2.7}/README.md +0 -0
  46. {udtools-0.2.5 → udtools-0.2.7}/setup.cfg +0 -0
  47. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/data/edeprels.json +0 -0
  48. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/data/tospace.json +0 -0
  49. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/data/udeprels.json +0 -0
  50. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/data/upos.json +0 -0
  51. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/data.py +0 -0
  52. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/level1.py +0 -0
  53. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/level4.py +0 -0
  54. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/level5.py +0 -0
  55. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/level6.py +0 -0
  56. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/state.py +0 -0
  57. {udtools-0.2.5 → udtools-0.2.7}/src/udtools/udeval.py +0 -0
  58. {udtools-0.2.5 → udtools-0.2.7}/src/udtools.egg-info/dependency_links.txt +0 -0
  59. {udtools-0.2.5 → udtools-0.2.7}/src/udtools.egg-info/entry_points.txt +0 -0
  60. {udtools-0.2.5 → udtools-0.2.7}/src/udtools.egg-info/requires.txt +0 -0
  61. {udtools-0.2.5 → udtools-0.2.7}/src/udtools.egg-info/top_level.txt +0 -0
  62. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/README.md +0 -0
  63. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/eval/cs_pud-gold.conllu +0 -0
  64. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/eval/cs_pud-plain.txt +0 -0
  65. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/eval/cs_pud-udpipe-pdtc-ud-2.17-251125.conllu +0 -0
  66. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/eval/eval.txt +0 -0
  67. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/columns-format-minimal.conllu +0 -0
  68. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/columns-format.conllu +0 -0
  69. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/extra-empty-line.conllu +0 -0
  70. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/invalid-line.conllu +0 -0
  71. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/invalid-word-id.conllu +0 -0
  72. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/invalid-word-interval.conllu +0 -0
  73. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/misplaced-comment.conllu +0 -0
  74. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/misplaced-empty-node-2.conllu +0 -0
  75. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/misplaced-empty-node.conllu +0 -0
  76. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/misplaced-word-interval.conllu +0 -0
  77. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/multiple-sent-id.conllu +0 -0
  78. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/mwt-nonempty-2.conllu +0 -0
  79. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/mwt-nonempty-field.conllu +0 -0
  80. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/non-unix-newline.conllu +0 -0
  81. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/overlapping-word-interval.conllu +0 -0
  82. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/pseudo-empty-line.conllu +0 -0
  83. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/reversed-word-interval.conllu +0 -0
  84. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/unicode-normalization.conllu +0 -0
  85. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/word-id-sequence-2.conllu +0 -0
  86. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-functions/word-id-sequence.conllu +0 -0
  87. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/duplicate-id.conllu +0 -0
  88. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/empty-field.conllu +0 -0
  89. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/empty-head.conllu +0 -0
  90. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/empty-sentence.conllu +0 -0
  91. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/id-starting-from-2.conllu +0 -0
  92. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/id-with-extra-0.conllu +0 -0
  93. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/invalid-range.conllu +0 -0
  94. /udtools-0.2.5/tests/test-cases/invalid-level1-2/invalid-range-format.conllu → /udtools-0.2.7/tests/test-cases/invalid-level1/invalid-word-interval.conllu +0 -0
  95. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/misindexed-empty-node.conllu +0 -0
  96. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/misordered-multiword.conllu +0 -0
  97. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/misplaced-comment-end.conllu +0 -0
  98. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/misplaced-comment-mid.conllu +0 -0
  99. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/misplaced-range.conllu +0 -0
  100. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/missing-final-line.conllu +0 -0
  101. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/nan-id.conllu +0 -0
  102. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/nonsequential-empty-node-id.conllu +0 -0
  103. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/nonsequential-id.conllu +0 -0
  104. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/out-of-bounds-range.conllu +0 -0
  105. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/overlapping-multiword.conllu +0 -0
  106. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/overlapping-range.conllu +0 -0
  107. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/seemingly-empty-line.conllu +0 -0
  108. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/tanl-broken.conllu +0 -0
  109. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level1}/trailing-tab.conllu +0 -0
  110. /udtools-0.2.5/tests/test-cases/invalid-level1-2/unnormalized-unicode.conllu → /udtools-0.2.7/tests/test-cases/invalid-level1/unicode-normalization.conllu +0 -0
  111. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/ambiguous-feature.conllu +0 -0
  112. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/cyclic-deps.conllu +0 -0
  113. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/deprel-not-empty-in-empty.conllu +0 -0
  114. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/duplicate-feature.conllu +0 -0
  115. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/duplicate-layered-feature.conllu +0 -0
  116. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/duplicate-value.conllu +0 -0
  117. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/extra-empty-line.conllu +0 -0
  118. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/extra-field.conllu +0 -0
  119. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/head-not-empty-in-empty.conllu +0 -0
  120. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/invalid-deps-id.conllu +0 -0
  121. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/invalid-deps-order.conllu +0 -0
  122. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/invalid-deps-syntax.conllu +0 -0
  123. /udtools-0.2.5/tests/test-cases/invalid-level1-2/malformed_deps.conllu → /udtools-0.2.7/tests/test-cases/invalid-level2/invalid-deps.conllu +0 -0
  124. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/invalid-head.conllu +0 -0
  125. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/lowercase-feature-in-empty.conllu +0 -0
  126. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/lowercase-feature-value-in-empty.conllu +0 -0
  127. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/lowercase-feature.conllu +0 -0
  128. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/lowercase-postag-in-empty.conllu +0 -0
  129. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/lowercase-postag.conllu +0 -0
  130. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/lowercase-value.conllu +0 -0
  131. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/misordered-feature.conllu +0 -0
  132. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/misordered-layered-feature.conllu +0 -0
  133. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/missing-space-after.conllu +0 -0
  134. /udtools-0.2.5/tests/test-cases/invalid-level1-2/multiple-sent_id.conllu → /udtools-0.2.7/tests/test-cases/invalid-level2/multiple-sent-id.conllu +0 -0
  135. /udtools-0.2.5/tests/test-cases/invalid-level1-2/multiword-with-pos.conllu → /udtools-0.2.7/tests/test-cases/invalid-level2/mwt-nonempty-upos.conllu +0 -0
  136. /udtools-0.2.5/tests/test-cases/invalid-level1-2/token_with_cols_filled.conllu → /udtools-0.2.7/tests/test-cases/invalid-level2/mwt-nonempty.conllu +0 -0
  137. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/no-sent_id.conllu +0 -0
  138. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/parallel-id.conllu +0 -0
  139. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/self-cycle-deps.conllu +0 -0
  140. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/self-cycle-head.conllu +0 -0
  141. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/space-in-field.conllu +0 -0
  142. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/uppercase-deprel.conllu +0 -0
  143. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level2}/uppercase-deps-deprel.conllu +0 -0
  144. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level3}/head-0-deprel-not-root.conllu +0 -0
  145. {udtools-0.2.5/tests/test-cases/invalid-level1-2 → udtools-0.2.7/tests/test-cases/invalid-level3}/head-not-0-deprel-root.conllu +0 -0
  146. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-level3/nmod-obl.conllu +0 -0
  147. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-level3/non-proj.conllu +0 -0
  148. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-level3/rel-upos.conllu +0 -0
  149. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-level3/right-to-left.conllu +0 -0
  150. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-level3/too-many-objects.conllu +0 -0
  151. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-level3/too-many-subjects.conllu +0 -0
  152. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-level4-5/cs_pud-ud-test.conllu +0 -0
  153. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/invalid-level4-5/yrl_complin-mwt-typo-yes.conllu +0 -0
  154. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/valid/empty-file.conllu +0 -0
  155. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/valid/empty-nodes.conllu +0 -0
  156. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/valid/layered-features.conllu +0 -0
  157. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/valid/maximal-empty-node.conllu +0 -0
  158. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/valid/minimal-empty-node.conllu +0 -0
  159. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/valid/multiple-features.conllu +0 -0
  160. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/valid/nmod-obl.conllu +0 -0
  161. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/valid/tanl.conllu +0 -0
  162. {udtools-0.2.5 → udtools-0.2.7}/tests/test-cases/valid/whitespace.conllu +0 -0
  163. {udtools-0.2.5 → udtools-0.2.7}/tests/test_cases.py +0 -0
  164. {udtools-0.2.5 → udtools-0.2.7}/tests/test_checks.py +0 -0
  165. {udtools-0.2.5 → udtools-0.2.7}/tests/test_regex.py +0 -0
  166. {udtools-0.2.5 → udtools-0.2.7}/tests/test_utils.py +0 -0
  167. {udtools-0.2.5 → udtools-0.2.7}/tests/test_validate.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: udtools
3
- Version: 0.2.5
3
+ Version: 0.2.7
4
4
  Summary: Python tools for Universal Dependencies
5
5
  Author: Filip Ginter, Sampo Pyysalo, Daniel Zeman, Milan Straka, Martin Popel, Gosse Bouma, John Bauer, Arianna Masciolini, Ludovica Pannitto
6
6
  Maintainer-email: Daniel Zeman <zeman@ufal.mff.cuni.cz>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "udtools"
7
- version = "0.2.5"
7
+ version = "0.2.7"
8
8
  authors = [
9
9
  { name="Filip Ginter" },
10
10
  { name="Sampo Pyysalo" },
@@ -4,7 +4,7 @@ udtools.
4
4
  Python tools for Universal Dependencies.
5
5
  """
6
6
 
7
- __version__ = "0.2.5"
7
+ __version__ = "0.2.7"
8
8
  __author__ = 'Daniel Zeman'
9
9
  __credits__ = 'Universal Dependencies community'
10
10
 
@@ -14,42 +14,51 @@ def build_argparse_validator():
14
14
  opt_parser = argparse.ArgumentParser(description="CoNLL-U validation script. Python 3 is needed to run it!")
15
15
 
16
16
  io_group = opt_parser.add_argument_group("Input / output options")
17
- io_group.add_argument('--quiet',
18
- dest="quiet", action="store_true", default=False,
19
- help="""Do not print any error messages.
17
+ io_group.add_argument('-q', '--quiet',
18
+ dest='quiet', action="store_true", default=False,
19
+ help="""Do not print anything (errors, warnings, summary).
20
20
  Exit with 0 on pass, non-zero on fail.""")
21
+ io_group.add_argument('--no-warnings',
22
+ dest='no_warnings', action='store_true', default=False,
23
+ help="""Print only errors but no warnings.
24
+ The final summary will still include the number of warnings, although they were not printed.""")
25
+ io_group.add_argument('-e', '--exclude',
26
+ nargs='+',
27
+ help="""One or more ids of tests whose incidents should not be printed.
28
+ For example: --exclude missing-sent-id invalid-sent-id.
29
+ The tests will still be performed and resulting incidents counted in the final summary.""")
30
+ io_group.add_argument('-i', '--include-only',
31
+ nargs='+',
32
+ help="""One or more ids of tests whose incidents should be printed.
33
+ For example: --include-only missing-sent-id invalid-sent-id.
34
+ Any other incidents will not be printed.
35
+ The tests will still be performed and resulting incidents counted in the final summary.""")
21
36
  io_group.add_argument('--max-err',
22
- action="store", type=int, default=20,
23
- help="""How many errors to output per category? 0 for all.
24
- Default: %(default)d.""")
25
- io_group.add_argument('--max-store',
26
- action="store", type=int, default=20,
27
- help="""How many errors to save when collecting errors. 0 for all.
37
+ action='store', type=int, default=20,
38
+ help="""How many incidents to print per test class? 0 for all.
28
39
  Default: %(default)d.""")
29
40
  io_group.add_argument('input',
30
41
  nargs='*',
31
42
  help="""Input file name(s), or "-" or nothing for standard input.""")
32
43
 
33
- list_group = opt_parser.add_argument_group("Tag sets", "Options relevant to checking tag sets.")
34
- list_group.add_argument("--lang",
35
- action="store", required=True, default=None,
36
- help="""Which langauge are we checking?
37
- If you specify this (as a two-letter code), the tags will be checked
38
- using the language-specific files in the
39
- data/directory of the validator.""")
40
- list_group.add_argument("--level",
41
- action="store", type=int, default=5, dest="level",
44
+ test_group = opt_parser.add_argument_group("Test configuration options")
45
+ test_group.add_argument('--lang',
46
+ action='store', required=True, default=None,
47
+ help="""Which langauge are we checking (ISO 639 code)?
48
+ Determines the language-specific lists of features,
49
+ auxiliaries, relation subtypes etc. This is a required
50
+ argument. Use "ud" as the value if you only want to
51
+ test the universal part of the UD guidelines.""")
52
+ test_group.add_argument('--level',
53
+ action='store', type=int, default=5, dest="level",
42
54
  help="""Level 1: Test only CoNLL-U backbone.
43
55
  Level 2: UD format.
44
56
  Level 3: UD contents.
45
57
  Level 4: Language-specific labels.
46
- Level 5: Language-specific contents.""")
47
-
48
- coref_group = opt_parser.add_argument_group("Coreference / entity constraints",
49
- "Options for checking coreference and entity annotation.")
50
- coref_group.add_argument('--coref',
51
- action='store_true', default=False, dest='check_coref',
52
- help='Test coreference and entity-related annotation in MISC.')
58
+ Level 5 (default): Language-specific contents.""")
59
+ test_group.add_argument('--coref',
60
+ action='store_true', default=False, dest='check_coref',
61
+ help='Test coreference and entity-related annotation in MISC.')
53
62
  return opt_parser
54
63
 
55
64
 
@@ -19,7 +19,7 @@ from udtools.udeval import evaluate_wrapper, build_evaluation_table
19
19
 
20
20
  def main():
21
21
  args = parse_args_validator()
22
- validator = Validator(lang=args.lang, level=args.level, args=args)
22
+ validator = Validator(lang=args.lang, level=args.level, max_store=10, args=args)
23
23
  state = validator.validate_files(args.input)
24
24
  # Summarize the warnings and errors.
25
25
  summary = str(state)
@@ -132,6 +132,10 @@
132
132
  "waʔye": {"functions": [{"function": "cop.AUX", "rule": "combination of the copula and a nonverbal predicate", "deficient": "used with affirmative meaning in indicative clauses", "example": "məy yét maʔpəy ŋa [waʔye] cán nã makɨra", "exampleen": "Then this woman started a fire", "comment": ""}], "status": "documented", "lastchanged": "2022-04-30-16-53-08", "lastchanger": "tatiana-merz"},
133
133
  "ʔe": {"functions": [{"function": "cop.AUX", "rule": "combination of the copula and a nonverbal predicate", "deficient": "to say or do", "example": "kanãy yét péŋ [ʔe]t", "exampleen": "Then this white man said/did", "comment": ""}], "status": "documented", "lastchanged": "2022-04-30-16-49-48", "lastchanger": "tatiana-merz"}
134
134
  },
135
+ "as": {
136
+ "থাকা": {"functions": [{"function": "Tense=Past", "rule": "combination of the auxiliary and the past participle form of the main verb", "deficient": "", "example": "তেতিয়াও এলিচে বিশেষ একো ভবা [নাছিল]", "exampleen": "Even at that time Alice did not think much.", "comment": ""}], "status": "documented", "lastchanged": "2025-12-16-18-12-55", "lastchanger": "rahonalab"},
137
+ "হওঁ": {"functions": [{"function": "cop.AUX", "rule": "combination of the copula and a nonverbal predicate", "deficient": "", "example": "তাঽ [এজনী] Teacher", "exampleen": "she is a teacher.", "comment": ""}], "status": "documented", "lastchanged": "2025-12-16-17-59-37", "lastchanger": "rahonalab"}
138
+ },
135
139
  "az": {
136
140
  "bil": {"functions": [{"function": "Mood=Irr", "rule": "combines with any non-finite verb.", "deficient": "", "example": "Deniz vəxtikən yatmıya [bil]ir.", "exampleen": "Deniz may not be able to sleep on time.", "comment": "Function should probably be specified better."}], "status": "documented", "lastchanged": "2024-04-28-13-04-07", "lastchanger": "coltekin"},
137
141
  "dəyil": {"functions": [{"function": "agr", "rule": "This is more like a negative copula, it can get many other TAME features as affixes.", "deficient": "", "example": "Nəticələr gəlmiş; belə [dǝyil]?", "exampleen": "The results have been announced, haven’t they?", "comment": ""}], "status": "documented", "lastchanged": "2024-04-28-17-06-27", "lastchanger": "coltekin"},
@@ -232,6 +236,10 @@
232
236
  "rankout": {"functions": [{"function": "", "rule": "", "deficient": "", "example": "", "exampleen": "", "comment": ""}], "status": "undocumented", "lastchanged": "", "lastchanger": ""},
233
237
  "ur": {"functions": [{"function": "", "rule": "", "deficient": "", "example": "", "exampleen": "", "comment": ""}], "status": "undocumented", "lastchanged": "", "lastchanger": ""}
234
238
  },
239
+ "brh": {
240
+ "as": {"functions": [{"function": "Aspect=Imp", "rule": "combination of the auxiliary and infinitive form of the main verb", "deficient": "", "example": "Tā̃zī paxīrnā raaṭī tūlok [as].", "exampleen": "The hound was sitting beside the wanderer.", "comment": ""}], "status": "documented", "lastchanged": "2025-12-17-16-40-49", "lastchanger": "rahonalab"},
241
+ "mare": {"functions": [{"function": "Aspect=Imp", "rule": "combination of the auxiliary and the infinitive form of the main verb", "deficient": "", "example": "dunki ɣaebī o dušmane daṛakko tiningaṭī [mare] .", "exampleen": "As if it were threatening an enemy out of sight.", "comment": ""}], "status": "documented", "lastchanged": "2025-12-17-16-43-28", "lastchanger": "rahonalab"}
242
+ },
235
243
  "bxr": {
236
244
  "бай": {"functions": [{"function": "cop.AUX", "rule": "combination of the copula and a nonverbal predicate", "deficient": "", "example": "Хүзүүбшэ улан үнгэтэй [байгаа].", "exampleen": "The neck has a red fox.", "comment": ""}], "status": "documented", "lastchanged": "2020-11-08-11-30-02", "lastchanger": "dan-zeman"},
237
245
  "боло": {"functions": [{"function": "Tense=Fut", "rule": "combination of the auxiliary and the main verb", "deficient": "", "example": "Энэ хэрэгтэ зандинаархиниие хабаадуулхада [болохо].", "exampleen": "In this case, we [will] dump the sandbags.", "comment": "The verb болохо (to become) functions as an auxiliary and a pseudo-copula in Buryat. Лиджиева et al. 2020, DOI: 10.22162/2619-0990-2020-52-6-1677-1691."}], "status": "documented", "lastchanged": "2022-06-02-15-42-01", "lastchanger": "dan-zeman"},
@@ -1284,8 +1292,9 @@
1284
1292
  "y": {"functions": [{"function": "cop.AUX", "rule": "combination of the copula and a nonverbal predicate", "deficient": "i copula", "example": "Eve gelir [iken]", "exampleen": "As you are coming home", "comment": ""}], "status": "documented", "lastchanged": "2024-05-01-15-01-02", "lastchanger": "sb-b"}
1285
1293
  },
1286
1294
  "pa": {
1287
- "ہونا": {"functions": [{"function": "cop.AUX", "rule": "combination of the copula and a nonverbal predicate", "deficient": "", "example": "[ہے] چھوٹی بھیڈ", "exampleen": "It is a little sheep.", "comment": ""}], "status": "documented", "lastchanged": "2025-12-08-12-31-59", "lastchanger": "rahonalab"},
1288
- "ہﻮﻧﺍ": {"functions": [{"function": "Aspect=Perf", "rule": "combination of the auxiliary and a past participle of the main verb", "deficient": "", "example": "اس کتاب وچ انج لکھیا [سی]", "exampleen": "In this book it was written as follows", "comment": ""}], "status": "documented", "lastchanged": "2025-12-09-11-01-18", "lastchanger": "rahonalab"}
1295
+ "ہونا": {"functions": [{"function": "cop.AUX", "rule": "combination of the copula and a nonverbal predicate", "deficient": "Shahmukhi script", "example": "[ہے] چھوٹی بھیڈ", "exampleen": "It is a little sheep.", "comment": ""}], "status": "documented", "lastchanged": "2025-12-24-16-28-47", "lastchanger": "rahonalab"},
1296
+ "ہﻮﻧﺍ": {"functions": [{"function": "Aspect=Perf", "rule": "combination of the auxiliary and a past participle of the main verb", "deficient": "", "example": "اس کتاب وچ انج لکھیا [سی]", "exampleen": "In this book it was written as follows", "comment": ""}], "status": "documented", "lastchanged": "2025-12-09-11-01-18", "lastchanger": "rahonalab"},
1297
+ "ਸੀ": {"functions": [{"function": "cop.AUX", "rule": "combination of the copula and a nonverbal predicate", "deficient": "Gurmukhi script", "example": "ਇਕ ਵਾਰ , ਜਦੋਂ ਮੈਂ ਛੇ ਸਾਲ ਦਾ [ਸਾਂ]।", "exampleen": "Once when I was six years old.", "comment": ""}], "status": "documented", "lastchanged": "2025-12-24-16-27-59", "lastchanger": "rahonalab"}
1289
1298
  },
1290
1299
  "pay": {
1291
1300
  "ak": {"functions": [{"function": "Aspect=Perf", "rule": "combination of the auxiliary and a past or bare form of the verb.", "deficient": "", "example": "toʔ arwã ma pak [aki] wiʃã akaki ya", "exampleen": "‘The Mother of the Fish had already taken that man’.", "comment": ""}], "status": "documented", "lastchanged": "2024-10-30-23-18-18", "lastchanger": "natalia-caceres-arandia"},
@@ -759,6 +759,9 @@
759
759
  "ccomp": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
760
760
  "clf": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
761
761
  "compound": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
762
+ "compound:lvc": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-12-16-39-15", "lastchanger": "rahonalab"},
763
+ "compound:redup": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-12-16-50-03", "lastchanger": "rahonalab"},
764
+ "compound:svc": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-12-16-39-30", "lastchanger": "rahonalab"},
762
765
  "conj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
763
766
  "cop": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
764
767
  "csubj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
@@ -775,10 +778,13 @@
775
778
  "list": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
776
779
  "mark": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
777
780
  "nmod": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
781
+ "nmod:poss": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-12-16-44-07", "lastchanger": "rahonalab"},
778
782
  "nsubj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
783
+ "nsubj:pass": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-12-17-10-52", "lastchanger": "rahonalab"},
779
784
  "nummod": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
780
785
  "obj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
781
786
  "obl": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
787
+ "obl:lmod": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-12-16-38-46", "lastchanger": "rahonalab"},
782
788
  "orphan": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
783
789
  "parataxis": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
784
790
  "punct": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
@@ -1512,10 +1518,12 @@
1512
1518
  "list": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
1513
1519
  "mark": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
1514
1520
  "nmod": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
1521
+ "nmod:poss": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-17-16-14-57", "lastchanger": "rahonalab"},
1515
1522
  "nsubj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
1516
1523
  "nummod": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
1517
1524
  "obj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
1518
1525
  "obl": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
1526
+ "obl:tmod": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-17-16-23-59", "lastchanger": "rahonalab"},
1519
1527
  "orphan": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
1520
1528
  "parataxis": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
1521
1529
  "punct": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
@@ -2435,6 +2443,7 @@
2435
2443
  "ccomp:speech": {"type": "local", "doc": "local", "permitted": 1, "errors": [], "lastchanged": "2025-12-08-21-47-36", "lastchanger": "UD_Egyptian"},
2436
2444
  "clf": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
2437
2445
  "compound": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
2446
+ "compound:a": {"type": "local", "doc": "local", "permitted": 1, "errors": [], "lastchanged": "2025-12-14-11-40-03", "lastchanger": "UD-Egyptian"},
2438
2447
  "conj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
2439
2448
  "cop": {"type": "universal", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2024-03-24-20-59-36", "lastchanger": "UD-Egyptian"},
2440
2449
  "csubj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
@@ -2462,6 +2471,8 @@
2462
2471
  "list": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
2463
2472
  "mark": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
2464
2473
  "nmod": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
2474
+ "nmod:nisba": {"type": "local", "doc": "local", "permitted": 1, "errors": [], "lastchanged": "2025-12-13-15-16-15", "lastchanger": "UD-Egyptian"},
2475
+ "nmod:obl": {"type": "local", "doc": "none", "permitted": 0, "errors": []},
2465
2476
  "nmod:poss": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2024-12-28-07-46-22", "lastchanger": "UD-Egyptian"},
2466
2477
  "nsubj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
2467
2478
  "nsubj:outer": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2024-04-01-15-30-53", "lastchanger": "UD-Egyptian"},
@@ -2471,6 +2482,8 @@
2471
2482
  "obl": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
2472
2483
  "obl:agent": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2024-04-22-21-08-22", "lastchanger": "UD-Egyptian"},
2473
2484
  "obl:arg": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2024-12-28-09-04-39", "lastchanger": "UD_Egyptian"},
2485
+ "obl:nisba": {"type": "local", "doc": "local", "permitted": 1, "errors": [], "lastchanged": "2025-12-13-15-15-49", "lastchanger": "UD_Egyptian"},
2486
+ "obl:unmarked": {"type": "local", "doc": "local", "permitted": 1, "errors": [], "lastchanged": "2025-12-17-13-58-18", "lastchanger": "UD_Egyptian"},
2474
2487
  "orphan": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
2475
2488
  "parataxis": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
2476
2489
  "punct": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
@@ -3134,12 +3147,14 @@
3134
3147
  "conj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3135
3148
  "cop": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3136
3149
  "csubj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3150
+ "csubj:pass": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2026-01-08-11-02-45", "lastchanger": "mregnault"},
3137
3151
  "dep": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3138
3152
  "det": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3139
3153
  "det:poss": {"type": "global", "doc": "global", "permitted": 1, "errors": []},
3140
3154
  "discourse": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3141
3155
  "dislocated": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3142
3156
  "expl": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3157
+ "expl:pass": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2026-01-08-11-00-47", "lastchanger": "mregnault"},
3143
3158
  "fixed": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3144
3159
  "flat": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3145
3160
  "goeswith": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
@@ -3148,10 +3163,13 @@
3148
3163
  "mark": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3149
3164
  "nmod": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3150
3165
  "nsubj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3166
+ "nsubj:pass": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2026-01-08-11-02-24", "lastchanger": "mregnault"},
3151
3167
  "nummod": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3152
3168
  "obj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3153
3169
  "obl": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3154
3170
  "obl:advmod": {"type": "local", "doc": "local", "permitted": 0, "errors": [], "lastchanged": "2025-10-30-15-12-15", "lastchanger": "MathieuDehouck"},
3171
+ "obl:agent": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2026-01-08-11-02-07", "lastchanger": "mregnault"},
3172
+ "obl:arg": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2026-01-08-11-01-03", "lastchanger": "mregnault"},
3155
3173
  "obl:mod": {"type": "local", "doc": "local", "permitted": 1, "errors": [], "lastchanged": "2025-10-30-15-11-55", "lastchanger": "MathieuDehouck"},
3156
3174
  "orphan": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3157
3175
  "parataxis": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
@@ -3181,12 +3199,14 @@
3181
3199
  "conj": {"type": "universal", "doc": "local", "permitted": 1, "errors": []},
3182
3200
  "cop": {"type": "universal", "doc": "local", "permitted": 1, "errors": []},
3183
3201
  "csubj": {"type": "universal", "doc": "local", "permitted": 1, "errors": []},
3202
+ "csubj:pass": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2026-01-08-10-59-01", "lastchanger": "mregnault"},
3184
3203
  "dep": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3185
3204
  "det": {"type": "universal", "doc": "local", "permitted": 1, "errors": []},
3186
3205
  "det:poss": {"type": "global", "doc": "global", "permitted": 1, "errors": []},
3187
3206
  "discourse": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3188
3207
  "dislocated": {"type": "universal", "doc": "local", "permitted": 1, "errors": []},
3189
3208
  "expl": {"type": "universal", "doc": "local", "permitted": 1, "errors": []},
3209
+ "expl:pass": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2026-01-08-10-58-13", "lastchanger": "mregnault"},
3190
3210
  "fixed": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3191
3211
  "flat": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
3192
3212
  "goeswith": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
@@ -3202,6 +3222,7 @@
3202
3222
  "nsubj:advmod": {"type": "local", "doc": "local", "permitted": 1, "errors": []},
3203
3223
  "nsubj:obj": {"type": "local", "doc": "local", "permitted": 1, "errors": []},
3204
3224
  "nsubj:outer": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2023-10-30-11-03-17", "lastchanger": "lgrobol"},
3225
+ "nsubj:pass": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2026-01-08-10-58-38", "lastchanger": "mregnault"},
3205
3226
  "nummod": {"type": "universal", "doc": "local", "permitted": 1, "errors": []},
3206
3227
  "obj": {"type": "universal", "doc": "local", "permitted": 1, "errors": []},
3207
3228
  "obj:advmod": {"type": "local", "doc": "local", "permitted": 1, "errors": []},
@@ -3209,6 +3230,8 @@
3209
3230
  "obj:obl": {"type": "local", "doc": "local", "permitted": 1, "errors": []},
3210
3231
  "obl": {"type": "universal", "doc": "local", "permitted": 1, "errors": []},
3211
3232
  "obl:advmod": {"type": "local", "doc": "none", "permitted": 0, "errors": []},
3233
+ "obl:agent": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2026-01-08-10-59-45", "lastchanger": "mregnault"},
3234
+ "obl:arg": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2026-01-08-10-59-26", "lastchanger": "mregnault"},
3212
3235
  "obl:mod": {"type": "local", "doc": "local", "permitted": 1, "errors": []},
3213
3236
  "orphan": {"type": "universal", "doc": "local", "permitted": 1, "errors": []},
3214
3237
  "parataxis": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
@@ -7460,6 +7483,7 @@
7460
7483
  "ccomp": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7461
7484
  "clf": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7462
7485
  "compound": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7486
+ "compound:redup": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-18-16-20-34", "lastchanger": "rahonalab"},
7463
7487
  "conj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7464
7488
  "cop": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7465
7489
  "csubj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
@@ -7471,15 +7495,19 @@
7471
7495
  "expl": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7472
7496
  "fixed": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7473
7497
  "flat": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7498
+ "flat:name": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-18-16-22-53", "lastchanger": "rahonalab"},
7474
7499
  "goeswith": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7475
7500
  "iobj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7476
7501
  "list": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7477
7502
  "mark": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7478
7503
  "nmod": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7504
+ "nmod:poss": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-18-16-18-13", "lastchanger": "rahonalab"},
7479
7505
  "nsubj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7480
7506
  "nummod": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7481
7507
  "obj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7482
7508
  "obl": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7509
+ "obl:lmod": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-18-16-19-13", "lastchanger": "rahonalab"},
7510
+ "obl:tmod": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-18-16-18-35", "lastchanger": "rahonalab"},
7483
7511
  "orphan": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7484
7512
  "parataxis": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
7485
7513
  "punct": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
@@ -8230,6 +8258,7 @@
8230
8258
  "nmod:poss": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-04-17-16-31", "lastchanger": "rahonalab"},
8231
8259
  "nmod:tmod": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-04-17-17-58", "lastchanger": "rahonalab"},
8232
8260
  "nsubj": {"type": "universal", "doc": "local", "permitted": 1, "errors": []},
8261
+ "nsubj:outer": {"type": "global", "doc": "global", "permitted": 1, "errors": [], "lastchanged": "2025-12-19-16-48-15", "lastchanger": "rahonalab"},
8233
8262
  "nsubj:pass": {"type": "local", "doc": "local", "permitted": 1, "errors": []},
8234
8263
  "nummod": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
8235
8264
  "obj": {"type": "universal", "doc": "global", "permitted": 1, "errors": []},
@@ -52,7 +52,7 @@
52
52
  "dar": ["acl", "acl:relcl", "advcl", "advcl:relcl", "advmod", "advmod:emph", "advmod:lmod", "amod", "appos", "aux", "aux:pass", "case", "cc", "cc:preconj", "ccomp", "clf", "compound", "compound:lvc", "compound:prt", "compound:redup", "compound:svc", "conj", "cop", "csubj", "csubj:outer", "csubj:pass", "dep", "det", "det:numgov", "det:nummod", "det:poss", "discourse", "dislocated", "expl", "expl:impers", "expl:pass", "expl:pv", "fixed", "flat", "flat:foreign", "flat:name", "goeswith", "iobj", "list", "mark", "nmod", "nmod:poss", "nmod:tmod", "nsubj", "nsubj:outer", "nsubj:pass", "nummod", "nummod:gov", "obj", "obl", "obl:agent", "obl:arg", "obl:lmod", "obl:tmod", "orphan", "parataxis", "punct", "reparandum", "root", "vocative", "xcomp"],
53
53
  "de": ["acl", "acl:relcl", "advcl", "advcl:relcl", "advmod", "amod", "appos", "aux", "aux:pass", "case", "cc", "ccomp", "compound", "compound:prt", "conj", "cop", "csubj", "csubj:pass", "det", "det:poss", "dislocated", "expl", "expl:pv", "fixed", "flat", "iobj", "mark", "nmod", "nsubj", "nsubj:pass", "nummod", "obj", "obl", "obl:agent", "obl:arg", "orphan", "parataxis", "reparandum", "vocative", "xcomp", "advmod:emph", "advmod:lmod", "cc:preconj", "clf", "compound:lvc", "compound:redup", "compound:svc", "csubj:outer", "dep", "det:numgov", "det:nummod", "discourse", "expl:impers", "expl:pass", "flat:foreign", "flat:name", "goeswith", "list", "nmod:poss", "nmod:tmod", "nsubj:outer", "nummod:gov", "obl:lmod", "obl:tmod", "punct", "root"],
54
54
  "drs": ["acl", "acl:relcl", "advcl", "advcl:relcl", "advmod", "advmod:emph", "advmod:lmod", "amod", "appos", "aux", "aux:pass", "case", "cc", "cc:preconj", "ccomp", "clf", "compound", "compound:lvc", "compound:prt", "compound:redup", "compound:svc", "conj", "cop", "csubj", "csubj:outer", "csubj:pass", "dep", "det", "det:numgov", "det:nummod", "det:poss", "discourse", "dislocated", "expl", "expl:impers", "expl:pass", "expl:pv", "fixed", "flat", "flat:foreign", "flat:name", "goeswith", "iobj", "list", "mark", "nmod", "nmod:poss", "nmod:tmod", "nsubj", "nsubj:outer", "nsubj:pass", "nummod", "nummod:gov", "obj", "obl", "obl:agent", "obl:arg", "obl:lmod", "obl:tmod", "orphan", "parataxis", "punct", "reparandum", "root", "vocative", "xcomp"],
55
- "egy": ["advcl:consec", "advcl:purp", "advcl:tcl", "advmod:neg", "advmod:q", "ccomp:obj", "ccomp:speech", "dislocated:agent", "dislocated:ccomp", "dislocated:csubj", "dislocated:nsubj", "dislocated:obj", "dislocated:obl", "acl", "acl:relcl", "advcl", "advcl:relcl", "advmod", "advmod:emph", "advmod:lmod", "amod", "appos", "aux", "aux:pass", "case", "cc", "cc:preconj", "ccomp", "clf", "compound", "compound:lvc", "compound:prt", "compound:redup", "compound:svc", "conj", "cop", "csubj", "csubj:outer", "csubj:pass", "dep", "det", "det:numgov", "det:nummod", "det:poss", "discourse", "dislocated", "expl", "expl:impers", "expl:pass", "expl:pv", "fixed", "flat", "flat:foreign", "flat:name", "goeswith", "iobj", "list", "mark", "nmod", "nmod:poss", "nmod:tmod", "nsubj", "nsubj:outer", "nsubj:pass", "nummod", "nummod:gov", "obj", "obl", "obl:agent", "obl:arg", "obl:lmod", "obl:tmod", "orphan", "parataxis", "punct", "reparandum", "root", "vocative", "xcomp"],
55
+ "egy": ["advcl:consec", "advcl:purp", "advcl:tcl", "advmod:neg", "advmod:q", "ccomp:obj", "ccomp:speech", "compound:a", "dislocated:agent", "dislocated:ccomp", "dislocated:csubj", "dislocated:nsubj", "dislocated:obj", "dislocated:obl", "nmod:nisba", "obl:nisba", "obl:unmarked", "acl", "acl:relcl", "advcl", "advcl:relcl", "advmod", "advmod:emph", "advmod:lmod", "amod", "appos", "aux", "aux:pass", "case", "cc", "cc:preconj", "ccomp", "clf", "compound", "compound:lvc", "compound:prt", "compound:redup", "compound:svc", "conj", "cop", "csubj", "csubj:outer", "csubj:pass", "dep", "det", "det:numgov", "det:nummod", "det:poss", "discourse", "dislocated", "expl", "expl:impers", "expl:pass", "expl:pv", "fixed", "flat", "flat:foreign", "flat:name", "goeswith", "iobj", "list", "mark", "nmod", "nmod:poss", "nmod:tmod", "nsubj", "nsubj:outer", "nsubj:pass", "nummod", "nummod:gov", "obj", "obl", "obl:agent", "obl:arg", "obl:lmod", "obl:tmod", "orphan", "parataxis", "punct", "reparandum", "root", "vocative", "xcomp"],
56
56
  "el": ["acl", "acl:relcl", "advcl", "advcl:relcl", "advmod", "amod", "appos", "aux", "case", "cc", "ccomp", "compound", "compound:redup", "conj", "cop", "csubj", "csubj:pass", "det", "discourse", "dislocated", "expl", "fixed", "flat", "goeswith", "iobj", "list", "mark", "nmod", "nsubj", "nsubj:outer", "nsubj:pass", "nummod", "obj", "obl", "obl:agent", "orphan", "parataxis", "punct", "reparandum", "root", "vocative", "xcomp", "advmod:emph", "advmod:lmod", "aux:pass", "cc:preconj", "clf", "compound:lvc", "compound:prt", "compound:svc", "csubj:outer", "dep", "det:numgov", "det:nummod", "det:poss", "expl:impers", "expl:pass", "expl:pv", "flat:foreign", "flat:name", "nmod:poss", "nmod:tmod", "nummod:gov", "obl:arg", "obl:lmod", "obl:tmod"],
57
57
  "eme": ["acl", "acl:relcl", "advcl", "advcl:relcl", "advmod", "advmod:emph", "advmod:lmod", "amod", "appos", "aux", "aux:pass", "case", "cc", "cc:preconj", "ccomp", "clf", "compound", "compound:lvc", "compound:prt", "compound:redup", "compound:svc", "conj", "cop", "csubj", "csubj:outer", "csubj:pass", "dep", "det", "det:numgov", "det:nummod", "det:poss", "discourse", "dislocated", "expl", "expl:impers", "expl:pass", "expl:pv", "fixed", "flat", "flat:foreign", "flat:name", "goeswith", "iobj", "list", "mark", "nmod", "nmod:poss", "nmod:tmod", "nsubj", "nsubj:outer", "nsubj:pass", "nummod", "nummod:gov", "obj", "obl", "obl:agent", "obl:arg", "obl:lmod", "obl:tmod", "orphan", "parataxis", "punct", "reparandum", "root", "vocative", "xcomp"],
58
58
  "en": ["acl", "acl:relcl", "advcl", "advcl:relcl", "advmod", "amod", "appos", "aux", "aux:pass", "case", "cc", "cc:preconj", "ccomp", "compound", "compound:prt", "conj", "cop", "csubj", "csubj:outer", "csubj:pass", "dep", "det", "det:predet", "discourse", "dislocated", "expl", "fixed", "flat", "flat:foreign", "goeswith", "iobj", "list", "mark", "nmod", "nmod:desc", "nmod:npmod", "nmod:poss", "nmod:tmod", "nmod:unmarked", "nsubj", "nsubj:outer", "nsubj:pass", "nummod", "obj", "obl", "obl:agent", "obl:npmod", "obl:tmod", "obl:unmarked", "orphan", "parataxis", "punct", "reparandum", "root", "vocative", "xcomp", "advmod:emph", "advmod:lmod", "clf", "compound:lvc", "compound:redup", "compound:svc", "det:numgov", "det:nummod", "det:poss", "expl:impers", "expl:pass", "expl:pv", "flat:name", "nummod:gov", "obl:arg", "obl:lmod"],
@@ -688,12 +688,16 @@
688
688
  "advmod:q": {"type": "local", "errors": []},
689
689
  "ccomp:obj": {"type": "local", "errors": []},
690
690
  "ccomp:speech": {"type": "local", "errors": []},
691
+ "compound:a": {"type": "local", "errors": []},
691
692
  "dislocated:agent": {"type": "local", "errors": []},
692
693
  "dislocated:ccomp": {"type": "local", "errors": []},
693
694
  "dislocated:csubj": {"type": "local", "errors": []},
694
695
  "dislocated:nsubj": {"type": "local", "errors": []},
695
696
  "dislocated:obj": {"type": "local", "errors": []},
696
- "dislocated:obl": {"type": "local", "errors": []}
697
+ "dislocated:obl": {"type": "local", "errors": []},
698
+ "nmod:nisba": {"type": "local", "errors": []},
699
+ "obl:nisba": {"type": "local", "errors": []},
700
+ "obl:unmarked": {"type": "local", "errors": []}
697
701
  },
698
702
  "el": {
699
703
  "acl": {"type": "universal", "errors": []},