File tree Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change
1
+ import pandas as pd
2
+ import inspect
3
+ import re
4
+
5
+ def main ():
6
+
7
+ # classes whose members to check
8
+ classes = [pd .Series , pd .DataFrame , pd .Panel , pd .Panel4D ]
9
+
10
+ def class_name (cls ):
11
+ return str (cls ).rsplit ('.' )[- 1 ][:- 2 ]
12
+
13
+ def class_name_sort_key (x ):
14
+ if x .startswith ('Series' ):
15
+ # make sure Series precedes DataFrame, Panel, and Panel4D
16
+ return ' ' + x
17
+ else :
18
+ return x
19
+
20
+ # class members
21
+ class_members = set ()
22
+ for cls in classes :
23
+ class_members .update ([class_name (cls ) + '.' + x [0 ] for x in inspect .getmembers (cls )])
24
+
25
+ # class members referenced in api.rst
26
+ api_rst_members = set ()
27
+ file_name = '../doc/source/api.rst'
28
+ with open (file_name , 'r' ) as f :
29
+ for line in f :
30
+ match = re .search ('({})\.(\w+)' .format ('|' .join ([class_name (cls ) for cls in classes ])), line )
31
+ if match :
32
+ api_rst_members .add (match .group (0 ))
33
+
34
+ print ()
35
+ print ("Class members in api.rst that aren't actual members:" )
36
+ for x in sorted (api_rst_members .difference (class_members ), key = class_name_sort_key ):
37
+ print (x )
38
+
39
+ print ()
40
+ print ("Class members (other than those beginning with '_') missing from api.rst:" )
41
+ for x in sorted (class_members .difference (api_rst_members ), key = class_name_sort_key ):
42
+ if '._' not in x :
43
+ print (x )
44
+
45
+ if __name__ == "__main__" :
46
+ main ()
You can’t perform that action at this time.
0 commit comments