Dolda2000 GitWeb
/
pdm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into python3
[pdm.git]
/
pdm
/
srv.py
diff --git
a/pdm/srv.py
b/pdm/srv.py
index
9f6869e
..
e2aef4e
100644
(file)
--- a/
pdm/srv.py
+++ b/
pdm/srv.py
@@
-18,33
+18,34
@@
class repl(object):
self.mod = types.ModuleType("repl")
self.mod.echo = self.echo
self.printer = pprint.PrettyPrinter(indent = 4, depth = 6)
self.mod = types.ModuleType("repl")
self.mod.echo = self.echo
self.printer = pprint.PrettyPrinter(indent = 4, depth = 6)
- cl.send("+REPL\n")
+ cl.send(
b
"+REPL\n")
def sendlines(self, text):
for line in text.split("\n"):
def sendlines(self, text):
for line in text.split("\n"):
- self.cl.send(
" " + line +
"\n")
+ self.cl.send(
b" " + line.encode("utf-8") + b
"\n")
def echo(self, ob):
self.sendlines(self.printer.pformat(ob))
def command(self, cmd):
def echo(self, ob):
self.sendlines(self.printer.pformat(ob))
def command(self, cmd):
+ cmd = cmd.decode("utf-8")
try:
try:
ccode = compile(cmd, "PDM Input", "eval")
except SyntaxError:
ccode = compile(cmd, "PDM Input", "exec")
try:
try:
ccode = compile(cmd, "PDM Input", "eval")
except SyntaxError:
ccode = compile(cmd, "PDM Input", "exec")
- exec
ccode in self.mod.__dict__
- self.cl.send("+OK\n")
+ exec
(ccode, self.mod.__dict__)
+ self.cl.send(
b
"+OK\n")
else:
self.echo(eval(ccode, self.mod.__dict__))
else:
self.echo(eval(ccode, self.mod.__dict__))
- self.cl.send("+OK\n")
+ self.cl.send(
b
"+OK\n")
except:
for line in traceback.format_exception(*sys.exc_info()):
except:
for line in traceback.format_exception(*sys.exc_info()):
- self.cl.send(
" " + line
)
- self.cl.send("+EXC\n")
+ self.cl.send(
b" " + line.encode("utf-8")
)
+ self.cl.send(
b
"+EXC\n")
def handle(self, buf):
def handle(self, buf):
- p = buf.find("\n\n")
+ p = buf.find(
b
"\n\n")
if p < 0:
return buf
cmd = buf[:p + 1]
if p < 0:
return buf
cmd = buf[:p + 1]
@@
-56,13
+57,13
@@
class perf(object):
def __init__(self, cl):
self.cl = cl
self.odtab = {}
def __init__(self, cl):
self.cl = cl
self.odtab = {}
- cl.send("+PERF1\n")
+ cl.send(
b
"+PERF1\n")
self.buf = ""
self.lock = threading.Lock()
self.subscribed = {}
def closed(self):
self.buf = ""
self.lock = threading.Lock()
self.subscribed = {}
def closed(self):
- for id, recv in self.subscribed.ite
rite
ms():
+ for id, recv in self.subscribed.items():
ob = self.odtab[id]
if ob is None: continue
ob, protos = ob
ob = self.odtab[id]
if ob is None: continue
ob, protos = ob
@@
-84,7
+85,7
@@
class perf(object):
raise ValueError("Object does not support PDM introspection")
try:
proto = ob.pdm_protocols()
raise ValueError("Object does not support PDM introspection")
try:
proto = ob.pdm_protocols()
- except Exception
,
exc:
+ except Exception
as
exc:
raise ValueError("PDM introspection failed", exc)
self.odtab[id] = ob, proto
return proto
raise ValueError("PDM introspection failed", exc)
self.odtab[id] = ob, proto
return proto
@@
-101,7
+102,7
@@
class perf(object):
return
try:
proto = self.bindob(id, ob)
return
try:
proto = self.bindob(id, ob)
- except Exception
,
exc:
+ except Exception
as
exc:
self.send("-", exc)
return
self.send("+", proto)
self.send("-", exc)
return
self.send("+", proto)
@@
-123,12
+124,12
@@
class perf(object):
return
try:
ob = src.lookup(obnm)
return
try:
ob = src.lookup(obnm)
- except KeyError
,
exc:
+ except KeyError
as
exc:
self.send("-", exc)
return
try:
proto = self.bindob(tgtid, ob)
self.send("-", exc)
return
try:
proto = self.bindob(tgtid, ob)
- except Exception
,
exc:
+ except Exception
as
exc:
self.send("-", exc)
return
self.send("+", proto)
self.send("-", exc)
return
self.send("+", proto)
@@
-158,7
+159,7
@@
class perf(object):
return
try:
ret = ob.readattr()
return
try:
ret = ob.readattr()
- except Exception
,
exc:
+ except Exception
as
exc:
self.send("-", Exception("Could not read attribute"))
return
self.send("+", ret)
self.send("-", Exception("Could not read attribute"))
return
self.send("+", ret)
@@
-175,7
+176,7
@@
class perf(object):
return
try:
self.send("+", ob.invoke(method, *args, **kwargs))
return
try:
self.send("+", ob.invoke(method, *args, **kwargs))
- except Exception
,
exc:
+ except Exception
as
exc:
self.send("-", exc)
def event(self, id, ob, ev):
self.send("-", exc)
def event(self, id, ob, ev):
@@
-241,7
+242,7
@@
protocols["perf"] = perf
class client(threading.Thread):
def __init__(self, sk):
class client(threading.Thread):
def __init__(self, sk):
- super(
client, self
).__init__(name = "Management client")
+ super().__init__(name = "Management client")
self.setDaemon(True)
self.sk = sk
self.handler = self
self.setDaemon(True)
self.sk = sk
self.handler = self
@@
-250,6
+251,10
@@
class client(threading.Thread):
return self.sk.send(data)
def choose(self, proto):
return self.sk.send(data)
def choose(self, proto):
+ try:
+ proto = proto.decode("ascii")
+ except UnicodeError:
+ proto = None
if proto in protocols:
self.handler = protocols[proto](self)
else:
if proto in protocols:
self.handler = protocols[proto](self)
else:
@@
-257,7
+262,7
@@
class client(threading.Thread):
raise Exception()
def handle(self, buf):
raise Exception()
def handle(self, buf):
- p = buf.find("\n")
+ p = buf.find(
b
"\n")
if p >= 0:
proto = buf[:p]
buf = buf[p + 1:]
if p >= 0:
proto = buf[:p]
buf = buf[p + 1:]
@@
-266,24
+271,24
@@
class client(threading.Thread):
def run(self):
try:
def run(self):
try:
- buf = ""
- self.send("+PDM1\n")
+ buf =
b
""
+ self.send(
b
"+PDM1\n")
while True:
ret = self.sk.recv(1024)
while True:
ret = self.sk.recv(1024)
- if ret == "":
+ if ret ==
b
"":
return
buf += ret
while True:
try:
nbuf = self.handler.handle(buf)
except:
return
buf += ret
while True:
try:
nbuf = self.handler.handle(buf)
except:
+ #for line in traceback.format_exception(*sys.exc_info()):
+ # print(line)
return
if nbuf == buf:
break
buf = nbuf
finally:
return
if nbuf == buf:
break
buf = nbuf
finally:
- #for line in traceback.format_exception(*sys.exc_info()):
- # print line
try:
self.sk.close()
finally:
try:
self.sk.close()
finally:
@@
-293,7
+298,7
@@
class client(threading.Thread):
class listener(threading.Thread):
def __init__(self):
class listener(threading.Thread):
def __init__(self):
- super(
listener, self
).__init__(name = "Management listener")
+ super().__init__(name = "Management listener")
self.setDaemon(True)
def listen(self, sk):
self.setDaemon(True)
def listen(self, sk):
@@
-314,8
+319,8
@@
class listener(threading.Thread):
cl.start()
class unixlistener(listener):
cl.start()
class unixlistener(listener):
- def __init__(self, name, mode = 0600, group = None):
- super(
unixlistener, self
).__init__()
+ def __init__(self, name, mode = 0
o
600, group = None):
+ super().__init__()
self.name = name
self.mode = mode
self.group = group
self.name = name
self.mode = mode
self.group = group
@@
-340,7
+345,7
@@
class unixlistener(listener):
class tcplistener(listener):
def __init__(self, port, bindaddr = "127.0.0.1"):
class tcplistener(listener):
def __init__(self, port, bindaddr = "127.0.0.1"):
- super(
tcplistener, self
).__init__()
+ super().__init__()
self.port = port
self.bindaddr = bindaddr
self.port = port
self.bindaddr = bindaddr
@@
-362,7
+367,7
@@
def listen(spec):
last = spec
if "/" in first:
parts = spec.split(":")
last = spec
if "/" in first:
parts = spec.split(":")
- mode = 0600
+ mode = 0
o
600
group = None
if len(parts) > 1:
mode = int(parts[1], 8)
group = None
if len(parts) > 1:
mode = int(parts[1], 8)