* Updated copyright headers
* Revert "Fixed linker warnings in docs snippets on Windows (#15119)"
This reverts commit 372699ec49.
91 lines
3.1 KiB
Python
91 lines
3.1 KiB
Python
# Copyright (C) 2018-2023 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
import argparse
|
|
import json
|
|
import logging
|
|
from lxml import etree
|
|
from pathlib import Path
|
|
|
|
REPOSITORIES = [
|
|
'openvino',
|
|
'omz',
|
|
'pot'
|
|
'ovms',
|
|
'ote'
|
|
]
|
|
|
|
|
|
def create_mapping(xml_input: Path, output_dir: Path, strip_path: Path):
|
|
"""
|
|
Create a mapping between doxygen label and file path for edit on github button.
|
|
"""
|
|
xml_input = xml_input.resolve()
|
|
output_dir = output_dir.resolve()
|
|
strip_path = strip_path.resolve()
|
|
mapping = {
|
|
'get_started': 'openvino/docs/get_started.md',
|
|
'ovsa_get_started': 'openvino/docs/ovsa/ovsa_get_started.md',
|
|
'documentation': 'openvino/docs/documentation.md',
|
|
'index': 'openvino/docs/index.rst',
|
|
'model_zoo': 'openvino/docs/model_zoo.md',
|
|
'resources': 'openvino/docs/resources.md',
|
|
'tutorials': 'openvino/docs/tutorials.md',
|
|
'tuning_utilities': 'openvino/docs/tuning_utilities.md'
|
|
}
|
|
output_dir.mkdir(parents=True, exist_ok=True)
|
|
xml_files = xml_input.glob('*.xml')
|
|
for xml_file in xml_files:
|
|
try:
|
|
root = etree.parse(xml_file.as_posix()).getroot()
|
|
compounds = root.xpath('//compounddef')
|
|
for compound in compounds:
|
|
kind = compound.attrib['kind']
|
|
if kind in ['file', 'dir']:
|
|
continue
|
|
name_tag = compound.find('compoundname')
|
|
name = name_tag.text
|
|
name = name.replace('::', '_1_1')
|
|
if kind == 'page':
|
|
exclude = True
|
|
for rep in REPOSITORIES:
|
|
if name.startswith(rep):
|
|
exclude = False
|
|
if exclude:
|
|
continue
|
|
else:
|
|
name = kind + name
|
|
location_tag = compound.find('location')
|
|
file = Path(location_tag.attrib['file'])
|
|
if not file.suffix:
|
|
continue
|
|
try:
|
|
file = file.relative_to(strip_path)
|
|
except ValueError:
|
|
logging.warning('{}: {} is not relative to {}.'.format(xml_file, file, strip_path))
|
|
mapping[name] = file.as_posix()
|
|
except AttributeError:
|
|
logging.warning('{}: Cannot find the origin file.'.format(xml_file))
|
|
except etree.XMLSyntaxError as e:
|
|
logging.warning('{}: {}.'.format(xml_file, e))
|
|
|
|
with open(output_dir.joinpath('mapping.json'), 'w') as f:
|
|
json.dump(mapping, f)
|
|
|
|
|
|
def main():
|
|
logging.basicConfig()
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('xml_input', type=Path, help='Path to the folder containing doxygen xml files')
|
|
parser.add_argument('output_dir', type=Path, help='Path to the output folder')
|
|
parser.add_argument('strip_path', type=Path, help='Strip from path')
|
|
args = parser.parse_args()
|
|
xml_input = args.xml_input
|
|
output_dir = args.output_dir
|
|
strip_path = args.strip_path
|
|
create_mapping(xml_input, output_dir, strip_path)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|