Changed all type checking to use isinstance
This commit is contained in:
parent
7c342e75bf
commit
6f337e0b14
@ -116,7 +116,7 @@ class Buddy(object):
|
||||
def __init__(self, bus_name, object_id, service, icon_cache):
|
||||
if not bus_name:
|
||||
raise ValueError("DBus bus name must be valid")
|
||||
if not object_id or type(object_id) != type(1):
|
||||
if not object_id or not isinstance(object_id, int):
|
||||
raise ValueError("object id must be a valid number")
|
||||
# Normal Buddy objects must be created with a valid service,
|
||||
# owner objects do not
|
||||
|
@ -31,7 +31,7 @@ class BuddyIconCache(object):
|
||||
return data
|
||||
|
||||
def get_icon(self, printable_hash):
|
||||
if type(printable_hash) != type(u""):
|
||||
if not isinstance(printable_hash, unicode):
|
||||
raise RuntimeError("printable_hash must be a unicode string.")
|
||||
try:
|
||||
fname = self._cache[printable_hash]
|
||||
|
@ -16,18 +16,18 @@ class ServiceAdv(object):
|
||||
def __init__(self, interface, protocol, name, stype, domain, local):
|
||||
self._interface = interface
|
||||
self._protocol = protocol
|
||||
if type(name) != type(u""):
|
||||
if not isinstance(name, unicode):
|
||||
raise ValueError("service advertisement name must be unicode.")
|
||||
self._name = name
|
||||
if type(stype) != type(u""):
|
||||
if not isinstance(stype, unicode):
|
||||
raise ValueError("service advertisement type must be unicode.")
|
||||
self._stype = stype
|
||||
if type(domain) != type(u""):
|
||||
if not isinstance(domain, unicode):
|
||||
raise ValueError("service advertisement domain must be unicode.")
|
||||
self._domain = domain
|
||||
self._service = None
|
||||
if type(local) != type(False):
|
||||
raise ValueError("local must be a boolean.")
|
||||
if not isinstance(local, bool):
|
||||
raise ValueError("local must be a bool.")
|
||||
self._local = local
|
||||
self._state = _SA_UNRESOLVED
|
||||
self._resolver = None
|
||||
@ -714,7 +714,7 @@ class PresenceService(object):
|
||||
raise ValueError("invalid activity id")
|
||||
owner_nick = self._owner.get_name()
|
||||
real_name = Service.compose_service_name(owner_nick, activity_id)
|
||||
if address and type(address) != type(u""):
|
||||
if address and isinstance(address, unicode):
|
||||
raise ValueError("address must be a unicode string.")
|
||||
if address == None and stype.endswith('_udp'):
|
||||
# Use random currently unassigned multicast address
|
||||
@ -722,7 +722,7 @@ class PresenceService(object):
|
||||
random.randint(1, 254))
|
||||
properties['address'] = address
|
||||
properties['port'] = port
|
||||
if port and port != -1 and (type(port) != type(1) or port <= 1024 or port >= 65535):
|
||||
if port and port != -1 and (not isinstance(port, int) or port <= 1024 or port >= 65535):
|
||||
raise ValueError("port must be a number between 1024 and 65535")
|
||||
|
||||
color = self._owner.get_color()
|
||||
@ -768,7 +768,7 @@ class PresenceService(object):
|
||||
def register_service_type(self, stype):
|
||||
"""Requests that the Presence service look for and recognize
|
||||
a certain mDNS service types."""
|
||||
if type(stype) != type(u""):
|
||||
if not isinstance(stype, unicode):
|
||||
raise ValueError("service type must be a unicode string.")
|
||||
|
||||
# If we've already registered it as a service type, ref it and return
|
||||
@ -795,7 +795,7 @@ class PresenceService(object):
|
||||
|
||||
def unregister_service_type(self, stype):
|
||||
"""Stop tracking a certain mDNS service."""
|
||||
if type(stype) != type(u""):
|
||||
if not isinstance(stype, unicode):
|
||||
raise ValueError("service type must be a unicode string.")
|
||||
|
||||
# if it was found, unref it and possibly remove it
|
||||
|
@ -8,20 +8,20 @@ import logging
|
||||
import gobject
|
||||
|
||||
def compose_service_name(name, activity_id):
|
||||
if type(name) == type(""):
|
||||
if isinstance(name, str):
|
||||
name = unicode(name)
|
||||
if not name:
|
||||
raise ValueError("name must be a valid string.")
|
||||
if not activity_id:
|
||||
return name
|
||||
if type(name) != type(u""):
|
||||
if not isinstance(name, unicode):
|
||||
raise ValueError("name must be in unicode.")
|
||||
composed = "%s [%s]" % (name, activity_id)
|
||||
return composed
|
||||
|
||||
def decompose_service_name(name):
|
||||
"""Break a service name into the name and activity ID, if we can."""
|
||||
if type(name) != type(u""):
|
||||
if not isinstance(name, unicode):
|
||||
raise ValueError("name must be a valid unicode string.")
|
||||
name_len = len(name)
|
||||
if name_len < util.ACTIVITY_ID_LEN + 5:
|
||||
@ -151,23 +151,23 @@ class Service(gobject.GObject):
|
||||
gobject.GObject.__init__(self)
|
||||
if not bus_name:
|
||||
raise ValueError("DBus bus name must be valid")
|
||||
if not object_id or type(object_id) != type(1):
|
||||
if not object_id or not isinstance(object_id, int):
|
||||
raise ValueError("object id must be a valid number")
|
||||
|
||||
# Validate immutable options
|
||||
if name and type(name) != type(u""):
|
||||
if name and not isinstance(name, unicode):
|
||||
raise ValueError("name must be unicode.")
|
||||
if not name or not len(name):
|
||||
raise ValueError("must specify a valid service name.")
|
||||
|
||||
if stype and type(stype) != type(u""):
|
||||
if stype and not isinstance(stype, unicode):
|
||||
raise ValueError("service type must be in unicode.")
|
||||
if not stype or not len(stype):
|
||||
raise ValueError("must specify a valid service type.")
|
||||
if not stype.endswith("._tcp") and not stype.endswith("._udp"):
|
||||
raise ValueError("must specify a TCP or UDP service type.")
|
||||
|
||||
if type(domain) != type(u""):
|
||||
if not isinstance(domain, unicode):
|
||||
raise ValueError("domain must be in unicode.")
|
||||
if domain and domain != "local":
|
||||
raise ValueError("must use the 'local' domain (for now).")
|
||||
@ -271,9 +271,9 @@ class Service(gobject.GObject):
|
||||
if sender is not None and self._local_publisher != sender:
|
||||
raise ValueError("Service was not not registered by requesting process!")
|
||||
|
||||
if type(key) != type(u""):
|
||||
if not isinstance(key, unicode):
|
||||
raise ValueError("Key must be a unicode string.")
|
||||
if type(value) != type(u"") and type(value) != type(True):
|
||||
if not isinstance(value, unicode) and not isinstance(value, bool):
|
||||
raise ValueError("Key must be a unicode string or a boolean.")
|
||||
|
||||
# Ignore setting the key to it's current value
|
||||
@ -283,9 +283,9 @@ class Service(gobject.GObject):
|
||||
|
||||
# Blank value means remove key
|
||||
remove = False
|
||||
if type(value) == type(u"") and len(value) == 0:
|
||||
if isinstance(value, unicode) and len(value) == 0:
|
||||
remove = True
|
||||
if type(value) == type(False) and value == False:
|
||||
if isinstance(value, bool) and value == False:
|
||||
remove = True
|
||||
|
||||
if remove:
|
||||
@ -294,7 +294,7 @@ class Service(gobject.GObject):
|
||||
del self._properties[key]
|
||||
else:
|
||||
# Otherwise set it
|
||||
if type(value) == type(True):
|
||||
if isinstance(value, bool):
|
||||
value = ""
|
||||
self._properties[key] = value
|
||||
|
||||
@ -330,9 +330,9 @@ class Service(gobject.GObject):
|
||||
continue
|
||||
tmp_key = key
|
||||
tmp_val = value
|
||||
if type(tmp_key) != type(u""):
|
||||
if not isinstance(tmp_key, unicode):
|
||||
tmp_key = unicode(tmp_key)
|
||||
if type(tmp_val) != type(u""):
|
||||
if not isinstance(tmp_val, unicode):
|
||||
tmp_val = unicode(tmp_val)
|
||||
self._properties[tmp_key] = tmp_val
|
||||
|
||||
@ -361,7 +361,7 @@ class Service(gobject.GObject):
|
||||
return self._port
|
||||
|
||||
def set_port(self, port):
|
||||
if type(port) != type(1) or (port <= 1024 and port > 65536):
|
||||
if not isinstance(port, int) or (port <= 1024 and port > 65536):
|
||||
raise ValueError("must specify a valid port number between 1024 and 65536.")
|
||||
self._port = port
|
||||
|
||||
@ -369,7 +369,7 @@ class Service(gobject.GObject):
|
||||
return self._source_address
|
||||
|
||||
def set_source_address(self, address):
|
||||
if not address or type(address) != type(u""):
|
||||
if not address or not isinstance(address, unicode):
|
||||
raise ValueError("address must be unicode")
|
||||
self._source_address = address
|
||||
|
||||
@ -377,7 +377,7 @@ class Service(gobject.GObject):
|
||||
return self._address
|
||||
|
||||
def set_address(self, address):
|
||||
if not address or type(address) != type(u""):
|
||||
if not address or not isinstance(address, unicode):
|
||||
raise ValueError("address must be a unicode string")
|
||||
self._address = address
|
||||
self._properties['address'] = address
|
||||
|
@ -374,7 +374,7 @@ class SVGelement:
|
||||
f.write('\n'+'\t'*(level+2)+line)
|
||||
f.write('\n'+'\t'*(level+1)+']]>\n')
|
||||
if self.text:
|
||||
if type(self.text)==type(''): #If the text is only text
|
||||
if isinstance(self.text, str): #If the text is only text
|
||||
f.write(_escape(str(self.text)))
|
||||
else: #If the text is a spannedtext class
|
||||
f.write(str(self.text))
|
||||
|
@ -86,21 +86,21 @@ class SegmentBase(object):
|
||||
self._addr = None
|
||||
|
||||
# Sanity checks on the message attributes
|
||||
if not segno or type(segno) != type(1):
|
||||
if not segno or not isinstance(segno, int):
|
||||
raise ValueError("Segment number must be in integer.")
|
||||
if segno < 1 or segno > 65535:
|
||||
raise ValueError("Segment number must be between 1 and 65535 inclusive.")
|
||||
if not total_segs or type(total_segs) != type(1):
|
||||
if not total_segs or not isinstance(total_segs, int):
|
||||
raise ValueError("Message segment total must be an integer.")
|
||||
if total_segs < 1 or total_segs > 65535:
|
||||
raise ValueError("Message must have between 1 and 65535 segments inclusive.")
|
||||
if segno > total_segs:
|
||||
raise ValueError("Segment number cannot be larger than message segment total.")
|
||||
if not msg_seq_num or type(msg_seq_num) != type(1):
|
||||
if not msg_seq_num or not isinstance(msg_seq_num, int):
|
||||
raise ValueError("Message sequnce number must be an integer.")
|
||||
if msg_seq_num < 1 or msg_seq_num > 65535:
|
||||
raise ValueError("Message sequence number must be between 1 and 65535 inclusive.")
|
||||
if not master_sha or type(master_sha) != type("") or len(master_sha) != 20:
|
||||
if not master_sha or not isinstance(master_sha, str) or len(master_sha) != 20:
|
||||
raise ValueError("Message SHA1 checksum invalid.")
|
||||
|
||||
self._segno = segno
|
||||
@ -109,9 +109,9 @@ class SegmentBase(object):
|
||||
self._master_sha = master_sha
|
||||
|
||||
def _validate_address(addr):
|
||||
if not addr or type(addr) != type(()):
|
||||
if not addr or not isinstance(addr, tuple):
|
||||
raise ValueError("Address must be a tuple.")
|
||||
if len(addr) != 2 or type(addr[0]) != type("") or type(addr[1]) != type(1):
|
||||
if len(addr) != 2 or not isinstance(addr[0], str) or not isinstance(addr[1], int):
|
||||
raise ValueError("Address format was invalid.")
|
||||
if addr[1] < 1 or addr[1] > 65535:
|
||||
raise ValueError("Address port was invalid.")
|
||||
@ -265,15 +265,15 @@ class RetransmitSegment(SegmentBase):
|
||||
|
||||
def _verify_data(rt_msg_seq_num, rt_master_sha, rt_segment_number):
|
||||
# Sanity checks on the message attributes
|
||||
if not rt_segment_number or type(rt_segment_number) != type(1):
|
||||
if not rt_segment_number or not isinstance(rt_segment_number, int):
|
||||
raise ValueError("RT Segment number must be in integer.")
|
||||
if rt_segment_number < 1 or rt_segment_number > 65535:
|
||||
raise ValueError("RT Segment number must be between 1 and 65535 inclusive.")
|
||||
if not rt_msg_seq_num or type(rt_msg_seq_num) != type(1):
|
||||
if not rt_msg_seq_num or not isinstance(rt_msg_seq_num, int):
|
||||
raise ValueError("RT Message sequnce number must be an integer.")
|
||||
if rt_msg_seq_num < 1 or rt_msg_seq_num > 65535:
|
||||
raise ValueError("RT Message sequence number must be between 1 and 65535 inclusive.")
|
||||
if not rt_master_sha or type(rt_master_sha) != type("") or len(rt_master_sha) != 20:
|
||||
if not rt_master_sha or not isinstance(rt_master_sha, str) or len(rt_master_sha) != 20:
|
||||
raise ValueError("RT Message SHA1 checksum invalid.")
|
||||
_verify_data = staticmethod(_verify_data)
|
||||
|
||||
@ -349,13 +349,13 @@ class AckSegment(SegmentBase):
|
||||
|
||||
def _verify_data(ack_msg_seq_num, ack_master_sha, ack_addr):
|
||||
# Sanity checks on the message attributes
|
||||
if not ack_msg_seq_num or type(ack_msg_seq_num) != type(1):
|
||||
if not ack_msg_seq_num or not isinstance(ack_msg_seq_num, int):
|
||||
raise ValueError("Ack message sequnce number must be an integer.")
|
||||
if ack_msg_seq_num < 1 or ack_msg_seq_num > 65535:
|
||||
raise ValueError("Ack message sequence number must be between 1 and 65535 inclusive.")
|
||||
if not ack_master_sha or type(ack_master_sha) != type("") or len(ack_master_sha) != 20:
|
||||
if not ack_master_sha or not isinstance(ack_master_sha, str) or len(ack_master_sha) != 20:
|
||||
raise ValueError("Ack message SHA1 checksum invalid.")
|
||||
if type(ack_addr) != type(""):
|
||||
if not isinstance(ack_addr, str):
|
||||
raise ValueError("Ack message invalid address type.")
|
||||
try:
|
||||
foo = socket.inet_aton(ack_addr)
|
||||
@ -865,7 +865,7 @@ class MostlyReliablePipe(object):
|
||||
"""Debugging function to randomly drop incoming packets.
|
||||
The prob argument should be an integer between 1 and 10 to drop,
|
||||
or 0 to drop none. Higher numbers drop more packets."""
|
||||
if type(prob) != type(1):
|
||||
if not isinstance(prob, int):
|
||||
raise ValueError("Drop probability must be an integer.")
|
||||
if prob < 1 or prob > 10:
|
||||
raise ValueError("Drop probability must be between 1 and 10 inclusive.")
|
||||
|
@ -43,7 +43,7 @@ def is_hex(s):
|
||||
|
||||
def validate_activity_id(actid):
|
||||
"""Validate an activity ID."""
|
||||
if type(actid) != type("") and type(actid) != type(u""):
|
||||
if not isinstance(actid, str) and not isinstance(actid, unicode):
|
||||
return False
|
||||
if len(actid) != ACTIVITY_ID_LEN:
|
||||
return False
|
||||
|
Loading…
Reference in New Issue
Block a user