Build DAG from functions directly
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- compilers, data-engineering
Direzione di ricerca
Inizia dal percorso ad_hoc_utils esistente e dall’entry point Builder().with_modules() per capire come gli oggetti funzione vengono attualmente convertiti in DAG. L’issue non indica file né test; per considerare il lavoro completato è necessario scegliere e documentare un’API basata su funzioni supportata, coprirla con test e preservare il workflow esistente di caricamento dei moduli.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Add first-class way to build a DAG from function objects (in contrast to DIY/ hacky). The user API could be either:
Builder().with_functions()- or an intermediary
my_module = module_from_functions(fns*)then passed to.with_modules()
Goals:
- simplify codebase
- foundation for better hierarchical / nested graph structures (i.e., subdags)
Current
At the core of Hamilton, users:
- write functions in a Python module ("dataflow code")
- load that module in the "driver code" to build a DAG
- execute the DAG via the Driver
Problem
- It is currently possible to build Hamilton DAGs from functions, but we have no official "here's how you do it" that we guarantee we'll support.
ad_hoc_utilsmeans exactly the opposite
- In a notebook, there's no good reason to create a module from a notebook function before passing to Hamilton (except our how constraints)
- Python module machinery is complex and adds indirection to the codebase (tests, notebook extension, LSP)
Benefits
- greatly simply many unit tests
- facilitate marimo integration
Hamilton 2.0 / Broader perspective
There's no well-defined structure or purpose to Hamilton top-level modules (e.g., nodes, graph_types, graph_utils, graph, ad_hoc_utils, base, hamilton.common, models). I propose a structure that matches the Hamilton lifecycle:
hamilton.parser: everything that deals with source code: how functions are written, if type annotations are present (not type matching), collecting functions from modules, converting a notebook cell string to a module, remove comments and docstring before hashing source codehamilton.compiler: converting code to DAG: structuring the DAG from functions, applying function modifiers, validating types, etc.- remove
ad_hoc_utils
- Lingua principale
- Jupyter Notebook
- Stelle
- 2.6k
- Fork
- 218
- Merge medio
- 2g 13h
- PR unite (30g)
- 18
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/hamilton
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 2 giorni
-
Engine crashes when client sends nan or inf float to UIForse di nuovo libera @Exudev l’ha presa 231 giorni fa e non c’è nessuna pull request aperta. Apertabug SDK
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
apache/hamilton#1458 · 5 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
More detailed type annotations in graph visualizationsForse di nuovo libera @Nishant-Manocha l’ha presa 366 giorni fa e non c’è nessuna pull request aperta. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
apache/hamilton#1383 · 4 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Documentation: add explainer for FastAPIForse di nuovo libera @Aditya-Deshwal23 l’ha presa 185 giorni fa e non c’è nessuna pull request aperta. Apertadocumentation
Difficoltà 2/5 1-2 giorni Idoneità per principianti 65/100
apache/hamilton#1304 · 5 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Link back to github from reference API docsForse già presa @naikvaib l’ha presa 23 giorni fa. Apertadocumentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/hamilton#572 · 3 commenti ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di apache/hamilton
Issue simili
-
UB: (int) cast of a user double outside int range in dispatch / vm_index_is_int / flat_index_atApertaarea:runtime-vm
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
InauguralSystems/EigenScript#1748 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
[llvm-cov] `export -format=lcov` writes the folded side of a branch as an untaken `BRDA` recordApertatools:llvm-cov
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
llvm/llvm-project#231521 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
bug format I/O medium priority rt_lib
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno