[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdev-python] /: more numpy documentation
From: Sven Brauch <svenbrauch () googlemail ! com>
Date: 2011-09-30 21:54:32
Message-ID: 20110930215432.B1986A60B9 () git ! kde ! org
[Download RAW message or body]
Git commit d37c51dcb6a66920e797b712542eb29b6f03e9a8 by Sven Brauch.
Committed on 30/09/2011 at 23:39.
Pushed by brauch into branch 'master'.
more numpy documentation
M +0 -1 CMakeLists.txt
M +39 -7 documentation_src/numpy/generate_numpy_doc.py
http://commits.kde.org/kdev-python/d37c51dcb6a66920e797b712542eb29b6f03e9a8
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 08be6a3..cc6f95e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -65,4 +65,3 @@ install(DIRECTORY documentation_files DESTINATION \
${DATA_INSTALL_DIR}/kdevpython install(DIRECTORY python-src/Lib/encodings \
DESTINATION ${DATA_INSTALL_DIR}/kdevpythonsupport/encodings)
-add_subdirectory(documentation_src/numpy)
\ No newline at end of file
diff --git a/documentation_src/numpy/generate_numpy_doc.py \
b/documentation_src/numpy/generate_numpy_doc.py index 5dd43df..45e06fa 100644
--- a/documentation_src/numpy/generate_numpy_doc.py
+++ b/documentation_src/numpy/generate_numpy_doc.py
@@ -34,7 +34,18 @@ def remove_indent(string):
else:
return string
+def escape_docstring(string):
+ if string:
+ return string.replace('"""', '\\"\\"\\"')
+ else:
+ return string
+
+
+global in_class
+in_class = 0
+
def make_documentation(class_or_module):
+ global in_class
result = ""
for item_name in dir(class_or_module):
if item_name in ['__abstractmethods__', '__class__']:
@@ -43,18 +54,28 @@ def make_documentation(class_or_module):
# skip private properties
continue
item = getattr(class_or_module, item_name)
- if type(item) in [types.FunctionType, types.BuiltinFunctionType, \
types.UnboundMethodType]: + if type(item) in [types.FunctionType, \
types.BuiltinFunctionType, types.UnboundMethodType] \ + or str(type(item)) \
in ['<type \'method_descriptor\'>', '<type \'wrapper_descriptor\'>', '<type \
\'numpy.ufunc\'>']: parameters = try_parse_func_docstring(item.__doc__)
+ if in_class > 0:
+ parameters = ['self'].extend(parameters)
result += "def %s(%s):\n" % ( item_name, ','.join(parameters) )
- result += indent('"""%s"""\n\n' % remove_indent(item.__doc__))
+ result += indent('"""%s"""\n\n' % \
remove_indent(escape_docstring(item.__doc__))) elif type(item) == types.TypeType:
result += "class %s:\n" % item_name
+ in_class += 1
result += indent(make_documentation(item)) + "\n"
+ in_class -= 1
else:
- #if item.__doc__ is not None:
- #result += '"""%s"""\n' % item.__doc__
try:
- default_value = str(type(item)())
+ if type(item) in [types.TypeType, types.ClassType]:
+ default_value = str(item.__name__ + "()")
+ else:
+ default_value = str(type(item)())
+ if default_value == "":
+ raise TypeError()
+ if default_value.find('<') != -1:
+ raise TypeError()
except TypeError:
default_value = "None"
result += "%s = %s\n" % (item_name, default_value)
@@ -74,7 +95,7 @@ def try_parse_func_docstring(docstring):
atLineBeginning = False
if docstring[offset:offset+len("Parameters")] == "Parameters":
paramListBegin = offset
- if docstring[offset:offset+len("Returns")] == "Returns":
+ if docstring[offset:offset+len("---")] == "---":
paramListEnd = offset
relevantPart = docstring[paramListBegin:paramListEnd].split("\n")[2:]
if len(relevantPart):
@@ -87,7 +108,18 @@ def try_parse_func_docstring(docstring):
name = s[0]
type_string = s[1]
doc_for_param = None # TODO extract this, and display it in \
some way... or not
- parameter_name_list.append(name.replace(' ', \
'').replace('\t', '')) + parameter_name = name.replace(' ', \
'').replace('\t', '').replace('\\', '') \ + \
.replace('.', '_').replace('[', '').replace(']', '') \ + \
.replace('*', '').replace('-', '_') + try:
+ t = int(parameter_name[0])
+ parameter_name = '_' + parameter_name
+ except:
+ pass
+ if parameter_name.find('...') != -1:
+ parameter_name = 'more'
+ parameter_name = parameter_name.replace('`', '')
+ parameter_name_list.append(parameter_name)
return parameter_name_list
else:
return []
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic