معرفی شرکت ها


detacache-0.1.2


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

Async and Sync Function Decorator to cache function call's to Deta base
ویژگی مقدار
سیستم عامل -
نام فایل detacache-0.1.2
نام detacache
نسخه کتابخانه 0.1.2
نگهدارنده []
ایمیل نگهدارنده []
نویسنده vidya sagar
ایمیل نویسنده svidya051@gmail.com
آدرس صفحه اصلی https://github.com/vidyasagar1432/detacache
آدرس اینترنتی https://pypi.org/project/detacache/
مجوز MIT
# [DetaCache](https://github.com/vidyasagar1432/detacache) #### Async and Sync Function Decorator to cache function call's to Deta base. ## Installing ```bash pip install detacache ``` ## Async and Sync Decorator to cache function ```python import asyncio import aiohttp import requests from detacache import DetaCache app = detaCache('projectKey') @app.cache(expire=30) async def asyncgetjSON(url:str): async with aiohttp.ClientSession() as session: async with session.get(url) as response: return await response.json() @app.cache(expire=30) def syncgetjSON(url:str): return requests.get(url).json() async def main(): asyncdata = await asyncgetjSON('https://httpbin.org/json') print(asyncdata) syncdata = syncgetjSON('https://httpbin.org/json') print(syncdata) loop = asyncio.get_event_loop() loop.run_until_complete(main()) ``` ## FastAPI Decorator to cache function #### you can use `cache` method as decorator between router decorator and view function and must pass `request` as param of view function. ```python from fastapi import FastAPI, Request from fastapi.templating import Jinja2Templates from fastapi.responses import HTMLResponse, PlainTextResponse from detacache import FastAPICache app = FastAPI() templates = Jinja2Templates(directory='templates') deta = FastAPICache(projectKey='projectKey') @app.get('/t-html') @deta.cache(expire=10) def templateResponse(request:Request): return templates.TemplateResponse('home.html',context={'request':request}) @app.get('/html') @deta.cache(expire=10) def htmlResponse(request: Request): return HTMLResponse(''' <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>My Pimpin Website</title> <meta name="description" content="A sample website, nothin fancy"> <meta http-equiv="author" content="Francisco Campos Arias"> <meta name="keywords" content="html, css, web, design, sample, practice"> </head> <body> <div class="container"> <header> <div class="header"> <h1>{{ data }}</h1> </div> </header> <div class="main"> <h2>This is just an example with some web content. This is the Hero Unit.</h2> </div> <div class="feature"> <h3>Featured Content 1</h3> <p>lorem ipsum dolor amet lorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum.</p> </div> <div class="feature"> <h3>Featured Content 2</h3> <p>lorem ipsum dolor amet lorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor.</p> </div> <footer> &copy;2012 Francisco Campos Arias, All Rigts Reserved. </footer> </div> </body> </html> ''') @app.get('/dict') @deta.cache(expire=10) def dictResponse(request: Request): return { "slideshow": { "author": "Yours Truly", "date": "date of publication", "slides": [ { "title": "Wake up to WonderWidgets!", "type": "all" }, { "items": [ "Why <em>WonderWidgets</em> are great", "Who <em>buys</em> WonderWidgets" ], "title": "Overview", "type": "all" } ], "title": "Sample Slide Show" } } @app.get('/text') @deta.cache(expire=10) def textResponse(request: Request): return PlainTextResponse('detacache') @app.get('/str') @deta.cache(expire=20) async def strResponse(request: Request): return 'fastapi detacache' @app.get('/tuple') @deta.cache(expire=10) def tupleResponse(request: Request): return ('fastapi', 'detacache') @app.get('/list') @deta.cache(expire=10) def tupleResponse(request: Request): return ['fastapi', 'detacache'] @app.get('/set') @deta.cache(expire=10) def setResponse(request: Request): return {'fastapi', 'detacache'} @app.get('/int') @deta.cache(expire=10) def intResponse(request: Request): return 10 @app.get('/float') @deta.cache(expire=10) def floatResponse(request: Request): return 1.5 @app.get('/bool') @deta.cache(expire=10) def boolResponse(request: Request): return True ``` ## starlette Decorator to cache function #### you can use `cache` method as decorator and must pass `request` as param of view function. ```python from starlette.applications import Starlette from starlette.responses import HTMLResponse, PlainTextResponse, JSONResponse from starlette.routing import Route from starlette.requests import Request from detacache import StarletteCache deta = StarletteCache(projectKey='projectKey') @deta.cache(expire=30) def dictResponse(request: Request): return JSONResponse({ "slideshow": { "author": "Yours Truly", "date": "date of publication", "slides": [ { "title": "Wake up to WonderWidgets!", "type": "all" }, { "items": [ "Why <em>WonderWidgets</em> are great", "Who <em>buys</em> WonderWidgets" ], "title": "Overview", "type": "all" } ], "title": "Sample Slide Show" } }) @deta.cache(expire=20) async def strResponse(request: Request): return JSONResponse('fastapi detacache') @deta.cache(expire=10) def tupleResponse(request: Request): return JSONResponse(('fastapi', 'detacache')) @deta.cache(expire=10) def listResponse(req): print(req.url) return JSONResponse(['fastapi', 'detacache']) @deta.cache(expire=10) def setResponse(request: Request): return JSONResponse({'fastapi', 'detacache'}) @deta.cache(expire=10) def intResponse(request: Request): return JSONResponse(10) @deta.cache(expire=10) def floatResponse(request: Request): return JSONResponse(1.5) @deta.cache(expire=10) def boolResponse(request: Request): return JSONResponse(True) @deta.cache(expire=10) def jsonResponse(request: Request): return JSONResponse({ "slideshow": { "author": "Yours Truly", "date": "date of publication", "slides": [ { "title": "Wake up to WonderWidgets!", "type": "all" }, { "items": [ "Why <em>WonderWidgets</em> are great", "Who <em>buys</em> WonderWidgets" ], "title": "Overview", "type": "all" } ], "title": "Sample Slide Show" } } ) @deta.cache(expire=30) def htmlResponse(request: Request): return HTMLResponse(''' <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>My Pimpin Website</title> <meta name="description" content="A sample website, nothin fancy"> <meta http-equiv="author" content="Francisco Campos Arias"> <meta name="keywords" content="html, css, web, design, sample, practice"> </head> <body> <div class="container"> <header> <div class="header"> <h1>{{ data }}</h1> </div> </header> <div class="main"> <h2>This is just an example with some web content. This is the Hero Unit.</h2> </div> <div class="feature"> <h3>Featured Content 1</h3> <p>lorem ipsum dolor amet lorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum.</p> </div> <div class="feature"> <h3>Featured Content 2</h3> <p>lorem ipsum dolor amet lorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor ametlorem ipsum dolor.</p> </div> <footer> &copy;2012 Francisco Campos Arias, All Rigts Reserved. </footer> </div> </body> </html> ''') @deta.cache(expire=20) def textResponse(request: Request): return PlainTextResponse('detacache') routes = [ Route("/text", endpoint=textResponse), Route("/html", endpoint=htmlResponse), Route("/json", endpoint=jsonResponse), Route("/bool", endpoint=boolResponse), Route("/float", endpoint=floatResponse), Route("/int", endpoint=intResponse), Route("/set", endpoint=setResponse), Route("/list", endpoint=listResponse), Route("/tuple", endpoint=tupleResponse), Route("/str", endpoint=strResponse), Route("/dict", endpoint=dictResponse), ] app = Starlette(routes=routes) ``` ## License MIT License Copyright (c) 2021 [Vidya Sagar](https://github.com/vidyasagar1432)


نیازمندی

مقدار نام
- aiohttp
- requests


زبان مورد نیاز

مقدار نام
>=3.6 Python


نحوه نصب


نصب پکیج whl detacache-0.1.2:

    pip install detacache-0.1.2.whl


نصب پکیج tar.gz detacache-0.1.2:

    pip install detacache-0.1.2.tar.gz