Record of old ISSUES.txt
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 10/100
- Tipo di issue
- Documentazione
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- distributed-systems
Direzione di ricerca
Questa issue è più un documento d’archivio che una modifica definita; l’unico percorso concreto menzionato è execnet/rsync.py, insieme a diverse idee più generali su gateway e callback. Esamina prima gli elementi elencati e lo stato attuale del progetto, quindi suddividi qualsiasi lavoro ancora rilevante in issue separate con punti di ingresso, test e criteri di accettazione specifici.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Removed the old ISSUES.txt file from the repository (773107e305f6799e29d60), creating this issue to record its contents for review in case we want to create actual issues for any of them.
rsync links from posix to windows
-----------------------------------------
tags: 1.1 feature
bb: http://bitbucket.org/hpk42/py-trunk/issue/35
path: execnet/rsync.py
currently rsyncing bails out with a strange message when trying to rsync
links. should provide better message or even some support for doing it.
http process for mediating client/remote-subprocess execution
------------------------------------------------------------------
tags: 1.2 feature newdist
A client client connects to an http-execserver. An http-execserver
routes incoming "POST /exec" requests to a subprocess and returns a PID.
The PID identifies the subprocess which is used for further communication.
Client http-exec subprocess
makegw("...") -> POST /popen -> Popen() with bootstrap
(bootstrap)
<- PID
c=rexec(...) POST /exec/PID exec source
(source)
c.send(1) POST /exec/PID x = c.receive()
(1) assert x == 1
c.send(2)
z = c.receive() GET /exec/PID
<- (2)
assert z == 2
The client connects via "POST /exec/PID"
and pushes data to the remotely-executing code
in the subprocess.
The client connects via "GET /exec/PID"
and receives data from the remotely-executing code.
The client constructs a Channel() object which triggers
these two connections, presenting a nice send/receive
abstractions.
The code executing in the http-execserver controlled
subprocess is a PopenGateway. It does not know that it
is connected via the http client/server machinery.
The http-execserver proxies data from the subprocess
to the client. If there is no active GET request, the
data is queued.
The http-execserver forwards data from the client to the
subprocess, using the PID. If the subprocess is not
connected, an ERROR code is returned.
Example session:
gw = group.makegateway("http=codespeak.net")
def fun(channel):
return channel.send(channel.receive()+1)
ch = gw.remote_exec(fun)
ch.send(1)
x = ch.receive()
assert x == 2
a channel-IO based gateway
--------------------------------------------------
tags: 1.1 feature newdist
A building block for establishing a permanent hierarchy
of processes is a Gateway that operates on a Channel object.
This way a gateway can be instantiated through another
intermediating gateway which bi-directionallry forwards
Messages through a existing channel.
A code example could look like this:
group.setlocalfactory(port=8888)
gw = group.makegateway("ssh=codespeak.net")
# local ssh-process would be a child of the factory service
# which could have timeouts for killing, or allow resuming.
# for instantiating remote it could also install a multiplexer
# on the remote place such that the same ssh connection is re-used
# for multiple ssh=codespeak.net connections, makes for small latency.
some first simple implementation might look like this::
gw = group.makegateway("socketservice//port=8888")
# we can rely that the subprocess gw can import execnet
ch = gw.remote_exec("""
import execnet.service
execnet.service.gatewaymaker(channel)
""")
ch.send(xspec)
subchannel = ch.receive()
return ChannelGateway(subchannel)
creating virtualenv environments on the fly
-----------------------------------------------
tags: 1.1 wish
there should be a (plugin-provided?) way to create
a virtual environment:
gw = makegateway("ssh=codespeak.net")
newgw = xdeploy.create_venv_gateway(gw, "venvname", depstring)
newgw # lives in home/ dir of remote virtualenv
# maybe have get_temproot default to tmp/ there?
sf = xdeploy.SetupFile("..setup.py")
sf.sdist_remote_install(newgw)
have callback accept errors / errback
-----------------------------------------------
tags: 1.1 wish
If using channel.setcallback() it currently is not
possible to notice the exact errors that might happen
on the other side. Either introduce an "errback"
or (probably better) optionally allow an extra 'error'
parameter to execnet callbacks.
fix rsync between python/jython
-----------------------------------------------
tags: 1.0 bug
rsync does not complete with jython.
- Lingua principale
- Python
- Stelle
- 102
- Fork
- 47
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
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 pytest-dev/execnet
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
pytest-dev/execnet#429 · 1 commento ·
-
IPv6 support Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
pytest-dev/execnet#384 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
pytest-dev/execnet#374 · 3 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
pytest-dev/execnet#306 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
pytest-dev/execnet#279 · 1 reazione ·
Tutte le issue di pytest-dev/execnet
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
learningequality/ricecooker#747 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
BSData/horus-heresy-3rd-edition#3171 ·
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
run-llama/llama_index#23199 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
KhronosGroup/glTF-Blender-IO#2769 ·