%global pypi_name safety

Name:           python-%{pypi_name}
Version:        3.6.1
Release:        1
Summary:        Safety checks Python dependencies for known security vulnerabilities and suggests the proper remediations for vulnerabilities detected.

License:        MIT
URL:            https://github.com/pyupio/safety
Source0:        %{url}/archive/%{version}/%{pypi_name}-%{version}.tar.gz

BuildArch:      noarch

BuildRequires:  python3-devel
BuildRequires:  python3-setuptools
BuildRequires:  python3-pip
BuildRequires:  python3-wheel
BuildRequires:	python3-editables
BuildRequires:	python3-hatch-vcs
BuildRequires:	python3-hatchling
# for test
BuildRequires:	python3-coverage
BuildRequires:	python3-pytest
BuildRequires:	python3-pyinstaller
BuildRequires:	python3-tomli
BuildRequires:	python3-click
BuildRequires:	python3-dparse
BuildRequires:	python3-rich
BuildRequires:	python3-typer
BuildRequires:	python3-tomlkit
BuildRequires:	python3-safety-schemas
BuildRequires:	python3-Authlib
BuildRequires:	python3-jinja2
BuildRequires:	python3-httpx
BuildRequires:	python3-filelock
BuildRequires:	python3-psutil
BuildRequires:	python3-tenacity
BuildRequires:	python3-nltk


%description
Safety checks Python dependencies for known security vulnerabilities and suggests the proper remediations for vulnerabilities detected. Safety can be run on developer machines, in CI/CD pipelines and on production systems.


%package -n     python3-%{pypi_name}
Summary:        %{summary}
%{?python_provide:%python_provide python3-%{pypi_name}}

%description -n python3-%{pypi_name}
Safety checks Python dependencies for known security vulnerabilities and suggests the proper remediations for vulnerabilities detected. Safety can be run on developer machines, in CI/CD pipelines and on production systems.

%prep
%autosetup -n %{pypi_name}-%{version} -p1
sed -i 's/~=/>=/g' pyproject.toml
sed -i 's#<2.10.0#<2.12#g' pyproject.toml

%build
%pyproject_build

%install
%pyproject_install

%check
# skip test_announcements_if_is_not_tty for ci noweb
k="${k-}${k+ and }not test_announcements_if_is_not_tty"
# skip test_check_live_cached for ci noweb
k="${k-}${k+ and }not test_check_live_cached"
# skip test_check_live for ci noweb
k="${k-}${k+ and }not test_check_live"
# skip test_get_packages_licenses_without_api_key for ci noweb
k="${k-}${k+ and }not test_get_packages_licenses_without_api_key"
%pytest -- -k "${k-}" -vv

%files -n python3-%{pypi_name}
%doc README.md
%license LICENSES
%{python3_sitelib}/%{pypi_name}
%{python3_sitelib}/%{pypi_name}-*.dist-info
%{_bindir}/safety


%changelog
* Wed Sep 10 2025 liutao1 <liutao1@kylinos.cn>- 3.6.1-1
- Import rich_utils as a module and don't access as an attribute

* Thu Aug 14 2025 Dongxing Wang <dongxing.wang_a@thundersoft.com> - 3.6.0-2
- Add pytest -vv and check testcase duration

* Wed Jul 16 2025 Dongxing Wang <dxwangk@isoftstone.com> - 3.6.0-1
- Update package with version 3.6.0
  fix: issues with encoding in all the outputs
  fix: restore missing codebase name prompt in scan command
  fix: codebase init --link-to help text
  feat: add Windows venv wrappers support
  feat: add codebase init command
  test: use tomllib in tests if available
  fix: test isolation for firewall tests on unix-like systems

* Mon May 19 2025 Dongxing Wang <dongxing.wang_a@thundersoft.com> - 3.5.1-1
- Update package with version 3.5.1
  feat: add 'SAFETY_REQUEST_TIMEOUT_EVENTS' so users can use a custom timeout
  feat: improved rendering of the warning messages
  feat: added resolution of installed packages
  feat: add meta client headers to all requests
  feat: include other category in the init scan
  feat: add new onboarding events
  feat: displaying package installation warnings
  feat: integrate full support for poetry
  feat: configuring the repository URL using project id
  feat: add security events for firewall users

* Wed Sep 20 2023 luluo12 <luluoc@isoftstone.com> - 2.3.5-2
- add self-check.

* Mon Jun 26 2023 luolu12 <luluoc@isoftstone.com> - 2.3.5-1
- Initial package.