Releases: gqylpy/funccache
Releases · gqylpy/funccache
2.0.4
- Fix a critical error.
- Improve a few type annotations.
- 修复一个严重的错误。
- 改进少量类型注解。
What's Changed
- 2.0.4 by @2018-11-27 in #11
Full Changelog: 2.0.3...2.0.4
1.6.0
- The scheme of reconstructing the return value of the cache function, uses the secondary lock. Solve the lock contention problem when the function is called concurrently with different parameters.
- The return value of the method in the cache class supports setting the expiration time.
- Add a decorator named
count
, supports caching the return value of a function by number of calls. - The decorator with cache expiration
expires
is renamed tottl
. - The cache expiration time parameter can be passed in unit-time (such as "1h40m").
- Fix issue: When an exception occurs in the call to the cached object, subsequent successive calls always raise
KeyError: '__return__'
. #2 - Fix issue: Concurrent calls when the return value of the function has not been cached or has expired may repeat the execution of the function. #4
- The
__getattribute__
method is no longer silently overridden, and an exception is thrown directly if it exists. - Internal code adds type annotations, as well as a lot of optimization and refactoring.
- Refactor the internal method
Time2Second
to make it more concise and efficient. - Use
time.monotonic()
to replacetime.time()
for cache expiration checks. - Fix the potential errors that may occur in the class cache when running in performance mode.
- 重构缓存函数返回值的方案,现采用二级锁。解决以不同参数并发调用函数时的锁竞争问题。
- 缓存类中方法的返回值支持设置过期时间。
- 新增装饰器
count
,支持按调用次数缓存函数的返回值。 - 带缓存有效期的装饰器
expires
更名为ttl
。 - 缓存过期时间的参数支持按单位时间(如 "1h40m")的方式传入。
- 修复问题:当被缓存的对象调用出现异常后,后续的连续调用始终引发
KeyError: '__return__'
。#2 - 修复问题:当函数返回值还未被缓存或已过期时的并发调用可能重复执行函数。#4
- 不再静默覆盖
__getattribute__
方法,如果它存在,将直接抛出异常。 - 内部代码添加类型注解,以及大量优化和重构。
- 重构内部方法
Time2Second
使之更简洁和高效。 - 使用
time.monotonic()
替换time.time()
进行缓存过期检查。 - 修复在性能模式下运行时类缓存器可能发生的错误。
What's Changed
- 1.6.0 by @2018-11-27 in #10
Full Changelog: 1.5.4...1.6.0
2.0.3
- Fix the potential errors that may occur in the class cache when running in performance mode.
- 修复在性能模式下运行时类缓存器可能发生的错误。
2.0.2
- Correct a consecutive judgment error in the code.
- Refactor the internal method
Time2Second
to make it more concise and efficient. - Use
time.monotonic()
to replacetime.time()
for cache expiration checks. - Adjust the formatting and annotations of other minor code sections.
- 修正代码中的一个连续判断错误。
- 重构内部方法
Time2Second
使之更简洁和高效。 - 使用
time.monotonic()
替换time.time()
进行缓存过期检查。 - 调整其它少量代码格式和注解。
What's Changed
- 2.0.2 by @2018-11-27 in #8
Full Changelog: 2.0.1...2.0.2
2.0.1
- A small amount of code optimization.
- Correct the Chinese document link.
- Correct the brief description information on PyPi.
- 少量的代码优化。
- 更正中文文档链接。
- 更正在 PyPi 上的简述信息。
2.0
2.0alpha1
- Note: This version is a refactored version and many changes are not backward compatible.
- The scheme of reconstructing the return value of the cache function, uses the secondary lock. Solve the lock contention problem when the function is called concurrently with different parameters.
- The return value of the method in the cache class supports setting the expiration time.
- Add a decorator named
count
, supports caching the return value of a function by number of calls. - The decorator with cache expiration
expires
is renamed tottl
. - The cache expiration time parameter can be passed in unit-time (such as "1h40m").
- Fix issue: When an exception occurs in the call to the cached object, subsequent successive calls always raise
KeyError: '__return__'
. #2 - Fix issue: Concurrent calls when the return value of the function has not been cached or has expired may repeat the execution of the function. #4
- The
__getattribute__
method is no longer silently overridden, and an exception is thrown directly if it exists. - Internal code adds type annotations, as well as a lot of optimization and refactoring.
- Python3.6 and 3.7 are no longer supported.
- 注意:此版本为重构版本,大量改动不向下兼容。
- 重构缓存函数返回值的方案,现采用二级锁。解决以不同参数并发调用函数时的锁竞争问题。
- 缓存类中方法的返回值支持设置过期时间。
- 新增装饰器
count
,支持按调用次数缓存函数的返回值。 - 带缓存有效期的装饰器
expires
更名为ttl
。 - 缓存过期时间的参数支持按单位时间(如 "1h40m")的方式传入。
- 修复问题:当被缓存的对象调用出现异常后,后续的连续调用始终引发
KeyError: '__return__'
。#2 - 修复问题:当函数返回值还未被缓存或已过期时的并发调用可能重复执行函数。#4
- 不再静默覆盖
__getattribute__
方法,如果它存在,将直接抛出异常。 - 内部代码添加类型注解,以及大量优化和重构。
- Python3.6 和 3.7 版本不再受支持。
1.5.4
- Improve parameter annotations.
- The decorator
expiration_time
is about to be deprecated and replaced byexpires
- Adjust the naming of multiple internal methods, classes, and parameters, the new naming is more intuitive and clear.
- 完善参数注解。
- 装饰器
expiration_time
即将弃用,取而代之的是expires
。 - 调整多个内部方法,类和参数的命名,新的命名更加直观和清晰。
1.5.3
- Fix issue: When a cached object encounters an exception during invocation, the subsequent calls are consistently blocked. #1
- Optimize package release process and adjusting the categorization information of open-source libraries on PyPi.
- Normalize a small number of code segments.
1.修复问题:当被缓存的对象调用出现异常后,后续的调用始终阻塞。#1
2.优化包发布流程,并调整了在PyPi上的开源库分类信息。
3.发现少量代码段的规范性不足并调整。
1.5.2
1.Optimize logical blocks for real code imports.
1.优化真实代码导入的逻辑块。