From b6569bd4e56e48db004da3471f42d3596ea5e48d Mon Sep 17 00:00:00 2001 From: tangkikodo Date: Sun, 3 Mar 2024 08:31:11 +0800 Subject: [PATCH] add post example --- README.md | 25 ++++++++++++++++++++++--- examples/0_demo.py | 8 ++++++++ examples/0_demo_loader.py | 8 ++++++++ 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b22bfac..51648f9 100644 --- a/README.md +++ b/README.md @@ -76,11 +76,19 @@ class Blog(BaseModel): comments: list[Comment] = [] async def resolve_comments(self): return await query_comments(self.id) + + comment_count: int = 0 + def post_comment_count(self): + return len(self.comments) class MyBlogSite(BaseModel): blogs: list[Blog] name: str + comment_count: int = 0 + def post_comment_count(self): + return sum([b.comment_count for b in self.blogs]) + async def single(): blog = Blog(id=1, title='what is pydantic-resolve') blog = await Resolver().resolve(blog) @@ -128,7 +136,8 @@ output of my_blog_site: "id": 2, "content": "i dont understand" } - ] + ], + "comment_count": 2 }, { "id": 2, @@ -142,9 +151,11 @@ output of my_blog_site: "id": 4, "content": "wow!" } - ] + ], + "comment_count": 2 } - ] + ], + "comment_count": 4 } ``` @@ -183,10 +194,18 @@ class Blog(BaseModel): comments: list[Comment] = [] def resolve_comments(self, loader=LoaderDepend(blog_to_comments_loader)): return loader.load(self.id) + + comment_count: int = 0 + def post_comment_count(self): + return len(self.comments) class MyBlogSite(BaseModel): blogs: list[Blog] + comment_count: int = 0 + def post_comment_count(self): + return sum([b.comment_count for b in self.blogs]) + async def batch(): my_blog_site = MyBlogSite( blogs = [ diff --git a/examples/0_demo.py b/examples/0_demo.py index 9fa47ea..b407107 100644 --- a/examples/0_demo.py +++ b/examples/0_demo.py @@ -24,10 +24,18 @@ class Blog(BaseModel): comments: list[Comment] = [] async def resolve_comments(self): return await query_comments(self.id) + + comment_count: int = 0 + def post_comment_count(self): + return len(self.comments) class MyBlogSite(BaseModel): blogs: list[Blog] + comment_count: int = 0 + def post_comment_count(self): + return sum([b.comment_count for b in self.blogs]) + async def single(): blog = Blog(id=1, title='what is pydantic-resolve') diff --git a/examples/0_demo_loader.py b/examples/0_demo_loader.py index 7eb1870..860d367 100644 --- a/examples/0_demo_loader.py +++ b/examples/0_demo_loader.py @@ -25,10 +25,18 @@ class Blog(BaseModel): comments: list[Comment] = [] def resolve_comments(self, loader=LoaderDepend(blog_to_comments_loader)): return loader.load(self.id) + + comment_count: int = 0 + def post_comment_count(self): + return len(self.comments) class MyBlogSite(BaseModel): blogs: list[Blog] + comment_count: int = 0 + def post_comment_count(self): + return sum([b.comment_count for b in self.blogs]) + async def batch(): my_blog_site = MyBlogSite( blogs = [