#
# spec file for package python-poetry-core
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%{?sle15_python_module_pythons}
Name:           python-poetry-core
Version:        2.1.1
Release:        1.1
Summary:        Poetry PEP 517 Build Backend
License:        Apache-2.0 AND BSD-2-Clause AND MIT AND Python-2.0
URL:            https://github.com/python-poetry/poetry-core
# Only the github archive provides the tests
Source:         %{url}/archive/%{version}.tar.gz#/poetry-core-%{version}-gh.tar.gz
BuildRequires:  %{python_module base >= 3.9}
BuildRequires:  %{python_module pip}
BuildRequires:  fdupes
BuildRequires:  python-rpm-macros
BuildArch:      noarch
# SECTION these are all test dependencies, including python-devel and git-core
BuildRequires:  %{python_module devel >= 3.9}
BuildRequires:  %{python_module build >= 0.10.0}
BuildRequires:  %{python_module pytest >= 7.1.2}
BuildRequires:  %{python_module pytest-mock >= 3.10}
BuildRequires:  %{python_module tomli-w >= 1.0.0}
BuildRequires:  %{python_module trove-classifiers >= 2022.5.19}
BuildRequires:  %{python_module virtualenv >= 20.21}
BuildRequires:  git-core
# /SECTION
%python_subpackages

%description
A PEP 517 build backend implementation developed for Poetry. This project is
intended to be a light weight, fully compliant, self-contained package allowing
PEP 517 compatible build frontends to build Poetry managed projects.

%prep
%autosetup -p1 -n poetry-core-%{version}
mkdir vendoredlicenses
cp -p src/poetry/core/_vendor/lark/LICENSE              vendoredlicenses/lark.LICENSE
cp -p src/poetry/core/_vendor/fastjsonschema/LICENSE    vendoredlicenses/fastjsonschema.LICENSE
cp -p src/poetry/core/_vendor/packaging/LICENSE         vendoredlicenses/packaging.LICENSE
cp -p src/poetry/core/_vendor/packaging/LICENSE.APACHE  vendoredlicenses/packaging.LICENSE.APACHE
cp -p src/poetry/core/_vendor/packaging/LICENSE.BSD     vendoredlicenses/packaging.LICENSE.BSD
cp -p src/poetry/core/_vendor/tomli/LICENSE             vendoredlicenses/tomli.LICENSE

%build
%pyproject_wheel

%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}

%check
# gh#python-poetry/poetry#1645
git init
# tests expect the default 2016-01-01 for test builds, not the epoch set by OBS (serverside)
unset SOURCE_DATE_EPOCH
%pytest

%files %{python_files}
%doc README.md
%license LICENSE vendoredlicenses/*
%dir %{python_sitelib}/poetry
%{python_sitelib}/poetry/core
%{python_sitelib}/poetry_core-%{version}.dist-info

%changelog
* Wed Mar 12 2025 ecsos <ecsos@opensuse.org>
- Update to 2.1.1
  - Fix an issue where simplifying a python_version marker resulted in an invalid marker (#838).
- Changes from 2.1.0
  - Fix an issue where inclusive ordering with post releases was inconsistent with PEP 440 (#379).
  - Fix an issue where invalid URI tokens in PEP 508 requirement strings were silently discarded (#817).
  - Fix an issue where wrong markers were calculated when removing parts covered by the project's python constraint (#824).
  - Fix an issue where optional dependencies that are not part of an extra were included in the wheel metadata (#830).
  - Fix an issue where the __pycache__ directory and *.pyc files were included in sdists and wheels (#835).
- Changes from 2.0.1
  - Replace the deprecated core metadata field Home-page with Project-URL: Homepage (#807).
  - Fix an issue where includes from tool.poetry.packages without a specified format were not
    initialized with the default value resulting in a KeyError (#805).
  - Fix an issue where some project.urls entries were not processed correctly resulting in a KeyError (#807).
  - Fix an issue where dynamic project.dependencies via tool.poetry.dependencies were ignored if
    project.optional-dependencies were defined (#811).
* Fri Jan 10 2025 Ben Greiner <code@bnavigator.de>
- Unset source date epoch for tests
* Fri Jan 10 2025 Steve Kowalik <steven.kowalik@suse.com>
- Change test skipping, the skipped one works, and another is broken.
* Wed Jan  8 2025 Dirk Müller <dmueller@suse.com>
- update to 2.0.0:
  * **Add support for the `project` section in the
    `pyproject.toml` file according to PEP 621** (#708, #792).
  * Add support for non PEP440 compliant version in the
    `platform_release` marker (#722).
  * Add support for string comparisons with `in` / `not in` in
    generic constraints (#722).
  * Add support for script files that are generated by a build
    script (#710).
  * Add support for `SOURCE_DATE_EPOCH` when building packages
    (#766, #781).
  * Drop support for Python 3.8 (#798).
  * Create `METADATA` files with version 2.3 instead of 2.2
  * Normalize source vcs URLs (#701).
  * Make `allow-prereleases` a tri-state setting (#783).
  * Rename exceptions to have an `Error` suffix (#767).
  * Remove support for `x` in version constraints (#770).
  * Remove support for scripts with extras (#708).
  * Remove deprecated features and interfaces (#702,
  * #769).
  * Deprecate `tool.poetry.dev-dependencies` in favor of
    `tool.poetry.group.dev.dependencies` (#754).
  * Deprecate `Package.python_marker` (#446).
  * Improve Cygwin git support under Windows (#704).
  * Improve error message when the `pyproject.toml` file cannot
    be parsed (#734).
  * Improve handling of `readme` files (#752).
  * Improve error handling when the Python constraint is empty
    (#761).
  * Improve performance for creating a PEP 508 requirement from a
    dependency (#779).
  * Fix an issue where the `platlib` directory of the wrong
    Python was used (#726).
  * Fix handling of generic constraints (#732).
  * Fix an issue where building a wheel in a nested output
    directory results in an error (#762).
  * Fix an issue where `+` was not allowed in git URL paths
    (#765).
  * Fix an issue where the temporary directory was not cleaned up
    on error (#775).
  * Fix an issue where the regular expression for author names
    was too restrictive (#517).
  * Fix an issue where basic auth http(s) credentials could not
    be parsed (#791).
* Mon Oct 28 2024 Dirk Müller <dmueller@suse.com>
- update to 1.9.1:
  * Add `3.13` to the list of available Python versions (#747).
- drop support-newer-pythons.patch (upstream)
* Thu Sep 19 2024 Steve Kowalik <steven.kowalik@suse.com>
- Add patch support-newer-pythons.patch:
  * Remove failing test with Python 3.12.6 and 3.13.
- Switch to autosetup macro.
* Mon Sep  9 2024 Ben Greiner <code@bnavigator.de>
- Skip test failing with Python 3.12.6 gh#python-poetry/poetry#9678
* Tue Mar 19 2024 Matej Cepl <mcepl@cepl.eu>
- Update to 1.9.0 (bsc#1221705):
  - Added
  - Add a to key in tool.poetry.packages to allow custom
    subpackage names
  - Add support for path dependencies that do not define a
    build system
  - Add a tool.poetry.package-mode key to support non-package
    mode
  - Changed
  - Update list of supported licenses
  - Improve support for PEP 691 JSON-based Simple API
  - Establish zipapp compatibility
  - Rework list of files included in build artifacts
  - Improve performance by treating collections in packages as
    immutable
  - Deprecate poetry.core.masonry.builder
  - Deprecate scripts that depend on extras
  - Fixed
  - Fix an issue where insignificant errors were printed if the
    working directory is not inside a git repository
  - Fix an issue where the project's directory was not
    recognized as git repository on Windows due to an encoding
    issue
  - Vendoring
    fastjsonschema==2.19.1
    lark==1.1.8
* Tue Jan  2 2024 Dirk Müller <dmueller@suse.com>
- update to 1.8.1:
  * Fix an issue where git URLs starting with `git+` could not be
    parsed anymore (#657).
  * Add `3.12` to the list of available Python versions (#631).
  * Add support for creating packages dynamically in the build
    script
  * Improve marker logic for `extra` markers (#636).
  * Update list of supported licenses (#635,
  * #646).
  * Deprecate `Dependency.transitive_python_versions` (#648).
  * Deprecate `Dependency.transitive_python_constraint` (#649).
  * Fix an issue where projects with extension modules were not
    installed in editable mode (#633).
  * Fix an issue where the wrong or no `lib` folder was added to
    the wheel (#634).
  * Replace `jsonschema` with `fastjsonschema`.
  * `lark==1.1.8`
  * `packaging==23.2`
* Sat Sep 23 2023 Ben Greiner <code@bnavigator.de>
- Update to 1.7.0
  [#]# Added
  * Optionally use resolved references when converting a VCS
    dependency to a PEP 508 dependency specification (#603).
  * Improve performance of marker handling (#609).
  [#]# Changed
  * Drop support for Python 3.7 (#566).
  * Remove deprecated poetry.core.constraints.generic and
    poetry.core.semver (#601).
  * Allow | as a value separator in markers with the operators in
    and not in (#608).
  * Put pretty name (instead of normalized name) in metadata
    (#620).
  * Update list of supported licenses (#623).
  [#]# Fixed
  * Fix an issue where the encoding was not handled correctly when
    calling a subprocess (#602).
  * Fix an issue where caret constraints with additional whitespace
    could not be parsed (#606).
  * Fix an issue where PEP 508 dependency specifications with names
    starting with a digit could not be parsed (#607).
  * Fix an issue where Poetry considered an unrelated .gitignore
    file resulting in an empty wheel (#611).
* Mon May 29 2023 Ben Greiner <code@bnavigator.de>
- Update to 1.6.1
  * Fix an endless recursion in marker handling (#593).
  * Fix an issue where the wheel tag was not built correctly under
    certain circumstances (#591).
  * Fix an issue where the tests included in the sdist failed due
    to missing files (#589).
* Mon May 22 2023 Ben Greiner <code@bnavigator.de>
- Update description
* Mon May 22 2023 Dan Čermák <dcermak@suse.com>
- New upstream release 1.6.0
  * Improve error message for invalid markers (#569).
  * Increase robustness when deleting temporary directories on
    Windows (#460).
  * Replace tomlkit with tomli, which changes the interface of some
    internal classes (#483).
  * Deprecate Package.category (#561).
  * Fix a performance regression in marker handling (#568).
  * Fix an issue where wildcard version constraints were not
    handled correctly (#402).
  * Fix an issue where poetry build created duplicate Python
    classifiers if they were specified manually (#578).
  * Fix an issue where local versions where not handled correctly
    (#579).
* Mon Apr 24 2023 Ben Greiner <code@bnavigator.de>
- Update to 1.5.2
  * no changes relevant for Linux
- Release 1.5.1
  * Improve performance by caching parsed markers, constraints and
    versions (#556).
- Release 1.5.0
  [#]# Added
  * Improve marker handling (#528, #534, #530, #546, #547).
  * Allow overriding the output directory when building dist files
    (#527).
  * Validate whether dependencies referenced in extras are defined
    in the main dependency group (#542).
  * Improve handling of generic constraints (#515).
  [#]# Changed
  * Deprecate the hash function of FileDependency (#535).
  * Do not set allows_preleases implicitly anymore if the lower
    bound of a constraint is a pre-release (#543).
  * Poetry no longer generates a setup.py file in sdists by default
    (#318).
  * Remove the unused platform attribute from Package (#548).
  * Deprecate the pretty_version parameter when creating a Package
    (#549).
  * Validate path dependencies during use instead of during
    construction (#520).
  [#]# Fixed
  * Fix an issue where the PEP 517 metadata_directory was not
    respected when building an editable wheel (#537).
  * Fix an issue where trailing newlines were allowed in
    tool.poetry.description (#505).
  * Fix an issue where the name of the data folder in wheels was
    not normalized (#532).
  * Fix an issue where the order of entries in the RECORD file was
    not deterministic (#545).
  * Fix an issue where parsing of VCS URLs with escaped characters
    failed (#524).
  * Fix an issue where the subdirectory parameter of VCS URLs was
    not respected (#518).
  * Fix an issue where zero padding was not correctly handled in
    version comparisons (#540).
  * Fix an issue where sdist builds did not support multiple
    READMEs (#486).
- Remove devendoring: produces too many build dependency cycles as
  a build backend
* Fri Apr 21 2023 Dirk Müller <dmueller@suse.com>
- add sle15_python_module_pythons (jsc#PED-68)
* Thu Apr 13 2023 Matej Cepl <mcepl@suse.com>
- Make calling of %%{sle15modernpython} optional.
* Tue Dec 13 2022 Benjamin Greiner <code@bnavigator.de>
- Update devendored requirements
* Tue Dec 13 2022 Yogalakshmi Arunachalam <yarunachalam@suse.com>
- Update to version 1.4.0
  * Added
  The PEP 517 metadata_directory is now respected as an input to the build_wheel hook (#487).
  * Changed
  Sources are now considered more carefully when dealing with dependencies with environment markers (#497).
  EmptyConstraint is now hashable (#513).
  ParseConstraintError is now raised on version and constraint parsing errors, and includes information on the package that caused the error (#514).
  * Fixed
  Fix an issue where invalid PEP 508 requirements were generated due to a missing space before semicolons (#510).
  Fix an issue where relative paths were encoded into package requirements, instead of a file:// URL as required by PEP 508 (#512).
  * Vendoring
  jsonschema==4.17.0
  lark==1.1.14
  pyrsistent==0.19.2
  tomlkit==0.11.6
  typing-extensions==4.4.0
* Tue Oct 11 2022 Dirk Müller <dmueller@suse.com>
- adjust to lark-parser -> lark rename
* Sun Oct  9 2022 Ben Greiner <code@bnavigator.de>
- Update to 1.3.2
  * Fix an issue where the normalization was not applied to the
    path of an sdist built using a PEP 517 frontend (#495).
- Release 1.3.1
  * Fix an issue where a typing-driven assertion could be false at
    runtime, causing a failure during
    prepare_metadata_for_build_wheel (#492).
- Release 1.3.0
  * Add 3.11 to the list of available Python versions (#477).
  * Deprecate poetry.core.constraints.generic, which is replaced by
    poetry.core.packages.constraints (#482).
  * Deprecate poetry.core.semver, which is replaced by
    poetry.core.constraints.version (#482).
  * Fix an issue where versions were escaped wrongly when building
    the wheel name (#469).
  * Fix an issue where caret constraints of pre-releases with a
    major version of 0 resulted in an empty version range (#475).
  * Fix an issue where the names of extras were not normalized
    according to PEP 685 (#476).
  * Fix an issue where sdist names were not normalized (#484).
- Release 1.2.0
  * Added support for subdirectories in url dependencies (#398).
  * When setting an invalid version constraint an error is raised
    instead of silently setting "any version" (#461).
  * Allow more characters in author name (#411).
  * Fixed an issue where incorrect Requires-Dist information was
    generated when environment markers where used for optional
    packages (#462).
  * Fixed an issue where incorrect python constraints were parsed
    from environment markers (#457).
  * Fixed the hashing of markers and constraints (#466).
  * Fixed an issue where the PEP 508 name of directory dependencies
    used platform paths (#463).
- Release 1.1.0
  * Dropped support for Python 2.7 and 3.6 (#131, #263).
  * Reorganized imports internally to improve performances (#131).
  * Directory dependencies are now in non-develop mode by default
    (#98).
  * Improved support for PEP 440 specific versions that do not
    abide by semantic versioning (#140).
  * Files in source distributions now have a deterministic time to
    improve reproducibility. (#142)
  * Added support for script files in addition to standard entry
    points. (#40)
  * Added support for dependency groups. (#183)
  * Add support for most of the guaranteed hashes (#207).
  * Add support to declare multiple README files (#248).
  * Add support for git sub directories (#192).
  * Add hooks according to PEP-660 for editable installs (#182).
  * Add support for version epochs (#264).
  * Loose the strictness when parsing version constraint to support
    invalid use of wildcards, e.g. >=3.* (#186).
  * No longer assume a default git branch name (#192).
  * Sort package name in extras to make it reproducible (#280).
  * Improve marker handling (#208, #282, #283, #284, #286, #291,
    [#293], #294, #297).
  * Added support for handling git urls with subdirectory (#288).
  * Added support for metadata files as described in PEP-658 for
    PEP-503 "simple" API repositories (#333).
  * Renamed dependency group of runtime dependencies to from
    default to main (#326).
  * poetry-core is now completely type checked.
  * Improved the SemVer constraint parsing (#327).
  * Improved the speed when cloning git repositories (#290).
  * Added support for valid PEP 517 projects with another
    build-system than poetry-core as directory dependencies (#368,
    [#377]).
  * Added support for yanked files and releases according to PEP
    592 (#400).
  * Relaxed schema validation to allow additional properties
    (#369).
  * Harmonized string representation of dependencies (#393).
  * Changed wheel name normalization to follow most recent
    packaging specification (#394).
  * Changed equality check of direct origin dependencies, so that
    constraints are not considered anymore (#405).
  * Deprecated Dependency.set_constraint() and replaced it by a
    constraint property for consistency (#370).
  * Removed Package.requires_extras (#374).
  * Improved marker handling (#380, #383, #384, #390, #395).
  * Enabled setting version of ProjectPackage to support
    dynamically setting the project's package version (e.g. from a
    plugin) (#447).
* Fri Mar 18 2022 Ben Greiner <code@bnavigator.de>
- Update to 1.0.8
  * Add hooks according to PEP-660 for editable installs (#257).
* Sat Dec  4 2021 Ben Greiner <code@bnavigator.de>
- Update to 1.0.7
  * Fixed an issue where the wrong git executable could be used on
    Windows. (#213)
  * Fixed an issue where the Python 3.10 classifier was not
    automatically added. (#215)
* Wed Sep 22 2021 Ben Greiner <code@bnavigator.de>
- Update to 1.0.6
  * Added support for more hash types gen generating hashes. (#207)
- Release 1.0.5
  * Fixed the copy of Package instances which led to file hashes
    not being available. (#193)
  * Fixed an issue where unsafe parameters could be passed to git
    commands. (#203)
  * Fixed an issue where the wrong git executable could be used on
    Windows. (#205)
- Release 1.0.4
  * Fixed an error in the way python markers with a precision >= 3
    were handled. (#180)
  * Fixed an error in the evaluation of in/not in markers (#189)
* Wed Apr 14 2021 Ben Greiner <code@bnavigator.de>
- Update to 1.0.3
  * Fixed an error when handling single-digit Python markers (#156)
  * Fixed dependency markers not being properly copied when changing the constraint (#163).
- Release 1.0.2
  * Fixed a missing import causing an error in Poetry (#134).
- Release 1.0.1
  * Fixed PEP 508 representation of dependency without extras
    (#102).
  * Fixed an error where development dependencies were being
    resolved when invoking the PEP-517 backend (#101).
  * Fixed source distribution not being deterministic (#105).
  * Fixed an error where zip files were left open when building
    wheels (#122).
  * Fixed an error where explicitly included files were still not
    present in final distributions (#124).
  * Fixed wheel filename matching for recent architecture (#125,
    [#129]).
  * Fixed an error where the & character was not accepted for
    author names (#120).
  * Fixed the PEP-508 representation of some dependencies (#103).
  * Fixed the Requires-Python metadata generation (#127).
  * Fixed an error where pre-release versions were accepted in
    version constraints (#128).
* Tue Oct 20 2020 Dan Čermák <dcermak@suse.com>
  Remove python2 subpackage:
  python2 requires the typing package as a dependency, but we ship a too recent version of that and thus cannot build it for Leap + Python2 anymore
* Fri Oct 16 2020 Benjamin Greiner <code@bnavigator.de>
- Let the pyproject_install macro do the compiling
* Sat Oct 10 2020 Benjamin Greiner <code@bnavigator.de>
- unbundle vendored packages
* Thu Oct  8 2020 Benjamin Greiner <code@bnavigator.de>
- remove dephell dependency. poetry-core can build and install
  itself as a PEP517 backend (using pip as frontend)
- precompile the python files as in setuptools
  * gh#openSUSE/python-rpm-macros#37
* Mon Oct  5 2020 Benjamin Greiner <code@bnavigator.de>
- Update to v1.0.0
  * first stable release. See CHANGLOG.md for changes between a6
    and release
- The released PyPI package does not have the tests. Use Github.
* Sun Jul 12 2020 John Vandenberg <jayvdb@gmail.com>
- Update to v1.0.0a8
* Thu May  7 2020 John Vandenberg <jayvdb@gmail.com>
- Initial spec for v1.0.0a6