Test Failed
Push — master ( 2ea9aa...bc518a )
by
unknown
01:19 queued 17s
created

doc.create_dev_autosummary.amend_folder()   B

Complexity

Conditions 8

Size

Total Lines 28
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 8
eloc 25
nop 1
dl 0
loc 28
rs 7.3333
c 0
b 0
f 0
1
# Copyright 2014 Diamond Light Source Ltd.
2
#
3
# Licensed under the Apache License, Version 2.0 (the "License");
4
# you may not use this file except in compliance with the License.
5
# You may obtain a copy of the License at
6
#
7
#     http://www.apache.org/licenses/LICENSE-2.0
8
#
9
# Unless required by applicable law or agreed to in writing, software
10
# distributed under the License is distributed on an "AS IS" BASIS,
11
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
# See the License for the specific language governing permissions and
13
# limitations under the License.
14
15
"""
16
.. module:: create_dev_autosummary
17
   :platform: Unix
18
   :synopsis: A module to automatically update a Sphinx developer API.
19
20
.. moduleauthor:: Nicola Wadeson <[email protected]>
21
22
"""
23
import os
24
25
26
def add_folder(f):
27
    f.write('\n.. toctree::')
28
    f.write('\n   :glob:\n')
29
    f.write('\n   ../api_plugin/*\n')
30
31
32
def add_package_entry(f, root, dirs, files, output):
33
    pkg_path = root.split('Savu/')[1]
34
    module_name = pkg_path.replace('/', '.')
35
    f.write(module_name +
36
            '\n------------------------------------------------------------\n')
37
38
    f.write('\n.. toctree::\n')
39
40
41
def amend_folder(api_folder):
42
    all_files = []
43
    for (dirpath, dirnames, filenames) in os.walk(api_folder):
44
        all_files.extend(filenames)
45
        break
46
47
    for f in all_files:
48
        if f.split('test')[0] == 'savu.':
49
            os.remove(api_folder + '/' + f)
50
        else:
51
            s1 = f.split('plugins.')
52
            if len(s1) > 1:
53
                if s1[1] not in ['plugin.rst', 'plugin_datasets.rst']:
54
                    os.remove(api_folder + '/' + f)
55
    all_files = []
56
    for (dirpath, dirnames, filenames) in os.walk(api_folder):
57
        all_files.extend(filenames)
58
        break
59
60
    try:
61
        os.remove(api_folder + '/savu.rst')
62
        os.remove(api_folder + '/setup.rst')
63
        os.remove(api_folder + '/modules.rst')
64
        os.remove(api_folder + '/savu.core.rst')
65
        os.remove(api_folder + '/savu.data.rst')
66
        os.remove(api_folder + '/savu.data.data_structures.rst')
67
    except:
68
        pass
69
70
if __name__ == "__main__":
71
72
    # determine Savu base path
73
    savu_base_path = \
74
        os.path.dirname(os.path.realpath(__file__)).split('doc')[0]
75
    api_folder = savu_base_path + 'doc/source/reference/api_plugin'
76
77
    # open the autosummary file
78
    f = open(savu_base_path + 'doc/source/reference/dev_autosummary.rst', 'w')
79
80
    # add header
81
    f.write('API Documentation \n===================\n')
82
    f.write('Information on specific functions, classes, and methods.\n \n')
83
84
    amend_folder(api_folder)
85
86
    add_folder(f)
87