[HN Gopher] Pydantic-resolve, a hierarchical solution for data f...
       ___________________________________________________________________
        
       Pydantic-resolve, a hierarchical solution for data fetching and
       processing
        
       Author : tangkikodo
       Score  : 37 points
       Date   : 2024-02-25 13:18 UTC (1 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | tangkikodo wrote:
       | A powerful tool to build nested view data.
       | 
       | based on pydantic, pydantic-resolve uses declaretive way to
       | define and resolve (fetch) data from top to bottom
       | 
       | and provides post-process hooks from bottom to top (friendly for
       | aggregation & calculation)
       | 
       | it also provides visibility control over all fields.
       | 
       | concept diagram:
       | https://raw.githubusercontent.com/allmonday/pydantic-resolve...
        
       | tangkikodo wrote:
       | inspired by graphql (define schema in declaretive way)
       | 
       | however gql itself only walks from top to bottom, which lack the
       | ability to change data after it's descdenants are resolved.
       | 
       | pydantic-resolve is progressive, this means you don't need to
       | introduce a big framework to build a nested view data, all you
       | need to do is just:
       | 
       | - simpilify your query of root data (no complex sql any more,
       | then you can reuse it)
       | 
       | - define the related data you wanted, and then let resolver to
       | fetch it.
       | 
       | that's all~
        
         | dlahoda wrote:
         | There was COM/Corba like this. It was hanging/freezing. So
         | somebody will have to refactor it back to normal.
        
       | navbaker wrote:
       | I've used Pydantic with FastAPI, but can't really get a solid
       | feel for what this is doing. Can someone explain this to me like
       | I'm 5?
        
         | thornewolf wrote:
         | say you have a model with two attributes profile_image_url: str
         | and profile_image: bytes
         | 
         | it's expensive to fetch profile_image since it will involve a
         | http call to profile_image_url. right now, i would resolve this
         | by using the @property decorator
         | 
         | this library offers an alternative method for populating
         | profile_image by explicitly giving the user a hook for when
         | they want to resolve this dependency. they might want to do it
         | before access time, they might want to batch requests to this
         | external profile_image service to reduce roundtrip latency
         | 
         | this pattern has potential to become more powerful if we only
         | have user_id in context initially. we might want to fetch the
         | product_image_url from the database then fetch the actual
         | product_image after. this dependency graph might be
         | simplified/optimized using this tool
         | 
         | the repo provides its own concrete example of this form with
         | batch_person_age_loader
        
           | navbaker wrote:
           | Thanks!
        
             | Gimpei wrote:
             | I too was confused. If the authors are reading this, the
             | readme could do with a little bit more of an intro.
        
               | tangkikodo wrote:
               | my fault lol.
               | 
               | here is a step by step tutorial, building various kinds
               | of views data you need, and keep service layer simple and
               | clear at the same time.
               | 
               | https://github.com/allmonday/composition-oriented-
               | developmen...
               | 
               | code is ready, documents of english version is still wip.
        
           | codetrotter wrote:
           | That sounds pretty useful.
           | 
           | Anyone know of a library to do the same in Rust?
        
       | malcolmgreaves wrote:
       | Is this more-or-less functional reactive programming (FRP) using
       | Pydantic?
        
       | canadiantim wrote:
       | Could this be used to efficiently model an hierichical comment
       | thread for example, like HN or reddit?
        
         | lucky_cloud wrote:
         | The modeling could be done in pure Pydantic.
         | 
         | This project might be helpful in fetching the actual content
         | from a database in an efficient way.
        
       ___________________________________________________________________
       (page generated 2024-02-26 23:00 UTC)