Martijn Pieters
4cc946eb00
Fix handling non-GET requests
...
The `request` parameter being passed in was just a hold-over from an
earlier refactoring. Added tests to ensure that this edge case keeps
working.
2023-05-09 10:58:37 +01:00
Martijn Pieters
f78a599bbc
Decode cache data to the correct endpoint type
...
Use the return annotation to decode cached data to the correct type.
This follows the same logic FastAPI uses to JSON request bodies.
For the PickleCoder, this is a no-op as pickle already stores type
information in the serialised data.
2023-05-08 16:55:05 +01:00
long2ice
550ba76df4
Merge pull request #123 from mjpieters/method_signature
...
Attach updated endpoint signature to inner
2023-04-28 14:29:06 +08:00
Martijn Pieters
832650347b
Attach updated endpoint signature to inner
...
Not all endpoints accept a __signature__ attribute, nor should the
cache decorator modify the decorated endpoint. Attach the signature
to the returned inner function instead.
While here, refactor the signature updating code, and extract it to
a separate function.
2023-04-27 18:14:59 +01:00
Martijn Pieters
72c42325ab
The backend needs an async redis client with a pipeline method
...
The Abstract* classes lack the pipeline method so are not sufficient.
2023-04-27 16:33:43 +01:00
Martijn Pieters
6af14be049
Provide annotation for the session attribute
2023-04-27 16:32:07 +01:00
Martijn Pieters
9c966286b4
Use complete type hints with all generic parameters filled
...
This makes the core fastapi_cache pass all strict type checker tests.
2023-04-27 16:31:42 +01:00
Martijn Pieters
a52f6b1406
Simplify key_builder calling
...
The keybuilder is either returning a string, or a coroutine or other
awaitable. If the latter, await on the return value to get the string.
2023-04-27 16:29:10 +01:00
Martijn Pieters
255f40117b
Define keybuilder protocol
...
This lets others create key builders that are type checked fully.
2023-04-27 16:26:41 +01:00
Martijn Pieters
d4cd787527
JSONResponse.body is UTF-8 bytes and must be decoded
2023-04-27 16:20:12 +01:00
Martijn Pieters
059793d585
Remove a type: ignore comment
...
GIve the type checker more information about the converters instead.
2023-04-27 16:19:02 +01:00
Martijn Pieters
0d0fe1f0d0
Mark up the class variables as such
...
There is never an instance of this class, so these are not instance attributes.
2023-04-27 16:15:06 +01:00
Martijn Pieters
32acafa5e0
Correct type hint: namespace is not optional
...
The namespace argument is positional and will never be `None` so should
not be marked as Optional. It is always a string, and the default is
to pass in an empty string.
2023-04-27 16:11:59 +01:00
long2ice
27acce3160
ci: fix poetry
2023-02-15 10:45:19 +08:00
Naoki Shima
01c895dbbb
Support functions with VAR_KEYWORD parameter
...
decorating function with **kwargs parameter with @cache causes ValueError.
ValueError: wrong parameter order: variadic keyword parameter before keyword-only parameter
We need to inject request / response parameters before VAR_KEYWORD parameter.
2023-02-09 15:14:20 +09:00
long2ice
552a7695e8
Update fastapi_cache/decorator.py
...
Co-authored-by: mkdir700 <56359329+mkdir700@users.noreply.github.com >
2023-02-01 15:33:04 +08:00
hackjammer
ea1ffcd7b4
Add logging to decorator.py on backend failures
2023-01-17 12:15:53 +00:00
hackjammer
e8193b5c22
enabled redis in cluster mode
2023-01-15 21:54:16 +00:00
hackjammer
ab26fad604
passthrough for any type of backend exception
2023-01-15 17:07:37 +00:00
Tobias Schmocker
334b829a80
Merge branch 'master'
...
# Conflicts:
# fastapi_cache/decorator.py
2023-01-14 19:11:42 +01:00
Ivan Moiseev
9a39db7a73
Merge branch 'long2ice:main' into fix/piclke-coder
2023-01-11 16:26:05 +03:00
long2ice
59a47b7fae
chore: set version 0.2.0
2023-01-11 21:20:41 +08:00
vvanglro
ed101595f7
fix: merge master
2023-01-11 16:43:36 +08:00
vvanglro
614ee25d0d
feat: merge master
2023-01-07 13:46:48 +08:00
hackjammer
b420f26e9b
transparent passthrough in the event of backend connection issues
2023-01-05 18:44:40 +00:00
Ivan Moiseev
e23289fcbf
Merge branch 'main' into fix/piclke-coder
2022-12-08 00:23:39 +04:00
long2ice
8f0920d0d7
ci: fix
2022-11-07 16:39:17 +08:00
Ivan Moiseev
cb9fe5c065
fix: PickleCoder and add tests for it.
2022-11-05 13:45:16 +04:00
vvanglro
4cb4afeff0
feat: support cache JSONResponse
2022-11-04 17:31:37 +08:00
vvanglro
a8fbf2b340
fix: request / router KeyError
2022-11-04 16:56:43 +08:00
long2ice
73f000a565
Merge pull request #93 from Mrreadiness/feat/type-hints-covering
...
Feat/type hints covering
2022-11-04 08:51:21 +08:00
long2ice
cda720f534
Merge pull request #74 from Genius-Voice/feature/support-async-keybuilder
...
Add ability to use async function for key_builder
2022-11-03 20:25:27 +08:00
Ivan Moiseev
5881bb9122
Merge branch 'main' into feat/type-hints-covering
...
# Conflicts:
# fastapi_cache/coder.py
# fastapi_cache/decorator.py
2022-11-03 15:53:22 +04:00
Ivan Moiseev
10f819483c
fix: replace pipe for Optional
2022-11-03 15:49:58 +04:00
long2ice
566d30b790
Merge pull request #88 from vvanglro/feat/cache_html
...
feat: support cache jinja2 template response
2022-11-03 19:42:47 +08:00
long2ice
671af52aea
Merge pull request #33 from DevLucca/master
...
add `no-cache` to cache exclusion
2022-10-31 21:51:35 +08:00
Ivan Moiseev
71a77f6b39
fix: request and response type hints
2022-10-30 11:03:16 +04:00
Ivan Moiseev
e555d5e9be
Merge remote-tracking branch 'main/master' into feat/type-hints-covering
...
# Conflicts:
# fastapi_cache/decorator.py
2022-10-30 10:58:02 +04:00
squaresmile
f3f134a318
Added typing to the decorator
2022-10-25 08:58:44 +07:00
squaresmile
5781593829
Added py.typed
2022-10-25 08:50:56 +07:00
Ivan Moiseev
c6bd8483a4
feat: fix tests and add FastAPICache init in tests.
2022-10-22 21:12:04 +04:00
Ivan Moiseev
e842d6408e
feat: make PickleCoder compatible with backends
2022-10-22 21:06:38 +04:00
Ivan Moiseev
68ef94f2db
feat: add more asserts for FastAPICache init
2022-10-22 21:05:43 +04:00
Ivan Moiseev
4c6abcf786
feat: add more type hints
2022-10-22 20:59:37 +04:00
Charl P. Botha
ceb70426f3
Factor out support for optional request / response
2022-10-14 21:58:34 +02:00
Charl P. Botha
d123ec4bfa
Add extra required await
2022-10-14 14:09:31 +02:00
Charl P. Botha
2822ab5d71
Factor out sync handling and use everywhere
2022-10-14 13:44:49 +02:00
vvanglro
7e64cd6490
feat: support cache jinja2 template response
2022-09-28 17:37:05 +08:00
long2ice
cb9259807e
feat: make request and response optional
2022-09-10 20:06:37 +08:00
Yurii Karabas
f310ef5b2d
Use run_in_threadpool instead of asyncio run_in_executor
2022-09-09 19:35:48 +03:00