[pygccxml-commit] SF.net SVN: pygccxml:[1431] pyplusplus_dev
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2008-10-12 10:27:16
|
Revision: 1431 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1431&view=rev Author: roman_yakovenko Date: 2008-10-12 10:22:11 +0000 (Sun, 12 Oct 2008) Log Message: ----------- update docs Modified Paths: -------------- developer_scripts/check_links.bat pygccxml_dev/announcement.txt pygccxml_dev/docs/history/history.rest pyplusplus_dev/announcement.txt pyplusplus_dev/contrib/doc_extractors/doxygen.py pyplusplus_dev/docs/history/history.rest Modified: developer_scripts/check_links.bat =================================================================== --- developer_scripts/check_links.bat 2008-10-12 08:14:32 UTC (rev 1430) +++ developer_scripts/check_links.bat 2008-10-12 10:22:11 UTC (rev 1431) @@ -1,3 +1,3 @@ cd D:\dev\language-binding\production\www\ -E:\Python25\Scripts\linkchecker.bat --config=D:\dev\language-binding\sources\developer_scripts\linkcheckerrc index.html +E:\Python25\Scripts\linkchecker.bat --no-warnings index.html Modified: pygccxml_dev/announcement.txt =================================================================== --- pygccxml_dev/announcement.txt 2008-10-12 08:14:32 UTC (rev 1430) +++ pygccxml_dev/announcement.txt 2008-10-12 10:22:11 UTC (rev 1431) @@ -1,6 +1,6 @@ Hello! -I'm pleased to announce the 0.9.0 release of pygccxml. +I'm pleased to announce the 1.0 release of pygccxml. What is pygccxml? ================= @@ -23,34 +23,21 @@ What's new? =========== -Performance ------------ +Features +--------- -Performance was improved. pygccxml is now 30-50% faster. The improvement was -achieved by using "cElementTree" package, "iterparse" functionality, instead of -standard XML SAX API. +* Support for ellipsis was added. +* New expiremental back-end, based on ``.pdb`` (progam database file), was added. -Small features --------------- +* New high-level API wrapper for ``.bsc`` (browse source code file) was added. -* Class calldef_t has new property - "does_throw". It describes whether the - function throws any exception or not. -* "is_base_and_derived" function arguments were changed. The second argument could be - a tuple, which contains classes. The function returns ``True`` if at least one - class derives from the base one. - - Bug fixes --------- -* C++ does not define implicit conversion between an integral type and ``void*``. - "declarations.is_convertible" type traits was fixed. +* Search algorithm, for template instantiated classes, was improved. -* Small bug was fixed in functionality that corrects GCC-XML reported function - default arguments. Reference to "enum" declaration extracted properly. - For a more complete list, please see the news: http://language-binding.net/pygccxml/history/history.html Modified: pygccxml_dev/docs/history/history.rest =================================================================== --- pygccxml_dev/docs/history/history.rest 2008-10-12 08:14:32 UTC (rev 1430) +++ pygccxml_dev/docs/history/history.rest 2008-10-12 10:22:11 UTC (rev 1431) @@ -22,6 +22,7 @@ * Miguel Lobo * Jeremy Sanders * Ben Schleimer +* Gustavo Carneiro ----------- @@ -65,6 +66,8 @@ 7. Search algorithm was improved for template instantiated classes. From now, a spaces within the class name doesn't matter. +8. pygccxml unit tests functionality was improved. Many thanks to Gustavo Carneiro. + ------------- Version 0.9.5 ------------- Modified: pyplusplus_dev/announcement.txt =================================================================== --- pyplusplus_dev/announcement.txt 2008-10-12 08:14:32 UTC (rev 1430) +++ pyplusplus_dev/announcement.txt 2008-10-12 10:22:11 UTC (rev 1431) @@ -1,6 +1,6 @@ Hello! -I'm pleased to announce the 0.9.0 release of Py++. +I'm pleased to announce the 1.0 release of Py++. What is Py++? ============= @@ -21,35 +21,25 @@ Features -------- -* Added exposing of copy constructor, ``operator=`` and ``operator<<``. - * ``operator=`` is exposed under "assign" name - * ``operator<<`` is exposed under "__str__" name +* Algorightm, which defines what virtual functions should be redefined was improved. -* Added new call policies: - * as_tuple - * custom_call_policies - * return_range +* Exposing "C" code became easier - Py++ is able to generate ``ctypes`` friendly code. -* Added an initial support for multi-module development. Now you can mark your - declarations as ``already_exposed`` and `Py++`_ will do the rest. +* Support for ``boost::python::make_constructor`` functionality was added. -* `input_c_buffer`_ - new functions transformation, which allows to pass a Python - sequence to C++ function, instead of pair of arguments: pointer to buffer and size. +* Support for unions and unnamed classes was added. -* Added ability to control generated "include" directives. Now you can ask Py++ - to include a header file, when it generates code for some declaration. +Bug fixes +--------- -* Code generation improvements: system header files (Boost.Python or Py++ defined) - will be included from the generated files only in case the generated code - depends on them. +* Indexing Suite V2 - few bugs were fixed. + + +Contributors: -* Performance: Py++ runs 1.5 - 2 times faster. +* Julian Scheid +* Oliver Schweitzer -* Py++ will generate documentation for automatically constructed properties. -* Added iteration functionality to Boost.Python Indexing Suite V2 ``std::map`` - and ``std::multimap`` containers. - - For a more complete list, with links to documentation, please see the news: http://language-binding.net/pyplusplus/history/history.html Modified: pyplusplus_dev/contrib/doc_extractors/doxygen.py =================================================================== --- pyplusplus_dev/contrib/doc_extractors/doxygen.py 2008-10-12 08:14:32 UTC (rev 1430) +++ pyplusplus_dev/contrib/doc_extractors/doxygen.py 2008-10-12 10:22:11 UTC (rev 1431) @@ -1,112 +1,113 @@ """ -extracting from C++ doxygen documented file -Author G.D. +Fixed and improved version based on "extracting from C++ doxygen documented file Author G.D." and py++ code. + +Distributed under the Boost Software License, Version 1.0. (See +accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) """ -class doc_extractor: - """ - extracts doxigen styled documentation from source - or generates from description - """ - def __init__(self): - #for caching source - self.file_name = None - self.source = None - - def __call__(self, declaration): - try: - if self.file_name != declaration.location.file_name: - self.file_name = declaration.location.file_name - self.source = open(declaration.location.file_name).readlines() - - find_block_end = False - doc_lines = [] - for lcount in xrange(declaration.location.line - 1, -1, -1): - line = source[lcount] - if not find_block_end: - try: - if line.rstrip()[-2:] == "*/": - find_block_end = True - except: - pass - if find_block_end: - try: - if line.lstrip()[:2] == "/*": - find_block_end = False - except: - pass - final_str = clear_str(line) - if not find_block_end and code(line): - break - if final_str: - doc_lines.insert(0, final_str) - - if doc_lines: - doc_lines.insert(0, self.get_generic_doc()) - return ''.join(doc_lines) - - except: - pass - - return self.get_generic_doc(declaration) - - def get_generic_doc(self, declaration): - """ - generate call information about function or method - """ - try: - return "Help on %s\n" % str(declaration) - except: - pass - - return '' - +class doxygen_doc_extractor: + """ + Extracts Doxigen styled documentation from source + or generates from description. + """ + def __init__(self): + #for caching source + self.file_name = None + self.source = None + #__init__ -def clear_str(str): - """ - replace */! by Space and \breaf, \fn, \param, ... - """ - clean = lambda str, sym, change2 = '': str.replace(sym, change2) + def __call__(self, declaration): + try: + if self.file_name != declaration.location.file_name: + self.file_name = declaration.location.file_name + self.source = open(declaration.location.file_name).readlines() - str = reduce(clean, [str, '/', '*', '!', "\brief", "\fn",\ - "@brief", "@fn", "@ref", "\ref"]) - - str = clean(str, "@param", "Param: ") - str = clean(str, "\param", "Param: ") - str = clean(str, "@ingroup", "Group") - str = clean(str, "\ingroup", "Group") - str = clean(str, "@return", "It return") - str = clean(str, "\return", "It return") - return " " + str.lstrip() + find_block_end = False + doc_lines = [] + for lcount in xrange(declaration.location.line-2, -1, -1): + line = self.source[lcount] + if not find_block_end: + try: + print line.rstrip()[-2:] + if line.rstrip()[-2:] == "*/": + find_block_end = True + except: + pass + if find_block_end: + try: + if line.lstrip()[:2] == "/*": + find_block_end = False + except: + pass + final_str = self.clear_str(line) + if not find_block_end and self.is_code(line): + break + if final_str: + doc_lines.insert(0, final_str) + except: + pass + finally: + if doc_lines: + final_doc_lines = [ line.replace("\n","\\n") for line in doc_lines[:-1] ] + final_doc_lines.append(doc_lines[-1].replace("\n","")) + #final_doc_lines.insert(0, self.get_generic_doc(declaration)) + return '\"' + ''.join(final_doc_lines) + '\"' + else: + return '\"\"' + #return '\"'+self.get_generic_doc(declaration)+'\"' + #__call__() - -def code(str): - """ - detect str is code? - """ - try: - beg = str.lstrip()[:2] - return beg != "//" and beg != "/*" - except: - pass - return False + #def get_generic_doc(self, declaration): + #""" + #Generate call information about function or method + #""" + #try: + #return "Help on %s" % str(declaration) + #except: + #pass + #return '' + ##get_generic_doc() -if __name__ == '__main__': - class loc: - def __init__(self, f, l): - self.file_name = f - self.line = l - - class x_decl: - def __init__(self, str, file_name, line): - self.str = str - self.location = loc(file_name, line) - - def __str__(self): - return self.str - - print doc_extractor()(x_decl("myfunc(int x, int y)","core.h",45)) - print doc_extractor()(x_decl("","core.h",209)) - + def clear_str(self, tmp_str): + """ + Replace */! by Space and \breaf, \fn, \param, ... + """ + clean = lambda tmp_str, sym, change2 = '': tmp_str.replace(sym, change2) + + tmp_str = reduce(clean, [tmp_str, '/', '*', '!', "\\brief", "\\fn",\ + "@brief", "@fn", "@ref", "\\ref", "\"", "\'", "\\c"]) + + tmp_str = clean(tmp_str, "@param", "Param:") + tmp_str = clean(tmp_str, "@see", "See:") + tmp_str = clean(tmp_str, "@pre", "Pre-condition:") + tmp_str = clean(tmp_str, "@throws", "Throws:") + tmp_str = clean(tmp_str, "@throw", "Throw:") + tmp_str = clean(tmp_str, "@todo", "TODO:") + tmp_str = clean(tmp_str, "\param", "Param:") + tmp_str = clean(tmp_str, "@ingroup", "Group") + tmp_str = clean(tmp_str, "\ingroup", "Group") + tmp_str = clean(tmp_str, "@return", "It return") + tmp_str = clean(tmp_str, "\\return", "It return") + tmp_str = clean(tmp_str, "\\warning", "Warning:") + tmp_str = clean(tmp_str, "\\WARNING", "Warning:") + tmp_str = clean(tmp_str, "@dot", "[Dot]") + tmp_str = clean(tmp_str, "@enddot", "[/Dot]") + tmp_str = clean(tmp_str, "@code", "[Code]") + tmp_str = clean(tmp_str, "@endcode", "[/Code]") + return tmp_str.lstrip() + #clean_str() + + def is_code(self, tmp_str): + """ + Detect if tmp_str is code + """ + try: + beg = tmp_str.lstrip()[:2] + return beg != "//" and beg != "/*" + except: + pass + return False + #is_code() - +#class doxygen_doc_extractor Modified: pyplusplus_dev/docs/history/history.rest =================================================================== --- pyplusplus_dev/docs/history/history.rest 2008-10-12 08:14:32 UTC (rev 1430) +++ pyplusplus_dev/docs/history/history.rest 2008-10-12 10:22:11 UTC (rev 1431) @@ -1,4 +1,4 @@ -======================== +======================== Py++ development history ======================== @@ -22,6 +22,8 @@ * Meghana Haridev * Julian Scheid * Oliver Schweitzer +* Hernán Ordiales +* Bernd Fritzke ----------- Version 1.0 @@ -148,6 +150,12 @@ .. _`boost::python::make_constructor` : ../documentation/functions/make_constructor.html +5. Support for unions and unnamed classes was added. + +6. Doxygen documentation extractor was improved. Many thanks to Hernán Ordiales. + +7. Py++ documentation was improved. Many thanks to Bernd Fritzke. + ------------- Version 0.9.5 ------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |