|
| 1 | +# Python Library Core 4.5.0 |
| 2 | + |
| 3 | + |
| 4 | +`Python Library Core`_ is a generic component making it easier to create |
| 5 | +bigger `Robot Framework`_ test libraries. Python Library Core 4.5.0 is |
| 6 | +a new release with to refactor internal structure and bug fix to avoid |
| 7 | +maximum recursion depth exceeded error on getattr. |
| 8 | + |
| 9 | +All issues targeted for Python Library Core v4.5.0 can be found |
| 10 | +from the `issue tracker`_. |
| 11 | + |
| 12 | +If you have pip_ installed, just run |
| 13 | + |
| 14 | +:: |
| 15 | + |
| 16 | + pip install --upgrade robotframework-pythonlibcore |
| 17 | + |
| 18 | +to install the latest available release or use |
| 19 | + |
| 20 | +:: |
| 21 | + |
| 22 | + pip install pip install robotframework-pythonlibcore==4.5.0 |
| 23 | + |
| 24 | +to install exactly this version. Alternatively you can download the source |
| 25 | +distribution from PyPI_ and install it manually. |
| 26 | + |
| 27 | +Python Library Core 4.5.0 was released on Friday January 16, 2026. |
| 28 | +It support Python versions 3.10+ and Robot Framework versions 6.1 and newer. |
| 29 | + |
| 30 | +.. _PythonLibCore: https://github.com/robotframework/PythonLibCore |
| 31 | +.. _Robot Framework: http://robotframework.org |
| 32 | +.. _pip: http://pip-installer.org |
| 33 | +.. _PyPI: https://pypi.python.org/pypi/robotframework-robotlibcore |
| 34 | +.. _issue tracker: https://github.com/robotframework/PythonLibCore/issues?q=milestone%3Av4.5.0 |
| 35 | + |
| 36 | + |
| 37 | +## Most important enhancements |
| 38 | + |
| 39 | +Maximum Recursion Depth Exceeded on getattr ([#158](https://github.com/robotframework/PythonLibCore/issues/158)) |
| 40 | +---------------------------------------------------------------------------------------------------------------- |
| 41 | +If one attempts to get any attribute on a child class of HybridCore or DynamicCore before the initializer is called |
| 42 | +(so the attributes object has yet to be initialized) the custom getattr implementation on the class causes an |
| 43 | +infinite recursion. getattr is called on the attribute of the class then HybridCore attempts to evaluate if name |
| 44 | +in self.attributes: but attributes is undef because since attributes is undef, python calls getattr on self.attributes |
| 45 | +then HybridCore attempts to evaluate if name in self.attributes: but attributes is undef and so on. |
| 46 | + |
| 47 | +HybridCore should fall back to the standard implementation of getattr if self.attributes is undefined which would avoid this issue. |
| 48 | + |
| 49 | +Many thanks to Joe Rendleman for reporting this issue and providing a PR with a fix. |
| 50 | + |
| 51 | +robotlibcore.py placed right into root of site-packages/ ([#149](https://github.com/robotframework/PythonLibCore/issues/149)) |
| 52 | +------------------------------------------------------------------------------------------------------------------------------ |
| 53 | +To improve compatibility with various tools and IDEs, robotlibcore.py is now in own folder and package is refactored |
| 54 | +logical modules. This change should be transparent to end users as the package structure is unchanged. |
| 55 | + |
| 56 | +many thanks to Jani Mikkonen to reporting this issue and providing a PR with a fix. |
| 57 | + |
| 58 | +## Full list of fixes and enhancements |
| 59 | + |
| 60 | +| ID | Type | Priority | Summary | |
| 61 | +|---|---|---|---| |
| 62 | +| [#158](https://github.com/robotframework/PythonLibCore/issues/158) | bug | high | Maximum Recursion Depth Exceeded on getattr | |
| 63 | +| [#149](https://github.com/robotframework/PythonLibCore/issues/149) | enhancement | high | robotlibcore.py placed right into root of site-packages/ | |
| 64 | +
|
| 65 | +Altogether 2 issues. View on the [issue tracker](https://github.com/robotframework/PythonLibCore/issues?q=milestone%3Av4.5.0). |
0 commit comments