summaryrefslogtreecommitdiff
path: root/litestar.spec
blob: 17a3c845c2675fbe2ffd01414b99117dcd429bb4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# topdir: python-litestar-2.25.0
# build-system: hatchling (pyproject.toml build-backend = hatchling.build)
# build plan: pyproject (openEuler 24.03 LTS SP4+ supports pyproject-rpm-macros)
# lessons applied:
#   - python/framework-companion-package-deps: litestar-htmx already built in user
#     COPR project; treated as BuildRequires/Requires (no need to weaken to Recommends).
#   - python/pyproject-install-auto-deps-redundancy: pythondistdeps.py auto-generates
#     python3.11dist(...) Requires from dist-info/METADATA after pyproject_install,
#     so spec intentionally omits hand-written runtime Requires to avoid duplicates.

%global pypi_name litestar

Name:           python-%{pypi_name}
Version:        2.25.0
Release:        1%{?dist}
Summary:        Litestar - A production-ready, highly performant, extensible ASGI API Framework
License:        MIT
URL:            https://github.com/litestar-org/litestar
Source0:        %{url}/archive/refs/tags/v%{version}/%{name}-%{version}.tar.gz
BuildArch:      noarch

%description
Litestar is a production-ready, highly performant, extensible ASGI API Framework.
It offers a synchronous and asynchronous API for building REST APIs, WebSocket
endpoints, background tasks, and more, with first-class support for type hints,
dependency injection, OpenAPI schema generation, and plugin extensibility.


%package -n python3-%{pypi_name}
Summary:        Litestar - A production-ready, highly performant, extensible ASGI API Framework
Provides:       python-%{pypi_name}
Provides:       python3dist(%{pypi_name}) = %{version}
Provides:       python3.11dist(%{pypi_name}) = %{version}

# Build backend
BuildRequires:  python3-devel
BuildRequires:  python3-pip
BuildRequires:  pyproject-rpm-macros
BuildRequires:  python3-hatchling

# Runtime deps as BuildRequires (pyproject_build isolation needs importable deps)
BuildRequires:  python3-anyio >= 3
BuildRequires:  python3-httpx >= 0.22
BuildRequires:  python3-msgspec >= 0.18.2
BuildRequires:  python3-multidict >= 6.0.2
BuildRequires:  python3-polyfactory >= 2.6.3
BuildRequires:  python3-pyyaml
BuildRequires:  python3-typing-extensions
BuildRequires:  python3-click
BuildRequires:  python3-rich >= 13.0.0
BuildRequires:  python3-rich-click
BuildRequires:  python3-multipart >= 1.2.0
BuildRequires:  python3-sniffio >= 1.3.1
BuildRequires:  python3-litestar-htmx >= 0.4.0
# exceptiongroup only needed for python < 3.11; SP4 ships py3.11 so it is optional,
# kept here for parity with pyproject.toml [project.dependencies].
BuildRequires:  python3-exceptiongroup >= 1.2.2

# Runtime Requires intentionally omitted: pythondistdeps.py auto-generates
# python3.11dist(...) Requires from dist-info/METADATA after pyproject_install.

%description -n python3-%{pypi_name}
Litestar is a production-ready, highly performant, extensible ASGI API Framework.
It offers a synchronous and asynchronous API for building REST APIs, WebSocket
endpoints, background tasks, and more, with first-class support for type hints,
dependency injection, OpenAPI schema generation, and plugin extensibility.


%package help
Summary:        Development documents and examples for %{pypi_name}
Requires:       python3-%{pypi_name}
Provides:       python3-%{pypi_name}-doc
%description help
Development documents and examples for %{pypi_name}.


%prep
%autosetup -n %{name}-%{version} -p1


%build
%pyproject_build


%install
%pyproject_install


%files -n python3-%{pypi_name}
%license LICENSE
%{_bindir}/litestar
%{python3_sitelib}/litestar/
%{python3_sitelib}/litestar-%{version}*.dist-info/


%files help
%license LICENSE
%doc README.md


%changelog
* Mon Oct 26 2026 Python_Bot <Python_Bot@openeuler.org> - 2.25.0-1
- Initial package