summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-17 03:53:08 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-17 03:53:08 +0000
commitcd5796652a054063bf2de1a9d3d03154f536ff90 (patch)
treeb0cf513507e722b9c71b54e1120a241c3661caff
parent4e320f6dfe64fa962dd1cfe50fa29ff9bf805972 (diff)
automatic import of python-perseus-restful-api-framework
-rw-r--r--.gitignore1
-rw-r--r--python-perseus-restful-api-framework.spec470
-rw-r--r--sources1
3 files changed, 472 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..59b907b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/perseus_restful_api_framework-1.26.8.tar.gz
diff --git a/python-perseus-restful-api-framework.spec b/python-perseus-restful-api-framework.spec
new file mode 100644
index 0000000..96ead3d
--- /dev/null
+++ b/python-perseus-restful-api-framework.spec
@@ -0,0 +1,470 @@
+%global _empty_manifest_terminate_build 0
+Name: python-perseus-restful-api-framework
+Version: 1.26.8
+Release: 1
+Summary: Python server framework for quickly building RESTful APIs with minimal effort
+License: Proprietary
+URL: https://github.com/majormode/perseus-restful-api-server-framework
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/80/72/6a2628fda2ee20de41514a51916001d12eb60a0d744948a158e0b495038d/perseus_restful_api_framework-1.26.8.tar.gz
+BuildArch: noarch
+
+Requires: python3-psutil
+Requires: python3-tornado
+Requires: python3-perseus-core-library
+Requires: python3-pillow
+Requires: python3-perseus-microrm-library
+Requires: python3-prosoponym
+Requires: python3-perseus-getenv-library
+Requires: python3-pymemcache
+
+%description
+# Perseus: RESTful API Server Framework
+
+Perseus is a Python framework for quickly building RESTful API servers with minimal effort.
+
+Perseus provides an initial set of core services that supports the following features:
+
+- Client application registration with API keys generation
+- Client application access control with RESTful request signature
+- Client application and RESTful API server version compatibility check
+- User authentication and session management
+- Team/group management
+- RESTful request logging with data sensitiveness support
+- RESTful service automatic discovery
+- HTTP request query parameters & body JSON message automatically parsing (depending on the HTTP method used) with data type check and conversion
+
+Perseus is based on [Tornado](https://www.tornadoweb.org/) for handling client network connection.
+
+## RESTful API Request Handler
+
+```python
+from majormode.perseus.service.base_http_handler import HttpRequest
+from majormode.perseus.service.base_http_handler import HttpRequestHandler
+from majormode.perseus.service.base_http_handler import http_request
+
+import AttendantService
+
+
+class AttendantServiceHttpRequestHandler(HttpRequestHandler):
+ @http_request(r'^/attendant/session$',
+ http_method=HttpRequest.HttpMethod.POST,
+ authentication_required=False,
+ sensitive_data=True,
+ signature_required=False)
+ def sign_in(self, request):
+ email_address = request.get_argument(
+ 'email_address',
+ data_type=HttpRequest.ArgumentDataType.email_address,
+ is_required=True)
+
+ password = request.get_argument(
+ 'password',
+ data_type=HttpRequest.ArgumentDataType.string,
+ is_required=True)
+
+ return AttendantService().sign_in(request.app_id, email_address, password)
+```
+
+## Configure the environment variables
+
+```env
+# Copyright (C) 2021 Majormode. All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+# Connection properties of the RESTful API server instances. Defaults
+# to 127.0.0.1:8081.
+API_SERVER_HOSTNAME=127.0.0.1
+API_SERVER_PORTS=
+
+# Root path of the Network File System (NFS) -- referring to the
+# distributed file system (not the protocol) -- where the Content
+# Delivery Network (CDN) files are stored into, such as avatars, etc.
+CDN_NFS_ROOT_PATH=
+
+# Hostname of the Content Delivery Network (CDN) server that hosts media
+# files such as avatars, etc.
+CDN_URL_HOSTNAME=
+
+# Environment stage of the API server instances. Possible values are:
+#
+# - dev
+# - int
+# - staging
+# - prod
+#
+# Defaults to `dev`.
+ENVIRONMENT_STAGE=
+
+# Connection properties to a Memcached server (a distributed memory
+# object caching system). Defaults to 127.0.0.1:11211.
+MEMCACHED_HOSTNAME = '127.0.0.1'
+MEMCACHED_PORT = 11211
+
+# Threshold for the logger to level. Logging messages which are less
+# severe than the specified level will be ignored; logging messages
+# which have this severity level or higher will be emitted. Possible
+# values are:
+#
+# - debug
+# - info
+# - warning
+# - error
+# - critical
+#
+# Default to 'debug'.
+LOGGING_LEVEL=
+
+# Environment variables to select default parameter values to connect
+# to PostgreSQL Relational Database Management System.
+PG_HOSTNAME=localhost
+PG_PORT=5432
+PG_DATABASE_NAME=
+PG_USERNAME=
+PG_PASSWORD=
+```
+
+## Run the RESTful API Server Processes
+
+```bash
+$ fab start --port=65180,65181,...
+```
+
+Hashtags/Topics: `#perseus` `#restful` `#api` `#server` `#framework` `#python`
+
+
+%package -n python3-perseus-restful-api-framework
+Summary: Python server framework for quickly building RESTful APIs with minimal effort
+Provides: python-perseus-restful-api-framework
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-perseus-restful-api-framework
+# Perseus: RESTful API Server Framework
+
+Perseus is a Python framework for quickly building RESTful API servers with minimal effort.
+
+Perseus provides an initial set of core services that supports the following features:
+
+- Client application registration with API keys generation
+- Client application access control with RESTful request signature
+- Client application and RESTful API server version compatibility check
+- User authentication and session management
+- Team/group management
+- RESTful request logging with data sensitiveness support
+- RESTful service automatic discovery
+- HTTP request query parameters & body JSON message automatically parsing (depending on the HTTP method used) with data type check and conversion
+
+Perseus is based on [Tornado](https://www.tornadoweb.org/) for handling client network connection.
+
+## RESTful API Request Handler
+
+```python
+from majormode.perseus.service.base_http_handler import HttpRequest
+from majormode.perseus.service.base_http_handler import HttpRequestHandler
+from majormode.perseus.service.base_http_handler import http_request
+
+import AttendantService
+
+
+class AttendantServiceHttpRequestHandler(HttpRequestHandler):
+ @http_request(r'^/attendant/session$',
+ http_method=HttpRequest.HttpMethod.POST,
+ authentication_required=False,
+ sensitive_data=True,
+ signature_required=False)
+ def sign_in(self, request):
+ email_address = request.get_argument(
+ 'email_address',
+ data_type=HttpRequest.ArgumentDataType.email_address,
+ is_required=True)
+
+ password = request.get_argument(
+ 'password',
+ data_type=HttpRequest.ArgumentDataType.string,
+ is_required=True)
+
+ return AttendantService().sign_in(request.app_id, email_address, password)
+```
+
+## Configure the environment variables
+
+```env
+# Copyright (C) 2021 Majormode. All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+# Connection properties of the RESTful API server instances. Defaults
+# to 127.0.0.1:8081.
+API_SERVER_HOSTNAME=127.0.0.1
+API_SERVER_PORTS=
+
+# Root path of the Network File System (NFS) -- referring to the
+# distributed file system (not the protocol) -- where the Content
+# Delivery Network (CDN) files are stored into, such as avatars, etc.
+CDN_NFS_ROOT_PATH=
+
+# Hostname of the Content Delivery Network (CDN) server that hosts media
+# files such as avatars, etc.
+CDN_URL_HOSTNAME=
+
+# Environment stage of the API server instances. Possible values are:
+#
+# - dev
+# - int
+# - staging
+# - prod
+#
+# Defaults to `dev`.
+ENVIRONMENT_STAGE=
+
+# Connection properties to a Memcached server (a distributed memory
+# object caching system). Defaults to 127.0.0.1:11211.
+MEMCACHED_HOSTNAME = '127.0.0.1'
+MEMCACHED_PORT = 11211
+
+# Threshold for the logger to level. Logging messages which are less
+# severe than the specified level will be ignored; logging messages
+# which have this severity level or higher will be emitted. Possible
+# values are:
+#
+# - debug
+# - info
+# - warning
+# - error
+# - critical
+#
+# Default to 'debug'.
+LOGGING_LEVEL=
+
+# Environment variables to select default parameter values to connect
+# to PostgreSQL Relational Database Management System.
+PG_HOSTNAME=localhost
+PG_PORT=5432
+PG_DATABASE_NAME=
+PG_USERNAME=
+PG_PASSWORD=
+```
+
+## Run the RESTful API Server Processes
+
+```bash
+$ fab start --port=65180,65181,...
+```
+
+Hashtags/Topics: `#perseus` `#restful` `#api` `#server` `#framework` `#python`
+
+
+%package help
+Summary: Development documents and examples for perseus-restful-api-framework
+Provides: python3-perseus-restful-api-framework-doc
+%description help
+# Perseus: RESTful API Server Framework
+
+Perseus is a Python framework for quickly building RESTful API servers with minimal effort.
+
+Perseus provides an initial set of core services that supports the following features:
+
+- Client application registration with API keys generation
+- Client application access control with RESTful request signature
+- Client application and RESTful API server version compatibility check
+- User authentication and session management
+- Team/group management
+- RESTful request logging with data sensitiveness support
+- RESTful service automatic discovery
+- HTTP request query parameters & body JSON message automatically parsing (depending on the HTTP method used) with data type check and conversion
+
+Perseus is based on [Tornado](https://www.tornadoweb.org/) for handling client network connection.
+
+## RESTful API Request Handler
+
+```python
+from majormode.perseus.service.base_http_handler import HttpRequest
+from majormode.perseus.service.base_http_handler import HttpRequestHandler
+from majormode.perseus.service.base_http_handler import http_request
+
+import AttendantService
+
+
+class AttendantServiceHttpRequestHandler(HttpRequestHandler):
+ @http_request(r'^/attendant/session$',
+ http_method=HttpRequest.HttpMethod.POST,
+ authentication_required=False,
+ sensitive_data=True,
+ signature_required=False)
+ def sign_in(self, request):
+ email_address = request.get_argument(
+ 'email_address',
+ data_type=HttpRequest.ArgumentDataType.email_address,
+ is_required=True)
+
+ password = request.get_argument(
+ 'password',
+ data_type=HttpRequest.ArgumentDataType.string,
+ is_required=True)
+
+ return AttendantService().sign_in(request.app_id, email_address, password)
+```
+
+## Configure the environment variables
+
+```env
+# Copyright (C) 2021 Majormode. All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+# Connection properties of the RESTful API server instances. Defaults
+# to 127.0.0.1:8081.
+API_SERVER_HOSTNAME=127.0.0.1
+API_SERVER_PORTS=
+
+# Root path of the Network File System (NFS) -- referring to the
+# distributed file system (not the protocol) -- where the Content
+# Delivery Network (CDN) files are stored into, such as avatars, etc.
+CDN_NFS_ROOT_PATH=
+
+# Hostname of the Content Delivery Network (CDN) server that hosts media
+# files such as avatars, etc.
+CDN_URL_HOSTNAME=
+
+# Environment stage of the API server instances. Possible values are:
+#
+# - dev
+# - int
+# - staging
+# - prod
+#
+# Defaults to `dev`.
+ENVIRONMENT_STAGE=
+
+# Connection properties to a Memcached server (a distributed memory
+# object caching system). Defaults to 127.0.0.1:11211.
+MEMCACHED_HOSTNAME = '127.0.0.1'
+MEMCACHED_PORT = 11211
+
+# Threshold for the logger to level. Logging messages which are less
+# severe than the specified level will be ignored; logging messages
+# which have this severity level or higher will be emitted. Possible
+# values are:
+#
+# - debug
+# - info
+# - warning
+# - error
+# - critical
+#
+# Default to 'debug'.
+LOGGING_LEVEL=
+
+# Environment variables to select default parameter values to connect
+# to PostgreSQL Relational Database Management System.
+PG_HOSTNAME=localhost
+PG_PORT=5432
+PG_DATABASE_NAME=
+PG_USERNAME=
+PG_PASSWORD=
+```
+
+## Run the RESTful API Server Processes
+
+```bash
+$ fab start --port=65180,65181,...
+```
+
+Hashtags/Topics: `#perseus` `#restful` `#api` `#server` `#framework` `#python`
+
+
+%prep
+%autosetup -n perseus-restful-api-framework-1.26.8
+
+%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-perseus-restful-api-framework -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 17 2023 Python_Bot <Python_Bot@openeuler.org> - 1.26.8-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..58543df
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+6f3f23f29003b4507dee52c97324b06a perseus_restful_api_framework-1.26.8.tar.gz