diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
| commit | b590c8d7572b727d565cc0b8ff660d43569845de (patch) | |
| tree | 06f7a4102ea4e845df8b66660f252920d52952f9 /dev-python/httpbin | |
| parent | 24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff) | |
| download | baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip | |
Diffstat (limited to 'dev-python/httpbin')
| -rw-r--r-- | dev-python/httpbin/Manifest | 1 | ||||
| -rw-r--r-- | dev-python/httpbin/files/httpbin-0.10.1-optional-flasgger.patch | 63 | ||||
| -rw-r--r-- | dev-python/httpbin/httpbin-0.10.2-r1.ebuild | 54 | ||||
| -rw-r--r-- | dev-python/httpbin/metadata.xml | 10 |
4 files changed, 128 insertions, 0 deletions
diff --git a/dev-python/httpbin/Manifest b/dev-python/httpbin/Manifest new file mode 100644 index 000000000000..f21fd6043cd9 --- /dev/null +++ b/dev-python/httpbin/Manifest @@ -0,0 +1 @@ +DIST httpbin-0.10.2.tar.gz 107327 BLAKE2B 39ab1e518c9f7e1ede9cd0aa2e3155f7e36267c83d1d2537a5b6cb5aa1c9e70efe96c5bf98a5b22cd05e70368d1495f8e5364032fcf2f476d62512b7e7322652 SHA512 731b842090be516d9eccb1d2bb8303128d2b2e24b1ebf0b2018a2f0b8629b164c7de686e1775841cd57417ec89941d98fc81f878a284c7242bfef4db481a781b diff --git a/dev-python/httpbin/files/httpbin-0.10.1-optional-flasgger.patch b/dev-python/httpbin/files/httpbin-0.10.1-optional-flasgger.patch new file mode 100644 index 000000000000..b9f5cc6f8469 --- /dev/null +++ b/dev-python/httpbin/files/httpbin-0.10.1-optional-flasgger.patch @@ -0,0 +1,63 @@ +From 65e397d7332ab87e3b2455ff9dc99af24861b58b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Sat, 3 Feb 2024 11:20:00 +0100 +Subject: [PATCH] Support using httpbin without flasgger + +Make the dependency on flasgger optional. The dependency has been added +relatively recently (i.e. before the original package was abandoned but +after its last release), and it is only used to provide a more dynamic +landing page. This is unnecessary for use of httpbin for testing, +and it introduces an indirect dependency on Rust that is problematic. + +With this change, flasgger is no longer installed by default. It can be +enabled via "[flasgger]" extra. When flasgger is not available, httpbin +redirects to the "legacy" index page. +--- + httpbin/core.py | 17 +++++++++++++++-- + pyproject.toml | 4 +++- + tests/test_httpbin.py | 4 +++- + 3 files changed, 21 insertions(+), 4 deletions(-) + +diff --git a/httpbin/core.py b/httpbin/core.py +index a82c1b8..77576a4 100644 +--- a/httpbin/core.py ++++ b/httpbin/core.py +@@ -33,7 +33,10 @@ try: + except ImportError: # werkzeug < 2.1 + from werkzeug.wrappers import BaseResponse as Response + +-from flasgger import Swagger, NO_SANITIZER ++try: ++ from flasgger import Swagger, NO_SANITIZER ++except ImportError: ++ Swagger = None + + from . import filters + from .helpers import ( +@@ -165,7 +168,8 @@ swagger_config = { + "specs_route": "/", + } + +-swagger = Swagger(app, sanitizer=NO_SANITIZER, template=template, config=swagger_config) ++if Swagger is not None: ++ swagger = Swagger(app, sanitizer=NO_SANITIZER, template=template, config=swagger_config) + + # Set up Bugsnag exception tracking, if desired. To use Bugsnag, install the + # Bugsnag Python client with the command "pip install bugsnag", and set the +@@ -244,6 +250,13 @@ def set_cors_headers(response): + # ------ + + ++if Swagger is None: ++ @app.route("/") ++ def no_flasgger_index(): ++ """Redirect to legacy index if flasgger is not available.""" ++ return view_landing_page() ++ ++ + @app.route("/legacy") + def view_landing_page(): + """Generates Landing Page in legacy layout.""" +-- +2.43.0 + diff --git a/dev-python/httpbin/httpbin-0.10.2-r1.ebuild b/dev-python/httpbin/httpbin-0.10.2-r1.ebuild new file mode 100644 index 000000000000..68a27f1549e1 --- /dev/null +++ b/dev-python/httpbin/httpbin-0.10.2-r1.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 optfeature pypi + +DESCRIPTION="HTTP Request and Response Service" +HOMEPAGE=" + https://github.com/psf/httpbin/ + https://pypi.org/project/httpbin/ +" + +LICENSE="|| ( MIT ISC )" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="test-rust" + +RDEPEND=" + dev-python/brotlicffi[${PYTHON_USEDEP}] + dev-python/decorator[${PYTHON_USEDEP}] + >=dev-python/flask-2.2.4[${PYTHON_USEDEP}] + dev-python/itsdangerous[${PYTHON_USEDEP}] + dev-python/markupsafe[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + >=dev-python/werkzeug-2.2.2[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + test-rust? ( + dev-python/flasgger[${PYTHON_USEDEP}] + ) + ) +" + +distutils_enable_tests pytest + +src_prepare() { + local PATCHES=( + # https://github.com/psf/httpbin/pull/44 (simplified) + "${FILESDIR}/httpbin-0.10.1-optional-flasgger.patch" + ) + + # remove unnecessary deps + sed -i -e '/greenlet/d' -e '/flasgger/d' pyproject.toml || die + distutils-r1_src_prepare +} + +pkg_postinst() { + optfeature "Fancy index" dev-python/flasgger +} diff --git a/dev-python/httpbin/metadata.xml b/dev-python/httpbin/metadata.xml new file mode 100644 index 000000000000..5e95859f915a --- /dev/null +++ b/dev-python/httpbin/metadata.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <stabilize-allarches /> + <origin>baldeagleos-repo</origin> +</pkgmetadata> |
