Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-poetry-plugin-export for
openSUSE:Factory checked in at 2023-09-25 20:02:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-poetry-plugin-export (Old)
and /work/SRC/openSUSE:Factory/.python-poetry-plugin-export.new.1770 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-poetry-plugin-export"
Mon Sep 25 20:02:19 2023 rev:6 rq:1113186 version:1.5.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-poetry-plugin-export/python-poetry-plugin-export.changes
2023-05-31 21:54:10.548891338 +0200
+++
/work/SRC/openSUSE:Factory/.python-poetry-plugin-export.new.1770/python-poetry-plugin-export.changes
2023-09-25 20:03:41.275209051 +0200
@@ -1,0 +2,12 @@
+Sat Sep 23 10:12:53 UTC 2023 - Ben Greiner <[email protected]>
+
+- Update to 1.5.0
+ ## Changed
+ * Drop support for Python 3.7 (#189).
+ * Improve warning when the lock file is not consistent with
+ pyproject.toml (#215).
+ ## Fixed
+ * Fix an issue where markers for dependencies required by an
+ extra were not generated correctly (#209).
+
+-------------------------------------------------------------------
Old:
----
poetry_plugin_export-1.4.0.tar.gz
New:
----
poetry_plugin_export-1.5.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-poetry-plugin-export.spec ++++++
--- /var/tmp/diff_new_pack.2WQOVd/_old 2023-09-25 20:03:42.559255344 +0200
+++ /var/tmp/diff_new_pack.2WQOVd/_new 2023-09-25 20:03:42.563255488 +0200
@@ -27,15 +27,16 @@
%{?sle15_python_module_pythons}
Name: python-poetry-plugin-export%{psuffix}
-Version: 1.4.0
+Version: 1.5.0
Release: 0
Summary: Poetry plugin to export the dependencies to various formats
License: MIT
URL: https://python-poetry.org/
# RepositorySource: https://github.com/python-poetry/poetry-plugin-export
Source:
https://files.pythonhosted.org/packages/source/p/poetry-plugin-export/poetry_plugin_export-%{version}.tar.gz
+BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module pip}
-BuildRequires: %{python_module poetry-core >= 1.3.0}
+BuildRequires: %{python_module poetry-core >= 1.6.0}
# No buildtime requirement of poetry: avoid build dep cycles!
BuildRequires: python-rpm-macros
%if %{with test}
@@ -47,8 +48,8 @@
BuildRequires: %{python_module pytest}
%endif
BuildRequires: fdupes
-Requires: python-poetry >= 1.3.0
-Requires: python-poetry-core >= 1.3.0
+Requires: python-poetry >= 1.5.0
+Requires: python-poetry-core >= 1.6.0
Provides: python-poetry_plugin_export = %{version}-%{release}
BuildArch: noarch
%python_subpackages
++++++ poetry_plugin_export-1.4.0.tar.gz -> poetry_plugin_export-1.5.0.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/poetry_plugin_export-1.4.0/PKG-INFO
new/poetry_plugin_export-1.5.0/PKG-INFO
--- old/poetry_plugin_export-1.4.0/PKG-INFO 1970-01-01 01:00:00.000000000
+0100
+++ new/poetry_plugin_export-1.5.0/PKG-INFO 1970-01-01 01:00:00.000000000
+0100
@@ -1,15 +1,14 @@
Metadata-Version: 2.1
Name: poetry-plugin-export
-Version: 1.4.0
+Version: 1.5.0
Summary: Poetry plugin to export the dependencies to various formats
Home-page: https://python-poetry.org/
License: MIT
Author: Sébastien Eustace
Author-email: [email protected]
-Requires-Python: >=3.7,<4.0
+Requires-Python: >=3.8,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
@@ -21,6 +20,8 @@
# Poetry Plugin: Export
+[](https://python-poetry.org/)
+
This package is a plugin that allows the export of locked packages to various
formats.
**Note**: For now, only the `constraints.txt` and `requirements.txt` formats
are available.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/poetry_plugin_export-1.4.0/README.md
new/poetry_plugin_export-1.5.0/README.md
--- old/poetry_plugin_export-1.4.0/README.md 2023-05-29 10:49:08.978796500
+0200
+++ new/poetry_plugin_export-1.5.0/README.md 2023-08-20 16:40:24.503596800
+0200
@@ -1,5 +1,7 @@
# Poetry Plugin: Export
+[](https://python-poetry.org/)
+
This package is a plugin that allows the export of locked packages to various
formats.
**Note**: For now, only the `constraints.txt` and `requirements.txt` formats
are available.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/poetry_plugin_export-1.4.0/pyproject.toml
new/poetry_plugin_export-1.5.0/pyproject.toml
--- old/poetry_plugin_export-1.4.0/pyproject.toml 2023-05-29
10:49:08.978796500 +0200
+++ new/poetry_plugin_export-1.5.0/pyproject.toml 2023-08-20
16:40:24.503596800 +0200
@@ -1,6 +1,6 @@
[tool.poetry]
name = "poetry-plugin-export"
-version = "1.4.0"
+version = "1.5.0"
description = "Poetry plugin to export the dependencies to various formats"
authors = ["Sébastien Eustace <[email protected]>"]
license = "MIT"
@@ -17,12 +17,12 @@
]
[tool.poetry.dependencies]
-python = "^3.7"
+python = "^3.8"
poetry = "^1.5.0"
poetry-core = "^1.6.0"
[tool.poetry.group.dev.dependencies]
-pre-commit = "^2.18"
+pre-commit = ">=2.18"
pytest = "^7.1"
pytest-cov = "^4.0"
pytest-mock = "^3.9"
@@ -45,7 +45,7 @@
unfixable = [
"ERA", # do not autoremove commented out code
]
-target-version = "py37"
+target-version = "py38"
line-length = 88
extend-select = [
"B", # flake8-bugbear
@@ -79,7 +79,7 @@
[tool.black]
-target-version = ['py37']
+target-version = ['py38']
preview = true
[tool.mypy]
@@ -94,9 +94,9 @@
files = ["src", "tests"]
exclude = ["^tests/fixtures/"]
-# use of importlib-metadata backport at python3.7 makes it impossible to
-# satisfy mypy without some ignores: but we get a different set of ignores at
-# different python versions.
+# use of importlib-metadata backport makes it impossible to satisfy mypy
+# without some ignores: but we get a different set of ignores at different
+# python versions.
#
# <https://github.com/python/mypy/issues/8823>, meanwhile suppress that
# warning.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/poetry_plugin_export-1.4.0/src/poetry_plugin_export/command.py
new/poetry_plugin_export-1.5.0/src/poetry_plugin_export/command.py
--- old/poetry_plugin_export-1.4.0/src/poetry_plugin_export/command.py
2023-05-29 10:49:08.978796500 +0200
+++ new/poetry_plugin_export-1.5.0/src/poetry_plugin_export/command.py
2023-08-20 16:40:24.503596800 +0200
@@ -14,14 +14,12 @@
name = "export"
description = "Exports the lock file to alternative formats."
- options = [
+ options = [ # noqa: RUF012
option(
"format",
"f",
- (
- "Format to export to. Currently, only constraints.txt and"
- " requirements.txt are supported."
- ),
+ "Format to export to. Currently, only constraints.txt and"
+ " requirements.txt are supported.",
flag=False,
default=Exporter.FORMAT_REQUIREMENTS_TXT,
),
@@ -81,10 +79,9 @@
if not locker.is_fresh():
self.line_error(
"<warning>"
- "Warning: The lock file is not up to date with "
- "the latest changes in pyproject.toml. "
- "You may be getting outdated dependencies. "
- "Run update to update them."
+ "Warning: poetry.lock is not consistent with pyproject.toml. "
+ "You may be getting improper dependencies. "
+ "Run `poetry lock [--no-update]` to fix it."
"</warning>"
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/poetry_plugin_export-1.4.0/src/poetry_plugin_export/exporter.py
new/poetry_plugin_export-1.5.0/src/poetry_plugin_export/exporter.py
--- old/poetry_plugin_export-1.4.0/src/poetry_plugin_export/exporter.py
2023-05-29 10:49:08.978796500 +0200
+++ new/poetry_plugin_export-1.5.0/src/poetry_plugin_export/exporter.py
2023-08-20 16:40:24.503596800 +0200
@@ -16,6 +16,7 @@
if TYPE_CHECKING:
from collections.abc import Collection
from pathlib import Path
+ from typing import ClassVar
from packaging.utils import NormalizedName
from poetry.poetry import Poetry
@@ -30,7 +31,7 @@
FORMAT_REQUIREMENTS_TXT = "requirements.txt"
ALLOWED_HASH_ALGORITHMS = ("sha256", "sha384", "sha512")
- EXPORT_METHODS = {
+ EXPORT_METHODS: ClassVar[dict[str, str]] = {
FORMAT_CONSTRAINTS_TXT: "_export_constraints_txt",
FORMAT_REQUIREMENTS_TXT: "_export_requirements_txt",
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/poetry_plugin_export-1.4.0/src/poetry_plugin_export/walker.py
new/poetry_plugin_export-1.5.0/src/poetry_plugin_export/walker.py
--- old/poetry_plugin_export-1.4.0/src/poetry_plugin_export/walker.py
2023-05-29 10:49:08.978796500 +0200
+++ new/poetry_plugin_export-1.5.0/src/poetry_plugin_export/walker.py
2023-08-20 16:40:24.503596800 +0200
@@ -173,7 +173,7 @@
):
continue
- base_marker =
require.marker.intersect(requirement.marker.without_extras())
+ base_marker =
require.marker.intersect(requirement.marker).without_extras()
if not base_marker.is_empty():
# So as to give ourselves enough flexibility in choosing a
solution,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/poetry_plugin_export-1.4.0/tests/test_exporter.py
new/poetry_plugin_export-1.5.0/tests/test_exporter.py
--- old/poetry_plugin_export-1.4.0/tests/test_exporter.py 2023-05-29
10:49:08.982796400 +0200
+++ new/poetry_plugin_export-1.5.0/tests/test_exporter.py 2023-08-20
16:40:24.507597000 +0200
@@ -447,7 +447,7 @@
"b": Dependency.create_from_pep_508(f"b==4.5.6 ; {marker_py_windows}"),
"c": Dependency.create_from_pep_508(f"c==7.8.9 ; {marker_py_win32}"),
"d": Dependency.create_from_pep_508(
- f"d==0.0.1 ; {marker_py_win32.union(marker_py_windows)}"
+ f"d==0.0.1 ; {marker_py_windows.union(marker_py_win32)}"
),
}
@@ -2720,3 +2720,79 @@
foo==1.2.3 ; {MARKER_PY}
"""
assert content == expected
+
+
+def test_exporter_not_confused_by_extras_in_sub_dependencies(
+ tmp_path: Path, poetry: Poetry
+) -> None:
+ # Testcase derived from
+ # https://github.com/python-poetry/poetry-plugin-export/issues/208
+ poetry.locker.mock_lock_data( # type: ignore[attr-defined]
+ {
+ "package": [
+ {
+ "name": "typer",
+ "python-versions": ">=3.6",
+ "version": "0.9.0",
+ "optional": False,
+ "files": [],
+ "dependencies": {
+ "click": ">=7.1.1,<9.0.0",
+ "colorama": {
+ "version": ">=0.4.3,<0.5.0",
+ "optional": True,
+ "markers": 'extra == "all"',
+ },
+ },
+ "extras": {"all": ["colorama (>=0.4.3,<0.5.0)"]},
+ },
+ {
+ "name": "click",
+ "python-versions": ">=3.7",
+ "version": "8.1.3",
+ "optional": False,
+ "files": [],
+ "dependencies": {
+ "colorama": {
+ "version": "*",
+ "markers": 'platform_system == "Windows"',
+ }
+ },
+ },
+ {
+ "name": "colorama",
+ "python-versions": ">=3.7",
+ "version": "0.4.6",
+ "optional": False,
+ "files": [],
+ },
+ ],
+ "metadata": {
+ "lock-version": "2.0",
+ "python-versions": "^3.11",
+ "content-hash": (
+
"832b13a88e5020c27cbcd95faa577bf0dbf054a65c023b45dc9442b640d414e6"
+ ),
+ },
+ }
+ )
+ root = poetry.package.with_dependency_groups([], only=True)
+ root.python_versions = "^3.11"
+ root.add_dependency(
+ Factory.create_dependency(
+ name="typer",
+ constraint={"version": "^0.9.0", "extras": ["all"]},
+ )
+ )
+ poetry._package = root
+
+ io = BufferedIO()
+ exporter = Exporter(poetry, NullIO())
+ exporter.export("requirements.txt", tmp_path, io)
+
+ expected = """\
+click==8.1.3 ; python_version >= "3.11" and python_version < "4.0"
+colorama==0.4.6 ; python_version >= "3.11" and python_version < "4.0"
+typer[all]==0.9.0 ; python_version >= "3.11" and python_version < "4.0"
+"""
+ assert io.fetch_output() == expected