fnsignal
간단하고 강력한 Python 시그널/이벤트 시스템
설치
pip install fnsignal
빠른 시작
1. 기본 사용법
from fnsignal.fnsignal import signal_manager
# 콜백 함수 정의
def my_callback(signal_name, data, sender):
print(f"시그널명: {signal_name}, 데이터: {data}, 보낸이: {sender}")
# 콜백 등록
signal_manager.register_callback("hello", my_callback)
# 시그널 발송
signal_manager.send_signal("hello", data={"foo": "bar"}, sender="나")
2. 여러 콜백 등록
def cb1(signal_name, data, sender):
print("cb1:", data)
def cb2(signal_name, data, sender):
print("cb2:", data)
signal_manager.register_callback("event", cb1)
signal_manager.register_callback("event", cb2)
signal_manager.send_signal("event", 123, sender="user")
3. 콜백 해제
signal_manager.unregister_callback("event", cb1)
signal_manager.send_signal("event", 456, sender="user")
4. 비동기 콜백
import asyncio
async def async_cb(signal_name, data, sender):
print("비동기 콜백:", data)
signal_manager.register_callback("async_event", async_cb)
signal_manager.send_signal("async_event", "async data", sender="user")
주요 기능
1. 시그널 관리
- 시그널 발송/수신
- 콜백 등록/해제
- 우선순위 기반 콜백 실행
- 필터 조건 지원
2. 비동기 지원
- 동기/비동기 콜백 모두 지원
- asyncio 이벤트 루프 자동 관리
- Thread-safe 설계
3. 통계 및 모니터링
- 시그널/콜백 실행 통계
- 에러 카운트 및 로깅
- 실행 시간 측정
4. 안전성
- 자동 에러 처리
- 연속 에러 시 자동 재초기화
- Thread-safe 동작
API 문서
signal_manager.register_callback(signal_name, callback, sender=None, priority=SignalPriority.NORMAL, filter_condition=None, stop_propagation=False)
- 시그널에 콜백을 등록합니다.
- 우선순위, 필터, 전파 중단 옵션 지정 가능
signal_manager.unregister_callback(signal_name, callback)
- 특정 시그널의 콜백을 해제합니다.
signal_manager.send_signal(signal_name, data=None, sender=None, priority=SignalPriority.NORMAL)
- 시그널을 발송합니다.
- 등록된 콜백들이 우선순위에 따라 실행됩니다.
signal_manager.get_signal_stats()
- 현재 시그널 시스템의 통계 정보를 반환합니다.
라이선스
MIT License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fnsignal-2.5.5.tar.gz
(10.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
fnsignal-2.5.5-py3-none-any.whl
(11.3 kB
view details)
File details
Details for the file fnsignal-2.5.5.tar.gz.
File metadata
- Download URL: fnsignal-2.5.5.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df2561cb28d37ddeef40b1988bff1176edbc4297e0950609fb9ff54952d2ed83
|
|
| MD5 |
d156db355aa7d42d9e2fc26a4a11948c
|
|
| BLAKE2b-256 |
c25fc267e1237aede20ff4286ee85c1648af052f8a94a9dc97a9a5bf6af5516f
|
File details
Details for the file fnsignal-2.5.5-py3-none-any.whl.
File metadata
- Download URL: fnsignal-2.5.5-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86e56bedc85e722af74ffbe13dfe0fdaa2dc91e8da65c59785588b2a13905fb6
|
|
| MD5 |
c8db849c9e9e99e6525df90489502a92
|
|
| BLAKE2b-256 |
1f5b2102b101e5b305ecdf2b348d73076e90bbcf05df17eac598d4016f1c5202
|