##// END OF EJS Templates
Use default OS shell to run system commands...
Use default OS shell to run system commands Instead of using os.system which uses /bin/sh, this uses subprocess.call (the replacement of os.system) to run the command using the default shell of the OS. With this, one can use more advanced commands for bash, zsh, ksh, ... I also edited the docstring, added comments and fixed the handling of return codes.

File last commit:

r9375:4d245182
r12366:47045d65
Show More
socket.py
63 lines | 2.1 KiB | text/x-python | PythonLexer
epatters
Implement EmbeddedKernel.
r8411 """ Defines a dummy socket implementing (part of) the zmq.Socket interface. """
#-----------------------------------------------------------------------------
# Copyright (C) 2012 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
# Standard library imports.
epatters
Add abstract base class (ABC) for sockets used in kernel.
r8418 import abc
epatters
Implement EmbeddedKernel.
r8411 import Queue
# System library imports.
import zmq
# Local imports.
from IPython.utils.traitlets import HasTraits, Instance, Int
#-----------------------------------------------------------------------------
epatters
Add abstract base class (ABC) for sockets used in kernel.
r8418 # Generic socket interface
#-----------------------------------------------------------------------------
class SocketABC(object):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def recv_multipart(self, flags=0, copy=True, track=False):
raise NotImplementedError
@abc.abstractmethod
def send_multipart(self, msg_parts, flags=0, copy=True, track=False):
raise NotImplementedError
SocketABC.register(zmq.Socket)
#-----------------------------------------------------------------------------
epatters
Implement EmbeddedKernel.
r8411 # Dummy socket class
#-----------------------------------------------------------------------------
class DummySocket(HasTraits):
""" A dummy socket implementing (part of) the zmq.Socket interface. """
queue = Instance(Queue.Queue, ())
message_sent = Int(0) # Should be an Event
#-------------------------------------------------------------------------
epatters
Add abstract base class (ABC) for sockets used in kernel.
r8418 # Socket interface
epatters
Implement EmbeddedKernel.
r8411 #-------------------------------------------------------------------------
def recv_multipart(self, flags=0, copy=True, track=False):
return self.queue.get_nowait()
def send_multipart(self, msg_parts, flags=0, copy=True, track=False):
msg_parts = map(zmq.Message, msg_parts)
self.queue.put_nowait(msg_parts)
self.message_sent += 1
epatters
Add abstract base class (ABC) for sockets used in kernel.
r8418
SocketABC.register(DummySocket)