summaryrefslogtreecommitdiff
path: root/src/pyglue/createPyDocH.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/pyglue/createPyDocH.py')
-rw-r--r--src/pyglue/createPyDocH.py86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/pyglue/createPyDocH.py b/src/pyglue/createPyDocH.py
new file mode 100644
index 0000000..fd2e795
--- /dev/null
+++ b/src/pyglue/createPyDocH.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python
+
+"""
+This script contains mock OpenColorIO classes which define the __doc__
+strings that will end up in the final binding. These __doc__ strings are
+also used by sphinx's autodoc extension to also include this documentation
+in the html and pdf formats.
+"""
+
+import re, sys
+
+from DocStrings import *
+
+def DocStringToCString(name, doc_string):
+ _cstr = doc_string
+ _cstr = _cstr.rstrip(' ')
+ _cstr = _cstr.rstrip('\n')
+ _cstr = _cstr.lstrip('\n')
+ _cstr = _cstr.lstrip(' ')
+ _cstr = _cstr.replace("\"", "\\\"")
+ _cstr = _cstr.replace("\n", "\\n")
+ _cstr = _cstr.replace("\r", "\\n")
+ return "const char %s[%d] = \"%s\";" % (name, len(_cstr)+1, _cstr)
+
+def GetDocStrings(inst):
+ _out = ""
+ _cname = inst.__name__
+ _cdoc = inst.__doc__
+ if _cdoc == None:
+ _cdoc = ""
+ _out = "%s\n" % DocStringToCString("%s__DOC__" % _cname.upper(), _cdoc)
+ for mem in dir(inst):
+ if mem[0:2] == "__":
+ continue # skip
+ _doc = eval("inst.%s.__doc__" % mem)
+ if _doc == None:
+ _doc = ""
+ _name = "%s_%s__DOC__" % (_cname.upper(), eval("inst.%s.__name__" % mem).upper())
+ _out += "%s\n" % DocStringToCString(_name, _doc)
+ #print mem
+ return _out
+
+if __name__ == "__main__":
+
+ if len(sys.argv) <= 1:
+ sys.stderr.write("\nYou need to specify an output file\n\n")
+ sys.exit(1)
+
+ fileh = file(sys.argv[1], 'w')
+ fileh.write('\n')
+ fileh.write("/* DO NOT EDIT THIS FILE - it is machine generated */\n")
+ fileh.write("\n")
+ fileh.write("#include <OpenColorIO/OpenColorIO.h>\n")
+ fileh.write("\n")
+ fileh.write("OCIO_NAMESPACE_ENTER\n")
+ fileh.write("{\n")
+ fileh.write("\n")
+ fileh.write("%s\n" % GetDocStrings(Exception))
+ fileh.write("%s\n" % GetDocStrings(ExceptionMissingFile))
+ fileh.write("%s\n" % GetDocStrings(OpenColorIO))
+ fileh.write("%s\n" % GetDocStrings(Constants))
+ fileh.write("%s\n" % GetDocStrings(Config))
+ #fileh.write("%s\n" % GetDocStrings(Baker))
+ fileh.write("%s\n" % GetDocStrings(ColorSpace))
+ fileh.write("%s\n" % GetDocStrings(Processor))
+ fileh.write("%s\n" % GetDocStrings(ProcessorMetadata))
+ fileh.write("%s\n" % GetDocStrings(Context))
+ fileh.write("%s\n" % GetDocStrings(Look))
+ fileh.write("%s\n" % GetDocStrings(Transform))
+ fileh.write("\n")
+ fileh.write("%s\n" % GetDocStrings(AllocationTransform))
+ fileh.write("%s\n" % GetDocStrings(CDLTransform))
+ fileh.write("%s\n" % GetDocStrings(ColorSpaceTransform))
+ fileh.write("%s\n" % GetDocStrings(DisplayTransform))
+ fileh.write("%s\n" % GetDocStrings(ExponentTransform))
+ fileh.write("%s\n" % GetDocStrings(FileTransform))
+ fileh.write("%s\n" % GetDocStrings(GroupTransform))
+ fileh.write("%s\n" % GetDocStrings(LogTransform))
+ fileh.write("%s\n" % GetDocStrings(LookTransform))
+ fileh.write("%s\n" % GetDocStrings(MatrixTransform))
+ fileh.write("\n")
+ fileh.write("}\n")
+ fileh.write("OCIO_NAMESPACE_EXIT\n")
+ fileh.write("\n")
+ fileh.flush()
+ fileh.close()