aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPo-Chuan Hsieh <sunpoet@FreeBSD.org>2025-12-09 06:37:15 +0000
committerPo-Chuan Hsieh <sunpoet@FreeBSD.org>2025-12-09 11:20:50 +0000
commita6628cff54327bc4117e5820bfcf816849615a5b (patch)
tree44b20901f2b996c12efc8a41fd4fdff0042c9a19
parente8d50a3f5adef8f76bae8ce71c5ad9002c77eda9 (diff)
devel/py-pybreaker: Add py-pybreaker 1.4.1
PyBreaker is a Python implementation of the Circuit Breaker pattern, described in Michael T. Nygard's book Release It!. In Nygard's words, "circuit breakers exists to allow one subsystem to fail without destroying the entire system. This is done by wrapping dangerous operations (typically integration points) with a component that can circumvent calls when the system is not healthy". Features: - Configurable list of excluded exceptions (e.g. business exceptions) - Configurable failure threshold and reset timeout - Support for several event listeners per circuit breaker - Can guard generator functions - Functions and properties for easy monitoring and management - Thread-safe - Optional redis backing - Optional support for asynchronous Tornado calls
-rw-r--r--devel/Makefile1
-rw-r--r--devel/py-pybreaker/Makefile21
-rw-r--r--devel/py-pybreaker/distinfo3
-rw-r--r--devel/py-pybreaker/pkg-descr17
4 files changed, 42 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile
index cc66c90be9d1..f5c82141342d 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -5617,6 +5617,7 @@
SUBDIR += py-pyasn1-modules
SUBDIR += py-pybind11
SUBDIR += py-pybix
+ SUBDIR += py-pybreaker
SUBDIR += py-pycadf
SUBDIR += py-pycalendar
SUBDIR += py-pycallgraph
diff --git a/devel/py-pybreaker/Makefile b/devel/py-pybreaker/Makefile
new file mode 100644
index 000000000000..1f0981926ba4
--- /dev/null
+++ b/devel/py-pybreaker/Makefile
@@ -0,0 +1,21 @@
+PORTNAME= pybreaker
+PORTVERSION= 1.4.1
+CATEGORIES= devel python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Python implementation of the Circuit Breaker pattern
+WWW= https://github.com/danielfm/pybreaker
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flit-core>=3.9:devel/py-flit-core@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/devel/py-pybreaker/distinfo b/devel/py-pybreaker/distinfo
new file mode 100644
index 000000000000..d94354103aca
--- /dev/null
+++ b/devel/py-pybreaker/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1765032628
+SHA256 (pybreaker-1.4.1.tar.gz) = 8df2d245c73ba40c8242c56ffb4f12138fbadc23e296224740c2028ea9dc1178
+SIZE (pybreaker-1.4.1.tar.gz) = 15555
diff --git a/devel/py-pybreaker/pkg-descr b/devel/py-pybreaker/pkg-descr
new file mode 100644
index 000000000000..6326784a30dd
--- /dev/null
+++ b/devel/py-pybreaker/pkg-descr
@@ -0,0 +1,17 @@
+PyBreaker is a Python implementation of the Circuit Breaker pattern, described
+in Michael T. Nygard's book Release It!.
+
+In Nygard's words, "circuit breakers exists to allow one subsystem to fail
+without destroying the entire system. This is done by wrapping dangerous
+operations (typically integration points) with a component that can circumvent
+calls when the system is not healthy".
+
+Features:
+- Configurable list of excluded exceptions (e.g. business exceptions)
+- Configurable failure threshold and reset timeout
+- Support for several event listeners per circuit breaker
+- Can guard generator functions
+- Functions and properties for easy monitoring and management
+- Thread-safe
+- Optional redis backing
+- Optional support for asynchronous Tornado calls