Ipopo

Latest version: v1.0.2

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

Scan your dependencies

Page 2 of 5

0.7.0

***********

Project
=======

* Removed Python 2.6 compatibility code
* New version of the logo, with SVG sources in the repository
* Added some tests for ``install_package()``

Pelix
=====

* When a bundle is stopped, the framework now automatically releases the
services it consumed. This was required to avoid stale references when using
(prototype) service factories.
**WARNING:** this can lead to issues if you were using stale references to
pass information from one bundle version to another (which is bad).
* Added support for Prototype Service Factories, which were missing from issue
`Service Factories (75) <https://github.com/tcalmant/ipopo/issues/75>`_.
* Handle deprecation of the ``imp`` module (see 85)
* Added a ``delete()`` method to the ``Framework`` class.
The ``FrameworkFactory`` class can now be fully avoided by developers.

0.6.5

***********

Project
=======

* Project documentation migrated to
`Read The Docs <https://ipopo.readthedocs.io/>`_ as the previous documentation
server crashed.
All references to the previous server (``coderxpress.net``) have been removed.
* The documentation is being completely rewritten while it is converted from
Dokuwiki to Sphinx.
* Removed Pypy 3 from Travis-CI/Tox tests, as it is not compatible with pip.
* Added tests to ensure that all services and utilities are used at least once
in all tests environments. This will ease regression detection, especially
when following updates of third-party libraries.
* Added ``mypy`` type hints in important places of the framework

Pelix
=====

* Added support for `Service Factories (75) <https://github.com/tcalmant/ipopo/issues/75>`_.
``PrototypeServiceFactory`` are not supported.
* The Framework now adds the ``service.bundleid`` and ``service.scope``
properties to services.
* The import path normalization now ensures that the full path of the initial
working directory is stored in the path, and that the current working
directory marker (empty string) is kept as the first entry of the Python path.
* Merged `pull request 65 <https://github.com/tcalmant/ipopo/pull/65>`_,
to ignore import errors when normalizing the Python path.
* Merged `pull request 68 <https://github.com/tcalmant/ipopo/pull/68>`_,
correcting the behaviour of the thread pool.
* Merged `pull request 77 <https://github.com/tcalmant/ipopo/pull/77>`_,
which fixes the growing of ``sys.path`` in ``normalize_path()``.

iPOPO
=====

* The ``Validate`` method of components is now always called after the bundle
activator has returned. (`66 <https://github.com/tcalmant/ipopo/issues/66>`_)
* Added a ``get_instance(name)`` method to access to the component instance
object by its name. (`74 <https://github.com/tcalmant/ipopo/issues/74>`_)
* Merged `pull request 79 <https://github.com/tcalmant/ipopo/pull/79>`_,
which allows the use of ``__qualname__`` to automatically name the interface
provided by a component according to its class name.

HTTP
====

* Added some utility methods to ``HttpServletRequest``:

* ``get_command()``: get the HTTP command of the request
* ``get_prefix_path()``: get the servlet prefix path
* ``get_sub_path()``: get the part of the path corresponding to the servlet
(*i.e.* without the prefix path)

* ``get_servlet()`` now returns the servlet prefix along with the servlet and
the server parameters.
* Added a ``pelix.https`` service property and an ``is_https()`` service method
to indicate that the server uses HTTPS.
* Added a utility module, ``pelix.http.routing``, which eases the routing of
HTTP requests with decorators like ``Http``, ``HttpGet``...
* Merged `pull request 70 <https://github.com/tcalmant/ipopo/pull/70>`_,
avoiding remote HTTP servlets to be used by the local HTTP server.
* Fixed the way servlet are found according to their path

Remote Services
===============

* JSON-RPC and XML-RPC transports providers now support HTTPS.
* Added a `Redis <https://redis.io/>`_-based discovery provider, working with
all HTTP-based transport providers.
* Added a `ZooKeeper <https://zookeeper.apache.org/>`_-based discovery provider,
working with all HTTP-based transport providers.
* Better detection of the loss of a framework with the mDNS discovery
* mDNS discovery is now based on the PyPI-available ``zeroconf`` package.

Shell
=====

* Added the *Configuration Handler*, which allows to give a JSON file to set
the initial configuration of a framework: properties, bundles, instances, ...
* Console, Remote and XMPP shell now share some common arguments.
This allows to use the *Configuration Handler* arguments in all these scripts.

Miscellaneous
=============

* The Log Service is now a Service Factory.

Utilities
=========

* Added a ``remove_duplicates()`` method, which allows to filter out duplicates
from lists, keeping the original order.
* Added the ``is_bytes()`` method.

0.6.4

***********

iPOPO
=====

* Added support for the *hidden* properties. Those properties won't be seen
in the shell nor in the components and factories description API.
This is useful when giving password in component properties.

* Added the ``RequiresVariableFilter`` handler: it works like ``Requires`` but
allows to use component properties in the LDAP filter. The filter is updated
each time a component property is updated.

* iPOPO registers factories declared directly from a bundle, not those imported
by the bundle. This avoids factory re-definitions when installing bundles
which import each other.

HTTP
====

* Added support for HTTPS. Works for Python 2.7.9+, as it is based upon
`SSLContext <https://docs.python.org/2/library/ssl.html#ssl-contexts>`_


Miscellaneous
=============

* Added a log service and its shell commands. It allows to look from the shell
at what has been logged with its API or the ``logging`` module
* The MQTT client gives access to the underlying Paho client API and to its
``tls_set()`` method.

0.6.3

***********

Project
=======

* iPOPO now has a logo ! (thanks to debbabi)
* README file has been rewritten
* Better PEP-8 compliance
* Updated *jsonrpclib* requirement version to 0.2.6


Pelix
=====

* Optimization of the service registry (less dictionaries, use of sets, ...)
* Added the ``hide_bundle_services()`` to the service registry.
It is by the framework to hide the services of a stopping bundle from
``get_service_reference`` methods, and before those services will be
unregistered.
* Removed the deprecated ``ServiceEvent.get_type()`` method


iPOPO
=====

* Optimization of StoredInstance (handlers, use of sets, ...)


HTTP
====

* Added a ``is_header_set()`` method to the HTTPServletResponse bean.
* Response headers are now sent on ``end_headers()``, not on ``set_header()``,
to avoid duplicate headers.
* The request queue size of the basic HTTP server can now be set as a component
property (``pelix.http.request_queue_size``)


Shell
=====

* The ``pelix.shell.console`` module can now be run as a main script
* Added the *report* shell command
* Added the name of *varargs* in the signature of commands
* Corrected the signature shown in the help description for static methods
* Corrected the *thread* and *threads* shell commands for *pypy*


Remote Services
===============

* Added support for keyword arguments in most of remote services transports
(all except XML-RPC)
* Added support for ``pelix.remote.export.only`` and
``pelix.remote.export.none`` service properties. ``..only`` tells the
exporter to export the given specifications only, while ``..none`` forbids
the export of the service.


Utilities
=========

* Updated the MQTT client to follow the new API of Eclipse Paho MQTT Client


Tests
=====

* Travis-CI: Added Python 3.5 and Pypy3 targets
* Better configuration of coverage
* Added tests for the remote shell
* Added tests for the MQTT client and for *MQTT-RPC*

0.6.2

***********

iPOPO
=====

* The properties of a component can be updated when calling the
``retry_erroneous()`` method. This allows to modify the configuration of
a component before trying to validate it again (HTTP port, ...).
* The ``get_instance_details()`` dictionary now always contains a *filter*
entry for each of the component requirement description, even if not filter
has been set.


Shell
=====

* The ``ipopo.retry`` shell command accepts properties to be reconfigure the
instance before trying to validate it again.
* The bundle commands (*start*, *stop*, *update*, *uninstall*) now prints the
name of the bundle along with its ID.
* The ``threads`` and ``threads`` shell commands now accept a stack depth limit
argument.


HTTP
====

* Protect the ``ServletRequest.read_data()`` method against empty or invalid
*Content-Length* headers

0.6.1

***********

iPOPO
=====

* The stack trace of the exception that caused a component to be in the
ERRONEOUS state is now kept, as a string. It can be seen through the
``instance`` shell command.


Shell
=====

* The command parser has been separated from the shell core service. This
allows to create custom shells without giving access to Pelix administration
commands.
* Added ``cd`` and ``pwd`` shell commands, which allow changing the working
directory of the framework and printing the current one.
* Corrected the encoding of the shell output string, to avoid exceptions when
printing special characters.


Remote Services
===============

* Corrected a bug where an imported service with the same endpoint name as an
exported service could be exported after the unregistration of the latter.

Page 2 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.