Upstream update available: python3-jmespath 1.0.1 → 1.1.0 #1

Open
opened 2026-04-28 01:52:45 +03:00 by sbelikov · 0 comments
Owner

Upstream update available: python3-jmespath 1.0.11.1.0

Package

  • Package: python3-jmespath
  • RPM name: python3-jmespath
  • Branch: niceos-5.2
  • Current EVR: 1.0.1-1
  • Update class: minor
  • Compare method: python_rpm
  • Update policy: leaf
  • Risk tags: standard

Upstream

Signals

  • Security-relevant keywords detected: False
  • Policy blocked: False
  • Policy reason: -
  • Labels: ai-summary, bot, needs-build, needs-triage, priority/medium, update/minor, upstream-update, upstream/pypi

NiceSOFT AI preliminary analysis

1. Краткий вывод

Предлагается обновление библиотеки python3-jmespath с версии 1.0.1 до 1.1.0. Согласно метаданным, это классифицируется как минорное обновление (minor) без обнаруженных признаков уязвимостей безопасности. Однако отсутствие детального списка изменений в предоставленных релиз-нотах не позволяет автоматически оценить влияние на стабильность.

2. Риск для НАЙС.ОС

medium. Обновление касается популярной библиотеки парсинга JSON, которая часто используется в инструментах мониторинга и логирования внутри дистрибутива. Хотя классификация minor обычно подразумевает обратную совместимость, отсутствие явного перечня изменений в тексте релиза и наличие экспериментальной поддержки пользовательских функций в коде создают потенциальные риски для зависимых приложений.

3. Security/CVE

Во входных данных отсутствуют признаки уязвимостей безопасности. Поле security_keywords_detected_by_script равно False, а поле risk_tags содержит только standard. В предоставленном тексте релиз-нот нет упоминаний исправлений багов безопасности или CVE.

4. ABI/API риск

Данных недостаточно для автоматического анализа ABI/API рисков. Текст релиз-нот описывает общие возможности библиотеки, но не указывает на изменения в сигнатурах функций, удалении методов или изменении поведения стандартных функций (например, search или compile). Учитывая, что поддержка пользовательских функций помечена как экспериментальная, требуется проверка, не были ли изменены правила регистрации или вызова этих функций в новой версии.

5. Риск для RPM-сборки

Вероятность поломки сборки низкая, так как это Python-пакет, зависящий от интерпретатора. Однако необходимо проверить, не требуются ли новые зависимости (BuildRequires), если в процессе компиляции используются новые опции или функции, которые отсутствовали в 1.0.1. Также стоит убедиться, что тесты %check проходят с новым кодом, если логика обработки ошибок или данных изменилась.

6. Проверки мейнтейнера

  • Запустить rpmlint на обновленном спецификации и исходном коде.
  • Выполнить локальную сборку пакета (rpmbuild -ba).
  • Провести регрессионное тестирование зависимых пакетов НАЙС.ОС, использующих jmespath (если список известен).
  • Сравнить хеш-суммы файлов между версиями 1.0.1 и 1.1.0, чтобы исключить случайные изменения в бинарных файлах (если применимо).
  • Проверить changelog upstream на GitHub (не только в тексте релиз-нот) на предмет скрытых изменений API.

7. Рекомендация

update candidate

8. Основание рекомендации

Обновление классифицировано как минорное (minor) с низким уровнем риска безопасности. Библиотека является стандартным инструментом для работы с JSON, и вероятность критических сбоев при обновлении до 1.1.0 считается приемлемой при условии прохождения стандартных проверок сборки и тестов. Автоматическое обновление заблокировано политикой только для major-обновлений и security-critical пакетов, к которым этот пакет не относится.

Upstream release notes / description

JSON Matching Expressions

JMESPath

.. image:: https://badges.gitter.im/Join Chat.svg
:target: https://gitter.im/jmespath/chat

JMESPath (pronounced "james path") allows you to declaratively specify how to
extract elements from a JSON document.

For example, given this document::

{"foo": {"bar": "baz"}}

The jmespath expression foo.bar will return "baz".

JMESPath also supports:

Referencing elements in a list. Given the data::

{"foo": {"bar": ["one", "two"]}}

The expression: foo.bar[0] will return "one".
You can also reference all the items in a list using the *
syntax::

{"foo": {"bar": [{"name": "one"}, {"name": "two"}]}}

The expression: foo.bar[*].name will return ["one", "two"].
Negative indexing is also supported (-1 refers to the last element
in the list). Given the data above, the expression
foo.bar[-1].name will return "two".

The * can also be used for hash types::

{"foo": {"bar": {"name": "one"}, "baz": {"name": "two"}}}

The expression: foo.*.name will return ["one", "two"].

Installation

You can install JMESPath from pypi with:

.. code:: bash

pip install jmespath

API

The jmespath.py library has two functions
that operate on python data structures. You can use search
and give it the jmespath expression and the data:

.. code:: python

>>> import jmespath
>>> path = jmespath.search('foo.bar', {'foo': {'bar': 'baz'}})
'baz'

Similar to the re module, you can use the compile function
to compile the JMESPath expression and use this parsed expression
to perform repeated searches:

.. code:: python

>>> import jmespath
>>> expression = jmespath.compile('foo.bar')
>>> expression.search({'foo': {'bar': 'baz'}})
'baz'
>>> expression.search({'foo': {'bar': 'other'}})
'other'

This is useful if you're going to use the same jmespath expression to
search multiple documents. This avoids having to reparse the
JMESPath expression each time you search a new document.

Options

You can provide an instance of jmespath.Options to control how
a JMESPath expression is evaluated. The most common scenario for
using an Options instance is if you want to have ordered output
of your dict keys. To do this you can use either of these options:

.. code:: python

>>> import jmespath
>>> jmespath.search('{a: a, b: b}',
...                 mydata,
...                 jmespath.Options(dict_cls=collections.OrderedDict))


>>> import jmespath
>>> parsed = jmespath.compile('{a: a, b: b}')
>>> parsed.search(mydata,
...               jmespath.Options(dict_cls=collections.OrderedDict))

Custom Functions


The JMESPath language has numerous
`built-in functions
<http://jmespath.org/specification.html#built-in-functions>`__, but it is
also possible to add your own custom functions.  Keep in mind that
custom function support in jmespath.py is experimental and the API may
change based on feedback.

**If you have a custom function that you've found useful, consider submitting
it to jmespath.site and propose that it be added to the JMESPath language.**
You can submit proposals
`here <https://github.com/jmespath/jmespath.site/issues>`__.

To create custom functions:

* Create a subclass of ``jmespath.functions.Functions``.
* Create a method with the name ``_func_<your function name>``.
* Apply the ``jmespath.functions.signature`` decorator that indicates
  the expected types of the function arguments.
* Provide an instance of your subclass in a ``jmespath.Options`` object.

Below are a few examples:

.. code:: python

    import jmespath
    from jmespath import functions

    # 1. Create a subclass of functions.Functions.
    #    The function.Functions base class has logic
    #    that introspects all of its methods and automatically
    #    registers your custom functions in its function table.
    class CustomFunctions(functions.Functions):

        # 2 and 3.  Create a fun

## NiceOS maintainer checklist

- [ ] Confirm that the detected version is a stable upstream release.
- [ ] Check upstream changelog for security fixes, ABI/API changes and build-system changes.
- [ ] Check ABI/API compatibility and reverse dependencies.
- [ ] Download source into NiceOS lookaside storage.
- [ ] Update `Version` and related fields in `SPECS/*.spec` only if policy allows it.
- [ ] Regenerate `SOURCES/sources.lock.json`, manifests, metadata and SBOM.
- [ ] Build SRPM/RPM in a clean NiceOS buildroot.
- [ ] Run package smoke tests.
- [ ] Link PR/build logs and close this issue after update or triage.

## Bot metadata
- Tool: `niceos_upstream_monitor.py 1.4`
- Generated at: `2026-04-27T22:52:45Z`
<!-- niceos-upstream-monitor:fingerprint=upstream-update:python3-jmespath:1.1.0 --> <!-- niceos-upstream-monitor:package=python3-jmespath --> <!-- niceos-upstream-monitor:current=1.0.1 --> <!-- niceos-upstream-monitor:latest=1.1.0 --> # Upstream update available: `python3-jmespath` `1.0.1` → `1.1.0` ## Package - Package: `python3-jmespath` - RPM name: `python3-jmespath` - Branch: `niceos-5.2` - Current EVR: `1.0.1-1` - Update class: `minor` - Compare method: `python_rpm` - Update policy: `leaf` - Risk tags: `standard` ## Upstream - Upstream type: `pypi` - Upstream project: `-` - Upstream URL: https://files.pythonhosted.org/packages/00/2a/e867e8531cf3e36b41201936b7fa7ba7b5702dbef42922193f05c8976cd6/jmespath-1.0.1.tar.gz - Detected version: `1.1.0` - Tag/release: `1.1.0` - Source: `pypi_json` - Published: `2026-01-22T16:35:26.279695Z` - Release URL: https://pypi.org/project/jmespath/ - Source URL: https://files.pythonhosted.org/packages/d3/59/322338183ecda247fb5d1763a6cbe46eff7222eaeebafd9fa65d4bf5cb11/jmespath-1.1.0.tar.gz - Pre-release: `False` ## Signals - Security-relevant keywords detected: `False` - Policy blocked: `False` - Policy reason: `-` - Labels: `ai-summary, bot, needs-build, needs-triage, priority/medium, update/minor, upstream-update, upstream/pypi` ## NiceSOFT AI preliminary analysis ### 1. Краткий вывод Предлагается обновление библиотеки `python3-jmespath` с версии 1.0.1 до 1.1.0. Согласно метаданным, это классифицируется как минорное обновление (`minor`) без обнаруженных признаков уязвимостей безопасности. Однако отсутствие детального списка изменений в предоставленных релиз-нотах не позволяет автоматически оценить влияние на стабильность. ### 2. Риск для НАЙС.ОС **medium**. Обновление касается популярной библиотеки парсинга JSON, которая часто используется в инструментах мониторинга и логирования внутри дистрибутива. Хотя классификация `minor` обычно подразумевает обратную совместимость, отсутствие явного перечня изменений в тексте релиза и наличие экспериментальной поддержки пользовательских функций в коде создают потенциальные риски для зависимых приложений. ### 3. Security/CVE Во входных данных отсутствуют признаки уязвимостей безопасности. Поле `security_keywords_detected_by_script` равно `False`, а поле `risk_tags` содержит только `standard`. В предоставленном тексте релиз-нот нет упоминаний исправлений багов безопасности или CVE. ### 4. ABI/API риск Данных недостаточно для автоматического анализа ABI/API рисков. Текст релиз-нот описывает общие возможности библиотеки, но не указывает на изменения в сигнатурах функций, удалении методов или изменении поведения стандартных функций (например, `search` или `compile`). Учитывая, что поддержка пользовательских функций помечена как экспериментальная, требуется проверка, не были ли изменены правила регистрации или вызова этих функций в новой версии. ### 5. Риск для RPM-сборки Вероятность поломки сборки низкая, так как это Python-пакет, зависящий от интерпретатора. Однако необходимо проверить, не требуются ли новые зависимости (BuildRequires), если в процессе компиляции используются новые опции или функции, которые отсутствовали в 1.0.1. Также стоит убедиться, что тесты `%check` проходят с новым кодом, если логика обработки ошибок или данных изменилась. ### 6. Проверки мейнтейнера - [ ] Запустить `rpmlint` на обновленном спецификации и исходном коде. - [ ] Выполнить локальную сборку пакета (`rpmbuild -ba`). - [ ] Провести регрессионное тестирование зависимых пакетов НАЙС.ОС, использующих `jmespath` (если список известен). - [ ] Сравнить хеш-суммы файлов между версиями 1.0.1 и 1.1.0, чтобы исключить случайные изменения в бинарных файлах (если применимо). - [ ] Проверить changelog upstream на GitHub (не только в тексте релиз-нот) на предмет скрытых изменений API. ### 7. Рекомендация update candidate ### 8. Основание рекомендации Обновление классифицировано как минорное (`minor`) с низким уровнем риска безопасности. Библиотека является стандартным инструментом для работы с JSON, и вероятность критических сбоев при обновлении до 1.1.0 считается приемлемой при условии прохождения стандартных проверок сборки и тестов. Автоматическое обновление заблокировано политикой только для major-обновлений и security-critical пакетов, к которым этот пакет не относится. ## Upstream release notes / description JSON Matching Expressions JMESPath ======== .. image:: https://badges.gitter.im/Join Chat.svg :target: https://gitter.im/jmespath/chat JMESPath (pronounced "james path") allows you to declaratively specify how to extract elements from a JSON document. For example, given this document:: {"foo": {"bar": "baz"}} The jmespath expression ``foo.bar`` will return "baz". JMESPath also supports: Referencing elements in a list. Given the data:: {"foo": {"bar": ["one", "two"]}} The expression: ``foo.bar[0]`` will return "one". You can also reference all the items in a list using the ``*`` syntax:: {"foo": {"bar": [{"name": "one"}, {"name": "two"}]}} The expression: ``foo.bar[*].name`` will return ["one", "two"]. Negative indexing is also supported (-1 refers to the last element in the list). Given the data above, the expression ``foo.bar[-1].name`` will return "two". The ``*`` can also be used for hash types:: {"foo": {"bar": {"name": "one"}, "baz": {"name": "two"}}} The expression: ``foo.*.name`` will return ["one", "two"]. Installation ============ You can install JMESPath from pypi with: .. code:: bash pip install jmespath API === The ``jmespath.py`` library has two functions that operate on python data structures. You can use ``search`` and give it the jmespath expression and the data: .. code:: python >>> import jmespath >>> path = jmespath.search('foo.bar', {'foo': {'bar': 'baz'}}) 'baz' Similar to the ``re`` module, you can use the ``compile`` function to compile the JMESPath expression and use this parsed expression to perform repeated searches: .. code:: python >>> import jmespath >>> expression = jmespath.compile('foo.bar') >>> expression.search({'foo': {'bar': 'baz'}}) 'baz' >>> expression.search({'foo': {'bar': 'other'}}) 'other' This is useful if you're going to use the same jmespath expression to search multiple documents. This avoids having to reparse the JMESPath expression each time you search a new document. Options ------- You can provide an instance of ``jmespath.Options`` to control how a JMESPath expression is evaluated. The most common scenario for using an ``Options`` instance is if you want to have ordered output of your dict keys. To do this you can use either of these options: .. code:: python >>> import jmespath >>> jmespath.search('{a: a, b: b}', ... mydata, ... jmespath.Options(dict_cls=collections.OrderedDict)) >>> import jmespath >>> parsed = jmespath.compile('{a: a, b: b}') >>> parsed.search(mydata, ... jmespath.Options(dict_cls=collections.OrderedDict)) Custom Functions ~~~~~~~~~~~~~~~~ The JMESPath language has numerous `built-in functions <http://jmespath.org/specification.html#built-in-functions>`__, but it is also possible to add your own custom functions. Keep in mind that custom function support in jmespath.py is experimental and the API may change based on feedback. **If you have a custom function that you've found useful, consider submitting it to jmespath.site and propose that it be added to the JMESPath language.** You can submit proposals `here <https://github.com/jmespath/jmespath.site/issues>`__. To create custom functions: * Create a subclass of ``jmespath.functions.Functions``. * Create a method with the name ``_func_<your function name>``. * Apply the ``jmespath.functions.signature`` decorator that indicates the expected types of the function arguments. * Provide an instance of your subclass in a ``jmespath.Options`` object. Below are a few examples: .. code:: python import jmespath from jmespath import functions # 1. Create a subclass of functions.Functions. # The function.Functions base class has logic # that introspects all of its methods and automatically # registers your custom functions in its function table. class CustomFunctions(functions.Functions): # 2 and 3. Create a fun ## NiceOS maintainer checklist - [ ] Confirm that the detected version is a stable upstream release. - [ ] Check upstream changelog for security fixes, ABI/API changes and build-system changes. - [ ] Check ABI/API compatibility and reverse dependencies. - [ ] Download source into NiceOS lookaside storage. - [ ] Update `Version` and related fields in `SPECS/*.spec` only if policy allows it. - [ ] Regenerate `SOURCES/sources.lock.json`, manifests, metadata and SBOM. - [ ] Build SRPM/RPM in a clean NiceOS buildroot. - [ ] Run package smoke tests. - [ ] Link PR/build logs and close this issue after update or triage. ## Bot metadata - Tool: `niceos_upstream_monitor.py 1.4` - Generated at: `2026-04-27T22:52:45Z`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rpms/python3-jmespath#1
No description provided.