{"added":"2026-07-05T21:22:17-04:00","apiVersion":1,"behindSince":"2026-08-31","buildDepends":["devel/py-hatchling"],"categories":["devel","python"],"comment":"Utility to detect blocking calls in the async event loop","compare":"/compare/py312-blockbuster/index.json","dependentCount":null,"description":"Blockbuster is a Python package designed to detect and prevent blocking calls\nwithin an asynchronous event loop. It is particularly useful when executing\ntests to ensure that your asynchronous code does not inadvertently call blocking\noperations, which can lead to performance bottlenecks and unpredictable\nbehavior.\n\nIn Python, the asynchronous event loop allows for concurrent execution of tasks\nwithout the need for multiple threads or processes. This is achieved by running\ntasks cooperatively, where tasks yield control back to the event loop when they\nare waiting for I/O operations or other long-running tasks to complete.\n\nHowever, blocking calls, such as file I/O operations or certain networking\noperations, can halt the entire event loop, preventing other tasks from running.\nThis can lead to increased latency and reduced performance, defeating the\npurpose of using asynchronous programming.\n\nThe difficulty with blocking calls is that they are not always obvious,\nespecially when working with third-party libraries or legacy code. This is where\nBlockbuster comes in: it helps you identify and eliminate blocking calls in your\ncodebase during testing, ensuring that your asynchronous code runs smoothly and\nefficiently. It does this by wrapping common blocking functions and raising an\nexception when they are called within an asynchronous context.\n\nNotes:\n- Blockbuster currently only detects asyncio event loops.\n- Blockbuster is tested only with CPython. It may work with other Python\n  implementations if it's possible to monkey-patch the functions with setattr.","flavors":[],"html":"https://daemonports.org/midnightbsd/devel/py-blockbuster/","kind":"port","lastUpdate":"2026-07-05T21:22:17-04:00","license":["Apache-2.0"],"maintainer":"ports@MidnightBSD.org","name":"${PYTHON_PKGNAMEPREFIX}blockbuster","newest":false,"newestVersion":"1.5.29","noVulnData":true,"origin":"devel/py-blockbuster","otherSystems":[{"behindSince":"2026-10-11","maintainer":"sunpoet@FreeBSD.org","origin":"devel/py-blockbuster","path":"/devel/py-blockbuster/","system":"FreeBSD","updated":"2026-09-20","version":"1.5.28"},{"maintainer":"The OpenBSD ports mailing-list \u003cports@openbsd.org\u003e","newest":true,"noVulnData":true,"origin":"devel/py-blockbuster","path":"/openbsd/devel/py-blockbuster/","system":"OpenBSD","updated":"2026-10-10","version":"1.5.29"},{"behindSince":"2026-09-20","maintainer":"pkgsrc-users@NetBSD.org","origin":"devel/py-blockbuster","path":"/netbsd/devel/py-blockbuster/","system":"NetBSD","updated":"2026-10-11","version":"1.5.27"},{"behindSince":"2026-10-11","maintainer":"sunpoet@FreeBSD.org","noVulnData":true,"origin":"devel/py-blockbuster","path":"","system":"HardenedBSD","version":"1.5.28"},{"behindSince":"2026-10-11","maintainer":"sunpoet@FreeBSD.org","noVulnData":true,"origin":"devel/py-blockbuster","path":"","system":"GhostBSD","version":"1.5.28"}],"packages":null,"pkgName":"${PYTHON_PKGNAMEPREFIX}blockbuster-1.5.26","related":null,"repository":"mports","requiredBy":[],"requiredByCount":0,"runDepends":["devel/py-forbiddenfruit"],"status":null,"system":"midnightbsd","systemLabel":"MidnightBSD","version":"1.5.26","versions":[{"commit":"8af06753b2eaf0c58214302c2a501feadc09477a","date":"2026-07-05","version":"1.5.26"}],"vulnerabilities":null,"www":"https://github.com/cbornet/blockbuster"}
