Skip to main content

A powerful function signal system for Python

Project description

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

Project details


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fnsignal-2.5.5-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

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

Hashes for fnsignal-2.5.5.tar.gz
Algorithm Hash digest
SHA256 df2561cb28d37ddeef40b1988bff1176edbc4297e0950609fb9ff54952d2ed83
MD5 d156db355aa7d42d9e2fc26a4a11948c
BLAKE2b-256 c25fc267e1237aede20ff4286ee85c1648af052f8a94a9dc97a9a5bf6af5516f

See more details on using hashes here.

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

Hashes for fnsignal-2.5.5-py3-none-any.whl
Algorithm Hash digest
SHA256 86e56bedc85e722af74ffbe13dfe0fdaa2dc91e8da65c59785588b2a13905fb6
MD5 c8db849c9e9e99e6525df90489502a92
BLAKE2b-256 1f5b2102b101e5b305ecdf2b348d73076e90bbcf05df17eac598d4016f1c5202

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page