Allow setting updated/new env var *values* on Runner.
I maintainer di solito rispondono entro 1 giorno
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
- performance, tooling
Direzione di ricerca
Inizia leggendo create_environ() in _utils.py, il suo utilizzo in Master.spawn_worker() in _master.py e Runner.init() in _runner.py. Decidi come Runner debba accettare valori espliciti dell’ambiente, quindi assicurati che i worker ricevano tali valori senza richiedere al codice del benchmark di modificare os.environ; il comportamento esistente di inherit-environ deve continuare a essere tenuto in considerazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
In _utils.py the create_environ() helper produces a dict that can be passed as the "env" arg to subprocess.run(), etc. It is used in Master.spawn_worker() (in _master.py). Currently it takes an "inherit_environ" arg (Bool) that corresponds to the "--inherit-environ" flag in the Runner CLI (see Runner.init() in _runner.py). This results in a potentially problematic situation.
The Problem
Let's say you have a benchmark script that internally relies on some environment variable that is defined relative to the commandline args given to the script. This environment variable may be set already or it might not. Regardless, you will be setting it to some new value. To make this work you need to do something like the following:
# This is a concrete example.
os.environ["MY_VAR"] = "spam" if runner.args.my_flag else "eggs"
if runner.args.inherit_environ is None:
runner.args.inherit_environ = ["MY_VAR"]
else:
runner.args.inherit_environ.append("MY_VAR")
However, in some cases you can't leave the env var set (or maybe the env var could cause pyperf to break). Plus things are more complicated if you have more than one such env var.
The Solution
Consequently, in a benchmark script it would be nice to be able to give the actual env var pairs to Runner rather than doing the dance above. Here are some possible approaches to solve the problem:
- allow
Runner.args.inherit_environto be a dictcreate_environ()would be updated to do the right thing- this is probably too messy to be part of pyperf's public API
- add something like
Runner.env_varsto allow benchmarks to explicitly set env var values to be used in workerscreate_environ()would grow a new "env" arg or "inherit_environ" would updated as above
- add
Runner.add_env_var(name, value=INHERIT)- this is like either of the two above, but probably a better public API for the functionality
- Lingua principale
- Python
- Stelle
- 967
- Fork
- 112
- Merge medio
- 5g 8h
- PR unite (30g)
- 9
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 psf/pyperf
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
Improve Type System for `pyperf`Forse già presa @DebanKsahu l’ha presa 69 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 32/100
I maintainer di solito rispondono entro 1 giorno
-
Extend hook's teardown metadata with warmup/calibration flagsForse già presa @maurycy l’ha presa 170 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
psf/pyperf#239 · 12 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
I maintainer di solito rispondono entro 1 giorno
Issue simili
-
add entry to blockAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
StevenBlack/hosts#3299 ·
-
`garak --report` overwrites the input report when its name has no ".report"Forse già presa @0z5a l’ha presa oggi. Apertaneeds-triage
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
I maintainer di solito rispondono entro 2 giorni
-
plot_graph crashes when a mesh node has no m2m edgeForse già presa @tygvi l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
mllam/neural-lam#883 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
future-agi/future-agi#4092 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
transcript analytics: a text whose only protected spans the prose pass redacts is withheld wholeAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
WingedGuardian/GENesis-AGI#4641 ·
I maintainer di solito rispondono entro 1 giorno