[pygccxml-commit] SF.net SVN: pygccxml:[1653] pyplusplus_dev/docs
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2009-02-02 21:10:01
|
Revision: 1653 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1653&view=rev Author: roman_yakovenko Date: 2009-02-02 21:09:57 +0000 (Mon, 02 Feb 2009) Log Message: ----------- sphinx Modified Paths: -------------- pygccxml_dev/docs/pygccxml.rest pygccxml_dev/docs/query_interface.rest pyplusplus_dev/docs/comparisons/compare_to.rest pyplusplus_dev/docs/comparisons/pyste.rest pyplusplus_dev/docs/definition.irest pyplusplus_dev/docs/documentation/architecture.rest pyplusplus_dev/docs/documentation/containers.rest pyplusplus_dev/docs/documentation/ctypes/ctypes_integration.rest pyplusplus_dev/docs/documentation/ctypes/this_and_sizeof.rest pyplusplus_dev/docs/documentation/ctypes/unions.rest pyplusplus_dev/docs/documentation/ctypes/variables.rest pyplusplus_dev/docs/documentation/doc_string.rest pyplusplus_dev/docs/documentation/functions/call_policies/as_tuple.rest pyplusplus_dev/docs/documentation/functions/call_policies/call_policies.rest pyplusplus_dev/docs/documentation/functions/call_policies/custom_call_policies.rest pyplusplus_dev/docs/documentation/functions/call_policies/return_addressof.rest pyplusplus_dev/docs/documentation/functions/call_policies/return_pointee_value.rest pyplusplus_dev/docs/documentation/functions/call_policies/return_range.rest pyplusplus_dev/docs/documentation/functions/default_args.rest pyplusplus_dev/docs/documentation/functions/functions.rest pyplusplus_dev/docs/documentation/functions/make_constructor.rest pyplusplus_dev/docs/documentation/functions/overloading.rest pyplusplus_dev/docs/documentation/functions/registration_order.rest pyplusplus_dev/docs/documentation/functions/transformation/inout.rest pyplusplus_dev/docs/documentation/functions/transformation/input.rest pyplusplus_dev/docs/documentation/functions/transformation/input_c_buffer.rest pyplusplus_dev/docs/documentation/functions/transformation/input_static_array.rest pyplusplus_dev/docs/documentation/functions/transformation/modify_type.rest pyplusplus_dev/docs/documentation/functions/transformation/name_mangling.rest pyplusplus_dev/docs/documentation/functions/transformation/output.rest pyplusplus_dev/docs/documentation/functions/transformation/output_static_array.rest pyplusplus_dev/docs/documentation/functions/transformation/terminology.rest pyplusplus_dev/docs/documentation/functions/transformation/transfer_ownership.rest pyplusplus_dev/docs/documentation/functions/transformation/transformation.rest pyplusplus_dev/docs/documentation/how_to/absolute_relative_paths.rest pyplusplus_dev/docs/documentation/how_to/best_practices.rest pyplusplus_dev/docs/documentation/how_to/exception_translation.rest pyplusplus_dev/docs/documentation/how_to/fatal_error_c1204.rest pyplusplus_dev/docs/documentation/how_to/file_name_too_long.rest pyplusplus_dev/docs/documentation/how_to/hints.rest pyplusplus_dev/docs/documentation/how_to/templates.rest pyplusplus_dev/docs/documentation/index.rest pyplusplus_dev/docs/documentation/inserting_code.rest pyplusplus_dev/docs/documentation/multi_module_development.rest pyplusplus_dev/docs/documentation/properties.rest pyplusplus_dev/docs/documentation/split_module.rest pyplusplus_dev/docs/documentation/tutorials/module_builder/module_builder.rest pyplusplus_dev/docs/documentation/tutorials/tutorials.rest pyplusplus_dev/docs/documentation/warnings.rest pyplusplus_dev/docs/download.rest pyplusplus_dev/docs/examples/boost/boost.rest pyplusplus_dev/docs/examples/easybmp/easybmp.rest pyplusplus_dev/docs/examples/examples.rest pyplusplus_dev/docs/history/history.rest pyplusplus_dev/docs/links.rest pyplusplus_dev/docs/peps/dsl_challenge.rest pyplusplus_dev/docs/peps/dsl_challenge_introduction.irest pyplusplus_dev/docs/peps/peps_index.rest pyplusplus_dev/docs/pyplusplus.rest pyplusplus_dev/docs/quotes.rest pyplusplus_dev/docs/troubleshooting_guide/smart_ptrs/smart_ptrs.rest Modified: pygccxml_dev/docs/pygccxml.rest =================================================================== --- pygccxml_dev/docs/pygccxml.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pygccxml_dev/docs/pygccxml.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -22,7 +22,7 @@ * parse C++ source code * create a powerful code generator - + `Py++`_ is heavily based on :doc:`pygccxml <pygccxml>` + + :doc:`Py++ <../pyplusplus/pyplusplus>` is heavily based on :doc:`pygccxml <pygccxml>` + generate `WSDL`_ file from sources + ... @@ -82,7 +82,7 @@ Declaration dependencies ------------------------ You can query a declaration, about it dependencies - declarations it depends on. -This is very powerful and useful feature. `Py++`_, for example, uses this +This is very powerful and useful feature. :doc:`Py++ <../pyplusplus/pyplusplus>`, for example, uses this functionality to check that user creates Python bindings for all relevant declarations. @@ -133,8 +133,6 @@ apidocs/api.rest .. _`WSDL`: http://www.w3.org/TR/wsdl -.. _`Py++`: ./../pyplusplus/pyplusplus.html - .. _`SourceForge`: http://sourceforge.net/index.php .. _`Docutils`: http://docutils.sourceforge.net .. _`Python`: http://www.python.org Modified: pygccxml_dev/docs/query_interface.rest =================================================================== --- pygccxml_dev/docs/query_interface.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pygccxml_dev/docs/query_interface.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -184,7 +184,7 @@ Return value of ``member_functions`` is not Python list or set, but instance of ``mdecl_wrapper_t`` class. This class allows you to work on all selected -objects at once. I will give an example from another project - `Py++`_. +objects at once. I will give an example from another project - :doc:`Py++ <../pyplusplus/pyplusplus>`. In order to help `Boost.Python`_ to manage objects life time, all functions should have `call policies`_. For example: @@ -213,7 +213,7 @@ clone.call_policies = return_value_policy( manage_new_object ) -Another example, from `Py++`_ project. Sometimes it is desirable to +Another example, from :doc:`Py++ <../pyplusplus/pyplusplus>` project. Sometimes it is desirable to exclude declaration, from being exported to Python. The following code will exclude ``clone`` member function from being exported: @@ -286,7 +286,6 @@ .. _`call policies`: http://boost.org/libs/python/doc/tutorial/doc/html/python/functions.html#python.call_policies .. _`Call policies`: http://boost.org/libs/python/doc/tutorial/doc/html/python/functions.html#python.call_policies -.. _`Py++`: ./../pyplusplus/pyplusplus.html .. _`SourceForge`: http://sourceforge.net/index.php .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/comparisons/compare_to.rest =================================================================== --- pyplusplus_dev/docs/comparisons/compare_to.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/comparisons/compare_to.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -7,7 +7,7 @@ ----- `Pyste`_ is the Boost.Python code generator, which is not under active development -any more. Nevertheless, users request to compare `Py++`_ and `Pyste`_. You +any more. Nevertheless, users request to compare :doc:`Py++ <../pyplusplus>` and `Pyste`_. You can read `here`_ the comparison. .. _`here` : ./pyste.html @@ -16,7 +16,7 @@ SWIG & SIP ---------- -The document, that compares SIP, SWIG and `Py++`_ is under construction. +The document, that compares SIP, SWIG and :doc:`Py++ <../pyplusplus>` is under construction. May be you are editing it right now, by evaluating these tools :-). I did not use SWIG and SIP, so I cannot provide you with fair comparison. I will let the open source project(s) "to talk": @@ -24,7 +24,7 @@ * `Python-OGRE`_: The impression of Lakin Wecker, after spending 30 hours working working with - `Py++`_: http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=1478&sid=4d77585146aabbc54f4b31ec50874d86 + :doc:`Py++ <../pyplusplus>`: http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=1478&sid=4d77585146aabbc54f4b31ec50874d86 `Python-OGRE`_ project is reached the state, when it has all functionality provided by similar one - `PyOgre`_. `PyOgre`_ is developed using SWIG. @@ -67,5 +67,4 @@ pyste.rest -.. _`Py++` : ./../pyplusplus.html .. _`Pyste`: http://www.boost.org/libs/python/doc/index.html Modified: pyplusplus_dev/docs/comparisons/pyste.rest =================================================================== --- pyplusplus_dev/docs/comparisons/pyste.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/comparisons/pyste.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -3,14 +3,14 @@ ======================== ---------------------- -What is `Py++`_? +What is Py++? ---------------------- .. include:: ../definition.irest ------------------ -What is `Pyste`_? ------------------ +-------------- +What is Pyste? +-------------- `Pyste`_ is a `Boost.Python`_ code generator. The user specifies the classes and functions to be exported using a simple interface file, which following the @@ -23,7 +23,7 @@ -------- If you are reading this document, I can assume that you know what `Boost.Python`_, -`Pyste`_ and `Py++`_ are. This document compares `Pyste`_ and `Py++`_. +`Pyste`_ and :doc:`Py++ <../pyplusplus>` are. This document compares `Pyste`_ and :doc:`Py++ <../pyplusplus>`. I am going to compare: * user interface @@ -53,7 +53,7 @@ I tried to fix `Pyste`_. At first, I developed :doc:`pygccxml <../../pygccxml/pygccxml>` and tried to replace relevant `Pyste`_ functionality. I did not like the result. After this, I dropped -the idea to fix `Pyste`_ and decided to develop new code generator - `Py++`_. +the idea to fix `Pyste`_ and decided to develop new code generator - :doc:`Py++ <../pyplusplus>`. Later you will find few points, which explains, why I decided not to fix `Pyste`_. Have a nice reading. @@ -99,14 +99,14 @@ Py++ ---- -`Py++`_ has 2 user interfaces: +:doc:`Py++ <../pyplusplus>` has 2 user interfaces: 1. GUI - small and simple graphic user interface, which does not request from - user any knowledge about `Boost.Python`_ or `Py++`_. You can see + user any knowledge about `Boost.Python`_ or :doc:`Py++ <../pyplusplus>`. You can see its `screenshot`_. 2. API - object-oriented framework, that helps you to create code generator, - that suites your needs. `Py++`_ framework consists 3 packages: + that suites your needs. :doc:`Py++ <../pyplusplus>` framework consists 3 packages: 1. Code creators package. The only responsibility of classes in this package is to create code. Those classes do not care where code is @@ -119,7 +119,7 @@ 3. File writers package. This package contains classes that write generated code to file(s). -The good news: it is very easy to evaluate `Py++`_, using GUI. The bad +The good news: it is very easy to evaluate :doc:`Py++ <../pyplusplus>`, using GUI. The bad news is that you should learn an other set of API's in order to complete your task. It is not as awful as it sounds, but still there is some learning curve. @@ -155,7 +155,7 @@ One of the biggest weaknesses of `Pyste`_ is a lack of good `GCC-XML`_ front-end and this fact cause `Pyste`_ to generate not optimal code. I will prove this -later. In order to avoid such weakness, before I have created `Py++`_, +later. In order to avoid such weakness, before I have created :doc:`Py++ <../pyplusplus>`, I created :doc:`pygccxml <../../pygccxml/pygccxml>`. :doc:`pygccxml <../../pygccxml/pygccxml>` is a stand-alone project, which provides few things: @@ -170,14 +170,14 @@ + every file will be parsed alone, after this, duplicated declarations and types will be removed -:doc:`pygccxml <../../pygccxml/pygccxml>` contributes in few ways to `Py++`_: +:doc:`pygccxml <../../pygccxml/pygccxml>` contributes in few ways to :doc:`Py++ <../pyplusplus>`: - + `Py++`_ has nothing to do with code parsing. Theoretically + + :doc:`Py++ <../pyplusplus>` has nothing to do with code parsing. Theoretically an other back-end could be added to :doc:`pygccxml <../../pygccxml/pygccxml>` without changing even one - line of code within `Py++`_. + line of code within :doc:`Py++ <../pyplusplus>`. + :doc:`pygccxml <../../pygccxml/pygccxml>` has type traits. A lot of type traits algorithms from - `boost.type_traits`_ library has been implemented. `Py++`_ makes + `boost.type_traits`_ library has been implemented. :doc:`Py++ <../pyplusplus>` makes an extensive use of them: * identify "call policies" algorithm @@ -235,7 +235,7 @@ what is going on, in "ClassExporter.py" file. Class *ClassExporter* knows everything about internal exporters, more over *ClassExporter* is responsible to export all its base classes before it exports itself. This is just wrong. -`Py++`_ implements better solution. `Py++`_ has code creators class +:doc:`Py++ <../pyplusplus>` implements better solution. :doc:`Py++ <../pyplusplus>` has code creators class hierarchy and factory, that creates those code creators based on given declarations. The questions like: @@ -249,7 +249,7 @@ solved by the factory. The only thing that left to code creators is to create code. By the way, it is not an easy task to fix this specific problem in `Pyste`_. -Serious re-factoring should be done. `Py++`_ defines *compound_t* code +Serious re-factoring should be done. :doc:`Py++ <../pyplusplus>` defines *compound_t* code creator. *module_t*, *module_body_t*, *class_t* - are typical examples of compound code creators. They do know few code creators, but that is all. @@ -260,7 +260,7 @@ protocol and may be to modify code unit. Try to add *Exporter* that exposes get\\set functions as property. It is not an easy task. An other problem, I see here, is that code unit is some kind of *Exporter*. Code unit also creates code. -I did not fill good with this design. So I decided, that in `Py++`_ code +I did not fill good with this design. So I decided, that in :doc:`Py++ <../pyplusplus>` code should be created only by code creators. This decision simplifies a lot of things: @@ -280,29 +280,29 @@ ------------ Dependencies ------------ -Both `Pyste`_ and `Py++`_ introduce one external dependency. In order to -parse XML `Pyste`_ uses `elementtree`_. On the other side `Py++`_ +Both `Pyste`_ and :doc:`Py++ <../pyplusplus>` introduce one external dependency. In order to +parse XML `Pyste`_ uses `elementtree`_. On the other side :doc:`Py++ <../pyplusplus>` depends on :doc:`pygccxml <../../pygccxml/pygccxml>` project. ------------- Features list ------------- -`Py++`_ supports almost all features `Pyste`_ implements. `Py++`_, +:doc:`Py++ <../pyplusplus>` supports almost all features `Pyste`_ implements. :doc:`Py++ <../pyplusplus>`, version 0.8.0, does not implements the following functionality, implemented by `Pyste`_: * *pow* operator * good documentation -Here you can find the complete features list of `Py++`_. +Here you can find the complete features list of :doc:`Py++ <../pyplusplus>`. -Features unique to `Py++`_: +Features unique to :doc:`Py++ <../pyplusplus>`: - * `Py++`_ exposes protected member functions + * :doc:`Py++ <../pyplusplus>` exposes protected member functions - * `Py++`_, in most cases, will automatically detect class held type + * :doc:`Py++ <../pyplusplus>`, in most cases, will automatically detect class held type - * `Py++`_ creates implicit conversion code for: + * :doc:`Py++ <../pyplusplus>` creates implicit conversion code for: + casting constructors @@ -316,13 +316,13 @@ * operators defined in base class could be redefined/exposed in derived class - * `Py++`_ exposes bit fields member variables + * :doc:`Py++ <../pyplusplus>` exposes bit fields member variables Nice features list ------------------ -Both `Pyste`_ and `Py++`_ generate working code. As we already saw in some -cases `Py++`_ do better job. `Py++`_ allows the following customization on +Both `Pyste`_ and :doc:`Py++ <../pyplusplus>` generate working code. As we already saw in some +cases :doc:`Py++ <../pyplusplus>` do better job. :doc:`Py++ <../pyplusplus>` allows the following customization on generated code: * To define std and user directories. *include_t* code creator will take @@ -335,7 +335,7 @@ namespace dt = boost::date_time; All code, which is generated after this statement, will use ``dt`` instead of - ``boost::date_time``. This allows `Py++`_ to create user-friendly code. + ``boost::date_time``. This allows :doc:`Py++ <../pyplusplus>` to create user-friendly code. * Classes and functions support 2 modes of code generation. Example: @@ -376,13 +376,13 @@ 2. If in future a developer decides to create overload to some function, this code will continue to compile. - * `Py++`_ has small nice future - "license". User can specify the + * :doc:`Py++ <../pyplusplus>` has small nice future - "license". User can specify the license and it will appear in every generated file. - * `Py++`_ allows user to define custom call policies resolver. See + * :doc:`Py++ <../pyplusplus>` allows user to define custom call policies resolver. See boost.date_time example - * `Py++`_ allows user to create custom code creators. See + * :doc:`Py++ <../pyplusplus>` allows user to create custom code creators. See "custom_code_creator" example. * real world examples: @@ -397,9 +397,9 @@ Conclusion ---------- -If I were you I would choose `Py++`_ to create bindings for your project. -For very small projects or for educational reasons you may use `Py++`_.GUI. -For big projects, you need flexibility and power of `Py++`_. +If I were you I would choose :doc:`Py++ <../pyplusplus>` to create bindings for your project. +For very small projects or for educational reasons you may use :doc:`Py++ <../pyplusplus>`.GUI. +For big projects, you need flexibility and power of :doc:`Py++ <../pyplusplus>`. ---- P.S. @@ -408,22 +408,21 @@ This comparison was a little unfair. First of all `Pyste`_ is no more under active development\\support. Second, `Pyste`_ has been written 2 years ago and had different goal. The following definitions will help you to understand the main -difference between `Pyste`_ and `Py++`_. +difference between `Pyste`_ and :doc:`Py++ <../pyplusplus>`. `Pyste`_ `Pyste`_ is `Boost.Python`_ code generator. - `Py++`_ + :doc:`Py++ <../pyplusplus>` .. include:: ../definition.irest -`Pyste`_ and `Py++`_ have been created to handle different tasks, hence +`Pyste`_ and :doc:`Py++ <../pyplusplus>` have been created to handle different tasks, hence the difference in design, user interface and complexity. Bruno da Silva de Oliveira, the `Pyste`_ author, understands the problems, I raised here. He -thought about them, long before I created `Py++`_. But unfortunately, lack +thought about them, long before I created :doc:`Py++ <../pyplusplus>`. But unfortunately, lack of time and motivation prevents him to work on `Pyste`_. .. _`screenshot` : ./../documentation/tutorials/pyplusplus_gui.html -.. _`Py++` : ./../pyplusplus.html .. _`Pyste`: http://www.boost.org/libs/python/doc/index.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`SourceForge`: http://sourceforge.net/index.php Modified: pyplusplus_dev/docs/definition.irest =================================================================== --- pyplusplus_dev/docs/definition.irest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/definition.irest 2009-02-02 21:09:57 UTC (rev 1653) @@ -1,4 +1,4 @@ -`Py++`_ is an object-oriented framework for creating a code generator for -`Boost.Python`_ library. +Py++ is an object-oriented framework for creating a code generator for +`Boost.Python`_ library. -.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html \ No newline at end of file +.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html Modified: pyplusplus_dev/docs/documentation/architecture.rest =================================================================== --- pyplusplus_dev/docs/documentation/architecture.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/architecture.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -6,7 +6,7 @@ Introduction ------------ -This document will describe an architecture behind `Py++`_. +This document will describe an architecture behind :doc:`Py++ <../pyplusplus>`. --------------------------- Py++ & pygccxml integration @@ -32,7 +32,7 @@ * C++ source files parsing and caching functionality -`Py++`_ uses those services to: +:doc:`Py++ <../pyplusplus>` uses those services to: * extract declarations from source files and to provide powerful query interface @@ -50,14 +50,14 @@ Integration details ------------------- -`Py++`_ uses different approaches to expose these services to the user. +:doc:`Py++ <../pyplusplus>` uses different approaches to expose these services to the user. Parsing integration ~~~~~~~~~~~~~~~~~~~ -`Py++`_ provides it's own "API" to configure :doc:`pygccxml <../../pygccxml/pygccxml>` parsing services. The +:doc:`Py++ <../pyplusplus>` provides it's own "API" to configure :doc:`pygccxml <../../pygccxml/pygccxml>` parsing services. The "API" I am talking about, is arguments to ``module_builder.__init__`` method. -We think, that exposing those services via `Py++`_ simplifies its usage. +We think, that exposing those services via :doc:`Py++ <../pyplusplus>` simplifies its usage. Declarations tree integration @@ -95,7 +95,7 @@ What you see here, is a common pattern, that will appear in all projects, that -use `Py++`_: +use :doc:`Py++ <../pyplusplus>`: * find the declaration(s) @@ -103,7 +103,7 @@ What is the point of this example? From the user point of view it is perfectly good, it makes a lot of sense to configure the code generation engine, using -the declarations tree. How does `Py++`_ add missing functionality to +the declarations tree. How does :doc:`Py++ <../pyplusplus>` add missing functionality to ``pygccxml.declarations`` classes? There were few possible solutions to the problem. The following one was implemented: @@ -146,7 +146,7 @@ * How it should be written to files? - Remember, `Py++`_ is targeting big projects. It cannot generate all code + Remember, :doc:`Py++ <../pyplusplus>` is targeting big projects. It cannot generate all code in one file - this will not work, not at all. ``Code creators`` and file writers provides solution for both problems. @@ -290,7 +290,7 @@ ---------------- ``File writers`` classes are responsible for writing ``code creators tree`` into -the files. `Py++`_ implements the following strategies of writing ``code creators tree`` +the files. :doc:`Py++ <../pyplusplus>` implements the following strategies of writing ``code creators tree`` into files: * single file @@ -318,11 +318,10 @@ Conclusion ---------- -It safe to use `Py++`_ for big and small projects! +It safe to use :doc:`Py++ <../pyplusplus>` for big and small projects! .. _`open-closed principle` : http://www.google.com/search?sourceid=gmail&q=open%20closed%20principle -.. _`Py++` : ./../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/containers.rest =================================================================== --- pyplusplus_dev/docs/documentation/containers.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/containers.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -55,7 +55,7 @@ Py++ and indexing suites ------------------------ -`Py++`_ implements support for both indexing suites. More over, you can +:doc:`Py++ <../pyplusplus>` implements support for both indexing suites. More over, you can freely mix indexing suites. For example you can expose ``std::vector<int>`` using `Boost.Python`_ built-in indexing suite and ``std::map< int, std::string>`` using Raoul Gough's indexing suite. @@ -64,9 +64,9 @@ How does it work? ----------------- -In both cases, `Py++`_ provides almost "hands free" solution. `Py++`_ +In both cases, :doc:`Py++ <../pyplusplus>` provides almost "hands free" solution. :doc:`Py++ <../pyplusplus>` keeps track of all exported functions and variables, and if it sees that there is -a usage of stl container, it exports the container. In both cases, `Py++`_ +a usage of stl container, it exports the container. In both cases, :doc:`Py++ <../pyplusplus>` analyzes the container ``value_type`` ( or in case of mapping container ``mapped_type`` ), in order to set reasonable defaults, when it generates the code. @@ -74,7 +74,7 @@ Indexing suites API ------------------- -By default, `Py++`_ works with built-in indexing suite. If you want to use +By default, :doc:`Py++ <../pyplusplus>` works with built-in indexing suite. If you want to use indexing suite version 2, you should tell this to the ``module_builder_t.__init__`` method: @@ -87,7 +87,7 @@ of ``indexing_suite1_t`` or ``indexing_suite2_t`` class. -How does `Py++`_ know, that a class represents STL container instantiation? +How does :doc:`Py++ <../pyplusplus>` know, that a class represents STL container instantiation? Well, it uses ``pygccxml.declarations.container_traits`` to find out this. ``pygccxml.declarations.container_traits`` class, provides all functionality needed to identify container and to find out its ``value_type`` @@ -97,7 +97,7 @@ Built-in indexing suite API --------------------------- -`Py++`_ defines ``indexing_suite1_t`` class. This class allows configure +:doc:`Py++ <../pyplusplus>` defines ``indexing_suite1_t`` class. This class allows configure any detail of generated code: * ``no_proxy`` - a boolean, if ``value_type`` is one of the the following types @@ -138,19 +138,19 @@ }; -`Py++`_ declarations tree will contains ``item``, ``my_data``, +:doc:`Py++ <../pyplusplus>` declarations tree will contains ``item``, ``my_data``, ``vector<item>`` and ``map<string,item>`` class declarations. If ``value_type`` does not support "equal" or "less than" functionality, sort and search functionality could not be exported. -`Py++`_ class declaration has two properties: ``equality_comparable`` and +:doc:`Py++ <../pyplusplus>` class declaration has two properties: ``equality_comparable`` and ``less_than_comparable``. The value of those properties is calculated on first -invocation. If `Py++`_ can find ``operator==``, that works on ``value_type``, +invocation. If :doc:`Py++ <../pyplusplus>` can find ``operator==``, that works on ``value_type``, then, ``equality_comparable`` property value will be set to ``True``, otherwise to ``False``. Same process is applied on ``less_than_comparable`` property. -In our case, `Py++`_ will set both properties to ``False``, thus sort and +In our case, :doc:`Py++ <../pyplusplus>` will set both properties to ``False``, thus sort and search functionality will not be exported. It is the time to introduce ``indexing_suite2_t`` class: @@ -165,13 +165,13 @@ * ``element_type`` - is a reference to container ``value_type`` or ``mapped_type``. * ``call_policies`` - read/write property, in near future I will add code to - `Py++`_ that will analyze container ``value_type`` and will decide about + :doc:`Py++ <../pyplusplus>` that will analyze container ``value_type`` and will decide about default call policies. Just an example: for non-copy constructable classes ``call_policies`` should be set to ``return_internal_reference``. * ``[disable|enable]_method`` - new indexing suite, allows to configure functionality exported to Python, using simple bitwise operations on predefined - flags. `Py++`_ allows you to specify what methods you want to disable + flags. :doc:`Py++ <../pyplusplus>` allows you to specify what methods you want to disable or enable. ``indexing_suite2_t.METHODS`` contains names of all supported methods. * ``[disable|enable]_methods_group`` - almost same as above, but allows you @@ -186,11 +186,10 @@ explicitly to disable method or methods group. 2. The documentation of new indexing suite contains few small mistakes. - I hope, I will have time to fix them. Any way, `Py++`_ generates + I hope, I will have time to fix them. Any way, :doc:`Py++ <../pyplusplus>` generates correct code. -.. _`Py++` : ./../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/ctypes/ctypes_integration.rest =================================================================== --- pyplusplus_dev/docs/documentation/ctypes/ctypes_integration.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/ctypes/ctypes_integration.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -24,7 +24,7 @@ -------- The idea behind "ctypes integration" functionality is really simple: you -configure `Py++`_ to expose address of the variable\\return value, and than you +configure :doc:`Py++ <../../pyplusplus>` to expose address of the variable\\return value, and than you you use `ctypes`_ `from_address`_ functionality to access and modify the data. Obviously, this approach has pros and cons: @@ -57,7 +57,7 @@ Implemented functionality ------------------------- -`Py++`_ is able to +:doc:`Py++ <../../pyplusplus>` is able to * expose global and member variable address @@ -93,7 +93,6 @@ .. _`new call policy was created` : ./../../documentation/functions/call_policies/return_addressof.html .. _`ctypes` : http://docs.python.org/lib/module-ctypes.html .. _`from_address` : http://docs.python.org/lib/ctypes-data-types.html -.. _`Py++` : ./../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/ctypes/this_and_sizeof.rest =================================================================== --- pyplusplus_dev/docs/documentation/ctypes/this_and_sizeof.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/ctypes/this_and_sizeof.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -6,7 +6,7 @@ The purpose ----------- -`Py++`_ can expose a class ``sizeof`` and ``this`` pointer value to `Python`_. +:doc:`Py++ <../../pyplusplus>` can expose a class ``sizeof`` and ``this`` pointer value to `Python`_. I created this functionality without special purpose in mind. ------- @@ -37,7 +37,6 @@ .. _`ctypes` : http://docs.python.org/lib/module-ctypes.html .. _`from_address` : http://docs.python.org/lib/ctypes-data-types.html -.. _`Py++` : ./../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/ctypes/unions.rest =================================================================== --- pyplusplus_dev/docs/documentation/ctypes/unions.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/ctypes/unions.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -10,7 +10,7 @@ In this document, I am going to show you a complete example how to get access to the data, stored in the variable. -`Py++`_ will not expose a union - it is impossible using `Boost.Python`_, +:doc:`Py++ <../../pyplusplus>` will not expose a union - it is impossible using `Boost.Python`_, instead it will expose the address of the variable and the rest is done from the `Python`_ using `ctypes`_ package. @@ -30,7 +30,7 @@ actual_data_t data; }; -As in many other cases, `Py++`_ does the job automatically: +As in many other cases, :doc:`Py++ <../../pyplusplus>` does the job automatically: .. code-block:: python @@ -65,7 +65,6 @@ .. _`ctypes` : http://docs.python.org/lib/module-ctypes.html .. _`from_address` : http://docs.python.org/lib/ctypes-data-types.html -.. _`Py++` : ./../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/ctypes/variables.rest =================================================================== --- pyplusplus_dev/docs/documentation/ctypes/variables.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/ctypes/variables.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -7,10 +7,10 @@ -------------- ``variable_t`` declarations have got new property ``expose_address``. If you set -it value to ``True``, `Py++`_ will register new property with the same name, but +it value to ``True``, :doc:`Py++ <../../pyplusplus>` will register new property with the same name, but the type of it will be ``unsigned int`` and the value is address of the variable. -`Py++`_ will take care and generate the right code for global, static and member +:doc:`Py++ <../../pyplusplus>` will take care and generate the right code for global, static and member variables. ---------------- @@ -45,7 +45,7 @@ bytes = mb.class_( 'bytes_t' ) bytes.vars().expose_address = True -`Py++`_ will generate code, which will expose the address of the variables. +:doc:`Py++ <../../pyplusplus>` will generate code, which will expose the address of the variables. and now it is a time to show some `ctypes`_ magic: @@ -68,7 +68,6 @@ .. _`ctypes` : http://docs.python.org/lib/module-ctypes.html .. _`from_address` : http://docs.python.org/lib/ctypes-data-types.html -.. _`Py++` : ./../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/doc_string.rest =================================================================== --- pyplusplus_dev/docs/documentation/doc_string.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/doc_string.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -6,7 +6,7 @@ Introduction ------------ -`Py++`_ provides a convenient way to export documentation from C++ source +:doc:`Py++ <../pyplusplus>` provides a convenient way to export documentation from C++ source files as `Python`_ `documentation string`_ --------------- @@ -21,11 +21,11 @@ my_class.member_function( "do_nothing" ).documentation = \ '"This function does nothing."' -In `Py++`_ every class, which describes C++ declarations has ``documentation`` +In :doc:`Py++ <../pyplusplus>` every class, which describes C++ declarations has ``documentation`` property. This property should contain valid C++ string or ``None``. `Boost.Python`_ not always provides functionality, which exports documentation string. -In those cases, `Py++`_ will not generate documentation string. +In those cases, :doc:`Py++ <../pyplusplus>` will not generate documentation string. Also the previous method is pretty clear, it is not practical. There should be a better way, to complete the task. Lets take a look on @@ -48,10 +48,10 @@ * ``decl.location.line`` - line number. So, you can go to the source file and to extract declaration from it. -`Py++`_ will call ``doc_extractor`` on every exported declaration. +:doc:`Py++ <../pyplusplus>` will call ``doc_extractor`` on every exported declaration. -Now, when I think you understand what functionality `Py++`_ provides. -It is a time to say what functionality is missing. `Py++`_ does not +Now, when I think you understand what functionality :doc:`Py++ <../pyplusplus>` provides. +It is a time to say what functionality is missing. :doc:`Py++ <../pyplusplus>` does not provide any documentation extractor. It is not completely true. You can find document extractor for `doxygen`_ format in ``contrib/doc_extractors`` directory. Georgiy Dernovoy has contributed it. @@ -59,7 +59,6 @@ .. _`doxygen` : http://www.stack.nl/~dimitri/doxygen/ .. _`documentation string` : http://docs.python.org/tut/node6.html#SECTION006760000000000000000 -.. _`Py++` : ./../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/call_policies/as_tuple.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/call_policies/as_tuple.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/call_policies/as_tuple.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -61,7 +61,7 @@ * none - do nothing -The `Py++`_ code is slightly different from the C++ one, but it is definitely shorter: +The :doc:`Py++ <../../../pyplusplus>` code is slightly different from the C++ one, but it is definitely shorter: .. code-block:: python @@ -78,7 +78,6 @@ .. _`ResultConverterGenerator` : http://boost.org/libs/python/doc/v2/ResultConverter.html#ResultConverterGenerator-concept .. _`CallPolicies` : http://www.boost.org/libs/python/doc/v2/CallPolicies.html#CallPolicies-concept -.. _`Py++` : ./../../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/call_policies/call_policies.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/call_policies/call_policies.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/call_policies/call_policies.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -16,26 +16,26 @@ Syntax ------ -The call policies in `Py++`_ are named exactly as in `Boost.Python`_, only the +The call policies in :doc:`Py++ <../../../pyplusplus>` are named exactly as in `Boost.Python`_, only the syntax is slightly different. For instance, this call policy: .. code-block:: c++ return_internal_reference< 1, with_custodian_and_ward<1, 2> >() -becomes in `Py++`_ +becomes in :doc:`Py++ <../../../pyplusplus>` .. code-block:: python return_internal_reference( 1, with_custodian_and_ward(1, 2) ) -`Py++`_ supports all call policies presented in `Boost.Python`_. +:doc:`Py++ <../../../pyplusplus>` supports all call policies presented in `Boost.Python`_. ------------- Usage example ------------- -Every "callable" object in `Py++`_ has ``call_policies`` property. +Every "callable" object in :doc:`Py++ <../../../pyplusplus>` has ``call_policies`` property. C++ code: @@ -70,7 +70,7 @@ Defaults -------- -`Py++`_ is able to "guess" few call policies, base on analysis of return type +:doc:`Py++ <../../../pyplusplus>` is able to "guess" few call policies, base on analysis of return type and\\or callable name: * ``default_call_policies``: @@ -92,7 +92,7 @@ * return type is ``T*`` and ``T`` is a user defined opaque type ``class_t`` and ``class_declaration_t`` classes have ``opaque`` property. - You have to set it to ``True``, if you want `Py++`_ to create this call + You have to set it to ``True``, if you want :doc:`Py++ <../../../pyplusplus>` to create this call policy automatically for all functions, that use ``T*`` as return type. * ``copy_const_reference`` @@ -124,15 +124,15 @@ If you don't specify call policy for a function and it needs one, few things will happen: -* `Py++`_ prints a warning message +* :doc:`Py++ <../../../pyplusplus>` prints a warning message -* `Py++`_ generates code with +* :doc:`Py++ <../../../pyplusplus>` generates code with .. code-block:: c++ /* undefined call policies */ - comment, instead of call policy. If `Py++`_ was wrong and function doesn't + comment, instead of call policy. If :doc:`Py++ <../../../pyplusplus>` was wrong and function doesn't need call policy the generate code will compile fine, otherwise you will get a compilation error. @@ -146,11 +146,11 @@ ``return_value_policy( return_opaque_pointer )`` is a special policy for `Boost.Python`_. In this case, it requires from you to define specialization for the ``boost::python::type_id`` function on the type pointed to by returned pointer. -`Py++`_ will generate the required code. +:doc:`Py++ <../../../pyplusplus>` will generate the required code. Actually you should define ``boost::python::type_id`` specialization also in case -a function takes the opaque type as an argument. `Py++`_ can do it for you, all +a function takes the opaque type as an argument. :doc:`Py++ <../../../pyplusplus>` can do it for you, all you need is to mark a declaration as opaque. Example: @@ -169,7 +169,7 @@ ... }; -`Py++`_ code: +:doc:`Py++ <../../../pyplusplus>` code: .. code-block:: python @@ -183,7 +183,7 @@ Py++ defined call policies -------------------------- -`Py++`_ defines few call policies. I hope you will find them useful. I don't mind +:doc:`Py++ <../../../pyplusplus>` defines few call policies. I hope you will find them useful. I don't mind to contribute them to `Boost.Python`_ library, but I don't have enough free time to "boostify" them. @@ -202,7 +202,6 @@ .. _`ResultConverterGenerator` : http://boost.org/libs/python/doc/v2/ResultConverter.html#ResultConverterGenerator-concept .. _`CallPolicies` : http://www.boost.org/libs/python/doc/v2/CallPolicies.html#CallPolicies-concept -.. _`Py++` : ./../../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/call_policies/custom_call_policies.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/call_policies/custom_call_policies.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/call_policies/custom_call_policies.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -7,7 +7,7 @@ ---------- ``custom_call_policies`` is a special call policy, which allows you to integrate -the call policies, you defined, with `Py++`_ +the call policies, you defined, with :doc:`Py++ <../../../pyplusplus>` ------- Example @@ -30,7 +30,6 @@ = call_policies.custom_call_policies( <<<your call policies code>>>, "xyz.hpp" ) -.. _`Py++` : ./../../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/call_policies/return_addressof.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/call_policies/return_addressof.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/call_policies/return_addressof.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -32,7 +32,7 @@ , bpl::return_value_policy< pyplusplus::call_policies::return_addressof<> >() ); } -The `Py++`_ code is not that different from what you already know: +The :doc:`Py++ <../../../pyplusplus>` code is not that different from what you already know: .. code-block:: python @@ -56,7 +56,6 @@ .. _`ResultConverterGenerator` : http://boost.org/libs/python/doc/v2/ResultConverter.html#ResultConverterGenerator-concept -.. _`Py++` : ./../../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/call_policies/return_pointee_value.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/call_policies/return_pointee_value.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/call_policies/return_pointee_value.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -111,7 +111,7 @@ , bpl::return_value_policy< pyplusplus::call_policies::return_pointee_value<> >() ); } -The `Py++`_ code is not that different from what you already know: +The :doc:`Py++ <../../../pyplusplus>` code is not that different from what you already know: .. code-block:: python @@ -135,7 +135,6 @@ .. _`ResultConverterGenerator` : http://boost.org/libs/python/doc/v2/ResultConverter.html#ResultConverterGenerator-concept .. _`CallPolicies` : http://www.boost.org/libs/python/doc/v2/CallPolicies.html#CallPolicies-concept -.. _`Py++` : ./../../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/call_policies/return_range.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/call_policies/return_range.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/call_policies/return_range.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -164,7 +164,7 @@ Py++ integration ~~~~~~~~~~~~~~~~ -The `Py++`_ code is not that different from what you already know: +The :doc:`Py++ <../../../pyplusplus>` code is not that different from what you already know: .. code-block:: python @@ -192,12 +192,12 @@ call_policies.return_range arguments: -1. A reference to function. `Py++`_ will extract by itself the type of the array +1. A reference to function. :doc:`Py++ <../../../pyplusplus>` will extract by itself the type of the array element. 2. A name of "get size" class. -3. A call policies for "__getitem__" function. `Py++`_ will analyze the array +3. A call policies for "__getitem__" function. :doc:`Py++ <../../../pyplusplus>` will analyze the array element type. If the type is mapped to immutable type, than ``default_call_policies`` is used, otherwise you have to specify call policies. @@ -215,7 +215,7 @@ Dependencies ~~~~~~~~~~~~ -The new call policy depends on `new indexing suite`_ and `Py++`_ :-). But if you +The new call policy depends on `new indexing suite`_ and :doc:`Py++ <../../../pyplusplus>` :-). But if you want you can extract the relevant piece of code from `this file`_. .. _`new indexing suite` : ./../../containers.html @@ -224,7 +224,6 @@ .. _`ResultConverterGenerator` : http://boost.org/libs/python/doc/v2/ResultConverter.html#ResultConverterGenerator-concept .. _`CallPolicies` : http://www.boost.org/libs/python/doc/v2/CallPolicies.html#CallPolicies-concept -.. _`Py++` : ./../../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/default_args.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/default_args.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/default_args.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -23,7 +23,7 @@ Do nothing approach ------------------- -By default `Py++`_ exposes function with its default arguments. +By default :doc:`Py++ <../../pyplusplus>` exposes function with its default arguments. .. code-block:: c++ @@ -96,8 +96,8 @@ The good news is that it is very easy to identify the problem: the module could not be loaded. The main reason is that expression ``arg("s1")=S1()`` requires ``S1`` struct to be registered. `GCC-XML`_ reports default arguments as strings. -`Py++`_ doesn't have enough information to generate code with the right class -registration order. In this case you have to instruct `Py++`_ to use macros: +:doc:`Py++ <../../pyplusplus>` doesn't have enough information to generate code with the right class +registration order. In this case you have to instruct :doc:`Py++ <../../pyplusplus>` to use macros: .. code-block:: python @@ -134,13 +134,12 @@ }; -You cannot use same work around and `Py++`_ ( version 0.8.2 ) could not help you. +You cannot use same work around and :doc:`Py++ <../../pyplusplus>` ( version 0.8.2 ) could not help you. The use case presented here is a little bit esoteric. If you have such use case -and you cannot change the source code, consider contacting `Py++`_ developers. +and you cannot change the source code, consider contacting :doc:`Py++ <../../pyplusplus>` developers. I am sure we will be able to help you. -.. _`Py++` : ./../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/functions.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/functions.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/functions.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -7,7 +7,7 @@ -------- `Boost.Python`_ provides very rich interface to expose functions and operators. -This section of documentation will explain how to configure `Py++`_ in order +This section of documentation will explain how to configure :doc:`Py++ <../../pyplusplus>` in order to export your functions, using desired `Boost.Python`_ functionality. -------- @@ -24,7 +24,6 @@ registration_order.rest -.. _`Py++` : ./../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/make_constructor.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/make_constructor.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/make_constructor.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -37,7 +37,7 @@ The code is pretty simple - it defines two ``create`` functions, which construct new class ``number_t`` instances. -`Py++`_ configuration is pretty simple: +:doc:`Py++ <../../pyplusplus>` configuration is pretty simple: .. code-block:: python @@ -70,7 +70,6 @@ print number.x .. _`make_constructor`: http://www.boost.org/doc/libs/1_35_0/libs/python/doc/v2/make_function.html#make_constructor-spec -.. _`Py++` : ./../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/overloading.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/overloading.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/overloading.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -41,7 +41,7 @@ Do nothing approach ------------------- -I am sure you will like "do nothing" approach. `Py++`_ recognize that you want to +I am sure you will like "do nothing" approach. :doc:`Py++ <../../pyplusplus>` recognize that you want to export an overloaded function and will generate the right code: .. code-block:: c++ @@ -92,9 +92,9 @@ }; If you didn't instantiate( use ) ``do_smth`` member function, than `GCC-XML`_ -will not report it. As a result, `Py++`_ will not be aware of the fact that +will not report it. As a result, :doc:`Py++ <../../pyplusplus>` will not be aware of the fact that ``do_smth`` is an overloaded function. To make the long story short, the generated -code will not compile. You have to instruct `Py++`_ to generate code, which +code will not compile. You have to instruct :doc:`Py++ <../../pyplusplus>` to generate code, which contains function type: .. code-block:: python @@ -106,7 +106,7 @@ y.member_function( 'do_smth' ).create_with_signature = True #------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Every `Py++`_ class, which describes C++ function\\operator has ``create_with_signature`` +Every :doc:`Py++ <../../pyplusplus>` class, which describes C++ function\\operator has ``create_with_signature`` property. You have to set it to ``True``. Default value of the property is computed. If the exported function is overloaded, then its value is ``True`` otherwise it will be ``False``. @@ -145,7 +145,7 @@ .. _`explanation` : http://boost.org/libs/python/doc/tutorial/doc/html/python/functions.html#python.auto_overloading -You can instruct `Py++`_ to generate code, which will use the macros: +You can instruct :doc:`Py++ <../../pyplusplus>` to generate code, which will use the macros: .. code-block:: python @@ -165,7 +165,6 @@ .. _`default arguments` : ./default_args.html -.. _`Py++` : ./../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/registration_order.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/registration_order.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/registration_order.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -38,7 +38,7 @@ { return "do_smth( int )"; } }; -`Py++`_ generates code, that register functions in the order they appear in the +:doc:`Py++ <../../pyplusplus>` generates code, that register functions in the order they appear in the source code: .. code-block:: c++ @@ -103,7 +103,7 @@ 2. You can reorder the declarations within the source file. -3. You can ask `Py++`_ to generate code, which takes into account the order of +3. You can ask :doc:`Py++ <../../pyplusplus>` to generate code, which takes into account the order of declarations: .. code-block:: python @@ -113,7 +113,7 @@ sort_algorithms.USE_CALLDEF_ORGANIZER = True # The functionality is available from version 0.8.3 -4. The last and the perfect solution. `Py++`_ will let you know, when your code +4. The last and the perfect solution. :doc:`Py++ <../../pyplusplus>` will let you know, when your code has such problem. The functionality is available from version 0.8.3. After this you can change the aliases of the functions. The third step is to create small "dispatch" function in Python: @@ -133,7 +133,7 @@ The technique shown here described pretty good in `Boost.Python`_ `Extending Wrapped Objects in Python tutorials`_ . - May be in future, `Py++`_ will generate this code for you. Anyway, if you have + May be in future, :doc:`Py++ <../../pyplusplus>` will generate this code for you. Anyway, if you have a lot of use cases like this consider to generate `Python`_ code and not to write it manually. @@ -142,7 +142,6 @@ -.. _`Py++` : ./../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/transformation/inout.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/transformation/inout.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/transformation/inout.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -32,7 +32,7 @@ Lets say that you need to expose ``hello_world`` function. As you know ``std::string`` is mapped to `Python`_ string, which is immutable type, so you -have to create small wrapper for the function. The following `Py++`_ code does it for you: +have to create small wrapper for the function. The following :doc:`Py++ <../../../pyplusplus>` code does it for you: .. code-block:: python @@ -59,7 +59,6 @@ bp::def( "hello_world", &hello_world_a3478182294a057b61508c30b1361318 ); } -.. _`Py++` : ./../../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/transformation/input.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/transformation/input.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/transformation/input.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -26,7 +26,7 @@ Lets say that you need to expose ``hello_world`` function. As you know ``std::string`` is mapped to `Python`_ string, which is immutable type, so you -have to create small wrapper for the function. The following `Py++`_ code does it for you: +have to create small wrapper for the function. The following :doc:`Py++ <../../../pyplusplus>` code does it for you: .. code-block:: python @@ -52,7 +52,6 @@ bp::def( "hello_world", &hello_world_a3478182294a057b61508c30b1361318 ); } -.. _`Py++` : ./../../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/transformation/input_c_buffer.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/transformation/input_c_buffer.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/transformation/input_c_buffer.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -25,7 +25,7 @@ }; In order to expose ``write`` member function we need to create small wrapper. -The following `Py++`_ code does it for you: +The following :doc:`Py++ <../../../pyplusplus>` code does it for you: .. code-block:: python @@ -66,7 +66,6 @@ , ( bp::arg("inst"), bp::arg("buffer") ) ); } -.. _`Py++` : ./../../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/transformation/input_static_array.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/transformation/input_static_array.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/transformation/input_static_array.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -32,7 +32,7 @@ }; In order to expose ``init`` member function we need to create small wrapper: -The following `Py++`_ code does it for you: +The following :doc:`Py++ <../../../pyplusplus>` code does it for you: .. code-block:: python @@ -69,7 +69,6 @@ .def_readwrite( "z", &ft::vector3::z ); } -.. _`Py++` : ./../../../pyplusplus.html .. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html .. _`Python`: http://www.python.org .. _`GCC-XML`: http://www.gccxml.org Modified: pyplusplus_dev/docs/documentation/functions/transformation/modify_type.rest =================================================================== --- pyplusplus_dev/docs/documentation/functions/transformation/modify_type.rest 2009-02-02 20:40:36 UTC (rev 1652) +++ pyplusplus_dev/docs/documentation/functions/transformation/modify_type.rest 2009-02-02 21:09:57 UTC (rev 1653) @@ -36,7 +36,7 @@ Lets say that you need to expose ``hello_world`` function. As you know ``std::string`` is mapped to `Python`_ string, which is immutable type, so you -have to create small wrapper for the function. The following `Py++`_ code does it for you: +have to create small wrapper for the function. The following :doc:`Py++ <../../../pyplusplus>` c... [truncated message content] |