xref: /aosp_15_r20/external/armnn/python/pyarmnn/scripts/generate_docs.py (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker#!/usr/bin/env python3
2*89c4ff92SAndroid Build Coastguard Worker# Copyright © 2020 Arm Ltd. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker"""Generate PyArmNN documentation."""
5*89c4ff92SAndroid Build Coastguard Worker
6*89c4ff92SAndroid Build Coastguard Workerimport os
7*89c4ff92SAndroid Build Coastguard Workerimport tarfile
8*89c4ff92SAndroid Build Coastguard Worker
9*89c4ff92SAndroid Build Coastguard Workerimport pyarmnn as ann
10*89c4ff92SAndroid Build Coastguard Workerimport shutil
11*89c4ff92SAndroid Build Coastguard Worker
12*89c4ff92SAndroid Build Coastguard Workerfrom typing import List, Union
13*89c4ff92SAndroid Build Coastguard Worker
14*89c4ff92SAndroid Build Coastguard Workerfrom pdoc.cli import main
15*89c4ff92SAndroid Build Coastguard Worker
16*89c4ff92SAndroid Build Coastguard Worker
17*89c4ff92SAndroid Build Coastguard Workerdef __copy_file_to_dir(file_paths: Union[List[str], str], target_dir_path: str):
18*89c4ff92SAndroid Build Coastguard Worker    file_paths = [] + file_paths
19*89c4ff92SAndroid Build Coastguard Worker
20*89c4ff92SAndroid Build Coastguard Worker    if not (os.path.exists(target_dir_path) and os.path.isdir(target_dir_path)):
21*89c4ff92SAndroid Build Coastguard Worker        os.makedirs(target_dir_path)
22*89c4ff92SAndroid Build Coastguard Worker
23*89c4ff92SAndroid Build Coastguard Worker    for file_path in file_paths:
24*89c4ff92SAndroid Build Coastguard Worker        if not (os.path.exists(file_path) and os.path.isfile(file_path)):
25*89c4ff92SAndroid Build Coastguard Worker            raise RuntimeError('Not a file: {}'.format(file_path))
26*89c4ff92SAndroid Build Coastguard Worker
27*89c4ff92SAndroid Build Coastguard Worker        file_name = os.path.basename(file_path)
28*89c4ff92SAndroid Build Coastguard Worker        shutil.copyfile(file_path, os.path.join(str(target_dir_path), file_name))
29*89c4ff92SAndroid Build Coastguard Worker
30*89c4ff92SAndroid Build Coastguard Worker
31*89c4ff92SAndroid Build Coastguard Workerdef copy_doc_images():
32*89c4ff92SAndroid Build Coastguard Worker    __copy_file_to_dir(file_paths=['../../docs/pyarmnn.png'],
33*89c4ff92SAndroid Build Coastguard Worker                       target_dir_path='docs')
34*89c4ff92SAndroid Build Coastguard Worker
35*89c4ff92SAndroid Build Coastguard Worker
36*89c4ff92SAndroid Build Coastguard Workerdef archive_docs(path, version):
37*89c4ff92SAndroid Build Coastguard Worker
38*89c4ff92SAndroid Build Coastguard Worker    output_filename = f'pyarmnn_docs-{version}.tar'
39*89c4ff92SAndroid Build Coastguard Worker
40*89c4ff92SAndroid Build Coastguard Worker    with tarfile.open(output_filename, "w") as tar:
41*89c4ff92SAndroid Build Coastguard Worker        tar.add(path)
42*89c4ff92SAndroid Build Coastguard Worker
43*89c4ff92SAndroid Build Coastguard Worker
44*89c4ff92SAndroid Build Coastguard Workerif __name__ == "__main__":
45*89c4ff92SAndroid Build Coastguard Worker    with open('./README.md', 'r') as readme_file:
46*89c4ff92SAndroid Build Coastguard Worker        top_level_pyarmnn_doc = ''.join(readme_file.readlines())
47*89c4ff92SAndroid Build Coastguard Worker        ann.__doc__ = top_level_pyarmnn_doc
48*89c4ff92SAndroid Build Coastguard Worker
49*89c4ff92SAndroid Build Coastguard Worker    main()
50*89c4ff92SAndroid Build Coastguard Worker
51*89c4ff92SAndroid Build Coastguard Worker    copy_doc_images()
52*89c4ff92SAndroid Build Coastguard Worker    archive_docs('./docs', ann.__version__)
53