summaryrefslogtreecommitdiff
path: root/msgspec.spec
blob: 3fed6e62ebc96c77b585ffb2d03868e6a7d3b69f (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
%global pypi_name msgspec

# topdir: msgspec-0.22.0 (verified via tar tf)

Name:           python-%{pypi_name}
Version:        0.22.0
Release:        1%{?dist}
Summary:        A fast serialization and validation library with builtin support for JSON, MessagePack, YAML, and TOML
License:        BSD-3-Clause
URL:            https://github.com/jcrist/msgspec
Source0:        https://github.com/jcrist/msgspec/archive/v%{version}/%{pypi_name}-%{version}.tar.gz

%description
msgspec is a fast serialization and validation library, with builtin support
for JSON, MessagePack, YAML, and TOML. It features high performance
encoders/decoders for common protocols, support for a wide variety of Python
types, zero-cost schema validation using familiar Python type annotations, and
a speedy Struct type for representing structured data.

%package -n python3-%{pypi_name}
Summary:        A fast serialization and validation library with builtin support for JSON, MessagePack, YAML, and TOML
Provides:       python-%{pypi_name}
Provides:       python3dist(%{pypi_name}) = %{version}
BuildRequires:  python3-devel
BuildRequires:  python3-setuptools
BuildRequires:  python3-pip
BuildRequires:  python3-wheel
BuildRequires:  gcc

%description -n python3-%{pypi_name}
msgspec is a fast serialization and validation library, with builtin support
for JSON, MessagePack, YAML, and TOML. It features high performance
encoders/decoders for common protocols, support for a wide variety of Python
types, zero-cost schema validation using familiar Python type annotations, and
a speedy Struct type for representing structured data.

%package help
Summary:        Development documents and examples for %{pypi_name}
Provides:       python3-%{pypi_name}-doc
%description help
msgspec is a fast serialization and validation library, with builtin support
for JSON, MessagePack, YAML, and TOML.

This package provides development documents and examples for msgspec.

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

# Patch out setuptools-scm (not available in openEuler chroot toolchain).
# setuptools-scm is a build toolchain tool that cannot be introduced via
# dep_registry. Instead, make the version static and pre-generate _version.py.
# Remove setuptools-scm from build-system.requires
sed -i '/setuptools-scm/d' pyproject.toml
# Replace dynamic version with static version
sed -i '/^dynamic = \[/,/^]/c\version = "%{version}"' pyproject.toml
# Remove [tool.setuptools_scm] section
sed -i '/^\[tool.setuptools_scm\]$/,/^parentdir_prefix_version/d' pyproject.toml
# Fix license format for setuptools < 77 compatibility
sed -i 's/^license = "BSD-3-Clause"/license = {text = "BSD-3-Clause"}/' pyproject.toml
sed -i '/^license-files = \[/,/^]/d' pyproject.toml
# Pre-generate _version.py (normally created by setuptools-scm)
echo '__version__ = "%{version}"' > src/msgspec/_version.py

%build
%define _lto_cflags %{nil}
%undefine _hardened_build
%py3_build

%install
%py3_install

%files -n python3-%{pypi_name}
%license LICENSE
%{python3_sitearch}/msgspec/
%{python3_sitearch}/msgspec-%{version}*.egg-info/

%files help
%doc README.md

%changelog
* Thu Oct 29 2026 Python_Bot <Python_Bot@openeuler.org> - 0.22.0-1
- Initial package