diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-15 06:19:06 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 06:19:06 +0000 |
commit | a154fe6fdf8396f64a1c99e113304657dbcfa3fd (patch) | |
tree | c3d040040608fc5d8b5999c4a69c394e099cb642 | |
parent | 33b7d558b305bb1f18d9bb17e69d10fb26fa84c8 (diff) |
automatic import of python-html-json-forms
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-html-json-forms.spec | 342 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 344 insertions, 0 deletions
@@ -0,0 +1 @@ +/html-json-forms-1.1.1.tar.gz diff --git a/python-html-json-forms.spec b/python-html-json-forms.spec new file mode 100644 index 0000000..7dbbdce --- /dev/null +++ b/python-html-json-forms.spec @@ -0,0 +1,342 @@ +%global _empty_manifest_terminate_build 0 +Name: python-html-json-forms +Version: 1.1.1 +Release: 1 +Summary: Implementation of the HTML JSON Forms spec for use with the Django REST Framework. +License: MIT +URL: https://github.com/wq/html-json-forms +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/e8/80/9b76801b26cdf549d49d9daa93ed5df069de3bd0cd3938a7780aa0741197/html-json-forms-1.1.1.tar.gz +BuildArch: noarch + + +%description +# html-json-forms + +An implementation of the [HTML JSON Form] specification for use with the [Django REST Framework]. Extracted from [wq.db] for general use. + +HTML JSON Forms use an array-style naming convention that makes it possible to represent complex nested JSON objects with regular HTML fields. The idea is that client applications (such as [wq.app]) and eventually browsers could parse these fields and submit structured JSON to the server. For backwards compatibility with older clients, the spec recommends implementing a fallback parser on the server to ensure that older clients can submit forms using the traditional method. This Python package is an implementation of that algorithm. + +```html +<!-- Input --> +<form> + <input name="items[0][name]" value="Example"> + <input name="items[0][count]" value="5"> +</form> +``` + +```js +// Output +{ + "items": [ + { + "name": "Example", + "count": "5" + } + ] +} +``` + +Note that the HTML JSON Form spec was never finalized. The implementation is still useful as a formal way of representing structured data via traditional HTML forms. + +[](https://pypi.org/project/html-json-forms) +[](https://github.com/wq/html-json-forms/releases) +[](https://github.com/wq/html-json-forms/blob/master/LICENSE) +[](https://github.com/wq/html-json-forms/stargazers) +[](https://github.com/wq/html-json-forms/network) +[](https://github.com/wq/html-json-forms/issues) + +[](https://travis-ci.org/wq/html-json-forms) +[](https://pypi.org/project/html-json-forms) +[](https://pypi.org/project/html-json-forms) + +## Usage + +`html-json-forms` is available via PyPI: + +```bash +pip3 install html-json-forms +``` + +### Functional + +```python +from html_json_forms import parse_json_form + +parse_json_form({ + 'items[0][name]': "Example", + 'items[0][count]': "5", +}) +``` + +### DRF Integration +To enable HTML JSON Form parsing in Django REST Framework, subclass `JSONFormSerializer`: + +```python +from rest_framework import serializers +from html_json_forms.serializers import JSONFormSerializer +from .models import Parent, Child + +class ChildSerializer(serializers.ModelSerializer): + class Meta: + model = Child + +class ParentSerializer(JSONFormSerializer, serializers.ModelSerializer): + children = ChildSerializer(many=True) + class Meta: + model = Parent + +# Alternatively you can use the pre-mixed JSONFormModelSerializer: +# class ParentSerializer(JSONFormModelSerializer): +# ... +``` + +Note that only the top-level serializer needs to have the `JSONFormSerializer` mixin; the nested serializers will "just work" as if the data had been submitted via JSON. Note further that this module only handles processing nested form data; it is still up to you to figure out how to handle [writing nested models][nested] (unless you are using [wq.db]'s [patterns] module, which includes writable nested serializers by default). + +[HTML JSON Form]: https://www.w3.org/TR/html-json-forms/ +[Django REST Framework]: http://www.django-rest-framework.org/ +[wq.db]: https://wq.io/wq.db +[wq.app]: https://wq.io/wq.app +[nested]: http://www.django-rest-framework.org/api-guide/serializers/#writable-nested-representations +[patterns]: https://wq.io/docs/about-patterns + + + + +%package -n python3-html-json-forms +Summary: Implementation of the HTML JSON Forms spec for use with the Django REST Framework. +Provides: python-html-json-forms +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-html-json-forms +# html-json-forms + +An implementation of the [HTML JSON Form] specification for use with the [Django REST Framework]. Extracted from [wq.db] for general use. + +HTML JSON Forms use an array-style naming convention that makes it possible to represent complex nested JSON objects with regular HTML fields. The idea is that client applications (such as [wq.app]) and eventually browsers could parse these fields and submit structured JSON to the server. For backwards compatibility with older clients, the spec recommends implementing a fallback parser on the server to ensure that older clients can submit forms using the traditional method. This Python package is an implementation of that algorithm. + +```html +<!-- Input --> +<form> + <input name="items[0][name]" value="Example"> + <input name="items[0][count]" value="5"> +</form> +``` + +```js +// Output +{ + "items": [ + { + "name": "Example", + "count": "5" + } + ] +} +``` + +Note that the HTML JSON Form spec was never finalized. The implementation is still useful as a formal way of representing structured data via traditional HTML forms. + +[](https://pypi.org/project/html-json-forms) +[](https://github.com/wq/html-json-forms/releases) +[](https://github.com/wq/html-json-forms/blob/master/LICENSE) +[](https://github.com/wq/html-json-forms/stargazers) +[](https://github.com/wq/html-json-forms/network) +[](https://github.com/wq/html-json-forms/issues) + +[](https://travis-ci.org/wq/html-json-forms) +[](https://pypi.org/project/html-json-forms) +[](https://pypi.org/project/html-json-forms) + +## Usage + +`html-json-forms` is available via PyPI: + +```bash +pip3 install html-json-forms +``` + +### Functional + +```python +from html_json_forms import parse_json_form + +parse_json_form({ + 'items[0][name]': "Example", + 'items[0][count]': "5", +}) +``` + +### DRF Integration +To enable HTML JSON Form parsing in Django REST Framework, subclass `JSONFormSerializer`: + +```python +from rest_framework import serializers +from html_json_forms.serializers import JSONFormSerializer +from .models import Parent, Child + +class ChildSerializer(serializers.ModelSerializer): + class Meta: + model = Child + +class ParentSerializer(JSONFormSerializer, serializers.ModelSerializer): + children = ChildSerializer(many=True) + class Meta: + model = Parent + +# Alternatively you can use the pre-mixed JSONFormModelSerializer: +# class ParentSerializer(JSONFormModelSerializer): +# ... +``` + +Note that only the top-level serializer needs to have the `JSONFormSerializer` mixin; the nested serializers will "just work" as if the data had been submitted via JSON. Note further that this module only handles processing nested form data; it is still up to you to figure out how to handle [writing nested models][nested] (unless you are using [wq.db]'s [patterns] module, which includes writable nested serializers by default). + +[HTML JSON Form]: https://www.w3.org/TR/html-json-forms/ +[Django REST Framework]: http://www.django-rest-framework.org/ +[wq.db]: https://wq.io/wq.db +[wq.app]: https://wq.io/wq.app +[nested]: http://www.django-rest-framework.org/api-guide/serializers/#writable-nested-representations +[patterns]: https://wq.io/docs/about-patterns + + + + +%package help +Summary: Development documents and examples for html-json-forms +Provides: python3-html-json-forms-doc +%description help +# html-json-forms + +An implementation of the [HTML JSON Form] specification for use with the [Django REST Framework]. Extracted from [wq.db] for general use. + +HTML JSON Forms use an array-style naming convention that makes it possible to represent complex nested JSON objects with regular HTML fields. The idea is that client applications (such as [wq.app]) and eventually browsers could parse these fields and submit structured JSON to the server. For backwards compatibility with older clients, the spec recommends implementing a fallback parser on the server to ensure that older clients can submit forms using the traditional method. This Python package is an implementation of that algorithm. + +```html +<!-- Input --> +<form> + <input name="items[0][name]" value="Example"> + <input name="items[0][count]" value="5"> +</form> +``` + +```js +// Output +{ + "items": [ + { + "name": "Example", + "count": "5" + } + ] +} +``` + +Note that the HTML JSON Form spec was never finalized. The implementation is still useful as a formal way of representing structured data via traditional HTML forms. + +[](https://pypi.org/project/html-json-forms) +[](https://github.com/wq/html-json-forms/releases) +[](https://github.com/wq/html-json-forms/blob/master/LICENSE) +[](https://github.com/wq/html-json-forms/stargazers) +[](https://github.com/wq/html-json-forms/network) +[](https://github.com/wq/html-json-forms/issues) + +[](https://travis-ci.org/wq/html-json-forms) +[](https://pypi.org/project/html-json-forms) +[](https://pypi.org/project/html-json-forms) + +## Usage + +`html-json-forms` is available via PyPI: + +```bash +pip3 install html-json-forms +``` + +### Functional + +```python +from html_json_forms import parse_json_form + +parse_json_form({ + 'items[0][name]': "Example", + 'items[0][count]': "5", +}) +``` + +### DRF Integration +To enable HTML JSON Form parsing in Django REST Framework, subclass `JSONFormSerializer`: + +```python +from rest_framework import serializers +from html_json_forms.serializers import JSONFormSerializer +from .models import Parent, Child + +class ChildSerializer(serializers.ModelSerializer): + class Meta: + model = Child + +class ParentSerializer(JSONFormSerializer, serializers.ModelSerializer): + children = ChildSerializer(many=True) + class Meta: + model = Parent + +# Alternatively you can use the pre-mixed JSONFormModelSerializer: +# class ParentSerializer(JSONFormModelSerializer): +# ... +``` + +Note that only the top-level serializer needs to have the `JSONFormSerializer` mixin; the nested serializers will "just work" as if the data had been submitted via JSON. Note further that this module only handles processing nested form data; it is still up to you to figure out how to handle [writing nested models][nested] (unless you are using [wq.db]'s [patterns] module, which includes writable nested serializers by default). + +[HTML JSON Form]: https://www.w3.org/TR/html-json-forms/ +[Django REST Framework]: http://www.django-rest-framework.org/ +[wq.db]: https://wq.io/wq.db +[wq.app]: https://wq.io/wq.app +[nested]: http://www.django-rest-framework.org/api-guide/serializers/#writable-nested-representations +[patterns]: https://wq.io/docs/about-patterns + + + + +%prep +%autosetup -n html-json-forms-1.1.1 + +%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-html-json-forms -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.1-1 +- Package Spec generated @@ -0,0 +1 @@ +e716fa5f535e9dbea9928b2bfec78729 html-json-forms-1.1.1.tar.gz |