diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-05 06:21:40 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-05 06:21:40 +0000 |
| commit | f230eedda75214371b5956ea50dc7b3f2ffcb223 (patch) | |
| tree | a160d9101e0ff38affd05112abac0549e5c9be33 | |
| parent | 435b28348c7a8a0a79f78931e33f286d23203f86 (diff) | |
automatic import of python-jsonclassesopeneuler20.03
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-jsonclasses.spec | 317 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 319 insertions, 0 deletions
@@ -0,0 +1 @@ +/jsonclasses-3.3.0.tar.gz diff --git a/python-jsonclasses.spec b/python-jsonclasses.spec new file mode 100644 index 0000000..f317107 --- /dev/null +++ b/python-jsonclasses.spec @@ -0,0 +1,317 @@ +%global _empty_manifest_terminate_build 0 +Name: python-jsonclasses +Version: 3.3.0 +Release: 1 +Summary: The modern declarative data flow pipeline and data graph framework for the AI empowered generation. +License: MIT +URL: https://github.com/fillmula/jsonclasses +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/dc/f0/fc150b64dc78b2514437dc1cc5b5bcf26adc81c389a37eab29f88974e731/jsonclasses-3.3.0.tar.gz +BuildArch: noarch + +Requires: python3-inflection-plus +Requires: python3-bcrypt + +%description +JSONClasses is a declarative data flow pipeline and data graph framework. +Official Website: https://www.jsonclasses.com +Official Documentation: https://docs.jsonclasses.com +## ๐ Features +| | **Features**| +| --- | ----------------------------------------------------------------------------------| +| ๐ | **Data Modeling** Declarative data model with Python type hints | +| ๐ธ | **Data Sanitization** Two strictness modes | +| ๐ฉบ | **Data Validation** Descriptive data validation rules without even a line of code | +| ๐งฌ | **Data Transformation** Intuitive with modifier pipelines | +| ๐ฆ | **Data Presentation** Custom key encoding & decoding strategies | +| ๐ | **Data Graphing** Models are linked with each other on the same graph | +| ๐โโ๏ธ | **Data Querying** Well-designed protocols and implementations for databases | +| ๐ | **Synthesized CRUD** Only with a line of code | +| ๐ฎโโ๏ธ | **Session & Authorization** Builtin support for session and authorization | +| ๐ | **Permission System** Supports both object level and field level | +| ๐ | **File Uploading** A configuration is enough for file uploading | +| ๐ฆ | **Data Seeder** Declarative named graph relationship | +## ๐ Getting Started +### Prerequisites +[Python >= 3.10](https://www.python.org) is required. You can download it [here](https://www.python.org/downloads/). +### Install JSONClasses +Install JSONClasses is simple with `pip`. +```sh +pip install jsonclasses +``` +### Install Components +Depends on your need, you can install ORM integration and HTTP library integration with the following commands. +```sh +pip install jsonclasses-pymongo jsonclasses-server +``` +## ๐น Examples +## Business Logic Examples +### Example 1: Dating App Users +Let's say, you are building the base user functionality for a cross-platform +dating app. +The product requirements are: +1. Unique phone number is required +2. Password should be secure, encrypted, hidden from response +3. Gender cannot be changed after set +4. This product is adult only +5. User intro should be brief +Let's transform the requirements into code. +```python +from jsonclasses import jsonclass, types +from jsonclasses_pymongo import pymongo +from jsonclasses_server import api +@api +@pymongo +@jsonclass +class User: + id: str = types.readonly.str.primary.mongoid.required + phone_no: str = types.str.unique.index.match(local_phone_no_regex).required #1 + email: str = types.str.match(email_regex) + password: str = types.str.writeonly.length(8, 16).match(secure_password_regex).transform(salt).required #2 + nickname: str = types.str.required + gender: str = types.str.writeonce.oneof(['male', 'female']) #3 + age: int = types.int.min(18).max(100) #4 + intro: str = types.str.truncate(500) #5 + created_at: datetime = types.readonly.datetime.tscreated.required + updated_at: datetime = types.readonly.datetime.tsupdated.required +``` +## โฝ๏ธ Database & HTTP Library Integrations +* [JSON Classes Pymongo](https://github.com/fillmula/jsonclasses-pymongo) +The mongodb integration through pymongo driver. +* [JSON Classes Server](https://github.com/fillmula/jsonclasses-server) +The server integration. +## ๐ฆธ Contributing +* File a [bug report](https://github.com/fillmula/jsonclasses/issues/new). Be sure to include information like what version of YoMo you are using, what your operating system is, and steps to recreate the bug. +* Suggest a new feature. +## ๐คน๐ปโโ๏ธ Feedback +Any questions or good ideas, please feel free to come to our Discussion. Any feedback would be greatly appreciated! +## License +[MIT License](https://github.com/fillmula/jsonclasses/blob/master/LICENSE) +[pypi-image]: https://img.shields.io/pypi/v/jsonclasses.svg?style=flat-square +[pypi-url]: https://pypi.org/project/jsonclasses/ +[python-image]: https://img.shields.io/pypi/pyversions/jsonclasses?style=flat-square +[python-url]: https://pypi.org/project/jsonclasses/ +[license-image]: https://img.shields.io/github/license/fillmula/jsonclasses.svg?style=flat-square +[license-url]: https://github.com/fillmula/jsonclasses/blob/master/LICENSE +[pr-image]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square +[pr-url]: https://github.com/fillmula/jsonclasses + +%package -n python3-jsonclasses +Summary: The modern declarative data flow pipeline and data graph framework for the AI empowered generation. +Provides: python-jsonclasses +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-jsonclasses +JSONClasses is a declarative data flow pipeline and data graph framework. +Official Website: https://www.jsonclasses.com +Official Documentation: https://docs.jsonclasses.com +## ๐ Features +| | **Features**| +| --- | ----------------------------------------------------------------------------------| +| ๐ | **Data Modeling** Declarative data model with Python type hints | +| ๐ธ | **Data Sanitization** Two strictness modes | +| ๐ฉบ | **Data Validation** Descriptive data validation rules without even a line of code | +| ๐งฌ | **Data Transformation** Intuitive with modifier pipelines | +| ๐ฆ | **Data Presentation** Custom key encoding & decoding strategies | +| ๐ | **Data Graphing** Models are linked with each other on the same graph | +| ๐โโ๏ธ | **Data Querying** Well-designed protocols and implementations for databases | +| ๐ | **Synthesized CRUD** Only with a line of code | +| ๐ฎโโ๏ธ | **Session & Authorization** Builtin support for session and authorization | +| ๐ | **Permission System** Supports both object level and field level | +| ๐ | **File Uploading** A configuration is enough for file uploading | +| ๐ฆ | **Data Seeder** Declarative named graph relationship | +## ๐ Getting Started +### Prerequisites +[Python >= 3.10](https://www.python.org) is required. You can download it [here](https://www.python.org/downloads/). +### Install JSONClasses +Install JSONClasses is simple with `pip`. +```sh +pip install jsonclasses +``` +### Install Components +Depends on your need, you can install ORM integration and HTTP library integration with the following commands. +```sh +pip install jsonclasses-pymongo jsonclasses-server +``` +## ๐น Examples +## Business Logic Examples +### Example 1: Dating App Users +Let's say, you are building the base user functionality for a cross-platform +dating app. +The product requirements are: +1. Unique phone number is required +2. Password should be secure, encrypted, hidden from response +3. Gender cannot be changed after set +4. This product is adult only +5. User intro should be brief +Let's transform the requirements into code. +```python +from jsonclasses import jsonclass, types +from jsonclasses_pymongo import pymongo +from jsonclasses_server import api +@api +@pymongo +@jsonclass +class User: + id: str = types.readonly.str.primary.mongoid.required + phone_no: str = types.str.unique.index.match(local_phone_no_regex).required #1 + email: str = types.str.match(email_regex) + password: str = types.str.writeonly.length(8, 16).match(secure_password_regex).transform(salt).required #2 + nickname: str = types.str.required + gender: str = types.str.writeonce.oneof(['male', 'female']) #3 + age: int = types.int.min(18).max(100) #4 + intro: str = types.str.truncate(500) #5 + created_at: datetime = types.readonly.datetime.tscreated.required + updated_at: datetime = types.readonly.datetime.tsupdated.required +``` +## โฝ๏ธ Database & HTTP Library Integrations +* [JSON Classes Pymongo](https://github.com/fillmula/jsonclasses-pymongo) +The mongodb integration through pymongo driver. +* [JSON Classes Server](https://github.com/fillmula/jsonclasses-server) +The server integration. +## ๐ฆธ Contributing +* File a [bug report](https://github.com/fillmula/jsonclasses/issues/new). Be sure to include information like what version of YoMo you are using, what your operating system is, and steps to recreate the bug. +* Suggest a new feature. +## ๐คน๐ปโโ๏ธ Feedback +Any questions or good ideas, please feel free to come to our Discussion. Any feedback would be greatly appreciated! +## License +[MIT License](https://github.com/fillmula/jsonclasses/blob/master/LICENSE) +[pypi-image]: https://img.shields.io/pypi/v/jsonclasses.svg?style=flat-square +[pypi-url]: https://pypi.org/project/jsonclasses/ +[python-image]: https://img.shields.io/pypi/pyversions/jsonclasses?style=flat-square +[python-url]: https://pypi.org/project/jsonclasses/ +[license-image]: https://img.shields.io/github/license/fillmula/jsonclasses.svg?style=flat-square +[license-url]: https://github.com/fillmula/jsonclasses/blob/master/LICENSE +[pr-image]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square +[pr-url]: https://github.com/fillmula/jsonclasses + +%package help +Summary: Development documents and examples for jsonclasses +Provides: python3-jsonclasses-doc +%description help +JSONClasses is a declarative data flow pipeline and data graph framework. +Official Website: https://www.jsonclasses.com +Official Documentation: https://docs.jsonclasses.com +## ๐ Features +| | **Features**| +| --- | ----------------------------------------------------------------------------------| +| ๐ | **Data Modeling** Declarative data model with Python type hints | +| ๐ธ | **Data Sanitization** Two strictness modes | +| ๐ฉบ | **Data Validation** Descriptive data validation rules without even a line of code | +| ๐งฌ | **Data Transformation** Intuitive with modifier pipelines | +| ๐ฆ | **Data Presentation** Custom key encoding & decoding strategies | +| ๐ | **Data Graphing** Models are linked with each other on the same graph | +| ๐โโ๏ธ | **Data Querying** Well-designed protocols and implementations for databases | +| ๐ | **Synthesized CRUD** Only with a line of code | +| ๐ฎโโ๏ธ | **Session & Authorization** Builtin support for session and authorization | +| ๐ | **Permission System** Supports both object level and field level | +| ๐ | **File Uploading** A configuration is enough for file uploading | +| ๐ฆ | **Data Seeder** Declarative named graph relationship | +## ๐ Getting Started +### Prerequisites +[Python >= 3.10](https://www.python.org) is required. You can download it [here](https://www.python.org/downloads/). +### Install JSONClasses +Install JSONClasses is simple with `pip`. +```sh +pip install jsonclasses +``` +### Install Components +Depends on your need, you can install ORM integration and HTTP library integration with the following commands. +```sh +pip install jsonclasses-pymongo jsonclasses-server +``` +## ๐น Examples +## Business Logic Examples +### Example 1: Dating App Users +Let's say, you are building the base user functionality for a cross-platform +dating app. +The product requirements are: +1. Unique phone number is required +2. Password should be secure, encrypted, hidden from response +3. Gender cannot be changed after set +4. This product is adult only +5. User intro should be brief +Let's transform the requirements into code. +```python +from jsonclasses import jsonclass, types +from jsonclasses_pymongo import pymongo +from jsonclasses_server import api +@api +@pymongo +@jsonclass +class User: + id: str = types.readonly.str.primary.mongoid.required + phone_no: str = types.str.unique.index.match(local_phone_no_regex).required #1 + email: str = types.str.match(email_regex) + password: str = types.str.writeonly.length(8, 16).match(secure_password_regex).transform(salt).required #2 + nickname: str = types.str.required + gender: str = types.str.writeonce.oneof(['male', 'female']) #3 + age: int = types.int.min(18).max(100) #4 + intro: str = types.str.truncate(500) #5 + created_at: datetime = types.readonly.datetime.tscreated.required + updated_at: datetime = types.readonly.datetime.tsupdated.required +``` +## โฝ๏ธ Database & HTTP Library Integrations +* [JSON Classes Pymongo](https://github.com/fillmula/jsonclasses-pymongo) +The mongodb integration through pymongo driver. +* [JSON Classes Server](https://github.com/fillmula/jsonclasses-server) +The server integration. +## ๐ฆธ Contributing +* File a [bug report](https://github.com/fillmula/jsonclasses/issues/new). Be sure to include information like what version of YoMo you are using, what your operating system is, and steps to recreate the bug. +* Suggest a new feature. +## ๐คน๐ปโโ๏ธ Feedback +Any questions or good ideas, please feel free to come to our Discussion. Any feedback would be greatly appreciated! +## License +[MIT License](https://github.com/fillmula/jsonclasses/blob/master/LICENSE) +[pypi-image]: https://img.shields.io/pypi/v/jsonclasses.svg?style=flat-square +[pypi-url]: https://pypi.org/project/jsonclasses/ +[python-image]: https://img.shields.io/pypi/pyversions/jsonclasses?style=flat-square +[python-url]: https://pypi.org/project/jsonclasses/ +[license-image]: https://img.shields.io/github/license/fillmula/jsonclasses.svg?style=flat-square +[license-url]: https://github.com/fillmula/jsonclasses/blob/master/LICENSE +[pr-image]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square +[pr-url]: https://github.com/fillmula/jsonclasses + +%prep +%autosetup -n jsonclasses-3.3.0 + +%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-jsonclasses -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 3.3.0-1 +- Package Spec generated @@ -0,0 +1 @@ +7498a9ae4576d3765619302d732dcc20 jsonclasses-3.3.0.tar.gz |
