Metadata-Version: 2.1
Name: tinylimit
Version: 0.1.0
Summary: tinylimit is a python modules that limits the calling rate of a function
Home-page: https://github.com/jamesqin-cn/tinylimit
Author: jamesqin
Author-email: jamesqin@vip.qq.com
License: MIT
Description: # Tiny Limit
        
        ## What is TinyLimit?
        tinylimit is a python modules that limits and anti-limits the calling rate of a function
        与其他的limit库所不同的是，tinylimit在实战中考虑到了这些因素：
        - 提供anti-limit的方法
        
            为了让client无视被调用函数所做出的limit限制，我们提供将调用结果保存下来，如果达到被调函数已达调用频率上线，client不是直接报错，而是直接返回最近一次的调用缓存，在某些场景下（比如获取某一日的PV），读取缓存数据并不会令程序逻辑紊乱，却避免了client堵塞。这样client可以按自己的需要随意调用受限函数即可，避免client写冗长的容错逻辑
        
        - 根据上下文施加limit
        
            大部分的limit库是以函数为单位做limit，实际上很多第三方的API接口的限制单位为token，不同的token不会共享同一个limit额度，所以以函数名为指纹太泛，我们这里取了类实例的上下文、函数名、函数的参数列表三类信息来形成被调对象的指纹，用以应对这类场景
        
        ## Programming Language
        - python 2.7
        - python 3.7
        
        ## Install
        ```
        pip install tinylimit 
        ```
        
        ## Quick Start
        use python decorators syntax to wrap the call target
        ```
        from tinylimit import AntiLimit
        
        @AntiLimit(2,1)
        def Add(a, b):
            return a + b
        
        class Foo():
            @AntiLimit(2,1)
            def Bar(self, a, b):
                return a - b
        ```
        
        ## Functions List
        - AntiLimit()
Platform: any
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Topic :: Utilities
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
