Comments (2)
Just had a look at code, It seems the issue is with cache key creation. The cache key created for args (5, 2)
and (5, 3)
are same.
The root cause is with the _memoize_kwargs_to_args
function, it simply ignores the unnamed functions args
for e.g. In def foo(a, b, c, *args): pass
only the args a, b, c would be used for key and *args is ignored. Similarly in def foo(*args): pass
no args is detected.
The reason behind this is that it uses the inpect
module to get arg names from function signature, now since *args
are not named in function signature, its not found.
The simple solution is to append the unnamed args in the new_args
list before creating the key.
from flask-caching.
Tested on Python 3.5.4 on master, doesn't works as well.
from flask-caching.
Related Issues (20)
- Memoize doesn't give correct results with list as one of the parameter in API HOT 6
- Redis cluster - read-replica routing
- Return type annotation for `get()` is too restrictive
- API documentation not rendering HOT 2
- Wrong output in conjunction with stream_template
- Using an integer in cache.get() doesn't give an appropriate error HOT 1
- RedisCache support for callable key prefixes was removed as of 1.11.0 HOT 1
- Caching a function with a DataFrame parameter doesn't work HOT 1
- _memver key entry for @cache.memoized call tracks TTL but probably shouldn't?
- Example code for checking value of memoized functions HOT 2
- Use cachelib version above 0.9.0 HOT 2
- key_prefix can support func ? : Expected type 'str', got '() -> str' instead HOT 3
- Please relax Flask version restriction to support `Flask==3.0.0` HOT 3
- Connect redis cluster with a redis url
- Documentation issues re: memoizing instance methods
- Documentation issue around memoize and identity?
- Respect `args_to_ignore` for keyword arguments when using `memoize`
- Invalid load key error due to reading .DS_store file on mac
- jinja caching won't have exception while having redis failure
- Can't use URL and PASSWORD in the config at the same time
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flask-caching.