39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
|
#!/usr/bin/env python
|
||
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
|
||
|
def extract_function_names(module):
|
||
|
'''
|
||
|
extract function names from attributes of 'module'.
|
||
|
'''
|
||
|
from importlib import import_module
|
||
|
|
||
|
mod = import_module(module.__name__)
|
||
|
attr_list = dir(mod)
|
||
|
scope = locals()
|
||
|
|
||
|
def iscallable(name):
|
||
|
ignore_decorators = ['dedent','deprecated','silent_list', 'warn_deprecated']
|
||
|
return eval('callable(mod.{})'.format(name), scope) and name not in ignore_decorators
|
||
|
|
||
|
return filter(iscallable, attr_list)
|
||
|
|
||
|
|
||
|
def gen_pyplot_functions(dub_root):
|
||
|
'''
|
||
|
generate 'pyplot_functions.txt' for matplotlibd.pyplot.
|
||
|
'''
|
||
|
import matplotlib.pyplot
|
||
|
from string import ascii_lowercase
|
||
|
|
||
|
functions = filter(lambda i: i[0] != '_' or i[0] in ascii_lowercase,
|
||
|
extract_function_names(matplotlib.pyplot))
|
||
|
|
||
|
with open(dub_root + "/views/pyplot_functions.txt", "w") as f:
|
||
|
f.write("\n".join(functions))
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
from sys import argv
|
||
|
gen_pyplot_functions(argv[1])
|