exec wrapper run API
- Lingua principale
- Python
- Stelle
- 0
- Fork
- 0
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Once a gcc cell is defined, it should be nice to have a wrapper for the generated code.
Expected API:
```
%%gcc foo.c
#include
int main(int argc, char ** argv) {
for (int i = 0; i < argc; i++) {
printf("%d: %s\n", i, argv[i]);
}
return 0;
}
```
Once this cell is run, the executable should be built and wrapped in a Python `foo` object.
This object will have a `run` method that accepts `*args` and `**kwargs`:
- Uppercase kwargs are treated as enviroment variables
- Lowercase casted to string are passed as arguments.
``` python
foo.run('1', 'b', 'c', PATH="/bin")
```
It would be nice to have the env before the args, so this should be equivalent to:
``` python
foo.env(PATH="/bin").run('a', 'b', 'c')
```
Envieroment variables and arguments that receive iterators should execute many times.
**IDEA** Maybe run could be a lazy object that is evaluated within first display...
``` python
foo.env(A=1).run(range(1, 100)).time()
# Maybe too crazy
foo.env(OMP_NUM_THREADS=range(1, 4).run().time()
```
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia individuando l’implementazione esistente della cella %%gcc e comprendendo come vengono compilati ed esposti gli eseguibili generati. Definisci la più piccola API confermata intorno al wrapper foo, includendo run, env, gli argomenti e le variabili d’ambiente in maiuscolo; considera l’esecuzione degli iteratori e la valutazione lazy del tempo come idee separate non ancora risolte. Il lavoro è completato quando il comportamento documentato di foo.run e foo.env funziona per l’esempio mostrato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- jupyter, python
- Ambito
- developer-experience, tooling
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100