Prasanta Midya
08/24/2024, 7:30 AMStefan Krawczyk
08/24/2024, 4:05 PMStefan Krawczyk
08/24/2024, 4:06 PMPrasanta Midya
08/26/2024, 3:52 AMPrasanta Midya
08/26/2024, 4:40 AMStefan Krawczyk
08/26/2024, 4:57 AMdef raw_data(...) -> ...:
# your logic
return data
def embedder(env_value: str) -> ...:
# your logic
return embedder
def embedded_data(raw_data: ..., embedder: ...) -> ...:
# your logic
etc
In Hamilton function names typically are “assets”, i.e. nouns/variable names, that way when you read a function you know (a) what it creates, and via the function arguments (b) what it depends on.
You could simply wrap existing logic with Hamilton, or move some of the logic out of classes into functions like the above. This is up to you. Without seeing your code hard for me to judge 🙂Stefan Krawczyk
08/26/2024, 5:00 AMStefan Krawczyk
08/26/2024, 5:00 AMPrasanta Midya
08/26/2024, 5:16 AMStefan Krawczyk
08/26/2024, 5:19 AMPrasanta Midya
08/26/2024, 5:19 AMStefan Krawczyk
08/26/2024, 5:21 AMI have a doubt. If I use hamilton framework to obtain connection to vector db how can I ensure connection is closed with/without exception?How do you do that now? Hamilton doesn’t preclude you from writing the inside of a function however you want. You can catch exceptions, have finally blocks, etc.
Stefan Krawczyk
08/26/2024, 5:24 AMPrasanta Midya
08/26/2024, 5:26 AMPrasanta Midya
08/26/2024, 5:26 AMStefan Krawczyk
08/26/2024, 5:39 AMdb_client?Prasanta Midya
08/26/2024, 5:45 AMPrasanta Midya
08/26/2024, 5:52 AMStefan Krawczyk
08/26/2024, 6:03 AMmy_driver = # instantiate the driver
...
with OpensearchClientFactory() as db_client:
outputs = await my_driver.execute(OUTPUT_REQUESTED, inputs={"db_client": db_client, ...})Stefan Krawczyk
08/26/2024, 6:03 AMPrasanta Midya
08/26/2024, 6:05 AM