summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-06-20 08:05:10 +0000
committerCoprDistGit <infra@openeuler.org>2023-06-20 08:05:10 +0000
commit2d29f95af36fbfae1d546392bd957ea9a14c13bb (patch)
tree804cc0ca7a9450e0607b6e0a0ec2d4319acecb19
parent6920e8601364462bc64562e96e1ff2c9f15be195 (diff)
automatic import of python-django-openapiopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-django-openapi.spec407
-rw-r--r--sources1
3 files changed, 409 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..00586d9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/django-openapi-0.1.1.11.tar.gz
diff --git a/python-django-openapi.spec b/python-django-openapi.spec
new file mode 100644
index 0000000..1ae6026
--- /dev/null
+++ b/python-django-openapi.spec
@@ -0,0 +1,407 @@
+%global _empty_manifest_terminate_build 0
+Name: python-django-openapi
+Version: 0.1.1.11
+Release: 1
+Summary: A minimal FastAPI implementation in python2 + Django without pydantic
+License: MIT License
+URL: https://github.com/tokikanno/django-openapi
+Source0: https://mirrors.aliyun.com/pypi/web/packages/3e/10/de2b06156083d22a531e602d9b9508ebaa7019baea5a71a1c5246791ce4f/django-openapi-0.1.1.11.tar.gz
+BuildArch: noarch
+
+Requires: python3-django
+Requires: python3-six
+
+%description
+# django-openapi
+A minimal FastAPI implementation in Python2 + Django without pydantic
+
+# Why do you make this? Can't you just use FastAPI directly?
+I'm a big fan of [FastAPI](https://fastapi.tiangolo.com/). It's elegant and saves lots of doc maintaince & API spec communication costs for me.
+
+But FastAPI needs Python3 to run, some legacy projects I maintained are still using Python2 and built by Django framework. It would take 2 migration steps (Python 2 to 3 and Django to FastAPI) for moving them onto FastAPI framework.
+
+So I decided to build a minimal FastAPI implementation in Python2 + Django, that I could instantly get the benefits from FastAPI without too many migrations on my legacy projects.
+
+# Who should use this?
+People who like the way FastAPI works but
+* Are still on the long migration process from Python2 to Python3
+* Or don't want to do full system rewrite from Django to FastAPI
+* Or don't want to upgrade from Python2 to Python3
+
+# Features
+* Auto OpenAPI schema/document generation from Python function parameter
+* Auto HTTP request parameter validation from Python function parameters
+* Python 2/3 compatiable, you could use almost the same code for you Python2/3 projects
+
+# Installation
+
+```
+pip install django-openapi
+```
+
+# Live demo provided by Gitpod
+
+Click the button below and launch a free live demo server via Gitpod
+
+[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/tokikanno/django-openapi)
+
+If the button doesn't show up, you clould also use below link directly
+
+[https://gitpod.io/#https://github.com/tokikanno/django-openapi](https://gitpod.io/#https://github.com/tokikanno/django-openapi)
+
+After Gitpod launched, if you see a dialog like this, just hit the `Open Browser` button then you will get to the quick intro live demo server.
+
+![image](https://raw.githubusercontent.com/tokikanno/django-openapi/master/docs/images/gitpod-dialog.png)
+
+Use ctrl + p (or cmd + p if u're using MacOS X) and search for `intro.py` to see the source code of intro demo server.
+
+# Quick start
+
+### In your Django project
+
+* Import `OpenAPI` from `django_openapi`
+* Create an API object instance
+* Add API object into urlpatterns
+
+```python
+# import OpenAPI from django_opeanapi
+from django_openapi import OpenAPI
+
+# create an API object instance
+api = OpenAPI(title='My OpenAPI Test', prefix_path='/test_api')
+
+urlpatterns = [
+ api.as_django_url_pattern() # Add API object into urlpatterns
+]
+```
+
+* Start you django debug server and open your browser with url like `http://localhost:8000/test_api/_docs`, this is the auto document page.
+* Now let's try adding some basic routes for you API
+
+```python
+from django_openapi import Path, Query, Form
+
+@api.get('/test/hello_via_path/{word}', tags=['test'])
+def hello_via_path(word=Path()):
+ return {'hello': word}
+
+
+@api.get('/test/hello_via_query', tags=['test'])
+def hello_via_query(word=Query()):
+ return {'hello': word}
+
+
+@api.post('/test/hello_via_form', tags=['test'])
+def hello_via_form(word=Form()):
+ return {'hello': word}
+```
+* Reload your browser & see if anything changed to the auto document page
+* Advanced routes via JSON body & JSON schema object
+
+```python
+from django_openapi import Body
+from django_openapi.schema import BaseModel, StringField
+
+class HelloPayload(BaseModel):
+ word = StringField(default_value='world', min_length=3)
+
+@api.post('/test/hello_via_json_body', tags=['test'])
+def hello_via_json_body(payload=Body(HelloPayload)):
+ return {'hello': payload.word}
+```
+
+* Reload agagin, the auto document page now should have 4 APIs on it.
+
+![image](https://raw.githubusercontent.com/tokikanno/django-openapi/master/docs/images/hello_app.png)
+
+Browse to the [demo folder](https://github.com/tokikanno/django-openapi/tree/master/demo) for more advanced samples.
+
+# TODO
+
+* More documents and samples
+* Better schema validation error message handling
+* More advanced field types (e.g.: EmailStringField, CommaSeparatedArrayField ...)
+
+
+
+
+%package -n python3-django-openapi
+Summary: A minimal FastAPI implementation in python2 + Django without pydantic
+Provides: python-django-openapi
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-django-openapi
+# django-openapi
+A minimal FastAPI implementation in Python2 + Django without pydantic
+
+# Why do you make this? Can't you just use FastAPI directly?
+I'm a big fan of [FastAPI](https://fastapi.tiangolo.com/). It's elegant and saves lots of doc maintaince & API spec communication costs for me.
+
+But FastAPI needs Python3 to run, some legacy projects I maintained are still using Python2 and built by Django framework. It would take 2 migration steps (Python 2 to 3 and Django to FastAPI) for moving them onto FastAPI framework.
+
+So I decided to build a minimal FastAPI implementation in Python2 + Django, that I could instantly get the benefits from FastAPI without too many migrations on my legacy projects.
+
+# Who should use this?
+People who like the way FastAPI works but
+* Are still on the long migration process from Python2 to Python3
+* Or don't want to do full system rewrite from Django to FastAPI
+* Or don't want to upgrade from Python2 to Python3
+
+# Features
+* Auto OpenAPI schema/document generation from Python function parameter
+* Auto HTTP request parameter validation from Python function parameters
+* Python 2/3 compatiable, you could use almost the same code for you Python2/3 projects
+
+# Installation
+
+```
+pip install django-openapi
+```
+
+# Live demo provided by Gitpod
+
+Click the button below and launch a free live demo server via Gitpod
+
+[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/tokikanno/django-openapi)
+
+If the button doesn't show up, you clould also use below link directly
+
+[https://gitpod.io/#https://github.com/tokikanno/django-openapi](https://gitpod.io/#https://github.com/tokikanno/django-openapi)
+
+After Gitpod launched, if you see a dialog like this, just hit the `Open Browser` button then you will get to the quick intro live demo server.
+
+![image](https://raw.githubusercontent.com/tokikanno/django-openapi/master/docs/images/gitpod-dialog.png)
+
+Use ctrl + p (or cmd + p if u're using MacOS X) and search for `intro.py` to see the source code of intro demo server.
+
+# Quick start
+
+### In your Django project
+
+* Import `OpenAPI` from `django_openapi`
+* Create an API object instance
+* Add API object into urlpatterns
+
+```python
+# import OpenAPI from django_opeanapi
+from django_openapi import OpenAPI
+
+# create an API object instance
+api = OpenAPI(title='My OpenAPI Test', prefix_path='/test_api')
+
+urlpatterns = [
+ api.as_django_url_pattern() # Add API object into urlpatterns
+]
+```
+
+* Start you django debug server and open your browser with url like `http://localhost:8000/test_api/_docs`, this is the auto document page.
+* Now let's try adding some basic routes for you API
+
+```python
+from django_openapi import Path, Query, Form
+
+@api.get('/test/hello_via_path/{word}', tags=['test'])
+def hello_via_path(word=Path()):
+ return {'hello': word}
+
+
+@api.get('/test/hello_via_query', tags=['test'])
+def hello_via_query(word=Query()):
+ return {'hello': word}
+
+
+@api.post('/test/hello_via_form', tags=['test'])
+def hello_via_form(word=Form()):
+ return {'hello': word}
+```
+* Reload your browser & see if anything changed to the auto document page
+* Advanced routes via JSON body & JSON schema object
+
+```python
+from django_openapi import Body
+from django_openapi.schema import BaseModel, StringField
+
+class HelloPayload(BaseModel):
+ word = StringField(default_value='world', min_length=3)
+
+@api.post('/test/hello_via_json_body', tags=['test'])
+def hello_via_json_body(payload=Body(HelloPayload)):
+ return {'hello': payload.word}
+```
+
+* Reload agagin, the auto document page now should have 4 APIs on it.
+
+![image](https://raw.githubusercontent.com/tokikanno/django-openapi/master/docs/images/hello_app.png)
+
+Browse to the [demo folder](https://github.com/tokikanno/django-openapi/tree/master/demo) for more advanced samples.
+
+# TODO
+
+* More documents and samples
+* Better schema validation error message handling
+* More advanced field types (e.g.: EmailStringField, CommaSeparatedArrayField ...)
+
+
+
+
+%package help
+Summary: Development documents and examples for django-openapi
+Provides: python3-django-openapi-doc
+%description help
+# django-openapi
+A minimal FastAPI implementation in Python2 + Django without pydantic
+
+# Why do you make this? Can't you just use FastAPI directly?
+I'm a big fan of [FastAPI](https://fastapi.tiangolo.com/). It's elegant and saves lots of doc maintaince & API spec communication costs for me.
+
+But FastAPI needs Python3 to run, some legacy projects I maintained are still using Python2 and built by Django framework. It would take 2 migration steps (Python 2 to 3 and Django to FastAPI) for moving them onto FastAPI framework.
+
+So I decided to build a minimal FastAPI implementation in Python2 + Django, that I could instantly get the benefits from FastAPI without too many migrations on my legacy projects.
+
+# Who should use this?
+People who like the way FastAPI works but
+* Are still on the long migration process from Python2 to Python3
+* Or don't want to do full system rewrite from Django to FastAPI
+* Or don't want to upgrade from Python2 to Python3
+
+# Features
+* Auto OpenAPI schema/document generation from Python function parameter
+* Auto HTTP request parameter validation from Python function parameters
+* Python 2/3 compatiable, you could use almost the same code for you Python2/3 projects
+
+# Installation
+
+```
+pip install django-openapi
+```
+
+# Live demo provided by Gitpod
+
+Click the button below and launch a free live demo server via Gitpod
+
+[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/tokikanno/django-openapi)
+
+If the button doesn't show up, you clould also use below link directly
+
+[https://gitpod.io/#https://github.com/tokikanno/django-openapi](https://gitpod.io/#https://github.com/tokikanno/django-openapi)
+
+After Gitpod launched, if you see a dialog like this, just hit the `Open Browser` button then you will get to the quick intro live demo server.
+
+![image](https://raw.githubusercontent.com/tokikanno/django-openapi/master/docs/images/gitpod-dialog.png)
+
+Use ctrl + p (or cmd + p if u're using MacOS X) and search for `intro.py` to see the source code of intro demo server.
+
+# Quick start
+
+### In your Django project
+
+* Import `OpenAPI` from `django_openapi`
+* Create an API object instance
+* Add API object into urlpatterns
+
+```python
+# import OpenAPI from django_opeanapi
+from django_openapi import OpenAPI
+
+# create an API object instance
+api = OpenAPI(title='My OpenAPI Test', prefix_path='/test_api')
+
+urlpatterns = [
+ api.as_django_url_pattern() # Add API object into urlpatterns
+]
+```
+
+* Start you django debug server and open your browser with url like `http://localhost:8000/test_api/_docs`, this is the auto document page.
+* Now let's try adding some basic routes for you API
+
+```python
+from django_openapi import Path, Query, Form
+
+@api.get('/test/hello_via_path/{word}', tags=['test'])
+def hello_via_path(word=Path()):
+ return {'hello': word}
+
+
+@api.get('/test/hello_via_query', tags=['test'])
+def hello_via_query(word=Query()):
+ return {'hello': word}
+
+
+@api.post('/test/hello_via_form', tags=['test'])
+def hello_via_form(word=Form()):
+ return {'hello': word}
+```
+* Reload your browser & see if anything changed to the auto document page
+* Advanced routes via JSON body & JSON schema object
+
+```python
+from django_openapi import Body
+from django_openapi.schema import BaseModel, StringField
+
+class HelloPayload(BaseModel):
+ word = StringField(default_value='world', min_length=3)
+
+@api.post('/test/hello_via_json_body', tags=['test'])
+def hello_via_json_body(payload=Body(HelloPayload)):
+ return {'hello': payload.word}
+```
+
+* Reload agagin, the auto document page now should have 4 APIs on it.
+
+![image](https://raw.githubusercontent.com/tokikanno/django-openapi/master/docs/images/hello_app.png)
+
+Browse to the [demo folder](https://github.com/tokikanno/django-openapi/tree/master/demo) for more advanced samples.
+
+# TODO
+
+* More documents and samples
+* Better schema validation error message handling
+* More advanced field types (e.g.: EmailStringField, CommaSeparatedArrayField ...)
+
+
+
+
+%prep
+%autosetup -n django-openapi-0.1.1.11
+
+%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-django-openapi -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.1.11-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..62ddd6a
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+50f4983014b3ee30bb97ba39af280624 django-openapi-0.1.1.11.tar.gz