semvec/pypi-packages huggingface dataset:
taskwait 0.1.2
Wait for a task to complete
Requires Python: >=3.8

# taskwait

[![PyPI - Version](https://img.shields.io/pypi/v/taskwait.svg)](https://pypi.org/project/taskwait)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/taskwait.svg)](https://pypi.org/project/taskwait)

Wait for a task, printing logs if it produces them.  A Python port of our [`logwatch`](https://reside-ic.github.io/logwatch) R package.
snRNAtools 0.3.1
A Python package utils to support scanpy usage and enrichment and network analysis given gene list
Requires Python: >=3.8

#snRNAtools

This is for scRNAseq data analysis where
## gene level analysis
- Plot the bar output from gene ontology enrichment analysis
- Network analysis given any edge list
## scanpy support
utils for handy using scanpy

The zarr version should be below 3. Likely 2.18.2.

usage: import sc_utils.scanpy_utils as scu
aophelper 0.6.0
AOP (Aspect-Oriented Programming) helper for Python
Requires Python: >=3.6

# AOPHelper – Python을 위한 강력한 AOP 라이브러리  

**AOPHelper**는 Python에서 **Aspect-Oriented Programming(AOP, 관점 지향 프로그래밍)**을 쉽게 적용할 수 있도록 도와주는 라이브러리입니다.  
`@Aspect` 데코레이터를 사용하여 **로깅, 성능 측정, 예외 처리** 등을 간편하게 적용하세요!

---

## 🚀 **설치 방법**
```sh
pip install aophelper
```

🔥 빠른 시작

✅ 기본 AOP 적용 예제
```python
from aophelper import Aspect, BaseAdvice

class LoggingAdvice(BaseAdvice):
    def before(self, func, *args, **kwargs):
        print(f"🚀 {func.__name__} 실행 시작!")

    def after(self, func, result, *args, **kwargs):
        print(f"✅ {func.__name__} 실행 완료! 결과: {result}")

aspect = Aspect()
aspect.set_advice(LoggingAdvice())

@aspect.apply
def add(x, y):
    return x + y

print(add(10, 20))
```

출력 결과

🚀 add 실행 시작!
✅ add 실행 완료! 결과: 30


## 📌 주요 기능

기능	설명
- ✅ before()	함수 실행 전에 수행할 작업 추가
- ⚡ around()	함수 실행 시간 측정 및 실행 방식 제어 가능
- 🛑 on_exception()	예외 발생 시 자동 처리 및 로깅 가능
- 📢 after()	함수 실행 후 결과를 후처리 가능
- 🔄 비동기 지원	async def 함수에도 AOP 적용 가능

### 🛠 각 기능의 예제 코드

#### ✅ before() – 함수 실행 전에 동작 추가
```python
from aophelper import Aspect, BaseAdvice

class MyAdvice(BaseAdvice):
    def before(self, func, *args, **kwargs):
        print(f"{func.__name__} 실행 전! 매개변수: {args}, {kwargs}")

aspect = Aspect()
aspect.set_advice(MyAdvice())

@aspect.apply
def greet(name):
    print(f"안녕하세요, {name}님!")

greet("Alice")
```
**출력 결과**
```
greet 실행 전! 매개변수: ('Alice',), {}
안녕하세요, Alice님!
```
### ⚡ around() – 실행 시간 측정 및 동작 변경
```python
import time

class TimerAdvice(BaseAdvice):
    def around(self, func, *args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        end = time.time()
        print(f"{func.__name__} 실행 시간: {end - start:.4f}초")
        return result

aspect.set_advice(TimerAdvice())

@aspect.apply
def slow_function():
    time.sleep(2)
    print("작업 완료!")

slow_function()
```
**출력 결과**

```
작업 완료!
slow_function 실행 시간: 2.0050초
```

### 🛑 on_exception() – 예외 발생 시 자동 처리

```python
class ErrorHandlerAdvice(BaseAdvice):
    def on_exception(self, func, exception, *args, **kwargs):
        print(f"{func.__name__}에서 오류 발생: {exception}")

aspect.set_advice(ErrorHandlerAdvice())

@aspect.apply
def error_function():
    raise ValueError("잘못된 값!")

error_function()
```

**출력 결과**
```
error_function에서 오류 발생: 잘못된 값!
```

### 📢 after() – 실행 후 후처리
```python
class PostProcessingAdvice(BaseAdvice):
    def after(self, func, result, *args, **kwargs):
        print(f"{func.__name__} 실행 완료! 결과: {result}")

aspect.set_advice(PostProcessingAdvice())

@aspect.apply
def multiply(x, y):
    return x * y

print(multiply(5, 10))
```

**출력 결과**
```
multiply 실행 완료! 결과: 50
50
```

### 🔄 비동기 함수(async def) 지원

AOPHelper는 async def 함수에도 적용할 수 있습니다.

```python
import asyncio

class AsyncAdvice(BaseAdvice):
    async def before(self, func, *args, **kwargs):
        print(f"(비동기) {func.__name__} 실행 전!")

aspect.set_advice(AsyncAdvice())

@aspect.apply
async def async_task():
    await asyncio.sleep(1)
    print("비동기 작업 완료!")

asyncio.run(async_task())
```
**출력 결과**
```
(비동기) async_task 실행 전!
비동기 작업 완료!
```

이제 더 강력한 AOP 기능을 활용해 보세요! 🚀

## 기여 방법
버그 리포트나 기능 제안은 **GitHub Issues**에 남겨주세요
subito-client 0.1.0
A subtitle translator that utilizes LLMs
Requires Python: >=3.7

# نحوه نصب

```bash
pip install subito-client
```
یا اگر دوست داشتید میتونید مستقیم از گیتهاب دانلود کنید:
```bash
git clone https://github.com/null3yte/subito-client.git
cd subito-client
pip install -e .
```

# نحوه استفاده
## 1. code
```python
from subito_client import translate
import asyncio

# در حال حاضر فقط ass و srt پشتیبانی میشه
# بجز فایل میتونید مسیر پوشه هم بدید
file_path = "path/to/your/file.ass"

# توصیه میشه بجای هاردکد کردن توکن، از environment variable استفاده کنید که     جلوتر توضیح میدیم نحوه ست کردنش رو
user_token = "your_user_token" 

# بصورت دیفالت None تعریف شده که یعنی بدون محدودیت هزینه هست و هر فایلی با هر   حجمی و قیمتی رو ترجمه میکنه.
max_price = 100_000 # optional

result_path = asyncio.run(translate(path=file_path, token=user_token, max_price=max_price))
```

## 2. cli
```bash
subito <file_path> [-t TOKEN] [-P MAX_PRICE] [-p PREFIX]

# Options:
#   -t, --token        Authentication token (default: $SUBITO_TOKEN)
#   -P, --max-price    Maximum acceptable price in toman
#   -p, --prefix       Filename prefix for translations (default: "_ fa - ")
```

# تنظیم توکن
برای اینکه لازم نباشه هر بار توکن رو وارد کنید، میتونید اون رو بصورت Environment Variable تنظیم کنید:

### Linux/macOS
برای bash:
```bash
echo 'export SUBITO_TOKEN="your_token_here"' >> ~/.bashrc
source ~/.bashrc
```

برای zsh:
```bash
echo 'export SUBITO_TOKEN="your_token_here"' >> ~/.zshrc
source ~/.zshrc
```

### Windows
از طریق Command Prompt با دسترسی Administrator بنویسید:
```cmd
setx SUBITO_TOKEN "your_token_here"
```

***بعد از تنظیم SUBITO_TOKEN، دیگه نیازی نیست موقع استفاده از CLI یا کد، توکن رو مستقیم وارد کنید.***