Dolda2000 GitWeb
/
pdm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix simplefunc return bug.
[pdm.git]
/
pdm
/
srv.py
diff --git
a/pdm/srv.py
b/pdm/srv.py
index
abf7d89
..
2ddb9e7
100644
(file)
--- a/
pdm/srv.py
+++ b/
pdm/srv.py
@@
-10,6
+10,7
@@
which describes the functioning of the REPL and PERF protocols.
import os, sys, socket, threading, grp, select
import types, pprint, traceback
import pickle, struct
import os, sys, socket, threading, grp, select
import types, pprint, traceback
import pickle, struct
+from . import perf as mperf
__all__ = ["repl", "perf", "listener", "unixlistener", "tcplistener", "listen"]
__all__ = ["repl", "perf", "listener", "unixlistener", "tcplistener", "listen"]
@@
-62,8
+63,10
@@
class repl(object):
self.echo(eval(ccode, self.mod.__dict__))
self.cl.send(b"+OK\n")
except:
self.echo(eval(ccode, self.mod.__dict__))
self.cl.send(b"+OK\n")
except:
- for line in traceback.format_exception(*sys.exc_info()):
- self.cl.send(b" " + line.encode("utf-8"))
+ lines = ("".join(traceback.format_exception(*sys.exc_info()))).split("\n")
+ while len(lines) > 0 and lines[-1] == "": lines = lines[:-1]
+ for line in lines:
+ self.cl.send(b" " + line.encode("utf-8") + b"\n")
self.cl.send(b"+EXC\n")
def handle(self, buf):
self.cl.send(b"+EXC\n")
def handle(self, buf):
@@
-195,7
+198,7
@@
class perf(object):
def bindob(self, id, ob):
if not hasattr(ob, "pdm_protocols"):
def bindob(self, id, ob):
if not hasattr(ob, "pdm_protocols"):
- raise
ValueError
("Object does not support PDM introspection")
+ raise
mperf.nosuchname
("Object does not support PDM introspection")
try:
proto = ob.pdm_protocols()
except Exception as exc:
try:
proto = ob.pdm_protocols()
except Exception as exc:
@@
-206,12
+209,12
@@
class perf(object):
def bind(self, id, module, obnm):
resmod = sys.modules.get(module)
if resmod is None:
def bind(self, id, module, obnm):
resmod = sys.modules.get(module)
if resmod is None:
- self.send("-",
ImportError
("No such module: %s" % module))
+ self.send("-",
mperf.nosuchname
("No such module: %s" % module))
return
try:
ob = getattr(resmod, obnm)
except AttributeError:
return
try:
ob = getattr(resmod, obnm)
except AttributeError:
- self.send("-",
AttributeError
("No such object: %s" % obnm))
+ self.send("-",
mperf.nosuchname
("No such object: %s" % obnm))
return
try:
proto = self.bindob(id, ob)
return
try:
proto = self.bindob(id, ob)
@@
-227,7
+230,7
@@
class perf(object):
return None
ob, protos = ob
if proto not in protos:
return None
ob, protos = ob
if proto not in protos:
- self.send("-",
ValueError("Object does not support that protocol"
))
+ self.send("-",
mperf.nosuchproto("Object does not support that protocol: " + proto
))
return None
return ob
return None
return ob
@@
-238,7
+241,7
@@
class perf(object):
try:
ob = src.lookup(obnm)
except KeyError as exc:
try:
ob = src.lookup(obnm)
except KeyError as exc:
- self.send("-",
exc
)
+ self.send("-",
mperf.nosuchname(obnm)
)
return
try:
proto = self.bindob(tgtid, ob)
return
try:
proto = self.bindob(tgtid, ob)