Pyplusplus

Latest version: v1.8.5

Safety actively analyzes 625471 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

0.9.0

-------------

1. Bug fixes:

* Declaration of virtual functions that have an exception specification with
an empty throw was fixed. Now the exception specification is generated properly.
Many thanks to Martin Preisler for reporting the bug.

2. Added exposing of copy constructor, ``operator=`` and ``operator<<``.

* ``operator=`` is exposed under "assign" name

* ``operator<<`` is exposed under "__str__" name

3. Added new call policies:

* :doc:`as_tuple <functions/call_policies/as_tuple>`

* :doc:`custom_call_policies <functions/call_policies/return_range>`

* :doc:`return_range <functions/call_policies/return_range>`

4. Added an initial support for multi-module development. Now you can mark your
declarations as ``already_exposed`` and :doc:`Py++ <index>` will do the rest. For more
information read :doc:`multi-module development guide <multi_module_development>`.

.. line-separator

5. :doc:`input_c_buffer <functions/transformation/input_c_buffer>` - new functions
transformation, which allows one to pass a Python sequence to function, instead of pair of arguments: pointer to buffer and size.

6. Added ability to control generated "include" directives. Now you can ask :doc:`Py++ <index>`
to include a header file, when it generates code for some declaration. For more
information refers to `inserting code guide`_.

.. _`inserting code guide` : inserting_code.htmlheader-files

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

8. Performance improvements: Py++ runs 1.5 - 2 times faster, than the previous one.

9. Added ability to add code before overridden and default function calls.
For more information refer to `member function API documentation`_.

.. _`member function API documentation` : apidocs/pyplusplus.decl_wrappers.calldef_wrapper.member_function_t-class.html

10. :doc:`Py++ <index>` will generate documentation for automatically constructed properties.
For more information refer to :doc:`properties guide <properties>`.

11. Added iteration functionality to Boost.Python Indexing Suite V2 ``std::map``
and ``std::multimap`` containers.

-------------

0.8.5

-------------

1. Added :doc:`Function Transformation <functions/transformation/transformation>` feature.

2. "Py++" introduces new functionality, which allows you to control messages and
warnings: :doc:`how to disable warnings? <warnings>`.

3. Added new algorithm, which controls the registration order of the functions.
See :doc:`registration order document <functions/registration_order>`

4. New "Py++" defined :doc:`return_pointee_value <functions/call_policies/return_pointee_value>`
call policy was introduced.

5. Support for opaque types was added. Read more about this feature `here`__.

.. __ : functions/call_policies/call_policies.htmlspecial-case

6. It is possible to configure "Py++" to generate faster ( compilation time )
code for indexing suite version 2. See API documentation.

7. The algorithm, which finds all class properties was improved. It provides
user with a better way to control properties creation. A property that would
hide another exposed declaration will not be registered\\created.

8. Work around for "custom smart pointer as member variable" Boost.Python bug
was introduced.

9. Bugs fixes and documentation improvement.


-------------

0.8.2

-------------

1. Interface changes:

* ``module_builder.module_builder_t.build_code_creator`` method:
argument ``create_casting_constructor`` was removed and deprecation warning
was introduced.

2. Performance improvements. In some cases you can get x10 performance boost.
Many thanks to Allen Bierbaum! Saving and reusing results of different
`pygccxml <http://pygccxml.readthedocs.org>`_ algorithms and type traits functions achieved this.

3. Convenience API for registering exception translator was introduced.

4. :doc:`Py++ <index>` can generate code that uses ``BOOST_PYTHON_FUNCTION_OVERLOADS`` and
``BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS`` macros.

5. Treatment to previously generated and no more in-use files was added. By
default :doc:`Py++ <index>` will delete these files, but of course you can redefine this
behaviour.

6. Generated code changes:

* ``default_call_policies`` should not be generated any more.

* For functions that have ``return_value_policy< return_opaque_pointer >``
call policy, :doc:`Py++ <index>` will automatically generate ``BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID``
macro. Thank you very much for Gottfried Ganssauge for this idea.

7. Support for Boost.Python properties was introduced. :doc:`Py++ <index>` implements small
algorithm, that will automatically discover properties, base on naming conventions.

8. ``decl_wrappers.class_t`` has new function: ``is_wrapper_needed``. This
function explains why :doc:`Py++ <index>` creates class wrapper for exposed class.

9. Python type traits module was introduce. Today it contains only single function:

* ``is_immutable`` - returns ``True`` if exposed type is Python immutable type



-------------

0.8.1

-------------


1. Georgiy Dernovoy contributed a patch, which allows :doc:`Py++ <index>` GUI to
save\\load last used header file.


2. :doc:`Py++ <index>` improved a lot functionality related to providing feedback to user:

* every package has its own logger
* only important user messages are written to ``stdout``
* user messages are clear

3. Support for Boost.Python indexing suite version 2 was implemented.

4. Every code creator class took ``parent`` argument in ``__init__`` method.
This argument was removed. ``adopt_creator`` and ``remove_creator`` will
set\unset reference to parent.

5. Generated code for member and free functions was changed. This changed was
introduced to fix compilation errors on msvc 7.1 compiler.

6. :doc:`Py++ <index>` generates "stable" code. If header files were not changed,
:doc:`Py++ <index>` will not change any file.

7. Support for huge classes was added. :doc:`Py++ <index>` is able to split registration
code for the class to multiple cpp files.

8. User code could be added almost anywhere, without use of low level API.

9. Generated source files include only header files you passes as an argument
to module builder.

10. Bug fixes.

11. Documentation was improved.


Project name changed
--------------------

In this version the project has been renamed from "pyplusplus" to "Py++".
There were few reasons to this:

1. I like "Py++" more then "pyplusplus".

2. "Py++" was the original name of the project: http://mail.python.org/pipermail/c++-sig/2005-July/009280.html

3. Users always changed the name of the projects. I saw at least 6 different names.



-------------

0.8.0

-------------

1. :doc:`Py++ <index>` "user guide" functionality has been improved. Now :doc:`Py++ <index>`
can answer few questions:

* why this declaration could not be exported

* why this function could not be overridden from Python

2. :doc:`Py++ <index>` can suggest an alias for exported classes.

3. Small redesign has been done - now it is much easier to understand and
maintain code creators, which creates code for C++ functions.

4. Exception specification is taken into account, when :doc:`Py++ <index>` exports
member functions.

5. Member variables, that are pointers exported correctly.

6. Added experimental support for ``vector_indexing_suite``.

7. Bug fixes.

-------------

0.7.0

-------------

Many thanks to *Matthias Baas* and *Allen Bierbaum*! They contributed so much to
Py++, especially Matthias:

* New high-level API: :doc:`Py++ <index>` has simple and powerful API

* Documentation: Matthias and Allen added a lot of documentation strings

* Bug fixes and performance improvements

1. New GUI features:

* It is possible now to see XML generated by GCC-XML.

* It is possible to use GUI as wizard. It will help you to start with
:doc:`Py++ <index>`, by generating :doc:`Py++ <index>` code.

2. **Attention - non backward compatible change**.

``module_creator.creator_t.__init__`` method has been changed. ``decls``
argument could be interpreted as

* list of all declaration to be exported

* list of top-level declarations. ``creator_t`` should export all
declarations recursively.

In order to clarify the use of ``decls`` argument new argument ``recursive``
has been added. By default new value of ``recursive`` is ``False``.

Guide for users/upgraders: if use are exporting all declaration without
filtering, you should set ``recursive`` argument to ``True``. If you use
``pygccxml.declarations.filtering.*`` functions, you have nothing to do.

Sorry for the inconvenience :-(.

3. Better split of extension module to files. From now the following declarations will
have dedicated file:

* named enumerations, defined within namespace
* unnamed enumerations and global variables
* free functions

This functionality will keep the number of instantiated templates within
one file, ``main.cpp``, to be very low. Also it is possible to implement
solution, where ``main.cpp`` file does not contain templates instantiations
at all.

4. Only constant casting operators could be used with ``implicitly_convertible``.
This bug has been fixed.

5. Bug exporting non copyable class has been fixed.

6. Small bug fix - from now file with identical content will not be overwritten.

7. Boost.Python ``optional`` is now supported and used when a constructor has a
a default argument.

8. :doc:`Py++ <index>` now generates correct code for hierarchy of abstract classes:

.. code-block:: c++

struct abstract1{
virtual void do_smth() = 0;
}

struct abstract2 : public abstract1{
virtual void do_smth_else() = 0;
}

struct concrete : public abstract2{
virtual void do_smth(){};
virtual void do_smth_else(){};
}

9. Logging functionality has been added

10. New packages ``module_builder``, ``decl_wrappers`` and ``_logging_`` has
been added.

11. ...

http://boost.org/libs/python/doc/v2/init.html#optional-spec

-------------

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.