diff options
Diffstat (limited to 'python-fastapi-offline.spec')
| -rw-r--r-- | python-fastapi-offline.spec | 283 |
1 files changed, 283 insertions, 0 deletions
diff --git a/python-fastapi-offline.spec b/python-fastapi-offline.spec new file mode 100644 index 0000000..094c590 --- /dev/null +++ b/python-fastapi-offline.spec @@ -0,0 +1,283 @@ +%global _empty_manifest_terminate_build 0 +Name: python-fastapi-offline +Version: 1.5.3 +Release: 1 +Summary: FastAPI without reliance on CDNs for docs +License: MIT +URL: https://github.com/turettn/fastapi_offline +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/83/2f/ca78208f99e06918b707333e0625c7485bea8be52ea1d057a08b0094b7d6/fastapi_offline-1.5.3.linux-x86_64.tar.gz +BuildArch: noarch + +Requires: python3-fastapi +Requires: python3-pytest +Requires: python3-requests +Requires: python3-starlette[full] + +%description +# Overview + +[](https://pypi.python.org/pypi/fastapi-offline/) +[](https://github.com/turettn/fastapi_offline/actions/workflows/test.yml) +[](https://codecov.io/gh/turettn/fastapi_offline) + +[FastAPI](https://fastapi.tiangolo.com/) is awesome, but the documentation pages (Swagger or Redoc) all depend on external CDNs, which is problematic if you want to run on disconnected networks. + +This package includes the required files from the CDN and serves them locally. It also provides a super-simple way to get a FastAPI instance configured to use those files. + +Under the hood, this simply automates the process described in the official documentation [here](https://fastapi.tiangolo.com/advanced/extending-openapi/#self-hosting-javascript-and-css-for-docs). + +# Installation + +You can install this package from PyPi: + +```bash +pip install fastapi-offline +``` + +# Example + +Given the example from the [FastAPI tutorial](https://fastapi.tiangolo.com/tutorial/first-steps/): + +```python +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +async def root(): + return {"message": "Hello World"} +``` + +Simply create a `fastapi_offline.FastAPIOffline` object instead: + +```python +from fastapi_offline import FastAPIOffline + +app = FastAPIOffline() + + +@app.get("/") +async def root(): + return {"message": "Hello World"} +``` + +Any options passed to `FastAPIOffline()` except `docs_url`, `redoc_url`, `favicon_url`, and `static_url` are passed through to `FastAPI()`. `docs_url` and `redoc_url` are handled by `fastapi-offline`, and use the same syntax as normal `fastapi` library. + +`static_url` can be used to set the path for the static js/css files, e.g. `static_url=/static-files` (default: `/static-offline-docs`). + +# Using a custom shortcut icon + +By default, the FastAPI `favicon.png` is included and used as the shortcut icon on the docs pages. If you want to use a different one, you can specify it with the `favicon_url` argument: + +```py +app = FastAPIOffline( + favicon_url="http://my.cool.site/favicon.png" +) +``` + +# Licensing + +* This code is released under the MIT license. +* Parts of Swagger are included in this package. The original license ([Apache 2.0](https://swagger.io/license/)) and copyright apply to those files. +* Parts of Redoc are included in this package. The original license ([MIT](https://github.com/Redocly/redoc/blob/master/LICENSE)) and copyright apply to those files. +* The FastAPI `favicon.png` file is included in this package. The original license ([MIT](https://github.com/Redocly/redoc/blob/master/LICENSE)) and copyright apply to that file. + + + +%package -n python3-fastapi-offline +Summary: FastAPI without reliance on CDNs for docs +Provides: python-fastapi-offline +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-fastapi-offline +# Overview + +[](https://pypi.python.org/pypi/fastapi-offline/) +[](https://github.com/turettn/fastapi_offline/actions/workflows/test.yml) +[](https://codecov.io/gh/turettn/fastapi_offline) + +[FastAPI](https://fastapi.tiangolo.com/) is awesome, but the documentation pages (Swagger or Redoc) all depend on external CDNs, which is problematic if you want to run on disconnected networks. + +This package includes the required files from the CDN and serves them locally. It also provides a super-simple way to get a FastAPI instance configured to use those files. + +Under the hood, this simply automates the process described in the official documentation [here](https://fastapi.tiangolo.com/advanced/extending-openapi/#self-hosting-javascript-and-css-for-docs). + +# Installation + +You can install this package from PyPi: + +```bash +pip install fastapi-offline +``` + +# Example + +Given the example from the [FastAPI tutorial](https://fastapi.tiangolo.com/tutorial/first-steps/): + +```python +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +async def root(): + return {"message": "Hello World"} +``` + +Simply create a `fastapi_offline.FastAPIOffline` object instead: + +```python +from fastapi_offline import FastAPIOffline + +app = FastAPIOffline() + + +@app.get("/") +async def root(): + return {"message": "Hello World"} +``` + +Any options passed to `FastAPIOffline()` except `docs_url`, `redoc_url`, `favicon_url`, and `static_url` are passed through to `FastAPI()`. `docs_url` and `redoc_url` are handled by `fastapi-offline`, and use the same syntax as normal `fastapi` library. + +`static_url` can be used to set the path for the static js/css files, e.g. `static_url=/static-files` (default: `/static-offline-docs`). + +# Using a custom shortcut icon + +By default, the FastAPI `favicon.png` is included and used as the shortcut icon on the docs pages. If you want to use a different one, you can specify it with the `favicon_url` argument: + +```py +app = FastAPIOffline( + favicon_url="http://my.cool.site/favicon.png" +) +``` + +# Licensing + +* This code is released under the MIT license. +* Parts of Swagger are included in this package. The original license ([Apache 2.0](https://swagger.io/license/)) and copyright apply to those files. +* Parts of Redoc are included in this package. The original license ([MIT](https://github.com/Redocly/redoc/blob/master/LICENSE)) and copyright apply to those files. +* The FastAPI `favicon.png` file is included in this package. The original license ([MIT](https://github.com/Redocly/redoc/blob/master/LICENSE)) and copyright apply to that file. + + + +%package help +Summary: Development documents and examples for fastapi-offline +Provides: python3-fastapi-offline-doc +%description help +# Overview + +[](https://pypi.python.org/pypi/fastapi-offline/) +[](https://github.com/turettn/fastapi_offline/actions/workflows/test.yml) +[](https://codecov.io/gh/turettn/fastapi_offline) + +[FastAPI](https://fastapi.tiangolo.com/) is awesome, but the documentation pages (Swagger or Redoc) all depend on external CDNs, which is problematic if you want to run on disconnected networks. + +This package includes the required files from the CDN and serves them locally. It also provides a super-simple way to get a FastAPI instance configured to use those files. + +Under the hood, this simply automates the process described in the official documentation [here](https://fastapi.tiangolo.com/advanced/extending-openapi/#self-hosting-javascript-and-css-for-docs). + +# Installation + +You can install this package from PyPi: + +```bash +pip install fastapi-offline +``` + +# Example + +Given the example from the [FastAPI tutorial](https://fastapi.tiangolo.com/tutorial/first-steps/): + +```python +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +async def root(): + return {"message": "Hello World"} +``` + +Simply create a `fastapi_offline.FastAPIOffline` object instead: + +```python +from fastapi_offline import FastAPIOffline + +app = FastAPIOffline() + + +@app.get("/") +async def root(): + return {"message": "Hello World"} +``` + +Any options passed to `FastAPIOffline()` except `docs_url`, `redoc_url`, `favicon_url`, and `static_url` are passed through to `FastAPI()`. `docs_url` and `redoc_url` are handled by `fastapi-offline`, and use the same syntax as normal `fastapi` library. + +`static_url` can be used to set the path for the static js/css files, e.g. `static_url=/static-files` (default: `/static-offline-docs`). + +# Using a custom shortcut icon + +By default, the FastAPI `favicon.png` is included and used as the shortcut icon on the docs pages. If you want to use a different one, you can specify it with the `favicon_url` argument: + +```py +app = FastAPIOffline( + favicon_url="http://my.cool.site/favicon.png" +) +``` + +# Licensing + +* This code is released under the MIT license. +* Parts of Swagger are included in this package. The original license ([Apache 2.0](https://swagger.io/license/)) and copyright apply to those files. +* Parts of Redoc are included in this package. The original license ([MIT](https://github.com/Redocly/redoc/blob/master/LICENSE)) and copyright apply to those files. +* The FastAPI `favicon.png` file is included in this package. The original license ([MIT](https://github.com/Redocly/redoc/blob/master/LICENSE)) and copyright apply to that file. + + + +%prep +%autosetup -n fastapi-offline-1.5.3 + +%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-fastapi-offline -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.5.3-1 +- Package Spec generated |
