Skip to main content

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

Metadata

Release files for fnsignal 2.5.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fnsignal 2.5.5
File Size Uploaded Provenance Actions
fnsignal-2.5.5.tar.gz 10.5 kB Without provenance Details for fnsignal-2.5.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fnsignal 2.5.5
File Interpreter ABI Platform Actions
fnsignal-2.5.5-py3-none-any.whl Python 3 none any Details for fnsignal-2.5.5-py3-none-any.whl

Total release size: 21.7 kB

Release files / fnsignal-2.5.5.tar.gz

Download URL fnsignal-2.5.5.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
df2561cb28d37ddeef40b1988bff1176edbc4297e0950609fb9ff54952d2ed83
BLAKE2b-256 checksum
How to use checksums
c25fc267e1237aede20ff4286ee85c1648af052f8a94a9dc97a9a5bf6af5516f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.2

Release files / fnsignal-2.5.5-py3-none-any.whl

Download URL fnsignal-2.5.5-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
86e56bedc85e722af74ffbe13dfe0fdaa2dc91e8da65c59785588b2a13905fb6
BLAKE2b-256 checksum
How to use checksums
1f5b2102b101e5b305ecdf2b348d73076e90bbcf05df17eac598d4016f1c5202
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.2

Security for fnsignal 2.5.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page