mirror of
https://github.com/triqs/dft_tools
synced 2024-11-01 03:33:50 +01:00
3fe400d34c
- examples split from the rst file using a python script (split_code). - Final result for the doc is unchanged. - examples are compiled and tested with the other tests. - examples' code have been clang-formatted, with triqs style. - doc compiles much faster, and with the same options as the rest of the test. - examples are added as tests, so they are run by make test, as simple C tests. - done for the tutorials and the reference. - autocompile removed (changed into triqs_example directive). - add triqs_example : - make a literal include of the source code. - runs the compiled example - add, as before, the result to the source code in the doc. - added the script split_code, used to make the changes automatically, maybe for later reuse. (in _tools)
50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
import glob,re,os
|
|
|
|
def work(arg, dirname, names):
|
|
|
|
for fil in glob.glob(dirname+ "/*.rst") :
|
|
|
|
fi = fil[:-4]
|
|
lines = open(fil).readlines()
|
|
out = open(fi + ".rst", 'w')
|
|
def get_decal(line) : return len(line) - len(line.lstrip())
|
|
|
|
reading = False
|
|
ex_list = []
|
|
for line in lines :
|
|
|
|
if re.match("\s*.. compileblock\s*::.*",line) :
|
|
assert not reading
|
|
decal = get_decal(line)
|
|
reading = True
|
|
current_ex = []
|
|
out.write(decal*' ' + ".. triqs_example:: ./" + fi.rsplit('/',1)[-1] + "_%s"%len(ex_list) + ".cpp\n")
|
|
continue
|
|
|
|
if reading :
|
|
if line.strip()=='' or get_decal(line) > decal :
|
|
current_ex.append(line)
|
|
continue
|
|
else :
|
|
reading = False
|
|
ex_list.append(current_ex)
|
|
|
|
out.write(line)
|
|
|
|
if reading : ex_list.append(current_ex)
|
|
|
|
for n,ex in enumerate(ex_list) :
|
|
filename = fi + "_%s.cpp"%n
|
|
out = open(filename,'w')
|
|
print filename
|
|
for l in ex :
|
|
out.write(l)
|
|
#os.system("vim -c '%
|
|
|
|
os.path.walk('./', work, None)
|
|
|
|
# then
|
|
#find . -name "*_?.cpp" | xargs mvim
|
|
#macro ggVG Ctrl K
|
|
# :bufdo execute "normal! @a" | w:bufdo execute "normal! @a" | w
|