| #!/usr/bin/env python | |
| import mmap | |
| import re | |
| import os | |
| import errno | |
| script_path = os.path.dirname(os.path.realpath(__file__)) | |
| # a regex to match the parameter definitions in caffe.proto | |
| r = re.compile(r'(?://.*\n)*message ([^ ]*) \{\n(?: .*\n|\n)*\}') | |
| # create directory to put caffe.proto fragments | |
| try: | |
| os.mkdir( | |
| os.path.join(script_path, | |
| '../docs/_includes/')) | |
| os.mkdir( | |
| os.path.join(script_path, | |
| '../docs/_includes/proto/')) | |
| except OSError as exception: | |
| if exception.errno != errno.EEXIST: | |
| raise | |
| caffe_proto_fn = os.path.join( | |
| script_path, | |
| '../src/caffe/proto/caffe.proto') | |
| with open(caffe_proto_fn, 'r') as fin: | |
| for m in r.finditer(fin.read(), re.MULTILINE): | |
| fn = os.path.join( | |
| script_path, | |
| '../docs/_includes/proto/%s.txt' % m.group(1)) | |
| with open(fn, 'w') as fout: | |
| fout.write(m.group(0)) | |