Fix a TypeError in direct.fsm.FSM

This commit is contained in:
Michael Wass 2016-06-28 12:15:00 -04:00 committed by GitHub
parent 733456cb41
commit 7e20626915

View File

@ -149,7 +149,7 @@ class FSM(DirectObject):
def __init__(self, name): def __init__(self, name):
self.fsmLock = RLock() self.fsmLock = RLock()
self.name = name self._name = name
self.stateArray = [] self.stateArray = []
self._serialNum = FSM.SerialNum self._serialNum = FSM.SerialNum
FSM.SerialNum += 1 FSM.SerialNum += 1
@ -185,7 +185,7 @@ class FSM(DirectObject):
# the messenger on every state change. The new and old states are # the messenger on every state change. The new and old states are
# accessible as self.oldState and self.newState, and the transition # accessible as self.oldState and self.newState, and the transition
# functions will already have been called. # functions will already have been called.
return 'FSM-%s-%s-stateChange' % (self._serialNum, self.name) return 'FSM-%s-%s-stateChange' % (self._serialNum, self._name)
def getCurrentFilter(self): def getCurrentFilter(self):
if not self.state: if not self.state:
@ -240,7 +240,7 @@ class FSM(DirectObject):
try: try:
assert isinstance(request, str) assert isinstance(request, str)
self.notify.debug("%s.forceTransition(%s, %s" % ( self.notify.debug("%s.forceTransition(%s, %s" % (
self.name, request, str(args)[1:])) self._name, request, str(args)[1:]))
if not self.state: if not self.state:
# Queue up the request. # Queue up the request.
@ -268,7 +268,7 @@ class FSM(DirectObject):
try: try:
assert isinstance(request, str) assert isinstance(request, str)
self.notify.debug("%s.demand(%s, %s" % ( self.notify.debug("%s.demand(%s, %s" % (
self.name, request, str(args)[1:])) self._name, request, str(args)[1:]))
if not self.state: if not self.state:
# Queue up the request. # Queue up the request.
self.__requestQueue.append(PythonUtil.Functor( self.__requestQueue.append(PythonUtil.Functor(
@ -307,7 +307,7 @@ class FSM(DirectObject):
try: try:
assert isinstance(request, str) assert isinstance(request, str)
self.notify.debug("%s.request(%s, %s" % ( self.notify.debug("%s.request(%s, %s" % (
self.name, request, str(args)[1:])) self._name, request, str(args)[1:]))
filter = self.getCurrentFilter() filter = self.getCurrentFilter()
result = filter(request, args) result = filter(request, args)
@ -385,7 +385,7 @@ class FSM(DirectObject):
# In either case, we quietly ignore unhandled command # In either case, we quietly ignore unhandled command
# (lowercase) requests. # (lowercase) requests.
assert self.notify.debug("%s ignoring request %s from state %s." % (self.name, request, self.state)) assert self.notify.debug("%s ignoring request %s from state %s." % (self._name, request, self.state))
return None return None
def filterOff(self, request, args): def filterOff(self, request, args):
@ -444,7 +444,7 @@ class FSM(DirectObject):
# Internal function to change unconditionally to the indicated # Internal function to change unconditionally to the indicated
# state. # state.
assert self.state assert self.state
assert self.notify.debug("%s to state %s." % (self.name, newState)) assert self.notify.debug("%s to state %s." % (self._name, newState))
self.oldState = self.state self.oldState = self.state
self.newState = newState self.newState = newState
@ -476,7 +476,7 @@ class FSM(DirectObject):
if self.__requestQueue: if self.__requestQueue:
request = self.__requestQueue.pop(0) request = self.__requestQueue.pop(0)
assert self.notify.debug("%s continued queued request." % (self.name)) assert self.notify.debug("%s continued queued request." % (self._name))
request() request()
def __callEnterFunc(self, name, *args): def __callEnterFunc(self, name, *args):
@ -525,9 +525,9 @@ class FSM(DirectObject):
try: try:
className = self.__class__.__name__ className = self.__class__.__name__
if self.state: if self.state:
str = ('%s FSM:%s in state "%s"' % (className, self.name, self.state)) str = ('%s FSM:%s in state "%s"' % (className, self._name, self.state))
else: else:
str = ('%s FSM:%s in transition from \'%s\' to \'%s\'' % (className, self.name, self.oldState, self.newState)) str = ('%s FSM:%s in transition from \'%s\' to \'%s\'' % (className, self._name, self.oldState, self.newState))
return str return str
finally: finally:
self.fsmLock.release() self.fsmLock.release()