[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.
|