summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-jsonclasses.spec317
-rw-r--r--sources1
3 files changed, 319 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..f1ed8ab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/sources b/sources
new file mode 100644
index 0000000..e46a4d1
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+7498a9ae4576d3765619302d732dcc20 jsonclasses-3.3.0.tar.gz