{"record":{"id":"c6493d121b7b0abe","repo":"hankcs/HanLP","slug":"unsupported-version-version","errorCode":null,"errorMessage":"Unsupported version {version}","messagePattern":"Unsupported version (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"hanlp/datasets/parsing/loaders/_ctb_utils.py","lineNumber":84,"sourceCode":"#         cids = set(f'{x:04d}' for x in cids)\n#         assert len(cids & total) == 0, f'Overlap found in {part}'\n#         splits[part] = cids\n#\n#     return splits\n#\n#\n# _make_splits(CTB9_ACADEMIA_SPLITS)\n\n\ndef convert_to_dependency(src, dst, language='zh', version='3.3.0', conllx=True, ud=False):\n    cprint(f'Converting {os.path.basename(src)} to {os.path.basename(dst)} using Stanford Parser Version {version}. '\n           f'It might take a while [blink][yellow]...[/yellow][/blink]')\n    if version == '3.3.0':\n        sp_home = 'https://nlp.stanford.edu/software/stanford-parser-full-2013-11-12.zip'\n    elif version == '4.2.0':\n        sp_home = 'https://nlp.stanford.edu/software/stanford-parser-4.2.0.zip'\n    else:\n        raise ValueError(f'Unsupported version {version}')\n    sp_home = get_resource(sp_home)\n    # jar_path = get_resource(f'{sp_home}#stanford-parser.jar')\n    if ud:\n        jclass = 'edu.stanford.nlp.trees.international.pennchinese.UniversalChineseGrammaticalStructure' if language == 'zh' \\\n            else 'edu.stanford.nlp.trees.ud.UniversalDependenciesConverter'\n    else:\n        jclass = 'edu.stanford.nlp.trees.international.pennchinese.ChineseGrammaticalStructure' if language == 'zh' \\\n            else 'edu.stanford.nlp.trees.EnglishGrammaticalStructure'\n    cmd = f'java -cp {sp_home}/* {jclass} ' \\\n          f'-treeFile {src}'\n    if conllx:\n        cmd += ' -conllx'\n    if not ud:\n        cmd += f' -basic -keepPunct'\n    code, out, err = get_exitcode_stdout_stderr(cmd)\n    with open(dst, 'w') as f:\n        f.write(out)\n    if code:","sourceCodeStart":66,"sourceCodeEnd":102,"githubUrl":"https://github.com/hankcs/HanLP/blob/ddb1299bddff079e447af52ec12549c50636bfa8/hanlp/datasets/parsing/loaders/_ctb_utils.py#L66-L102","documentation":"convert_to_dependency downloads a specific Stanford Parser release to convert constituency trees to dependencies; only version '3.3.0' (for older SD) and '4.2.0' (for UD-style conversion) have known download URLs. Any other version string raises ValueError.","triggerScenarios":"Calling make_ctb_tasks/make_dep_conllx/convert_to_dependency with version='4.0.0', '3.5.2', or any value other than '3.3.0'/'4.2.0' (or leaving an unset config default).","commonSituations":"Changing the conversion standard in a CTB preparation script; assuming any Stanford Parser version string works.","solutions":["Use version='4.2.0' (UD) or version='3.3.0' (Stanford Dependencies 3.3.0)","Check the calling function's defaults; ensure a config value isn't overriding version"],"exampleFix":"# before\nconvert_to_dependency(treebank, out, language='zh', version='3.5.2')\n# after\nconvert_to_dependency(treebank, out, language='zh', version='4.2.0')","handlingStrategy":"validation","validationCode":"assert version in ('3.3.0', '4.2.0'), f'unsupported Stanford Parser version {version}'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Whitelist supported converter versions in config validation"],"tags":["python","stanford-parser","dependency-parsing","argument-validation"],"backgroundTag":"unsupported-version","analyzedSha":"ddb1299bddff079e447af52ec12549c50636bfa8","analyzedAt":"2026-08-27T03:36:54.287Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}