summaryrefslogtreecommitdiff
path: root/python-pyserde.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-12 02:45:50 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-12 02:45:50 +0000
commit0601fff01f6a95c5eceb2085a16719e2f49e4a05 (patch)
treebe1108441292ff4e0c8c216e18f23a2f1cd727f2 /python-pyserde.spec
parentb6b38dd36398b0b17279598806c398aa1183f995 (diff)
automatic import of python-pyserde
Diffstat (limited to 'python-pyserde.spec')
-rw-r--r--python-pyserde.spec541
1 files changed, 541 insertions, 0 deletions
diff --git a/python-pyserde.spec b/python-pyserde.spec
new file mode 100644
index 0000000..6b264fb
--- /dev/null
+++ b/python-pyserde.spec
@@ -0,0 +1,541 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pyserde
+Version: 0.10.4
+Release: 1
+Summary: Yet another serialization library on top of dataclasses
+License: MIT
+URL: https://github.com/yukinarit/pyserde
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/51/16/f499d7c48777d4ae0d6ce0c0f980b27d461778dd61883ea2e22597ce475a/pyserde-0.10.4.tar.gz
+BuildArch: noarch
+
+Requires: python3-typing_inspect
+Requires: python3-typing_extensions
+Requires: python3-casefy
+Requires: python3-jinja2
+Requires: python3-msgpack
+Requires: python3-tomli
+Requires: python3-tomli-w
+Requires: python3-pyyaml
+Requires: python3-numpy
+Requires: python3-numpy
+Requires: python3-numpy
+Requires: python3-numpy
+Requires: python3-orjson
+
+%description
+<h1 align="center"><code>pyserde</code></h1>
+<p align="center">Yet another serialization library on top of <a href="https://docs.python.org/3/library/dataclasses.html">dataclasses</a>, inspired by <a href="https://github.com/serde-rs/serde">serde-rs</a>.</p>
+<p align="center">
+ <a href="https://pypi.org/project/pyserde/">
+ <img alt="pypi" src="https://img.shields.io/pypi/v/pyserde.svg">
+ </a>
+ <a href="https://pypi.org/project/pyserde/">
+ <img alt="pypi" src="https://img.shields.io/pypi/pyversions/pyserde.svg">
+ </a>
+ <a href="https://github.com/yukinarit/pyserde/actions/workflows/test.yml">
+ <img alt="GithubActions" src="https://github.com/yukinarit/pyserde/actions/workflows/test.yml/badge.svg">
+ </a>
+ <a href="https://codecov.io/gh/yukinarit/pyserde">
+ <img alt="CodeCov" src="https://codecov.io/gh/yukinarit/pyserde/branch/main/graph/badge.svg">
+ </a>
+</p>
+<p align="center">
+ <a href="https://yukinarit.github.io/pyserde/guide">Guide</a> | <a href="https://yukinarit.github.io/pyserde/api/serde.html">API Docs</a> | <a href="https://github.com/yukinarit/pyserde/tree/main/examples">Examples</a>
+</p>
+
+## Overview
+
+Declare a class with pyserde's `@serde` decorator.
+
+```python
+@serde
+@dataclass
+class Foo:
+ i: int
+ s: str
+ f: float
+ b: bool
+```
+
+You can serialize `Foo` object into JSON.
+
+```python
+>>> to_json(Foo(i=10, s='foo', f=100.0, b=True))
+'{"i":10,"s":"foo","f":100.0,"b":true}'
+```
+
+You can deserialize JSON into `Foo` object.
+```python
+>>> from_json(Foo, '{"i": 10, "s": "foo", "f": 100.0, "b": true}')
+Foo(i=10, s='foo', f=100.0, b=True)
+```
+
+## Features
+
+- Supported data formats
+ - dict
+ - tuple
+ - JSON
+ - Yaml
+ - Toml
+ - MsgPack
+ - Pickle
+- Supported types
+ - Primitives (`int`, `float`, `str`, `bool`)
+ - Containers
+ - `List`, `Set`, `Tuple`, `Dict`
+ - [`FrozenSet`](https://docs.python.org/3/library/stdtypes.html#frozenset), [`DefaultDict`](https://docs.python.org/3/library/collections.html#collections.defaultdict)
+ - [`typing.Optional`](https://docs.python.org/3/library/typing.html#typing.Optional)
+ - [`typing.Union`](https://docs.python.org/3/library/typing.html#typing.Union)
+ - User defined class with [`@dataclass`](https://docs.python.org/3/library/dataclasses.html)
+ - [`typing.NewType`](https://docs.python.org/3/library/typing.html#newtype) for primitive types
+ - [`typing.Any`](https://docs.python.org/3/library/typing.html#the-any-type)
+ - [`typing.Literal`](https://docs.python.org/3/library/typing.html#typing.Literal)
+ - [`typing.Generic`](https://docs.python.org/3/library/typing.html#user-defined-generic-types)
+ - [`typing.ClassVar`](https://docs.python.org/3/library/typing.html#user-defined-generic-type://docs.python.org/3/library/typing.html#typing.ClassVar)
+ - [`Enum`](https://docs.python.org/3/library/enum.html#enum.Enum) and [`IntEnum`](https://docs.python.org/3/library/enum.html#enum.IntEnum)
+ - Standard library
+ - [`pathlib.Path`](https://docs.python.org/3/library/pathlib.html)
+ - [`decimal.Decimal`](https://docs.python.org/3/library/decimal.html)
+ - [`uuid.UUID`](https://docs.python.org/3/library/uuid.html)
+ - [`datetime.date`](https://docs.python.org/3/library/datetime.html#date-objects), [`datetime.time`](https://docs.python.org/3/library/datetime.html#time-objects), [`datetime.datetime`](https://docs.python.org/3/library/datetime.html#datetime-objects)
+ - [`ipaddress`](https://docs.python.org/3/library/ipaddress.html)
+ - PyPI library
+ - [`numpy`](https://github.com/numpy/numpy) types
+- [Attributes](https://github.com/yukinarit/pyserde/blob/main/docs/features/attributes.md)
+- [Decorators](https://github.com/yukinarit/pyserde/blob/main/docs/features/decorators.md)
+- [TypeCheck](https://github.com/yukinarit/pyserde/blob/main/docs/features/type-check.md)
+- [Union Representation](https://github.com/yukinarit/pyserde/blob/main/docs/features/union.md)
+- [Python 3.10 Union operator](https://github.com/yukinarit/pyserde/blob/main/docs/features/union-operator.md)
+- [Python 3.9 type hinting](https://github.com/yukinarit/pyserde/blob/main/docs/features/python3.9-type-hinting.md)
+- [Postponed evaluation of type annotation](https://github.com/yukinarit/pyserde/blob/main/docs/features/postponed-evaluation-of-type-annotation.md)
+- [Forward reference](https://github.com/yukinarit/pyserde/blob/main/docs/features/forward-reference.md)
+- [Case Conversion](https://github.com/yukinarit/pyserde/blob/main/docs/features/case-conversion.md)
+- [Rename](https://github.com/yukinarit/pyserde/blob/main/docs/features/rename.md)
+- [Alias](https://github.com/yukinarit/pyserde/blob/main/docs/features/alias.md)
+- [Skip](https://github.com/yukinarit/pyserde/blob/main/docs/features/skip.md)
+- [Conditional Skip](https://github.com/yukinarit/pyserde/blob/main/docs/features/conditional-skip.md)
+- [Custom field (de)serializer](https://github.com/yukinarit/pyserde/blob/main/docs/features/custom-field-serializer.md)
+- [Custom class (de)serializer](https://github.com/yukinarit/pyserde/blob/main/docs/features/custom-class-serializer.md)
+- [Flatten](https://github.com/yukinarit/pyserde/blob/main/docs/features/flatten.md)
+
+## Contributors ✨
+
+Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
+
+<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
+<!-- prettier-ignore-start -->
+<!-- markdownlint-disable -->
+<table>
+ <tbody>
+ <tr>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/yukinarit"><img src="https://avatars.githubusercontent.com/u/2347533?v=4?s=60" width="60px;" alt="yukinarit"/><br /><sub><b>yukinarit</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=yukinarit" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/alexmisk"><img src="https://avatars.githubusercontent.com/u/4103218?v=4?s=60" width="60px;" alt="Alexander Miskaryan"/><br /><sub><b>Alexander Miskaryan</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=alexmisk" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ydylla"><img src="https://avatars.githubusercontent.com/u/17772145?v=4?s=60" width="60px;" alt="ydylla"/><br /><sub><b>ydylla</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=ydylla" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/kmsquire"><img src="https://avatars.githubusercontent.com/u/223250?v=4?s=60" width="60px;" alt="Kevin Squire"/><br /><sub><b>Kevin Squire</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=kmsquire" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="http://yushiomote.org/"><img src="https://avatars.githubusercontent.com/u/3733915?v=4?s=60" width="60px;" alt="Yushi OMOTE"/><br /><sub><b>Yushi OMOTE</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=YushiOMOTE" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://kngwyu.github.io/"><img src="https://avatars.githubusercontent.com/u/16046705?v=4?s=60" width="60px;" alt="Yuji Kanagawa"/><br /><sub><b>Yuji Kanagawa</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=kngwyu" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://kigawas.me/"><img src="https://avatars.githubusercontent.com/u/4182346?v=4?s=60" width="60px;" alt="Weiliang Li"/><br /><sub><b>Weiliang Li</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=kigawas" title="Code">πŸ’»</a></td>
+ </tr>
+ <tr>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mauvealerts"><img src="https://avatars.githubusercontent.com/u/51870303?v=4?s=60" width="60px;" alt="Mauve"/><br /><sub><b>Mauve</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=mauvealerts" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/adsharma"><img src="https://avatars.githubusercontent.com/u/658691?v=4?s=60" width="60px;" alt="adsharma"/><br /><sub><b>adsharma</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=adsharma" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/chagui"><img src="https://avatars.githubusercontent.com/u/1234128?v=4?s=60" width="60px;" alt="Guilhem C."/><br /><sub><b>Guilhem C.</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=chagui" title="Documentation">πŸ“–</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tardyp"><img src="https://avatars.githubusercontent.com/u/109859?v=4?s=60" width="60px;" alt="Pierre Tardy"/><br /><sub><b>Pierre Tardy</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=tardyp" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://blog.rnstlr.ch/"><img src="https://avatars.githubusercontent.com/u/1435346?v=4?s=60" width="60px;" alt="Raphael Nestler"/><br /><sub><b>Raphael Nestler</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=rnestler" title="Documentation">πŸ“–</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://pranavvp10.github.io/"><img src="https://avatars.githubusercontent.com/u/52486224?v=4?s=60" width="60px;" alt="Pranav V P"/><br /><sub><b>Pranav V P</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=pranavvp10" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://andreymal.org/"><img src="https://avatars.githubusercontent.com/u/3236464?v=4?s=60" width="60px;" alt="andreymal"/><br /><sub><b>andreymal</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=andreymal" title="Code">πŸ’»</a></td>
+ </tr>
+ <tr>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jfuechsl"><img src="https://avatars.githubusercontent.com/u/1097068?v=4?s=60" width="60px;" alt="Johann Fuechsl"/><br /><sub><b>Johann Fuechsl</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=jfuechsl" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/DoeringChristian"><img src="https://avatars.githubusercontent.com/u/23581448?v=4?s=60" width="60px;" alt="DoeringChristian"/><br /><sub><b>DoeringChristian</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=DoeringChristian" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="http://stuart.axelbrooke.com/"><img src="https://avatars.githubusercontent.com/u/2815794?v=4?s=60" width="60px;" alt="Stuart Axelbrooke"/><br /><sub><b>Stuart Axelbrooke</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=soaxelbrooke" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://kobzol.github.io/"><img src="https://avatars.githubusercontent.com/u/4539057?v=4?s=60" width="60px;" alt="Jakub BerΓ‘nek"/><br /><sub><b>Jakub BerΓ‘nek</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=Kobzol" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Fredrik-Reinholdsen"><img src="https://avatars.githubusercontent.com/u/11893023?v=4?s=60" width="60px;" alt="Fredrik Reinholdsen"/><br /><sub><b>Fredrik Reinholdsen</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=Fredrik-Reinholdsen" title="Code">πŸ’»</a></td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td align="center" size="13px" colspan="7">
+ <img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg">
+ <a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a>
+ </img>
+ </td>
+ </tr>
+ </tfoot>
+</table>
+
+<!-- markdownlint-restore -->
+<!-- prettier-ignore-end -->
+
+<!-- ALL-CONTRIBUTORS-LIST:END -->
+
+This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
+
+## LICENSE
+
+This project is licensed under the [MIT license](https://github.com/yukinarit/pyserde/blob/main/LICENSE).
+
+
+%package -n python3-pyserde
+Summary: Yet another serialization library on top of dataclasses
+Provides: python-pyserde
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pyserde
+<h1 align="center"><code>pyserde</code></h1>
+<p align="center">Yet another serialization library on top of <a href="https://docs.python.org/3/library/dataclasses.html">dataclasses</a>, inspired by <a href="https://github.com/serde-rs/serde">serde-rs</a>.</p>
+<p align="center">
+ <a href="https://pypi.org/project/pyserde/">
+ <img alt="pypi" src="https://img.shields.io/pypi/v/pyserde.svg">
+ </a>
+ <a href="https://pypi.org/project/pyserde/">
+ <img alt="pypi" src="https://img.shields.io/pypi/pyversions/pyserde.svg">
+ </a>
+ <a href="https://github.com/yukinarit/pyserde/actions/workflows/test.yml">
+ <img alt="GithubActions" src="https://github.com/yukinarit/pyserde/actions/workflows/test.yml/badge.svg">
+ </a>
+ <a href="https://codecov.io/gh/yukinarit/pyserde">
+ <img alt="CodeCov" src="https://codecov.io/gh/yukinarit/pyserde/branch/main/graph/badge.svg">
+ </a>
+</p>
+<p align="center">
+ <a href="https://yukinarit.github.io/pyserde/guide">Guide</a> | <a href="https://yukinarit.github.io/pyserde/api/serde.html">API Docs</a> | <a href="https://github.com/yukinarit/pyserde/tree/main/examples">Examples</a>
+</p>
+
+## Overview
+
+Declare a class with pyserde's `@serde` decorator.
+
+```python
+@serde
+@dataclass
+class Foo:
+ i: int
+ s: str
+ f: float
+ b: bool
+```
+
+You can serialize `Foo` object into JSON.
+
+```python
+>>> to_json(Foo(i=10, s='foo', f=100.0, b=True))
+'{"i":10,"s":"foo","f":100.0,"b":true}'
+```
+
+You can deserialize JSON into `Foo` object.
+```python
+>>> from_json(Foo, '{"i": 10, "s": "foo", "f": 100.0, "b": true}')
+Foo(i=10, s='foo', f=100.0, b=True)
+```
+
+## Features
+
+- Supported data formats
+ - dict
+ - tuple
+ - JSON
+ - Yaml
+ - Toml
+ - MsgPack
+ - Pickle
+- Supported types
+ - Primitives (`int`, `float`, `str`, `bool`)
+ - Containers
+ - `List`, `Set`, `Tuple`, `Dict`
+ - [`FrozenSet`](https://docs.python.org/3/library/stdtypes.html#frozenset), [`DefaultDict`](https://docs.python.org/3/library/collections.html#collections.defaultdict)
+ - [`typing.Optional`](https://docs.python.org/3/library/typing.html#typing.Optional)
+ - [`typing.Union`](https://docs.python.org/3/library/typing.html#typing.Union)
+ - User defined class with [`@dataclass`](https://docs.python.org/3/library/dataclasses.html)
+ - [`typing.NewType`](https://docs.python.org/3/library/typing.html#newtype) for primitive types
+ - [`typing.Any`](https://docs.python.org/3/library/typing.html#the-any-type)
+ - [`typing.Literal`](https://docs.python.org/3/library/typing.html#typing.Literal)
+ - [`typing.Generic`](https://docs.python.org/3/library/typing.html#user-defined-generic-types)
+ - [`typing.ClassVar`](https://docs.python.org/3/library/typing.html#user-defined-generic-type://docs.python.org/3/library/typing.html#typing.ClassVar)
+ - [`Enum`](https://docs.python.org/3/library/enum.html#enum.Enum) and [`IntEnum`](https://docs.python.org/3/library/enum.html#enum.IntEnum)
+ - Standard library
+ - [`pathlib.Path`](https://docs.python.org/3/library/pathlib.html)
+ - [`decimal.Decimal`](https://docs.python.org/3/library/decimal.html)
+ - [`uuid.UUID`](https://docs.python.org/3/library/uuid.html)
+ - [`datetime.date`](https://docs.python.org/3/library/datetime.html#date-objects), [`datetime.time`](https://docs.python.org/3/library/datetime.html#time-objects), [`datetime.datetime`](https://docs.python.org/3/library/datetime.html#datetime-objects)
+ - [`ipaddress`](https://docs.python.org/3/library/ipaddress.html)
+ - PyPI library
+ - [`numpy`](https://github.com/numpy/numpy) types
+- [Attributes](https://github.com/yukinarit/pyserde/blob/main/docs/features/attributes.md)
+- [Decorators](https://github.com/yukinarit/pyserde/blob/main/docs/features/decorators.md)
+- [TypeCheck](https://github.com/yukinarit/pyserde/blob/main/docs/features/type-check.md)
+- [Union Representation](https://github.com/yukinarit/pyserde/blob/main/docs/features/union.md)
+- [Python 3.10 Union operator](https://github.com/yukinarit/pyserde/blob/main/docs/features/union-operator.md)
+- [Python 3.9 type hinting](https://github.com/yukinarit/pyserde/blob/main/docs/features/python3.9-type-hinting.md)
+- [Postponed evaluation of type annotation](https://github.com/yukinarit/pyserde/blob/main/docs/features/postponed-evaluation-of-type-annotation.md)
+- [Forward reference](https://github.com/yukinarit/pyserde/blob/main/docs/features/forward-reference.md)
+- [Case Conversion](https://github.com/yukinarit/pyserde/blob/main/docs/features/case-conversion.md)
+- [Rename](https://github.com/yukinarit/pyserde/blob/main/docs/features/rename.md)
+- [Alias](https://github.com/yukinarit/pyserde/blob/main/docs/features/alias.md)
+- [Skip](https://github.com/yukinarit/pyserde/blob/main/docs/features/skip.md)
+- [Conditional Skip](https://github.com/yukinarit/pyserde/blob/main/docs/features/conditional-skip.md)
+- [Custom field (de)serializer](https://github.com/yukinarit/pyserde/blob/main/docs/features/custom-field-serializer.md)
+- [Custom class (de)serializer](https://github.com/yukinarit/pyserde/blob/main/docs/features/custom-class-serializer.md)
+- [Flatten](https://github.com/yukinarit/pyserde/blob/main/docs/features/flatten.md)
+
+## Contributors ✨
+
+Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
+
+<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
+<!-- prettier-ignore-start -->
+<!-- markdownlint-disable -->
+<table>
+ <tbody>
+ <tr>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/yukinarit"><img src="https://avatars.githubusercontent.com/u/2347533?v=4?s=60" width="60px;" alt="yukinarit"/><br /><sub><b>yukinarit</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=yukinarit" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/alexmisk"><img src="https://avatars.githubusercontent.com/u/4103218?v=4?s=60" width="60px;" alt="Alexander Miskaryan"/><br /><sub><b>Alexander Miskaryan</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=alexmisk" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ydylla"><img src="https://avatars.githubusercontent.com/u/17772145?v=4?s=60" width="60px;" alt="ydylla"/><br /><sub><b>ydylla</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=ydylla" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/kmsquire"><img src="https://avatars.githubusercontent.com/u/223250?v=4?s=60" width="60px;" alt="Kevin Squire"/><br /><sub><b>Kevin Squire</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=kmsquire" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="http://yushiomote.org/"><img src="https://avatars.githubusercontent.com/u/3733915?v=4?s=60" width="60px;" alt="Yushi OMOTE"/><br /><sub><b>Yushi OMOTE</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=YushiOMOTE" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://kngwyu.github.io/"><img src="https://avatars.githubusercontent.com/u/16046705?v=4?s=60" width="60px;" alt="Yuji Kanagawa"/><br /><sub><b>Yuji Kanagawa</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=kngwyu" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://kigawas.me/"><img src="https://avatars.githubusercontent.com/u/4182346?v=4?s=60" width="60px;" alt="Weiliang Li"/><br /><sub><b>Weiliang Li</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=kigawas" title="Code">πŸ’»</a></td>
+ </tr>
+ <tr>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mauvealerts"><img src="https://avatars.githubusercontent.com/u/51870303?v=4?s=60" width="60px;" alt="Mauve"/><br /><sub><b>Mauve</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=mauvealerts" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/adsharma"><img src="https://avatars.githubusercontent.com/u/658691?v=4?s=60" width="60px;" alt="adsharma"/><br /><sub><b>adsharma</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=adsharma" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/chagui"><img src="https://avatars.githubusercontent.com/u/1234128?v=4?s=60" width="60px;" alt="Guilhem C."/><br /><sub><b>Guilhem C.</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=chagui" title="Documentation">πŸ“–</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tardyp"><img src="https://avatars.githubusercontent.com/u/109859?v=4?s=60" width="60px;" alt="Pierre Tardy"/><br /><sub><b>Pierre Tardy</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=tardyp" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://blog.rnstlr.ch/"><img src="https://avatars.githubusercontent.com/u/1435346?v=4?s=60" width="60px;" alt="Raphael Nestler"/><br /><sub><b>Raphael Nestler</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=rnestler" title="Documentation">πŸ“–</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://pranavvp10.github.io/"><img src="https://avatars.githubusercontent.com/u/52486224?v=4?s=60" width="60px;" alt="Pranav V P"/><br /><sub><b>Pranav V P</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=pranavvp10" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://andreymal.org/"><img src="https://avatars.githubusercontent.com/u/3236464?v=4?s=60" width="60px;" alt="andreymal"/><br /><sub><b>andreymal</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=andreymal" title="Code">πŸ’»</a></td>
+ </tr>
+ <tr>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jfuechsl"><img src="https://avatars.githubusercontent.com/u/1097068?v=4?s=60" width="60px;" alt="Johann Fuechsl"/><br /><sub><b>Johann Fuechsl</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=jfuechsl" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/DoeringChristian"><img src="https://avatars.githubusercontent.com/u/23581448?v=4?s=60" width="60px;" alt="DoeringChristian"/><br /><sub><b>DoeringChristian</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=DoeringChristian" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="http://stuart.axelbrooke.com/"><img src="https://avatars.githubusercontent.com/u/2815794?v=4?s=60" width="60px;" alt="Stuart Axelbrooke"/><br /><sub><b>Stuart Axelbrooke</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=soaxelbrooke" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://kobzol.github.io/"><img src="https://avatars.githubusercontent.com/u/4539057?v=4?s=60" width="60px;" alt="Jakub BerΓ‘nek"/><br /><sub><b>Jakub BerΓ‘nek</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=Kobzol" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Fredrik-Reinholdsen"><img src="https://avatars.githubusercontent.com/u/11893023?v=4?s=60" width="60px;" alt="Fredrik Reinholdsen"/><br /><sub><b>Fredrik Reinholdsen</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=Fredrik-Reinholdsen" title="Code">πŸ’»</a></td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td align="center" size="13px" colspan="7">
+ <img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg">
+ <a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a>
+ </img>
+ </td>
+ </tr>
+ </tfoot>
+</table>
+
+<!-- markdownlint-restore -->
+<!-- prettier-ignore-end -->
+
+<!-- ALL-CONTRIBUTORS-LIST:END -->
+
+This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
+
+## LICENSE
+
+This project is licensed under the [MIT license](https://github.com/yukinarit/pyserde/blob/main/LICENSE).
+
+
+%package help
+Summary: Development documents and examples for pyserde
+Provides: python3-pyserde-doc
+%description help
+<h1 align="center"><code>pyserde</code></h1>
+<p align="center">Yet another serialization library on top of <a href="https://docs.python.org/3/library/dataclasses.html">dataclasses</a>, inspired by <a href="https://github.com/serde-rs/serde">serde-rs</a>.</p>
+<p align="center">
+ <a href="https://pypi.org/project/pyserde/">
+ <img alt="pypi" src="https://img.shields.io/pypi/v/pyserde.svg">
+ </a>
+ <a href="https://pypi.org/project/pyserde/">
+ <img alt="pypi" src="https://img.shields.io/pypi/pyversions/pyserde.svg">
+ </a>
+ <a href="https://github.com/yukinarit/pyserde/actions/workflows/test.yml">
+ <img alt="GithubActions" src="https://github.com/yukinarit/pyserde/actions/workflows/test.yml/badge.svg">
+ </a>
+ <a href="https://codecov.io/gh/yukinarit/pyserde">
+ <img alt="CodeCov" src="https://codecov.io/gh/yukinarit/pyserde/branch/main/graph/badge.svg">
+ </a>
+</p>
+<p align="center">
+ <a href="https://yukinarit.github.io/pyserde/guide">Guide</a> | <a href="https://yukinarit.github.io/pyserde/api/serde.html">API Docs</a> | <a href="https://github.com/yukinarit/pyserde/tree/main/examples">Examples</a>
+</p>
+
+## Overview
+
+Declare a class with pyserde's `@serde` decorator.
+
+```python
+@serde
+@dataclass
+class Foo:
+ i: int
+ s: str
+ f: float
+ b: bool
+```
+
+You can serialize `Foo` object into JSON.
+
+```python
+>>> to_json(Foo(i=10, s='foo', f=100.0, b=True))
+'{"i":10,"s":"foo","f":100.0,"b":true}'
+```
+
+You can deserialize JSON into `Foo` object.
+```python
+>>> from_json(Foo, '{"i": 10, "s": "foo", "f": 100.0, "b": true}')
+Foo(i=10, s='foo', f=100.0, b=True)
+```
+
+## Features
+
+- Supported data formats
+ - dict
+ - tuple
+ - JSON
+ - Yaml
+ - Toml
+ - MsgPack
+ - Pickle
+- Supported types
+ - Primitives (`int`, `float`, `str`, `bool`)
+ - Containers
+ - `List`, `Set`, `Tuple`, `Dict`
+ - [`FrozenSet`](https://docs.python.org/3/library/stdtypes.html#frozenset), [`DefaultDict`](https://docs.python.org/3/library/collections.html#collections.defaultdict)
+ - [`typing.Optional`](https://docs.python.org/3/library/typing.html#typing.Optional)
+ - [`typing.Union`](https://docs.python.org/3/library/typing.html#typing.Union)
+ - User defined class with [`@dataclass`](https://docs.python.org/3/library/dataclasses.html)
+ - [`typing.NewType`](https://docs.python.org/3/library/typing.html#newtype) for primitive types
+ - [`typing.Any`](https://docs.python.org/3/library/typing.html#the-any-type)
+ - [`typing.Literal`](https://docs.python.org/3/library/typing.html#typing.Literal)
+ - [`typing.Generic`](https://docs.python.org/3/library/typing.html#user-defined-generic-types)
+ - [`typing.ClassVar`](https://docs.python.org/3/library/typing.html#user-defined-generic-type://docs.python.org/3/library/typing.html#typing.ClassVar)
+ - [`Enum`](https://docs.python.org/3/library/enum.html#enum.Enum) and [`IntEnum`](https://docs.python.org/3/library/enum.html#enum.IntEnum)
+ - Standard library
+ - [`pathlib.Path`](https://docs.python.org/3/library/pathlib.html)
+ - [`decimal.Decimal`](https://docs.python.org/3/library/decimal.html)
+ - [`uuid.UUID`](https://docs.python.org/3/library/uuid.html)
+ - [`datetime.date`](https://docs.python.org/3/library/datetime.html#date-objects), [`datetime.time`](https://docs.python.org/3/library/datetime.html#time-objects), [`datetime.datetime`](https://docs.python.org/3/library/datetime.html#datetime-objects)
+ - [`ipaddress`](https://docs.python.org/3/library/ipaddress.html)
+ - PyPI library
+ - [`numpy`](https://github.com/numpy/numpy) types
+- [Attributes](https://github.com/yukinarit/pyserde/blob/main/docs/features/attributes.md)
+- [Decorators](https://github.com/yukinarit/pyserde/blob/main/docs/features/decorators.md)
+- [TypeCheck](https://github.com/yukinarit/pyserde/blob/main/docs/features/type-check.md)
+- [Union Representation](https://github.com/yukinarit/pyserde/blob/main/docs/features/union.md)
+- [Python 3.10 Union operator](https://github.com/yukinarit/pyserde/blob/main/docs/features/union-operator.md)
+- [Python 3.9 type hinting](https://github.com/yukinarit/pyserde/blob/main/docs/features/python3.9-type-hinting.md)
+- [Postponed evaluation of type annotation](https://github.com/yukinarit/pyserde/blob/main/docs/features/postponed-evaluation-of-type-annotation.md)
+- [Forward reference](https://github.com/yukinarit/pyserde/blob/main/docs/features/forward-reference.md)
+- [Case Conversion](https://github.com/yukinarit/pyserde/blob/main/docs/features/case-conversion.md)
+- [Rename](https://github.com/yukinarit/pyserde/blob/main/docs/features/rename.md)
+- [Alias](https://github.com/yukinarit/pyserde/blob/main/docs/features/alias.md)
+- [Skip](https://github.com/yukinarit/pyserde/blob/main/docs/features/skip.md)
+- [Conditional Skip](https://github.com/yukinarit/pyserde/blob/main/docs/features/conditional-skip.md)
+- [Custom field (de)serializer](https://github.com/yukinarit/pyserde/blob/main/docs/features/custom-field-serializer.md)
+- [Custom class (de)serializer](https://github.com/yukinarit/pyserde/blob/main/docs/features/custom-class-serializer.md)
+- [Flatten](https://github.com/yukinarit/pyserde/blob/main/docs/features/flatten.md)
+
+## Contributors ✨
+
+Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
+
+<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
+<!-- prettier-ignore-start -->
+<!-- markdownlint-disable -->
+<table>
+ <tbody>
+ <tr>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/yukinarit"><img src="https://avatars.githubusercontent.com/u/2347533?v=4?s=60" width="60px;" alt="yukinarit"/><br /><sub><b>yukinarit</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=yukinarit" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/alexmisk"><img src="https://avatars.githubusercontent.com/u/4103218?v=4?s=60" width="60px;" alt="Alexander Miskaryan"/><br /><sub><b>Alexander Miskaryan</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=alexmisk" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ydylla"><img src="https://avatars.githubusercontent.com/u/17772145?v=4?s=60" width="60px;" alt="ydylla"/><br /><sub><b>ydylla</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=ydylla" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/kmsquire"><img src="https://avatars.githubusercontent.com/u/223250?v=4?s=60" width="60px;" alt="Kevin Squire"/><br /><sub><b>Kevin Squire</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=kmsquire" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="http://yushiomote.org/"><img src="https://avatars.githubusercontent.com/u/3733915?v=4?s=60" width="60px;" alt="Yushi OMOTE"/><br /><sub><b>Yushi OMOTE</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=YushiOMOTE" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://kngwyu.github.io/"><img src="https://avatars.githubusercontent.com/u/16046705?v=4?s=60" width="60px;" alt="Yuji Kanagawa"/><br /><sub><b>Yuji Kanagawa</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=kngwyu" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://kigawas.me/"><img src="https://avatars.githubusercontent.com/u/4182346?v=4?s=60" width="60px;" alt="Weiliang Li"/><br /><sub><b>Weiliang Li</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=kigawas" title="Code">πŸ’»</a></td>
+ </tr>
+ <tr>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mauvealerts"><img src="https://avatars.githubusercontent.com/u/51870303?v=4?s=60" width="60px;" alt="Mauve"/><br /><sub><b>Mauve</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=mauvealerts" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/adsharma"><img src="https://avatars.githubusercontent.com/u/658691?v=4?s=60" width="60px;" alt="adsharma"/><br /><sub><b>adsharma</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=adsharma" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/chagui"><img src="https://avatars.githubusercontent.com/u/1234128?v=4?s=60" width="60px;" alt="Guilhem C."/><br /><sub><b>Guilhem C.</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=chagui" title="Documentation">πŸ“–</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tardyp"><img src="https://avatars.githubusercontent.com/u/109859?v=4?s=60" width="60px;" alt="Pierre Tardy"/><br /><sub><b>Pierre Tardy</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=tardyp" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://blog.rnstlr.ch/"><img src="https://avatars.githubusercontent.com/u/1435346?v=4?s=60" width="60px;" alt="Raphael Nestler"/><br /><sub><b>Raphael Nestler</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=rnestler" title="Documentation">πŸ“–</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://pranavvp10.github.io/"><img src="https://avatars.githubusercontent.com/u/52486224?v=4?s=60" width="60px;" alt="Pranav V P"/><br /><sub><b>Pranav V P</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=pranavvp10" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://andreymal.org/"><img src="https://avatars.githubusercontent.com/u/3236464?v=4?s=60" width="60px;" alt="andreymal"/><br /><sub><b>andreymal</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=andreymal" title="Code">πŸ’»</a></td>
+ </tr>
+ <tr>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jfuechsl"><img src="https://avatars.githubusercontent.com/u/1097068?v=4?s=60" width="60px;" alt="Johann Fuechsl"/><br /><sub><b>Johann Fuechsl</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=jfuechsl" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/DoeringChristian"><img src="https://avatars.githubusercontent.com/u/23581448?v=4?s=60" width="60px;" alt="DoeringChristian"/><br /><sub><b>DoeringChristian</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=DoeringChristian" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="http://stuart.axelbrooke.com/"><img src="https://avatars.githubusercontent.com/u/2815794?v=4?s=60" width="60px;" alt="Stuart Axelbrooke"/><br /><sub><b>Stuart Axelbrooke</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=soaxelbrooke" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://kobzol.github.io/"><img src="https://avatars.githubusercontent.com/u/4539057?v=4?s=60" width="60px;" alt="Jakub BerΓ‘nek"/><br /><sub><b>Jakub BerΓ‘nek</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=Kobzol" title="Code">πŸ’»</a></td>
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Fredrik-Reinholdsen"><img src="https://avatars.githubusercontent.com/u/11893023?v=4?s=60" width="60px;" alt="Fredrik Reinholdsen"/><br /><sub><b>Fredrik Reinholdsen</b></sub></a><br /><a href="https://github.com/yukinarit/pyserde/commits?author=Fredrik-Reinholdsen" title="Code">πŸ’»</a></td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td align="center" size="13px" colspan="7">
+ <img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg">
+ <a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a>
+ </img>
+ </td>
+ </tr>
+ </tfoot>
+</table>
+
+<!-- markdownlint-restore -->
+<!-- prettier-ignore-end -->
+
+<!-- ALL-CONTRIBUTORS-LIST:END -->
+
+This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
+
+## LICENSE
+
+This project is licensed under the [MIT license](https://github.com/yukinarit/pyserde/blob/main/LICENSE).
+
+
+%prep
+%autosetup -n pyserde-0.10.4
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-pyserde -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 0.10.4-1
+- Package Spec generated