Metadata-Version: 2.4
Name: RateLimiterX
Version: 0.1.1
Summary: RateLimiter提供在指定时间内执行指定数量的任务功能，并且可以指定执行速度
Home-page: https://github.com/KasperJiang/ratelimiter
Author: Kasper Jiang
Author-email: jiangkaibo1987@163.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: anyio==4.9.0
Requires-Dist: APScheduler==3.11.0
Requires-Dist: build==1.2.2.post1
Requires-Dist: CacheControl==0.14.3
Requires-Dist: certifi==2025.4.26
Requires-Dist: charset-normalizer==3.4.2
Requires-Dist: cleo==2.1.0
Requires-Dist: click==8.2.0
Requires-Dist: colorama==0.4.6
Requires-Dist: crashtest==0.4.1
Requires-Dist: deptry==0.23.0
Requires-Dist: distlib==0.3.9
Requires-Dist: docutils==0.21.2
Requires-Dist: dulwich==0.22.8
Requires-Dist: et_xmlfile==2.0.0
Requires-Dist: fastjsonschema==2.21.1
Requires-Dist: filelock==3.18.0
Requires-Dist: findpython==0.6.3
Requires-Dist: h11==0.16.0
Requires-Dist: httpcore==1.0.9
Requires-Dist: httpx==0.28.1
Requires-Dist: id==1.5.0
Requires-Dist: idna==3.10
Requires-Dist: iniconfig==2.1.0
Requires-Dist: installer==0.7.0
Requires-Dist: jaraco.classes==3.4.0
Requires-Dist: jaraco.context==6.0.1
Requires-Dist: jaraco.functools==4.1.0
Requires-Dist: keyring==25.6.0
Requires-Dist: markdown-it-py==3.0.0
Requires-Dist: mdurl==0.1.2
Requires-Dist: more-itertools==10.7.0
Requires-Dist: msgpack==1.1.0
Requires-Dist: nh3==0.2.21
Requires-Dist: numpy==2.2.6
Requires-Dist: openpyxl==3.1.5
Requires-Dist: packaging==25.0
Requires-Dist: pandas==2.2.3
Requires-Dist: pbs-installer==2025.4.9
Requires-Dist: pkginfo==1.12.1.2
Requires-Dist: platformdirs==4.3.8
Requires-Dist: pluggy==1.5.0
Requires-Dist: poetry==2.1.3
Requires-Dist: poetry-core==2.1.3
Requires-Dist: Pygments==2.19.1
Requires-Dist: pyproject_hooks==1.2.0
Requires-Dist: pytest==8.3.5
Requires-Dist: python-dateutil==2.9.0.post0
Requires-Dist: python_minifier==2.11.3
Requires-Dist: pytz==2025.2
Requires-Dist: pywin32-ctypes==0.2.3
Requires-Dist: RapidFuzz==3.13.0
Requires-Dist: readme_renderer==44.0
Requires-Dist: requests==2.32.3
Requires-Dist: requests-toolbelt==1.0.0
Requires-Dist: requirements-parser==0.11.0
Requires-Dist: rfc3986==2.0.0
Requires-Dist: rich==14.0.0
Requires-Dist: setuptools==80.4.0
Requires-Dist: shellingham==1.5.4
Requires-Dist: six==1.17.0
Requires-Dist: sniffio==1.3.1
Requires-Dist: tomlkit==0.13.2
Requires-Dist: trove-classifiers==2025.5.9.12
Requires-Dist: twine==6.1.0
Requires-Dist: types-setuptools==80.4.0.20250511
Requires-Dist: typing_extensions==4.13.2
Requires-Dist: tzdata==2025.2
Requires-Dist: tzlocal==5.3.1
Requires-Dist: urllib3==2.4.0
Requires-Dist: util==0.0.1
Requires-Dist: utilsz==0.1.3
Requires-Dist: virtualenv==20.31.2
Requires-Dist: zstandard==0.23.0

# RateLimiterX
RateLimiterX提供在指定时间内执行指定数量的任务功能，并且可以指定执行速度。另外支持以下功能：  
1. 设置执行速率：尽可能平均执行、尽可能快地执行  
2. 支持多个任务队列，每个队列可单独设置任务、速率等，例如多个代理设置不同的速率  

## 使用说明
```
from ratelimiterx.ratelimiterx import RateLimiterX, Task, Speed
def example():
    rl = RateLimiterX(10 * 1000, 10)
    rate_limiterx_queue_id = init_ratelimiterx.create_queue(1000, 5)
    def fun1():
        # do something
        pass

    for i in range(10):
        init_ratelimiterx.add_task(rate_limiter_queue_id, Task(fun1))

    init_ratelimiterx.join()
    init_ratelimiterx.destroy()
```
                                                                       
## 项目说明
### 目录说明
- README.md: 包含使用手册、项目说明

### 执行依赖安装
pip install -r requirements.txt

### 依赖固化
pip freeze > requirements.txt

### 打包
1. pip install build
2. python -m build

### 发布到pypi
1. pip install twine  
2. python -m twine upload --repository pypi dist/*
3. 输入用户名和API Token。
