Upstream update available: python3-pyparsing 3.1.2 → 3.3.2 #1

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

Upstream update available: python3-pyparsing 3.1.23.3.2

Package

  • Package: python3-pyparsing
  • RPM name: python3-pyparsing
  • Branch: niceos-5.2
  • Current EVR: 3.1.2-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-pyparsing с версии 3.1.2 до 3.3.2. Согласно метаданным обновления классифицируется как минорное (minor), однако разница в мажорных номерах версий (3.x → 3.x) при наличии значительного скачка в нумерации может указывать на изменения в API или поведении парсера. В предоставленных данных отсутствуют специфические примечания к изменениям (changelog) между этими версиями.

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

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

3. Security/CVE

Во входных данных нет признаков уязвимостей или CVE. Поле security_keywords_detected_by_script равно False, а в разделе Release notes отсутствует упоминание исправлений безопасности, патчей для эксплойтов или изменений в лицензионных условиях, связанных с безопасностью.

4. ABI/API риск

Нужен ручной ABI/API анализ.
В предоставленных данных отсутствует файл CHANGES или список изменений между версиями 3.1.2 и 3.3.2. Для библиотек парсинга даже минорные обновления могут менять поведение операторов (+, |, ^) или возвращаемые типы (ParseResults). Без сравнения исходного кода или changelog невозможно гарантировать отсутствие breaking changes.

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

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

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

  • Получить и изучить файл CHANGES или HISTORY между версиями 3.1.2 и 3.3.2 на предмет изменений в публичном API.
  • Проверить наличие новых зависимостей в setup.py/pyproject.toml новой версии.
  • Провести тестирование пакетов, зависящих от python3-pyparsing, в изолированной среде с установленной новой версией.
  • Убедиться, что policy_blocked остается False после анализа изменений.

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

update candidate

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

Обновление классифицировано как minor с тегом standard и не заблокировано политикой. Отсутствуют данные о критических уязвимостях или блокирующих изменениях. Несмотря на необходимость ручного анализа API, отсутствие красных флагов в метаданных позволяет включить обновление в кандидаты на автоматическое или полуавтоматическое развертывание после стандартных проверок совместимости.

Upstream release notes / description

pyparsing - Classes and methods to define and execute parsing grammars

PyParsing -- A Python Parsing Module

|Version| |Build Status| |Coverage| |License| |Python Versions| |Snyk Score|

Introduction

The pyparsing module is an alternative approach to creating and
executing simple grammars, vs. the traditional lex/yacc approach, or the
use of regular expressions. The pyparsing module provides a library of
classes that client code uses to construct the grammar directly in
Python code.

[Since first writing this description of pyparsing in late 2003, this
technique for developing parsers has become more widespread, under the
name Parsing Expression Grammars - PEGs. See more information on PEGs

here <https://en.wikipedia.org/wiki/Parsing_expression_grammar>__
.]

Here is a program to parse "Hello, World!" (or any greeting of the form
"salutation, addressee!"):

.. code:: python

from pyparsing import Word, alphas
greet = Word(alphas) + "," + Word(alphas) + "!"
hello = "Hello, World!"
print(hello, "->", greet.parse_string(hello))

The program outputs the following::

Hello, World! -> ['Hello', ',', 'World', '!']

The Python representation of the grammar is quite readable, owing to the
self-explanatory class names, and the use of '+', '|' and '^' operator
definitions.

The parsed results returned from parse_string() is a collection of type
ParseResults, which can be accessed as a
nested list, a dictionary, or an object with named attributes.

The pyparsing module handles some of the problems that are typically
vexing when writing text parsers:

  • extra or missing whitespace (the above program will also handle "Hello,World!", "Hello , World !", etc.)
  • quoted strings
  • embedded comments

The examples directory includes a simple SQL parser, simple CORBA IDL
parser, a config file parser, a chemical formula parser, and a four-
function algebraic notation parser, among many others.

Documentation

There are many examples in the online docstrings of the classes
and methods in pyparsing. You can find them compiled into online docs <https://pyparsing-docs.readthedocs.io/en/latest/>. Additional
documentation resources and project info are listed in the online
GitHub wiki <https://github.com/pyparsing/pyparsing/wiki>
. An
entire directory of examples can be found here <https://github.com/pyparsing/pyparsing/tree/master/examples>__.

AI Instructions

There are also instructions for AI agents to use when helping you to create your parser. They can
be pulled from the GitHub project repository, at pyparsing/ai/best_practices.md. You can also tell
the AI to access them programmatically after installing pyparsing, either from the CLI with
python -m pyparsing.ai.show_best_practices or within python with
import pyparsing; pyparsing.show_best_practices().

License

MIT License. See header of the pyparsing __init__.py <https://github.com/pyparsing/pyparsing/blob/master/pyparsing/__init__.py#L1-L23>__ file.

History

See CHANGES <https://github.com/pyparsing/pyparsing/blob/master/CHANGES>__ file.

Performance benchmarks

For usage instructions and details on the performance benchmark suite, see
tests/README.md in this repository.

.. |Build Status| image:: https://github.com/pyparsing/pyparsing/actions/workflows/ci.yml/badge.svg
:target: https://github.com/pyparsing/pyparsing/actions/workflows/ci.yml

.. |Coverage| image:: https://codecov.io/gh/pyparsing/pyparsing/branch/master/graph/badge.svg
:target: https://codecov.io/gh/pyparsing/pyparsing

.. |Version| image:: https://img.shields.io/pypi/v/pyparsing?style=flat-square
:target: https://pypi.org/project/pyparsing/
:alt: Version

.. |License| image:: https://img.shields.io/pypi/l/pyparsing.svg?style=flat-square
:target: https://pypi.org/project/pyparsing/
:alt: License

.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/pyparsing.svg?style=f

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-27T23:01:13Z
<!-- niceos-upstream-monitor:fingerprint=upstream-update:python3-pyparsing:3.3.2 --> <!-- niceos-upstream-monitor:package=python3-pyparsing --> <!-- niceos-upstream-monitor:current=3.1.2 --> <!-- niceos-upstream-monitor:latest=3.3.2 --> # Upstream update available: `python3-pyparsing` `3.1.2` → `3.3.2` ## Package - Package: `python3-pyparsing` - RPM name: `python3-pyparsing` - Branch: `niceos-5.2` - Current EVR: `3.1.2-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/source/p/pyparsing/pyparsing-3.1.2.tar.gz - Detected version: `3.3.2` - Tag/release: `3.3.2` - Source: `pypi_json` - Published: `2026-01-21T03:57:59.360367Z` - Release URL: https://pypi.org/project/pyparsing/ - Source URL: https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.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-pyparsing` с версии 3.1.2 до 3.3.2. Согласно метаданным обновления классифицируется как минорное (minor), однако разница в мажорных номерах версий (3.x → 3.x) при наличии значительного скачка в нумерации может указывать на изменения в API или поведении парсера. В предоставленных данных отсутствуют специфические примечания к изменениям (changelog) между этими версиями. ### 2. Риск для НАЙС.ОС **medium**. Обновление затрагивает популярную библиотеку для парсинга грамматик, которая часто используется в инструментах конфигурации и скриптах. Хотя классификация "minor" обычно подразумевает обратную совместимость, переход с 3.1.2 на 3.3.2 без явного подтверждения отсутствия изменений в сигнатурах методов в предоставленном тексте создает риск скрытых изменений в логике парсинга, которые могут повлиять на работу зависимых приложений. ### 3. Security/CVE Во входных данных **нет признаков уязвимостей или CVE**. Поле `security_keywords_detected_by_script` равно `False`, а в разделе `Release notes` отсутствует упоминание исправлений безопасности, патчей для эксплойтов или изменений в лицензионных условиях, связанных с безопасностью. ### 4. ABI/API риск **Нужен ручной ABI/API анализ**. В предоставленных данных отсутствует файл `CHANGES` или список изменений между версиями 3.1.2 и 3.3.2. Для библиотек парсинга даже минорные обновления могут менять поведение операторов (`+`, `|`, `^`) или возвращаемые типы (`ParseResults`). Без сравнения исходного кода или changelog невозможно гарантировать отсутствие breaking changes. ### 5. Риск для RPM-сборки Возможны проблемы с `BuildRequires`, если новая версия требует новых версий Python или дополнительных системных заголовков, не указанных в текущем spec-файле. Также возможно изменение структуры файлов после установки (например, появление новых модулей в `site-packages`), что может нарушить проверки `%check` или скрипты пост-установки, ожидающие конкретную структуру. ### 6. Проверки мейнтейнера - [ ] Получить и изучить файл `CHANGES` или `HISTORY` между версиями 3.1.2 и 3.3.2 на предмет изменений в публичном API. - [ ] Проверить наличие новых зависимостей в `setup.py`/`pyproject.toml` новой версии. - [ ] Провести тестирование пакетов, зависящих от `python3-pyparsing`, в изолированной среде с установленной новой версией. - [ ] Убедиться, что `policy_blocked` остается `False` после анализа изменений. ### 7. Рекомендация **update candidate** ### 8. Основание рекомендации Обновление классифицировано как `minor` с тегом `standard` и не заблокировано политикой. Отсутствуют данные о критических уязвимостях или блокирующих изменениях. Несмотря на необходимость ручного анализа API, отсутствие красных флагов в метаданных позволяет включить обновление в кандидаты на автоматическое или полуавтоматическое развертывание после стандартных проверок совместимости. ## Upstream release notes / description pyparsing - Classes and methods to define and execute parsing grammars PyParsing -- A Python Parsing Module ==================================== |Version| |Build Status| |Coverage| |License| |Python Versions| |Snyk Score| Introduction ============ The pyparsing module is an alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions. The pyparsing module provides a library of classes that client code uses to construct the grammar directly in Python code. *[Since first writing this description of pyparsing in late 2003, this technique for developing parsers has become more widespread, under the name Parsing Expression Grammars - PEGs. See more information on PEGs* `here <https://en.wikipedia.org/wiki/Parsing_expression_grammar>`__ *.]* Here is a program to parse ``"Hello, World!"`` (or any greeting of the form ``"salutation, addressee!"``): .. code:: python from pyparsing import Word, alphas greet = Word(alphas) + "," + Word(alphas) + "!" hello = "Hello, World!" print(hello, "->", greet.parse_string(hello)) The program outputs the following:: Hello, World! -> ['Hello', ',', 'World', '!'] The Python representation of the grammar is quite readable, owing to the self-explanatory class names, and the use of '+', '|' and '^' operator definitions. The parsed results returned from ``parse_string()`` is a collection of type ``ParseResults``, which can be accessed as a nested list, a dictionary, or an object with named attributes. The pyparsing module handles some of the problems that are typically vexing when writing text parsers: - extra or missing whitespace (the above program will also handle ``"Hello,World!"``, ``"Hello , World !"``, etc.) - quoted strings - embedded comments The examples directory includes a simple SQL parser, simple CORBA IDL parser, a config file parser, a chemical formula parser, and a four- function algebraic notation parser, among many others. Documentation ============= There are many examples in the online docstrings of the classes and methods in pyparsing. You can find them compiled into `online docs <https://pyparsing-docs.readthedocs.io/en/latest/>`__. Additional documentation resources and project info are listed in the online `GitHub wiki <https://github.com/pyparsing/pyparsing/wiki>`__. An entire directory of examples can be found `here <https://github.com/pyparsing/pyparsing/tree/master/examples>`__. AI Instructions =============== There are also instructions for AI agents to use when helping you to create your parser. They can be pulled from the GitHub project repository, at pyparsing/ai/best_practices.md. You can also tell the AI to access them programmatically after installing pyparsing, either from the CLI with ``python -m pyparsing.ai.show_best_practices`` or within python with ``import pyparsing; pyparsing.show_best_practices()``. License ======= MIT License. See header of the `pyparsing __init__.py <https://github.com/pyparsing/pyparsing/blob/master/pyparsing/__init__.py#L1-L23>`__ file. History ======= See `CHANGES <https://github.com/pyparsing/pyparsing/blob/master/CHANGES>`__ file. Performance benchmarks ====================== For usage instructions and details on the performance benchmark suite, see ``tests/README.md`` in this repository. .. |Build Status| image:: https://github.com/pyparsing/pyparsing/actions/workflows/ci.yml/badge.svg :target: https://github.com/pyparsing/pyparsing/actions/workflows/ci.yml .. |Coverage| image:: https://codecov.io/gh/pyparsing/pyparsing/branch/master/graph/badge.svg :target: https://codecov.io/gh/pyparsing/pyparsing .. |Version| image:: https://img.shields.io/pypi/v/pyparsing?style=flat-square :target: https://pypi.org/project/pyparsing/ :alt: Version .. |License| image:: https://img.shields.io/pypi/l/pyparsing.svg?style=flat-square :target: https://pypi.org/project/pyparsing/ :alt: License .. |Python Versions| image:: https://img.shields.io/pypi/pyversions/pyparsing.svg?style=f ## 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-27T23:01:13Z`
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-pyparsing#1
No description provided.