From 6b3d47503f294128cb3289f4472669110afd4293 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Wed, 22 May 2013 18:52:20 +0000 Subject: pep8 and pyflakes cleanup --- diff --git a/collaboration/activity.py b/collaboration/activity.py index bd58e92..2061c70 100644 --- a/collaboration/activity.py +++ b/collaboration/activity.py @@ -28,16 +28,16 @@ import dbus from dbus import PROPERTIES_IFACE import gobject from telepathy.client import Channel -from telepathy.interfaces import CHANNEL, \ - CHANNEL_INTERFACE_GROUP, \ - CHANNEL_TYPE_TUBES, \ - CHANNEL_TYPE_TEXT, \ - CONNECTION, \ - PROPERTIES_INTERFACE -from telepathy.constants import CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES, \ - HANDLE_TYPE_ROOM, \ - HANDLE_TYPE_CONTACT, \ - PROPERTY_FLAG_WRITE +from telepathy.interfaces import (CHANNEL, + CHANNEL_INTERFACE_GROUP, + CHANNEL_TYPE_TUBES, + CHANNEL_TYPE_TEXT, + CONNECTION, + PROPERTIES_INTERFACE) +from telepathy.constants import (CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES, + HANDLE_TYPE_ROOM, + HANDLE_TYPE_CONTACT, + PROPERTY_FLAG_WRITE) CONN_INTERFACE_ACTIVITY_PROPERTIES = 'org.laptop.Telepathy.ActivityProperties' @@ -61,13 +61,13 @@ class Activity(gobject.GObject): """ __gsignals__ = { 'buddy-joined': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([gobject.TYPE_PYOBJECT])), + ([gobject.TYPE_PYOBJECT])), 'buddy-left': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([gobject.TYPE_PYOBJECT])), + ([gobject.TYPE_PYOBJECT])), 'new-channel': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([gobject.TYPE_PYOBJECT])), + ([gobject.TYPE_PYOBJECT])), 'joined': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT])), + ([gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT])), } __gproperties__ = { @@ -116,26 +116,25 @@ class Activity(gobject.GObject): def _start_tracking_properties(self): bus = dbus.SessionBus() self._get_properties_call = bus.call_async( - self.telepathy_conn.requested_bus_name, - self.telepathy_conn.object_path, - CONN_INTERFACE_ACTIVITY_PROPERTIES, - 'GetProperties', - 'u', - (self.room_handle,), - reply_handler=self.__got_properties_cb, - error_handler=self.__error_handler_cb, - utf8_strings=True) + self.telepathy_conn.requested_bus_name, + self.telepathy_conn.object_path, + CONN_INTERFACE_ACTIVITY_PROPERTIES, + 'GetProperties', + 'u', + (self.room_handle,), + reply_handler=self.__got_properties_cb, + error_handler=self.__error_handler_cb, + utf8_strings=True) # As only one Activity instance is needed per activity process, # we can afford listening to ActivityPropertiesChanged like this. self.telepathy_conn.connect_to_signal( - 'ActivityPropertiesChanged', - self.__activity_properties_changed_cb, - dbus_interface=CONN_INTERFACE_ACTIVITY_PROPERTIES) + 'ActivityPropertiesChanged', + self.__activity_properties_changed_cb, + dbus_interface=CONN_INTERFACE_ACTIVITY_PROPERTIES) def __activity_properties_changed_cb(self, room_handle, properties): - print('%r: Activity properties changed to %r', self, - properties) + print('%r: Activity properties changed to %r', self, properties) self._update_properties(properties) def __got_properties_cb(self, properties): @@ -184,7 +183,7 @@ class Activity(gobject.GObject): if self._get_properties_call is not None: print('%r: Blocking on GetProperties() because someone ' - 'wants property %s', self, pspec.name) + 'wants property %s', self, pspec.name) self._get_properties_call.block() if pspec.name == 'id': @@ -253,10 +252,12 @@ class Activity(gobject.GObject): if not self._joined: raise RuntimeError('Cannot invite a buddy to an activity that is' 'not shared.') - self.telepathy_text_chan.AddMembers([buddy.contact_handle], message, - dbus_interface=CHANNEL_INTERFACE_GROUP, - reply_handler=partial(self.__invite_cb, response_cb), - error_handler=partial(self.__invite_cb, response_cb)) + self.telepathy_text_chan.AddMembers( + [buddy.contact_handle], + message, + dbus_interface=CHANNEL_INTERFACE_GROUP, + reply_handler=partial(self.__invite_cb, response_cb), + error_handler=partial(self.__invite_cb, response_cb)) def __invite_cb(self, response_cb, error=None): response_cb(error) @@ -290,7 +291,7 @@ class Activity(gobject.GObject): def __get_all_members_cb(self, members, local_pending, remote_pending): print('__get_all_members_cb %r %r', members, - self._text_channel_group_flags) + self._text_channel_group_flags) if self._channel_self_handle in members: members.remove(self._channel_self_handle) @@ -301,7 +302,9 @@ class Activity(gobject.GObject): def _resolve_handles(self, input_handles, reply_cb): def get_handle_owners_cb(handles): - self.telepathy_conn.InspectHandles(HANDLE_TYPE_CONTACT, handles, + self.telepathy_conn.InspectHandles( + HANDLE_TYPE_CONTACT, + handles, reply_handler=reply_cb, error_handler=self.__error_handler_cb, dbus_interface=CONNECTION) @@ -328,8 +331,8 @@ class Activity(gobject.GObject): local_pending, remote_pending, actor, reason): print('__text_channel_members_changed_cb %r', - [added, message, added, removed, local_pending, - remote_pending, actor, reason]) + [added, message, added, removed, local_pending, + remote_pending, actor, reason]) if self._channel_self_handle in added: added.remove(self._channel_self_handle) if added: @@ -402,7 +405,7 @@ class Activity(gobject.GObject): self.telepathy_tubes_chan = share_command.tubes_channel self._channel_self_handle = share_command.channel_self_handle self._text_channel_group_flags = \ - share_command.text_channel_group_flags + share_command.text_channel_group_flags self._publish_properties() self._start_tracking_properties() self._start_tracking_buddies() @@ -426,9 +429,9 @@ class Activity(gobject.GObject): properties['private'] = self._private self.telepathy_conn.SetProperties( - self.room_handle, - properties, - dbus_interface=CONN_INTERFACE_ACTIVITY_PROPERTIES) + self.room_handle, + properties, + dbus_interface=CONN_INTERFACE_ACTIVITY_PROPERTIES) def __share_error_cb(self, share_activity_error_cb, error): logging.debug('%r: Share failed because: %s', self, error) @@ -453,7 +456,7 @@ class Activity(gobject.GObject): self.telepathy_tubes_chan.object_path] print('%r: bus name is %s, connection is %s, channels are %r', - self, bus_name, connection_path, channels) + self, bus_name, connection_path, channels) return bus_name, connection_path, channels # Leaving @@ -550,7 +553,9 @@ class _JoinCommand(_BaseCommand): def run(self): if self._finished: raise RuntimeError('This command has already finished') - self._connection.Get(CONNECTION, 'SelfHandle', + self._connection.Get( + CONNECTION, + 'SelfHandle', reply_handler=self.__get_self_handle_cb, error_handler=self.__error_handler_cb, dbus_interface=PROPERTIES_IFACE) @@ -558,14 +563,18 @@ class _JoinCommand(_BaseCommand): def __get_self_handle_cb(self, handle): self._global_self_handle = handle - self._connection.RequestChannel(CHANNEL_TYPE_TEXT, - HANDLE_TYPE_ROOM, self.room_handle, True, + self._connection.RequestChannel( + CHANNEL_TYPE_TEXT, + HANDLE_TYPE_ROOM, + self.room_handle, True, reply_handler=self.__create_text_channel_cb, error_handler=self.__error_handler_cb, dbus_interface=CONNECTION) - self._connection.RequestChannel(CHANNEL_TYPE_TUBES, - HANDLE_TYPE_ROOM, self.room_handle, True, + self._connection.RequestChannel( + CHANNEL_TYPE_TUBES, + HANDLE_TYPE_ROOM, + self.room_handle, True, reply_handler=self.__create_tubes_channel_cb, error_handler=self.__error_handler_cb, dbus_interface=CONNECTION) @@ -575,8 +584,9 @@ class _JoinCommand(_BaseCommand): ready_handler=self.__text_channel_ready_cb) def __create_tubes_channel_cb(self, channel_path): - print "Creating tubes channel with bus name %s" % self._connection.requested_bus_name - print "Creating tubes channel with channel path %s" % channel_path + print("Creating tubes channel with bus name %s" % + (self._connection.requested_bus_name)) + print("Creating tubes channel with channel path %s" % (channel_path)) Channel(self._connection.requested_bus_name, channel_path, ready_handler=self.__tubes_channel_ready_cb) @@ -596,7 +606,7 @@ class _JoinCommand(_BaseCommand): def _tubes_ready(self): if self.text_channel is None or \ - self.tubes_channel is None: + self.tubes_channel is None: return print('%r: finished setting up tubes', self) @@ -605,7 +615,7 @@ class _JoinCommand(_BaseCommand): def __text_channel_group_flags_changed_cb(self, added, removed): print('__text_channel_group_flags_changed_cb %r %r', added, - removed) + removed) self.text_channel_group_flags |= added self.text_channel_group_flags &= ~removed @@ -617,8 +627,8 @@ class _JoinCommand(_BaseCommand): def got_all_members(members, local_pending, remote_pending): print('got_all_members members %r local_pending %r ' - 'remote_pending %r', members, local_pending, - remote_pending) + 'remote_pending %r', members, local_pending, + remote_pending) if self.text_channel_group_flags & \ CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES: @@ -628,10 +638,12 @@ class _JoinCommand(_BaseCommand): if self_handle in local_pending: print('%r: We are in local pending - entering', self) - group.AddMembers([self_handle], '', + group.AddMembers( + [self_handle], + '', reply_handler=lambda: None, - error_handler=lambda e: self._join_failed_cb(e, - 'got_all_members AddMembers')) + error_handler=lambda e: + self._join_failed_cb(e, 'got_all_members AddMembers')) if members: self.__text_channel_members_changed_cb('', members, (), @@ -662,9 +674,9 @@ class _JoinCommand(_BaseCommand): local_pending, remote_pending, actor, reason): print('__text_channel_members_changed_cb added %r removed %r ' - 'local_pending %r remote_pending %r channel_self_handle ' - '%r', added, removed, local_pending, remote_pending, - self.channel_self_handle) + 'local_pending %r remote_pending %r channel_self_handle ' + '%r', added, removed, local_pending, remote_pending, + self.channel_self_handle) if self.text_channel_group_flags & \ CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES: diff --git a/collaboration/connection_watcher.py b/collaboration/connection_watcher.py index 96af1cf..1ef503a 100644 --- a/collaboration/connection_watcher.py +++ b/collaboration/connection_watcher.py @@ -25,8 +25,8 @@ import gobject from telepathy.client import Connection from telepathy.interfaces import CONN_INTERFACE -from telepathy.constants import CONNECTION_STATUS_CONNECTED, \ - CONNECTION_STATUS_DISCONNECTED +from telepathy.constants import (CONNECTION_STATUS_CONNECTED, + CONNECTION_STATUS_DISCONNECTED) _instance = None @@ -35,9 +35,9 @@ _instance = None class ConnectionWatcher(gobject.GObject): __gsignals__ = { 'connection-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([gobject.TYPE_PYOBJECT])), + ([gobject.TYPE_PYOBJECT])), 'connection-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([gobject.TYPE_PYOBJECT])), + ([gobject.TYPE_PYOBJECT])), } def __init__(self, bus=None): @@ -51,8 +51,10 @@ class ConnectionWatcher(gobject.GObject): # D-Bus path -> Connection self._connections = {} - self.bus.add_signal_receiver(self._status_changed_cb, - dbus_interface=CONN_INTERFACE, signal_name='StatusChanged', + self.bus.add_signal_receiver( + self._status_changed_cb, + dbus_interface=CONN_INTERFACE, + signal_name='StatusChanged', path_keyword='path') for conn in Connection.get_connections(bus): diff --git a/collaboration/connectionmanager.py b/collaboration/connectionmanager.py index 5ae59dd..1549d41 100644 --- a/collaboration/connectionmanager.py +++ b/collaboration/connectionmanager.py @@ -23,8 +23,7 @@ from functools import partial import dbus from dbus import PROPERTIES_IFACE -from telepathy.interfaces import ACCOUNT, \ - ACCOUNT_MANAGER +from telepathy.interfaces import (ACCOUNT, ACCOUNT_MANAGER) from telepathy.constants import CONNECTION_STATUS_CONNECTED ACCOUNT_MANAGER_SERVICE = 'org.freedesktop.Telepathy.AccountManager' @@ -51,8 +50,9 @@ class ConnectionManager(object): dbus_interface=PROPERTIES_IFACE) for account_path in account_paths: obj = bus.get_object(ACCOUNT_MANAGER_SERVICE, account_path) - obj.connect_to_signal('AccountPropertyChanged', - partial(self.__account_property_changed_cb, account_path)) + obj.connect_to_signal( + 'AccountPropertyChanged', + partial(self.__account_property_changed_cb, account_path)) connection_path = obj.Get(ACCOUNT, 'Connection') if connection_path != '/': try: @@ -73,10 +73,11 @@ class ConnectionManager(object): connection_name = connection_path.replace('/', '.')[1:] bus = dbus.SessionBus() connection = bus.get_object(connection_name, connection_path) - connection.connect_to_signal('StatusChanged', - partial(self.__status_changed_cb, account_path)) + connection.connect_to_signal( + 'StatusChanged', + partial(self.__status_changed_cb, account_path)) self._connections_per_account[account_path] = \ - Connection(account_path, connection) + Connection(account_path, connection) account = bus.get_object(ACCOUNT_MANAGER_SERVICE, account_path) status = account.Get(ACCOUNT, 'ConnectionStatus') @@ -115,6 +116,8 @@ class ConnectionManager(object): _connection_manager = None + + def get_connection_manager(): global _connection_manager if not _connection_manager: diff --git a/collaboration/neighborhood.py b/collaboration/neighborhood.py index 192b66f..8d85de2 100755 --- a/collaboration/neighborhood.py +++ b/collaboration/neighborhood.py @@ -18,31 +18,29 @@ # Boston, MA 02111-1307, USA. from functools import partial -from hashlib import sha1 -import traceback import gobject import gconf import dbus from dbus import PROPERTIES_IFACE -from telepathy.interfaces import ACCOUNT, \ - ACCOUNT_MANAGER, \ - CHANNEL, \ - CHANNEL_INTERFACE_GROUP, \ - CHANNEL_TYPE_CONTACT_LIST, \ - CHANNEL_TYPE_FILE_TRANSFER, \ - CLIENT, \ - CONNECTION, \ - CONNECTION_INTERFACE_ALIASING, \ - CONNECTION_INTERFACE_CONTACTS, \ - CONNECTION_INTERFACE_CONTACT_CAPABILITIES, \ - CONNECTION_INTERFACE_REQUESTS, \ - CONNECTION_INTERFACE_SIMPLE_PRESENCE -from telepathy.constants import HANDLE_TYPE_CONTACT, \ - HANDLE_TYPE_LIST, \ - CONNECTION_PRESENCE_TYPE_OFFLINE, \ - CONNECTION_STATUS_CONNECTED, \ - CONNECTION_STATUS_DISCONNECTED +from telepathy.interfaces import (ACCOUNT, + ACCOUNT_MANAGER, + CHANNEL, + CHANNEL_INTERFACE_GROUP, + CHANNEL_TYPE_CONTACT_LIST, + CHANNEL_TYPE_FILE_TRANSFER, + CLIENT, + CONNECTION, + CONNECTION_INTERFACE_ALIASING, + CONNECTION_INTERFACE_CONTACTS, + CONNECTION_INTERFACE_CONTACT_CAPABILITIES, + CONNECTION_INTERFACE_REQUESTS, + CONNECTION_INTERFACE_SIMPLE_PRESENCE) +from telepathy.constants import (HANDLE_TYPE_CONTACT, + HANDLE_TYPE_LIST, + CONNECTION_PRESENCE_TYPE_OFFLINE, + CONNECTION_STATUS_CONNECTED, + CONNECTION_STATUS_DISCONNECTED) from telepathy.client import Connection, Channel from buddy import get_owner_instance @@ -50,13 +48,6 @@ from buddy import BuddyModel from xocolor import XoColor -import activity - -from connectionmanager import get_connection_manager - -import signal, os, sys -from activity import Activity - ACCOUNT_MANAGER_SERVICE = 'org.freedesktop.Telepathy.AccountManager' ACCOUNT_MANAGER_PATH = '/org/freedesktop/Telepathy/AccountManager' CHANNEL_DISPATCHER_SERVICE = 'org.freedesktop.Telepathy.ChannelDispatcher' @@ -66,7 +57,7 @@ SUGAR_CLIENT_PATH = '/org/freedesktop/Telepathy/Client/Sugar' CONNECTION_INTERFACE_BUDDY_INFO = 'org.laptop.Telepathy.BuddyInfo' CONNECTION_INTERFACE_ACTIVITY_PROPERTIES = \ - 'org.laptop.Telepathy.ActivityProperties' + 'org.laptop.Telepathy.ActivityProperties' _QUERY_DBUS_TIMEOUT = 200 """ @@ -269,11 +260,12 @@ class _Account(gobject.GObject): connection.connect_to_signal('StatusChanged', self.__status_changed_cb) - connection[PROPERTIES_IFACE].Get(CONNECTION, - 'Status', - reply_handler=self.__get_status_cb, - error_handler=partial(self.__error_handler_cb, - 'Connection.GetStatus')) + connection[PROPERTIES_IFACE].Get( + CONNECTION, + 'Status', + reply_handler=self.__get_status_cb, + error_handler=partial(self.__error_handler_cb, + 'Connection.GetStatus')) def __get_status_cb(self, status): #print('_Account.__get_status_cb %r %r', @@ -286,11 +278,12 @@ class _Account(gobject.GObject): def _update_status(self, status): if status == CONNECTION_STATUS_CONNECTED: - self._connection[PROPERTIES_IFACE].Get(CONNECTION, - 'SelfHandle', - reply_handler=self.__get_self_handle_cb, - error_handler=partial(self.__error_handler_cb, - 'Connection.GetSelfHandle')) + self._connection[PROPERTIES_IFACE].Get( + CONNECTION, + 'SelfHandle', + reply_handler=self.__get_self_handle_cb, + error_handler=partial(self.__error_handler_cb, + 'Connection.GetSelfHandle')) self.emit('connected') else: for contact_handle, contact_id in self._buddy_handles.items(): @@ -318,8 +311,8 @@ class _Account(gobject.GObject): connection = self._connection[interface] client_name = CLIENT + '.Sugar.FileTransfer' file_transfer_channel_class = { - CHANNEL + '.ChannelType': CHANNEL_TYPE_FILE_TRANSFER, - CHANNEL + '.TargetHandleType': HANDLE_TYPE_CONTACT} + CHANNEL + '.ChannelType': CHANNEL_TYPE_FILE_TRANSFER, + CHANNEL + '.TargetHandleType': HANDLE_TYPE_CONTACT} capabilities = [] connection.UpdateCapabilities( [(client_name, [file_transfer_channel_class], capabilities)], @@ -353,34 +346,35 @@ class _Account(gobject.GObject): if CONNECTION_INTERFACE_ACTIVITY_PROPERTIES in self._connection: connection = self._connection[ - CONNECTION_INTERFACE_ACTIVITY_PROPERTIES] + CONNECTION_INTERFACE_ACTIVITY_PROPERTIES] connection.connect_to_signal( - 'ActivityPropertiesChanged', - self.__activity_properties_changed_cb) + 'ActivityPropertiesChanged', + self.__activity_properties_changed_cb) else: print('Connection %s does not support OLPC activity ' 'properties', self._connection.object_path) pass properties = { - CHANNEL + '.ChannelType': CHANNEL_TYPE_CONTACT_LIST, - CHANNEL + '.TargetHandleType': HANDLE_TYPE_LIST, - CHANNEL + '.TargetID': 'subscribe', - } + CHANNEL + '.ChannelType': CHANNEL_TYPE_CONTACT_LIST, + CHANNEL + '.TargetHandleType': HANDLE_TYPE_LIST, + CHANNEL + '.TargetID': 'subscribe', } properties = dbus.Dictionary(properties, signature='sv') connection = self._connection[CONNECTION_INTERFACE_REQUESTS] is_ours, channel_path, properties = \ - connection.EnsureChannel(properties) + connection.EnsureChannel(properties) channel = Channel(self._connection.service_name, channel_path) channel[CHANNEL_INTERFACE_GROUP].connect_to_signal( - 'MembersChanged', self.__members_changed_cb) + 'MembersChanged', + self.__members_changed_cb) - channel[PROPERTIES_IFACE].Get(CHANNEL_INTERFACE_GROUP, - 'Members', - reply_handler=self.__get_members_ready_cb, - error_handler=partial(self.__error_handler_cb, - 'Connection.GetMembers')) + channel[PROPERTIES_IFACE].Get( + CHANNEL_INTERFACE_GROUP, + 'Members', + reply_handler=self.__get_members_ready_cb, + error_handler=partial(self.__error_handler_cb, + 'Connection.GetMembers')) def __update_capabilities_cb(self): pass @@ -443,12 +437,13 @@ class _Account(gobject.GObject): self.emit('activity-added', room_handle, activity_id) connection = self._connection[ - CONNECTION_INTERFACE_ACTIVITY_PROPERTIES] - connection.GetProperties(room_handle, - reply_handler=partial(self.__get_properties_cb, - room_handle), - error_handler=partial(self.__error_handler_cb, - 'ActivityProperties.GetProperties')) + CONNECTION_INTERFACE_ACTIVITY_PROPERTIES] + connection.GetProperties( + room_handle, + reply_handler=partial(self.__get_properties_cb, + room_handle), + error_handler=partial(self.__error_handler_cb, + 'ActivityProperties.GetProperties')) # Sometimes we'll get CurrentActivityChanged before we get to # know about the activity so we miss the event. In that case, @@ -472,7 +467,7 @@ class _Account(gobject.GObject): activity_id) current_activity_ids = \ - [activity_id for activity_id, room_handle in activities] + [activity_id for activity_id, room_handle in activities] for activity_id in self._activities_per_buddy[buddy_handle].copy(): if not activity_id in current_activity_ids: self._remove_buddy_from_activity(buddy_handle, activity_id) @@ -543,10 +538,10 @@ class _Account(gobject.GObject): #print('_Account._add_buddy_handles %r', handles) interfaces = [CONNECTION, CONNECTION_INTERFACE_ALIASING] self._connection[CONNECTION_INTERFACE_CONTACTS].GetContactAttributes( - handles, interfaces, False, - reply_handler=self.__get_contact_attributes_cb, - error_handler=partial(self.__error_handler_cb, - 'Contacts.GetContactAttributes')) + handles, interfaces, False, + reply_handler=self.__get_contact_attributes_cb, + error_handler=partial(self.__error_handler_cb, + 'Contacts.GetContactAttributes')) def __got_buddy_info_cb(self, handle, nick, properties): #print('_Account.__got_buddy_info_cb %r', handle) @@ -574,7 +569,7 @@ class _Account(gobject.GObject): if CONNECTION_INTERFACE_BUDDY_INFO in self._connection: connection = \ - self._connection[CONNECTION_INTERFACE_BUDDY_INFO] + self._connection[CONNECTION_INTERFACE_BUDDY_INFO] connection.GetProperties( handle, @@ -631,7 +626,6 @@ class _Account(gobject.GObject): pass - class Neighborhood(gobject.GObject): __gsignals__ = { 'activity-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, @@ -641,16 +635,15 @@ class Neighborhood(gobject.GObject): 'buddy-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([object])), 'buddy-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([object])), - } + ([object])), } - def __init__(self, params = {}): + def __init__(self, params={}): gobject.GObject.__init__(self) self._buddies = {None: get_owner_instance()} self._activities = {} self._server_account = None - self._nicks = {} + self._nicks = {} # # Jabber params @@ -692,7 +685,6 @@ class Neighborhood(gobject.GObject): def __error_handler_cb(self, error): raise RuntimeError(error) - def _connect_to_account(self, account): account.connect('buddy-added', self.__buddy_added_cb) account.connect('buddy-updated', self.__buddy_updated_cb) @@ -733,18 +725,16 @@ class Neighborhood(gobject.GObject): nick = client.get_string('/desktop/sugar/user/nick') params = { - 'nickname': nick, - 'first-name': '', - 'last-name': '', - 'jid': self._get_jabber_account_id(), - 'published-name': nick, - } + 'nickname': nick, + 'first-name': '', + 'last-name': '', + 'jid': self._get_jabber_account_id(), + 'published-name': nick, } properties = { - ACCOUNT + '.Enabled': True, - ACCOUNT + '.Nickname': nick, - ACCOUNT + '.ConnectAutomatically': True, - } + ACCOUNT + '.Enabled': True, + ACCOUNT + '.Nickname': nick, + ACCOUNT + '.ConnectAutomatically': True, } bus = dbus.Bus() obj = bus.get_object(ACCOUNT_MANAGER_SERVICE, ACCOUNT_MANAGER_PATH) @@ -759,31 +749,33 @@ class Neighborhood(gobject.GObject): for account_path in account_paths: if 'gabble' in account_path: - obj_acct_mgr = bus.get_object(ACCOUNT_MANAGER_SERVICE, account_path) + obj_acct_mgr = bus.get_object( + ACCOUNT_MANAGER_SERVICE, + account_path) properties = obj_acct_mgr.Get(ACCOUNT, 'Parameters') - if properties.has_key("server") and properties["server"] == self._server: - print("Enabiling account_path = %s, server = %s", account_path, self._server) + if "server" in properties and \ + properties["server"] == self._server: + print("Enabiling account_path = %s, server = %s", + account_path, self._server) account = _Account(account_path) account.enable() return account params = { - 'account': self._get_jabber_account_id(), - 'password': self._password, - 'server': self._server, - 'resource': 'sugar', - 'require-encryption': True, - 'ignore-ssl-errors': True, - 'register': self._register, - 'old-ssl': True, - 'port': dbus.UInt32(self._port), - } + 'account': self._get_jabber_account_id(), + 'password': self._password, + 'server': self._server, + 'resource': 'sugar', + 'require-encryption': True, + 'ignore-ssl-errors': True, + 'register': self._register, + 'old-ssl': True, + 'port': dbus.UInt32(self._port), } properties = { - ACCOUNT + '.Enabled': True, - ACCOUNT + '.Nickname': self._nickname, - ACCOUNT + '.ConnectAutomatically': True, - } + ACCOUNT + '.Enabled': True, + ACCOUNT + '.Nickname': self._nickname, + ACCOUNT + '.ConnectAutomatically': True, } obj = bus.get_object(ACCOUNT_MANAGER_SERVICE, ACCOUNT_MANAGER_PATH) account_manager = dbus.Interface(obj, ACCOUNT_MANAGER) @@ -805,11 +797,12 @@ class Neighborhood(gobject.GObject): server = client.get_string( '/desktop/sugar/collaboration/jabber_server') account_id = self._get_jabber_account_id() - needs_reconnect = account.UpdateParameters({'server': server, - 'account': account_id, - 'register': True}, - dbus.Array([], 's'), - dbus_interface=ACCOUNT) + needs_reconnect = account.UpdateParameters( + {'server': server, + 'account': account_id, + 'register': True}, + dbus.Array([], 's'), + dbus_interface=ACCOUNT) if needs_reconnect: account.Reconnect() @@ -837,17 +830,16 @@ class Neighborhood(gobject.GObject): account.Reconnect() def __buddy_added_cb(self, account, contact_id, nick, handle): - self._nicks[contact_id] = nick if contact_id in self._buddies: #print('__buddy_added_cb buddy already tracked') return buddy = BuddyModel( - nick=nick, - account=account.object_path, - contact_id=contact_id, - handle=handle) + nick=nick, + account=account.object_path, + contact_id=contact_id, + handle=handle) self._buddies[contact_id] = buddy def __buddy_updated_cb(self, account, contact_id, properties): @@ -906,7 +898,9 @@ class Neighborhood(gobject.GObject): def __activity_updated_cb(self, account, activity_id, properties): print('__activity_updated_cb %r %r', activity_id, properties) if activity_id not in self._activities: - print('__activity_updated_cb Unknown activity with activity_id %r', activity_id) + print( + '__activity_updated_cb: Unknown activity with activity_id %r', + activity_id) return # we should somehow emulate this and say we only have TurtleArtActivity @@ -923,13 +917,14 @@ class Neighborhood(gobject.GObject): if 'color' in properties: activity.props.color = XoColor(properties['color']) - activity.props.bundle = None # FIXME: we have no access to the bundleregistry + # FIXME: we have no access to the bundleregistry + activity.props.bundle = None if 'name' in properties: activity.props.name = properties['name'] if 'private' in properties: activity.props.private = properties['private'] - # FIXME: this should be configurable, we only care about the activity thats using this lib - # i.e.: Turtle Art + # FIXME: this should be configurable, we only care about the + # activity thats using this lib i.e.: Turtle Art if properties['type']: activity.props.bundle = properties['type'] @@ -1027,8 +1022,10 @@ class Neighborhood(gobject.GObject): return self._activities.values() _neighborhood = None -def get_neighborhood(params = {}): - global _neighborhood + + +def get_neighborhood(params={}): + global _neighborhood if _neighborhood is None: _neighborhood = Neighborhood(params) return _neighborhood diff --git a/collaboration/presenceservice.py b/collaboration/presenceservice.py index 33caadd..b2fafed 100644 --- a/collaboration/presenceservice.py +++ b/collaboration/presenceservice.py @@ -30,15 +30,15 @@ from dbus import PROPERTIES_IFACE """ FIXME ... """ try: - from sugar.presence.buddy import Buddy, Owner + from sugar.presence.buddy import Buddy from sugar.presence.activity import Activity from sugar.presence.connectionmanager import get_connection_manager -except: +except ImportError: pass -from telepathy.interfaces import ACCOUNT, \ - ACCOUNT_MANAGER, \ - CONNECTION +from telepathy.interfaces import (ACCOUNT, + ACCOUNT_MANAGER, + CONNECTION) from telepathy.constants import HANDLE_TYPE_CONTACT @@ -54,9 +54,8 @@ class PresenceService(gobject.GObject): """Provides simplified access to the Telepathy framework to activities""" __gsignals__ = { 'activity-shared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT, - gobject.TYPE_PYOBJECT])), - } + ([gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT, + gobject.TYPE_PYOBJECT])), } def __init__(self): """Initialise the service and attempt to connect to events @@ -82,15 +81,15 @@ class PresenceService(gobject.GObject): else: connection_manager = get_connection_manager() connections_per_account = \ - connection_manager.get_connections_per_account() + connection_manager.get_connections_per_account() for account_path, connection in connections_per_account.items(): if not connection.connected: continue logging.debug('Calling GetActivity on %s', account_path) try: room_handle = connection.connection.GetActivity( - activity_id, - dbus_interface=CONN_INTERFACE_ACTIVITY_PROPERTIES) + activity_id, + dbus_interface=CONN_INTERFACE_ACTIVITY_PROPERTIES) except dbus.exceptions.DBusException, e: name = 'org.freedesktop.Telepathy.Error.NotAvailable' if e.get_dbus_name() == name: @@ -161,12 +160,13 @@ class PresenceService(gobject.GObject): if connection_path == tp_conn_path: connection_name = connection_path.replace('/', '.')[1:] connection = bus.get_object(connection_name, connection_path) - contact_ids = connection.InspectHandles(HANDLE_TYPE_CONTACT, - [handle], - dbus_interface=CONNECTION) + contact_ids = connection.InspectHandles( + HANDLE_TYPE_CONTACT, + [handle], + dbus_interface=CONNECTION) return self.get_buddy(account_path, contact_ids[0]) - raise ValueError('Unknown buddy in connection %s with handle %d' % \ + raise ValueError('Unknown buddy in connection %s with handle %d' % (tp_conn_path, handle)) def get_owner(self): @@ -203,12 +203,12 @@ class PresenceService(gobject.GObject): properties['private'] = private if self._activity_cache is not None: - raise ValueError('Activity %s is already tracked' % \ + raise ValueError('Activity %s is already tracked' % (activity.get_id())) connection_manager = get_connection_manager() account_path, connection = \ - connection_manager.get_preferred_connection() + connection_manager.get_preferred_connection() if connection is None: self.emit('activity-shared', False, None, @@ -220,7 +220,7 @@ class PresenceService(gobject.GObject): self._activity_cache = shared_activity if shared_activity.props.joined: - raise RuntimeError('Activity %s is already shared.' % \ + raise RuntimeError('Activity %s is already shared.' % (activity.props.id)) shared_activity.share(self.__share_activity_cb, diff --git a/collaboration/telepathyclient.py b/collaboration/telepathyclient.py index e00f053..366c398 100644 --- a/collaboration/telepathyclient.py +++ b/collaboration/telepathyclient.py @@ -48,14 +48,11 @@ class TelepathyClient(dbus.service.Object, DBusProperties): DBusProperties.__init__(self) self._implement_property_get(CLIENT, { - 'Interfaces': lambda: list(self._interfaces), - }) + 'Interfaces': lambda: list(self._interfaces), }) self._implement_property_get(CLIENT_HANDLER, { - 'HandlerChannelFilter': self.__get_filters_cb, - }) + 'HandlerChannelFilter': self.__get_filters_cb, }) self._implement_property_get(CLIENT_APPROVER, { - 'ApproverChannelFilter': self.__get_filters_cb, - }) + 'ApproverChannelFilter': self.__get_filters_cb, }) self.got_channel = dispatch.Signal() self.got_dispatch_operation = dispatch.Signal() @@ -68,7 +65,7 @@ class TelepathyClient(dbus.service.Object, DBusProperties): @dbus.service.method(dbus_interface=CLIENT_HANDLER, in_signature='ooa(oa{sv})aota{sv}', out_signature='') def HandleChannels(self, account, connection, channels, requests_satisfied, - user_action_time, handler_info): + user_action_time, handler_info): logging.debug('HandleChannels\n%r\n%r\n%r\n%r\n%r\n%r\n', account, connection, channels, requests_satisfied, user_action_time, handler_info) @@ -91,9 +88,11 @@ class TelepathyClient(dbus.service.Object, DBusProperties): logging.debug('AddDispatchOperation\n%r\n%r\n%r', channels, dispatch_operation_path, properties) - self.got_dispatch_operation.send(self, channels=channels, - dispatch_operation_path=dispatch_operation_path, - properties=properties) + self.got_dispatch_operation.send( + self, + channels=channels, + dispatch_operation_path=dispatch_operation_path, + properties=properties) except Exception, e: logging.exception(e) diff --git a/collaboration/tubeconn.py b/collaboration/tubeconn.py index 1014a46..9a496d9 100644 --- a/collaboration/tubeconn.py +++ b/collaboration/tubeconn.py @@ -62,11 +62,13 @@ class TubeConnection(Connection): # pylint: disable=W0201 # Confused by __new__ self.self_handle = handle - match = self._tubes_iface.connect_to_signal('DBusNamesChanged', - self._on_dbus_names_changed) - self._tubes_iface.GetDBusNames(self.tube_id, - reply_handler=self._on_get_dbus_names_reply, - error_handler=self._on_get_dbus_names_error) + match = self._tubes_iface.connect_to_signal( + 'DBusNamesChanged', + self._on_dbus_names_changed) + self._tubes_iface.GetDBusNames( + self.tube_id, + reply_handler=self._on_get_dbus_names_reply, + error_handler=self._on_get_dbus_names_error) self._dbus_names_changed_match = match def _on_get_self_handle_error(self, e): diff --git a/collaboration/xocolor.py b/collaboration/xocolor.py index 395e345..bb04f2f 100644 --- a/collaboration/xocolor.py +++ b/collaboration/xocolor.py @@ -25,187 +25,186 @@ import logging import gconf colors = [ -['#B20008', '#FF2B34'], \ -['#FF2B34', '#B20008'], \ -['#E6000A', '#FF2B34'], \ -['#FF2B34', '#E6000A'], \ -['#FFADCE', '#FF2B34'], \ -['#9A5200', '#FF2B34'], \ -['#FF2B34', '#9A5200'], \ -['#FF8F00', '#FF2B34'], \ -['#FF2B34', '#FF8F00'], \ -['#FFC169', '#FF2B34'], \ -['#807500', '#FF2B34'], \ -['#FF2B34', '#807500'], \ -['#BE9E00', '#FF2B34'], \ -['#FF2B34', '#BE9E00'], \ -['#F8E800', '#FF2B34'], \ -['#008009', '#FF2B34'], \ -['#FF2B34', '#008009'], \ -['#00B20D', '#FF2B34'], \ -['#FF2B34', '#00B20D'], \ -['#8BFF7A', '#FF2B34'], \ -['#00588C', '#FF2B34'], \ -['#FF2B34', '#00588C'], \ -['#005FE4', '#FF2B34'], \ -['#FF2B34', '#005FE4'], \ -['#BCCDFF', '#FF2B34'], \ -['#5E008C', '#FF2B34'], \ -['#FF2B34', '#5E008C'], \ -['#7F00BF', '#FF2B34'], \ -['#FF2B34', '#7F00BF'], \ -['#D1A3FF', '#FF2B34'], \ -['#9A5200', '#FF8F00'], \ -['#FF8F00', '#9A5200'], \ -['#C97E00', '#FF8F00'], \ -['#FF8F00', '#C97E00'], \ -['#FFC169', '#FF8F00'], \ -['#807500', '#FF8F00'], \ -['#FF8F00', '#807500'], \ -['#BE9E00', '#FF8F00'], \ -['#FF8F00', '#BE9E00'], \ -['#F8E800', '#FF8F00'], \ -['#008009', '#FF8F00'], \ -['#FF8F00', '#008009'], \ -['#00B20D', '#FF8F00'], \ -['#FF8F00', '#00B20D'], \ -['#8BFF7A', '#FF8F00'], \ -['#00588C', '#FF8F00'], \ -['#FF8F00', '#00588C'], \ -['#005FE4', '#FF8F00'], \ -['#FF8F00', '#005FE4'], \ -['#BCCDFF', '#FF8F00'], \ -['#5E008C', '#FF8F00'], \ -['#FF8F00', '#5E008C'], \ -['#A700FF', '#FF8F00'], \ -['#FF8F00', '#A700FF'], \ -['#D1A3FF', '#FF8F00'], \ -['#B20008', '#FF8F00'], \ -['#FF8F00', '#B20008'], \ -['#FF2B34', '#FF8F00'], \ -['#FF8F00', '#FF2B34'], \ -['#FFADCE', '#FF8F00'], \ -['#807500', '#F8E800'], \ -['#F8E800', '#807500'], \ -['#BE9E00', '#F8E800'], \ -['#F8E800', '#BE9E00'], \ -['#FFFA00', '#EDDE00'], \ -['#008009', '#F8E800'], \ -['#F8E800', '#008009'], \ -['#00EA11', '#F8E800'], \ -['#F8E800', '#00EA11'], \ -['#8BFF7A', '#F8E800'], \ -['#00588C', '#F8E800'], \ -['#F8E800', '#00588C'], \ -['#00A0FF', '#F8E800'], \ -['#F8E800', '#00A0FF'], \ -['#BCCEFF', '#F8E800'], \ -['#5E008C', '#F8E800'], \ -['#F8E800', '#5E008C'], \ -['#AC32FF', '#F8E800'], \ -['#F8E800', '#AC32FF'], \ -['#D1A3FF', '#F8E800'], \ -['#B20008', '#F8E800'], \ -['#F8E800', '#B20008'], \ -['#FF2B34', '#F8E800'], \ -['#F8E800', '#FF2B34'], \ -['#FFADCE', '#F8E800'], \ -['#9A5200', '#F8E800'], \ -['#F8E800', '#9A5200'], \ -['#FF8F00', '#F8E800'], \ -['#F8E800', '#FF8F00'], \ -['#FFC169', '#F8E800'], \ -['#008009', '#00EA11'], \ -['#00EA11', '#008009'], \ -['#00B20D', '#00EA11'], \ -['#00EA11', '#00B20D'], \ -['#8BFF7A', '#00EA11'], \ -['#00588C', '#00EA11'], \ -['#00EA11', '#00588C'], \ -['#005FE4', '#00EA11'], \ -['#00EA11', '#005FE4'], \ -['#BCCDFF', '#00EA11'], \ -['#5E008C', '#00EA11'], \ -['#00EA11', '#5E008C'], \ -['#7F00BF', '#00EA11'], \ -['#00EA11', '#7F00BF'], \ -['#D1A3FF', '#00EA11'], \ -['#B20008', '#00EA11'], \ -['#00EA11', '#B20008'], \ -['#FF2B34', '#00EA11'], \ -['#00EA11', '#FF2B34'], \ -['#FFADCE', '#00EA11'], \ -['#9A5200', '#00EA11'], \ -['#00EA11', '#9A5200'], \ -['#FF8F00', '#00EA11'], \ -['#00EA11', '#FF8F00'], \ -['#FFC169', '#00EA11'], \ -['#807500', '#00EA11'], \ -['#00EA11', '#807500'], \ -['#BE9E00', '#00EA11'], \ -['#00EA11', '#BE9E00'], \ -['#F8E800', '#00EA11'], \ -['#00588C', '#00A0FF'], \ -['#00A0FF', '#00588C'], \ -['#005FE4', '#00A0FF'], \ -['#00A0FF', '#005FE4'], \ -['#BCCDFF', '#00A0FF'], \ -['#5E008C', '#00A0FF'], \ -['#00A0FF', '#5E008C'], \ -['#9900E6', '#00A0FF'], \ -['#00A0FF', '#9900E6'], \ -['#D1A3FF', '#00A0FF'], \ -['#B20008', '#00A0FF'], \ -['#00A0FF', '#B20008'], \ -['#FF2B34', '#00A0FF'], \ -['#00A0FF', '#FF2B34'], \ -['#FFADCE', '#00A0FF'], \ -['#9A5200', '#00A0FF'], \ -['#00A0FF', '#9A5200'], \ -['#FF8F00', '#00A0FF'], \ -['#00A0FF', '#FF8F00'], \ -['#FFC169', '#00A0FF'], \ -['#807500', '#00A0FF'], \ -['#00A0FF', '#807500'], \ -['#BE9E00', '#00A0FF'], \ -['#00A0FF', '#BE9E00'], \ -['#F8E800', '#00A0FF'], \ -['#008009', '#00A0FF'], \ -['#00A0FF', '#008009'], \ -['#00B20D', '#00A0FF'], \ -['#00A0FF', '#00B20D'], \ -['#8BFF7A', '#00A0FF'], \ -['#5E008C', '#AC32FF'], \ -['#AC32FF', '#5E008C'], \ -['#7F00BF', '#AC32FF'], \ -['#AC32FF', '#7F00BF'], \ -['#D1A3FF', '#AC32FF'], \ -['#B20008', '#AC32FF'], \ -['#AC32FF', '#B20008'], \ -['#FF2B34', '#AC32FF'], \ -['#AC32FF', '#FF2B34'], \ -['#FFADCE', '#AC32FF'], \ -['#9A5200', '#AC32FF'], \ -['#AC32FF', '#9A5200'], \ -['#FF8F00', '#AC32FF'], \ -['#AC32FF', '#FF8F00'], \ -['#FFC169', '#AC32FF'], \ -['#807500', '#AC32FF'], \ -['#AC32FF', '#807500'], \ -['#BE9E00', '#AC32FF'], \ -['#AC32FF', '#BE9E00'], \ -['#F8E800', '#AC32FF'], \ -['#008009', '#AC32FF'], \ -['#AC32FF', '#008009'], \ -['#00B20D', '#AC32FF'], \ -['#AC32FF', '#00B20D'], \ -['#8BFF7A', '#AC32FF'], \ -['#00588C', '#AC32FF'], \ -['#AC32FF', '#00588C'], \ -['#005FE4', '#AC32FF'], \ -['#AC32FF', '#005FE4'], \ -['#BCCDFF', '#AC32FF'], \ -] + ['#B20008', '#FF2B34'], + ['#FF2B34', '#B20008'], + ['#E6000A', '#FF2B34'], + ['#FF2B34', '#E6000A'], + ['#FFADCE', '#FF2B34'], + ['#9A5200', '#FF2B34'], + ['#FF2B34', '#9A5200'], + ['#FF8F00', '#FF2B34'], + ['#FF2B34', '#FF8F00'], + ['#FFC169', '#FF2B34'], + ['#807500', '#FF2B34'], + ['#FF2B34', '#807500'], + ['#BE9E00', '#FF2B34'], + ['#FF2B34', '#BE9E00'], + ['#F8E800', '#FF2B34'], + ['#008009', '#FF2B34'], + ['#FF2B34', '#008009'], + ['#00B20D', '#FF2B34'], + ['#FF2B34', '#00B20D'], + ['#8BFF7A', '#FF2B34'], + ['#00588C', '#FF2B34'], + ['#FF2B34', '#00588C'], + ['#005FE4', '#FF2B34'], + ['#FF2B34', '#005FE4'], + ['#BCCDFF', '#FF2B34'], + ['#5E008C', '#FF2B34'], + ['#FF2B34', '#5E008C'], + ['#7F00BF', '#FF2B34'], + ['#FF2B34', '#7F00BF'], + ['#D1A3FF', '#FF2B34'], + ['#9A5200', '#FF8F00'], + ['#FF8F00', '#9A5200'], + ['#C97E00', '#FF8F00'], + ['#FF8F00', '#C97E00'], + ['#FFC169', '#FF8F00'], + ['#807500', '#FF8F00'], + ['#FF8F00', '#807500'], + ['#BE9E00', '#FF8F00'], + ['#FF8F00', '#BE9E00'], + ['#F8E800', '#FF8F00'], + ['#008009', '#FF8F00'], + ['#FF8F00', '#008009'], + ['#00B20D', '#FF8F00'], + ['#FF8F00', '#00B20D'], + ['#8BFF7A', '#FF8F00'], + ['#00588C', '#FF8F00'], + ['#FF8F00', '#00588C'], + ['#005FE4', '#FF8F00'], + ['#FF8F00', '#005FE4'], + ['#BCCDFF', '#FF8F00'], + ['#5E008C', '#FF8F00'], + ['#FF8F00', '#5E008C'], + ['#A700FF', '#FF8F00'], + ['#FF8F00', '#A700FF'], + ['#D1A3FF', '#FF8F00'], + ['#B20008', '#FF8F00'], + ['#FF8F00', '#B20008'], + ['#FF2B34', '#FF8F00'], + ['#FF8F00', '#FF2B34'], + ['#FFADCE', '#FF8F00'], + ['#807500', '#F8E800'], + ['#F8E800', '#807500'], + ['#BE9E00', '#F8E800'], + ['#F8E800', '#BE9E00'], + ['#FFFA00', '#EDDE00'], + ['#008009', '#F8E800'], + ['#F8E800', '#008009'], + ['#00EA11', '#F8E800'], + ['#F8E800', '#00EA11'], + ['#8BFF7A', '#F8E800'], + ['#00588C', '#F8E800'], + ['#F8E800', '#00588C'], + ['#00A0FF', '#F8E800'], + ['#F8E800', '#00A0FF'], + ['#BCCEFF', '#F8E800'], + ['#5E008C', '#F8E800'], + ['#F8E800', '#5E008C'], + ['#AC32FF', '#F8E800'], + ['#F8E800', '#AC32FF'], + ['#D1A3FF', '#F8E800'], + ['#B20008', '#F8E800'], + ['#F8E800', '#B20008'], + ['#FF2B34', '#F8E800'], + ['#F8E800', '#FF2B34'], + ['#FFADCE', '#F8E800'], + ['#9A5200', '#F8E800'], + ['#F8E800', '#9A5200'], + ['#FF8F00', '#F8E800'], + ['#F8E800', '#FF8F00'], + ['#FFC169', '#F8E800'], + ['#008009', '#00EA11'], + ['#00EA11', '#008009'], + ['#00B20D', '#00EA11'], + ['#00EA11', '#00B20D'], + ['#8BFF7A', '#00EA11'], + ['#00588C', '#00EA11'], + ['#00EA11', '#00588C'], + ['#005FE4', '#00EA11'], + ['#00EA11', '#005FE4'], + ['#BCCDFF', '#00EA11'], + ['#5E008C', '#00EA11'], + ['#00EA11', '#5E008C'], + ['#7F00BF', '#00EA11'], + ['#00EA11', '#7F00BF'], + ['#D1A3FF', '#00EA11'], + ['#B20008', '#00EA11'], + ['#00EA11', '#B20008'], + ['#FF2B34', '#00EA11'], + ['#00EA11', '#FF2B34'], + ['#FFADCE', '#00EA11'], + ['#9A5200', '#00EA11'], + ['#00EA11', '#9A5200'], + ['#FF8F00', '#00EA11'], + ['#00EA11', '#FF8F00'], + ['#FFC169', '#00EA11'], + ['#807500', '#00EA11'], + ['#00EA11', '#807500'], + ['#BE9E00', '#00EA11'], + ['#00EA11', '#BE9E00'], + ['#F8E800', '#00EA11'], + ['#00588C', '#00A0FF'], + ['#00A0FF', '#00588C'], + ['#005FE4', '#00A0FF'], + ['#00A0FF', '#005FE4'], + ['#BCCDFF', '#00A0FF'], + ['#5E008C', '#00A0FF'], + ['#00A0FF', '#5E008C'], + ['#9900E6', '#00A0FF'], + ['#00A0FF', '#9900E6'], + ['#D1A3FF', '#00A0FF'], + ['#B20008', '#00A0FF'], + ['#00A0FF', '#B20008'], + ['#FF2B34', '#00A0FF'], + ['#00A0FF', '#FF2B34'], + ['#FFADCE', '#00A0FF'], + ['#9A5200', '#00A0FF'], + ['#00A0FF', '#9A5200'], + ['#FF8F00', '#00A0FF'], + ['#00A0FF', '#FF8F00'], + ['#FFC169', '#00A0FF'], + ['#807500', '#00A0FF'], + ['#00A0FF', '#807500'], + ['#BE9E00', '#00A0FF'], + ['#00A0FF', '#BE9E00'], + ['#F8E800', '#00A0FF'], + ['#008009', '#00A0FF'], + ['#00A0FF', '#008009'], + ['#00B20D', '#00A0FF'], + ['#00A0FF', '#00B20D'], + ['#8BFF7A', '#00A0FF'], + ['#5E008C', '#AC32FF'], + ['#AC32FF', '#5E008C'], + ['#7F00BF', '#AC32FF'], + ['#AC32FF', '#7F00BF'], + ['#D1A3FF', '#AC32FF'], + ['#B20008', '#AC32FF'], + ['#AC32FF', '#B20008'], + ['#FF2B34', '#AC32FF'], + ['#AC32FF', '#FF2B34'], + ['#FFADCE', '#AC32FF'], + ['#9A5200', '#AC32FF'], + ['#AC32FF', '#9A5200'], + ['#FF8F00', '#AC32FF'], + ['#AC32FF', '#FF8F00'], + ['#FFC169', '#AC32FF'], + ['#807500', '#AC32FF'], + ['#AC32FF', '#807500'], + ['#BE9E00', '#AC32FF'], + ['#AC32FF', '#BE9E00'], + ['#F8E800', '#AC32FF'], + ['#008009', '#AC32FF'], + ['#AC32FF', '#008009'], + ['#00B20D', '#AC32FF'], + ['#AC32FF', '#00B20D'], + ['#8BFF7A', '#AC32FF'], + ['#00588C', '#AC32FF'], + ['#AC32FF', '#00588C'], + ['#005FE4', '#AC32FF'], + ['#AC32FF', '#005FE4'], + ['#BCCDFF', '#AC32FF'], ] def _parse_string(color_string): @@ -226,13 +225,13 @@ def _parse_string(color_string): def is_valid(color_string): - return (_parse_string(color_string) != None) + return (_parse_string(color_string) is not None) class XoColor: def __init__(self, color_string=None): - if color_string == None: + if color_string is None: randomize = True elif not is_valid(color_string): logging.debug('Color string is not valid: %s, ' -- cgit v0.9.1