Boost logo

Boost-Commit :

From: nickm_at_[hidden]
Date: 2007-09-18 13:16:31


Author: nikiml
Date: 2007-09-18 13:16:31 EDT (Tue, 18 Sep 2007)
New Revision: 39368
URL: http://svn.boost.org/trac/boost/changeset/39368

Log:
epydoc friendlier formatting
Text files modified:
   trunk/libs/python/src/object/function.cpp | 10 ++++----
   trunk/libs/python/src/object/function_doc_signature.cpp | 43 ++++++++++++++++++++++++++++-----------
   2 files changed, 36 insertions(+), 17 deletions(-)

Modified: trunk/libs/python/src/object/function.cpp
==============================================================================
--- trunk/libs/python/src/object/function.cpp (original)
+++ trunk/libs/python/src/object/function.cpp 2007-09-18 13:16:31 EDT (Tue, 18 Sep 2007)
@@ -543,10 +543,10 @@
 
     if (docstring_options::show_cpp_signatures_)
     {
- if(len(_doc))
- _doc += "\n "+str(reinterpret_cast<const char*>(detail::cpp_signature_tag));
- else
- _doc += " "+str(reinterpret_cast<const char*>(detail::cpp_signature_tag));
+// if(len(_doc))
+// _doc += "\n"+str(reinterpret_cast<const char*>(detail::cpp_signature_tag));
+// else
+ _doc += str(reinterpret_cast<const char*>(detail::cpp_signature_tag));
     }
     if(_doc)
     {
@@ -630,7 +630,7 @@
         list signatures = function_doc_signature_generator::function_doc_signatures(f);
         if(!signatures) return python::detail::none();
         signatures.reverse();
- return python::incref( str("\n ").join(signatures).ptr());
+ return python::incref( str("\n").join(signatures).ptr());
     }
     
     static int function_set_doc(PyObject* op, PyObject* doc, void*)

Modified: trunk/libs/python/src/object/function_doc_signature.cpp
==============================================================================
--- trunk/libs/python/src/object/function_doc_signature.cpp (original)
+++ trunk/libs/python/src/object/function_doc_signature.cpp 2007-09-18 13:16:31 EDT (Tue, 18 Sep 2007)
@@ -264,8 +264,8 @@
     }
 
     namespace detail {
- char py_signature_tag[] = "PY signature : ";
- char cpp_signature_tag[] = "C++ signature:";
+ char py_signature_tag[] = "PY signature :";
+ char cpp_signature_tag[] = "C++ signature :";
     }
 
     list function_doc_signature_generator::function_doc_signatures( function const * f)
@@ -280,24 +280,43 @@
             if(*sfi == *fi){
                 if((*fi)->doc()){
                     str func_doc = str((*fi)->doc());
- int doc_len = len(func_doc);
+ int doc_len = len(func_doc);
                     bool show_py_signature = doc_len >=int(sizeof(detail::py_signature_tag)/sizeof(char)-1)
                                             && str(detail::py_signature_tag)==func_doc.slice(0, int(sizeof(detail::py_signature_tag)/sizeof(char))-1);
- bool show_cpp_signature = doc_len >=int(sizeof(detail::cpp_signature_tag)/sizeof(char))
+ if(show_py_signature){
+ func_doc = str(func_doc.slice(int(sizeof(detail::py_signature_tag)/sizeof(char))-1, _));
+ doc_len = len(func_doc);
+ }
+
+ bool show_cpp_signature = doc_len >=int(sizeof(detail::cpp_signature_tag)/sizeof(char)-1)
                                             && str(detail::cpp_signature_tag)==func_doc.slice(- int(sizeof(detail::cpp_signature_tag)/sizeof(char))+1, _);
                     
- str res;
+ if(show_cpp_signature){
+ func_doc = str(func_doc.slice(_, 1 - int(sizeof(detail::cpp_signature_tag)/sizeof(char))));
+ doc_len = len(func_doc);
+ }
+
+ str res="\n";
+ str pad = "\n";
                     if(show_py_signature)
                     {
                         str sig = pretty_signature(*fi, n_overloads,false);
                         res+=sig;
- if(doc_len > int(sizeof(detail::py_signature_tag)/sizeof(char))-1 )
- res+=" : "+func_doc.slice(int(sizeof(detail::py_signature_tag)/sizeof(char))-1,_);
- }else
- res+=func_doc;
-
- if( show_cpp_signature)
- res+=str("\n ")+pretty_signature(*fi, n_overloads,true);
+ if(doc_len || show_cpp_signature )res+=" :";
+ pad+= str(" ");
+ }
+
+ if(doc_len){
+ if(show_py_signature)
+ res+=pad;
+ res+= pad.join(func_doc.split("\n"));
+ }
+
+ if( show_cpp_signature){
+ if(len(res)>1)
+ res+="\n"+pad;
+ res+=detail::cpp_signature_tag+pad+" "+pretty_signature(*fi, n_overloads,true);
+ }
                     
                     signatures.append(res);
                 }


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk