diff --git a/src/controller/buffers/twitterBuffers.py b/src/controller/buffers/twitterBuffers.py index 5b9701c0..4450d996 100644 --- a/src/controller/buffers/twitterBuffers.py +++ b/src/controller/buffers/twitterBuffers.py @@ -128,7 +128,7 @@ class baseBufferController(baseBuffers.buffer): tweetsList = [] tweet_id = tweet["id"] message = None - if tweet.has_key("message"): + if "message" in tweet: message = tweet["message"] try: tweet = self.session.twitter.show_status(id=tweet_id, include_ext_alt_text=True, tweet_mode="extended") @@ -241,7 +241,7 @@ class baseBufferController(baseBuffers.buffer): if self.name[:-9] in self.session.settings["other_buffers"]["timelines"]: self.session.settings["other_buffers"]["timelines"].remove(self.name[:-9]) self.session.settings.write() - if self.session.db.has_key(self.name): + if self.name in self.session.db: self.session.db.pop(self.name) return True elif dlg == widgetUtils.NO: @@ -254,7 +254,7 @@ class baseBufferController(baseBuffers.buffer): if dlg == widgetUtils.YES: if self.name[:-9] in self.session.settings["other_buffers"]["favourites_timelines"]: self.session.settings["other_buffers"]["favourites_timelines"].remove(self.name[:-9]) - if self.session.db.has_key(self.name): + if self.name in self.session.db: self.session.db.pop(self.name) self.session.settings.write() return True @@ -377,7 +377,7 @@ class baseBufferController(baseBuffers.buffer): self.show_menu(widgetUtils.MENU, pos=self.buffer.list.list.GetPosition()) def get_tweet(self): - if self.session.db[self.name][self.buffer.list.get_selected()].has_key("retweeted_status"): + if "retweeted_status" in self.session.db[self.name][self.buffer.list.get_selected()]: tweet = self.session.db[self.name][self.buffer.list.get_selected()]["retweeted_status"] else: tweet = self.session.db[self.name][self.buffer.list.get_selected()] @@ -392,7 +392,7 @@ class baseBufferController(baseBuffers.buffer): tweet = self.get_right_tweet() screen_name = tweet["user"]["screen_name"] id = tweet["id"] - twishort_enabled = tweet.has_key("twishort") + twishort_enabled = "twishort" in tweet users = utils.get_all_mentioned(tweet, self.session.db, field="screen_name") ids = utils.get_all_mentioned(tweet, self.session.db, field="id_str") # Build the window title @@ -489,9 +489,9 @@ class baseBufferController(baseBuffers.buffer): def _retweet_with_comment(self, tweet, id, comment=''): # If quoting a retweet, let's quote the original tweet instead the retweet. - if tweet.has_key("retweeted_status"): + if "retweeted_status" in tweet: tweet = tweet["retweeted_status"] - if tweet.has_key("full_text"): + if "full_text" in tweet: comments = tweet["full_text"] else: comments = tweet["text"] @@ -723,7 +723,7 @@ class sentDirectMessagesController(directMessagesController): def __init__(self, *args, **kwargs): super(sentDirectMessagesController, self).__init__(*args, **kwargs) - if self.session.db.has_key("sent_direct_messages") == False: + if ("sent_direct_messages" in self.session.db) == False: self.session.db["sent_direct_messages"] = {"items": []} def get_more_items(self): @@ -770,7 +770,7 @@ class listBufferController(baseBufferController): if dlg == widgetUtils.YES: if self.name[:-5] in self.session.settings["other_buffers"]["lists"]: self.session.settings["other_buffers"]["lists"].remove(self.name[:-5]) - if self.session.db.has_key(self.name): + if self.name in self.session.db: self.session.db.pop(self.name) self.session.settings.write() return True @@ -805,7 +805,7 @@ class peopleBufferController(baseBufferController): if dlg == widgetUtils.YES: if self.name[:-10] in self.session.settings["other_buffers"]["followers_timelines"]: self.session.settings["other_buffers"]["followers_timelines"].remove(self.name[:-10]) - if self.session.db.has_key(self.name): + if self.name in self.session.db: self.session.db.pop(self.name) self.session.settings.write() return True @@ -819,7 +819,7 @@ class peopleBufferController(baseBufferController): if dlg == widgetUtils.YES: if self.name[:-8] in self.session.settings["other_buffers"]["friends_timelines"]: self.session.settings["other_buffers"]["friends_timelines"].remove(self.name[:-8]) - if self.session.db.has_key(self.name): + if self.name in self.session.db: self.session.db.pop(self.name) self.session.settings.write() return True @@ -1000,7 +1000,7 @@ class searchBufferController(baseBufferController): if self.name[:-11] in self.session.settings["other_buffers"]["tweet_searches"]: self.session.settings["other_buffers"]["tweet_searches"].remove(self.name[:-11]) self.session.settings.write() - if self.session.db.has_key(self.name): + if self.name in self.session.db: self.session.db.pop(self.name) return True elif dlg == widgetUtils.NO: @@ -1051,7 +1051,7 @@ class searchPeopleBufferController(peopleBufferController): self.args = args self.kwargs = kwargs self.function = function - if self.kwargs.has_key("page") == False: + if ("page" in self.kwargs) == False: self.kwargs["page"] = 1 def start_stream(self, mandatory=False, play_sound=True, avoid_autoreading=True): @@ -1115,7 +1115,7 @@ class searchPeopleBufferController(peopleBufferController): if self.name[:-11] in self.session.settings["other_buffers"]["tweet_searches"]: self.session.settings["other_buffers"]["tweet_searches"].remove(self.name[:-11]) self.session.settings.write() - if self.session.db.has_key(self.name): + if self.name in self.session.db: self.session.db.pop(self.name) return True elif dlg == widgetUtils.NO: @@ -1188,7 +1188,7 @@ class trendsBufferController(baseBuffers.buffer): if self.name[:-3] in self.session.settings["other_buffers"]["trending_topic_buffers"]: self.session.settings["other_buffers"]["trending_topic_buffers"].remove(self.name[:-3]) self.session.settings.write() - if self.session.db.has_key(self.name): + if self.name in self.session.db: self.session.db.pop(self.name) return True elif dlg == widgetUtils.NO: @@ -1288,7 +1288,7 @@ class conversationBufferController(searchBufferController): else: dlg = widgetUtils.YES if dlg == widgetUtils.YES: - if self.session.db.has_key(self.name): + if self.name in self.session.db: self.session.db.pop(self.name) return True elif dlg == widgetUtils.NO: diff --git a/src/controller/filterController.py b/src/controller/filterController.py index 1ed1487a..1ece0bf9 100644 --- a/src/controller/filterController.py +++ b/src/controller/filterController.py @@ -30,7 +30,7 @@ class filter(object): if i["name"] in langs: langcodes.append(i["code"]) d = dict(in_buffer=self.buffer.name, word=term, regexp=regexp, in_lang=lang_option, languages=langcodes, if_word_exists=contains, allow_rts=allow_rts, allow_quotes=allow_quotes, allow_replies=allow_replies) - if self.buffer.session.settings["filters"].has_key(title): + if title in self.buffer.session.settings["filters"]: return commonMessageDialogs.existing_filter() self.buffer.session.settings["filters"][title] = d self.buffer.session.settings.write() diff --git a/src/controller/mainController.py b/src/controller/mainController.py index 74728c43..11b6b27e 100644 --- a/src/controller/mainController.py +++ b/src/controller/mainController.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import platform system = platform.system() import application @@ -8,15 +9,15 @@ import arrow if system == "Windows": from update import updater from wxUI import (view, dialogs, commonMessageDialogs, sysTrayIcon) - import settings + from . import settings from extra import SoundsTutorial, ocr import keystrokeEditor from keyboard_handler.wx_handler import WXKeyboardHandler - import userActionsController - import trendingTopics - import user - import listsController - import filterController + from . import userActionsController + from . import trendingTopics + from . import user + from . import listsController + from . import filterController # from issueReporter import issueReporter elif system == "Linux": from gtkUI import (view, commonMessageDialogs) @@ -24,7 +25,7 @@ from sessions.twitter import utils, compose from sessionmanager import manager, sessionManager from controller.buffers import baseBuffers, twitterBuffers -import messages +from . import messages import sessions from sessions.twitter import session as session_ from pubsub import pub @@ -392,7 +393,7 @@ class Controller(object): def set_buffer_positions(self, session): "Sets positions for buffers if values exist in the database." for i in self.buffers: - if i.account == session.db["user_name"] and session.db.has_key(i.name+"_pos") and hasattr(i.buffer,'list'): + if i.account == session.db["user_name"] and i.name+"_pos" in session.db and hasattr(i.buffer,'list'): i.buffer.list.select_item(session.db[str(i.name+"_pos")]) def logout_account(self, session_id): @@ -1563,7 +1564,7 @@ class Controller(object): output.speak(_(u"Invalid buffer")) return tweet = buffer.get_tweet() - if tweet.has_key("entities") == False or tweet["entities"].has_key("media") == False: + if ("entities" in tweet) == False or ("media" in tweet["entities"]) == False: output.speak(_(u"This tweet doesn't contain images")) return if len(tweet["entities"]["media"]) > 1: diff --git a/src/controller/messages.py b/src/controller/messages.py index d423764f..8668e6cd 100644 --- a/src/controller/messages.py +++ b/src/controller/messages.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import re import platform -import attach +from . import attach import arrow import languageHandler system = platform.system() @@ -206,25 +207,25 @@ class viewTweet(basicTweet): text = "" for i in xrange(0, len(tweetList)): # tweets with message keys are longer tweets, the message value is the full messaje taken from twishort. - if tweetList[i].has_key("message") and tweetList[i]["is_quote_status"] == False: + if "message" in tweetList[i] and tweetList[i]["is_quote_status"] == False: value = "message" else: value = "full_text" - if tweetList[i].has_key("retweeted_status") and tweetList[i]["is_quote_status"] == False: - if tweetList[i].has_key("message") == False: + if "retweeted_status" in tweetList[i] and tweetList[i]["is_quote_status"] == False: + if ("message" in tweetList[i]) == False: text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i]["retweeted_status"]["full_text"]) else: text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i][value]) else: text = text + " @%s: %s\n" % (tweetList[i]["user"]["screen_name"], tweetList[i][value]) # tweets with extended_entities could include image descriptions. - if tweetList[i].has_key("extended_entities") and tweetList[i]["extended_entities"].has_key("media"): + if "extended_entities" in tweetList[i] and "media" in tweetList[i]["extended_entities"]: for z in tweetList[i]["extended_entities"]["media"]: - if z.has_key("ext_alt_text") and z["ext_alt_text"] != None: + if "ext_alt_text" in z and z["ext_alt_text"] != None: image_description.append(z["ext_alt_text"]) - if tweetList[i].has_key("retweeted_status") and tweetList[i]["retweeted_status"].has_key("extended_entities") and tweetList[i]["retweeted_status"]["extended_entities"].has_key("media"): + if "retweeted_status" in tweetList[i] and "extended_entities" in tweetList[i]["retweeted_status"] and "media" in tweetList[i]["retweeted_status"]["extended_entities"]: for z in tweetList[i]["retweeted_status"]["extended_entities"]["media"]: - if z.has_key("ext_alt_text") and z["ext_alt_text"] != None: + if "ext_alt_text" in z and z["ext_alt_text"] != None: image_description.append(z["ext_alt_text"]) # set rt and likes counters. rt_count = str(tweet["retweet_count"]) @@ -234,25 +235,25 @@ class viewTweet(basicTweet): original_date = arrow.get(tweet["created_at"], "ddd MMM DD H:m:s Z YYYY", locale="en") date = original_date.replace(seconds=utc_offset).format(_(u"MMM D, YYYY. H:m"), locale=languageHandler.getLanguage()) if text == "": - if tweet.has_key("message"): + if "message" in tweet: value = "message" else: value = "full_text" - if tweet.has_key("retweeted_status"): - if tweet.has_key("message") == False: + if "retweeted_status" in tweet: + if ("message" in tweet) == False: text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet["retweeted_status"]["full_text"]) else: text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet[value]) else: text = tweet[value] text = self.clear_text(text) - if tweet.has_key("extended_entities") and tweet["extended_entities"].has_key("media"): + if "extended_entities" in tweet and "media" in tweet["extended_entities"]: for z in tweet["extended_entities"]["media"]: - if z.has_key("ext_alt_text") and z["ext_alt_text"] != None: + if "ext_alt_text" in z and z["ext_alt_text"] != None: image_description.append(z["ext_alt_text"]) - if tweet.has_key("retweeted_status") and tweet["retweeted_status"].has_key("extended_entities") and tweet["retweeted_status"]["extended_entities"].has_key("media"): + if "retweeted_status" in tweet and "extended_entities" in tweet["retweeted_status"] and "media" in tweet["retweeted_status"]["extended_entities"]: for z in tweet["retweeted_status"]["extended_entities"]["media"]: - if z.has_key("ext_alt_text") and z["ext_alt_text"] != None: + if "ext_alt_text" in z and z["ext_alt_text"] != None: image_description.append(z["ext_alt_text"]) self.message = message.viewTweet(text, rt_count, favs_count, source.decode("utf-8"), date) self.message.set_title(len(text)) diff --git a/src/controller/userActionsController.py b/src/controller/userActionsController.py index 1d0cc788..f3f40ded 100644 --- a/src/controller/userActionsController.py +++ b/src/controller/userActionsController.py @@ -71,7 +71,7 @@ class userActionsController(object): def ignore_client(self, user): tweet = self.buffer.get_right_tweet() - if tweet.has_key("sender"): + if "sender" in tweet: output.speak(_(u"You can't ignore direct messages")) return client = re.sub(r"(?s)<.*?>", "", tweet["source"]) diff --git a/src/extra/AudioUploader/audioUploader.py b/src/extra/AudioUploader/audioUploader.py index afc0fee1..824c64c4 100644 --- a/src/extra/AudioUploader/audioUploader.py +++ b/src/extra/AudioUploader/audioUploader.py @@ -16,10 +16,11 @@ # along with this program. If not, see . # ############################################################ +from __future__ import absolute_import import widgetUtils -import wx_ui -import wx_transfer_dialogs -import transfer +from . import wx_ui +from . import wx_transfer_dialogs +from . import transfer import output import tempfile import sound diff --git a/src/extra/AudioUploader/transfer.py b/src/extra/AudioUploader/transfer.py index c8b9827b..d5671977 100644 --- a/src/extra/AudioUploader/transfer.py +++ b/src/extra/AudioUploader/transfer.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import sys import threading import time import logging -from utils import convert_bytes +from .utils import convert_bytes from pubsub import pub log = logging.getLogger("extra.AudioUploader.transfer") from requests_toolbelt.multipart.encoder import MultipartEncoder, MultipartEncoderMonitor @@ -75,9 +76,9 @@ class Upload(object): data = self.response.json() except: return _("Error in file upload: {0}").format(self.data.content,) - if data.has_key("url") and data["url"] != "0": + if "url" in data and data["url"] != "0": return data["url"] - elif data.has_key("error") and data["error"] != "0": + elif "error" in data and data["error"] != "0": return data["error"] else: return _("Error in file upload: {0}").format(self.data.content,) \ No newline at end of file diff --git a/src/extra/AudioUploader/wx_transfer_dialogs.py b/src/extra/AudioUploader/wx_transfer_dialogs.py index c209ad5e..c3fc01fa 100644 --- a/src/extra/AudioUploader/wx_transfer_dialogs.py +++ b/src/extra/AudioUploader/wx_transfer_dialogs.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import wx -from utils import * +from .utils import * import widgetUtils class UploadDialog(widgetUtils.BaseDialog): diff --git a/src/extra/SoundsTutorial/__init__.py b/src/extra/SoundsTutorial/__init__.py index 1e2e7e17..20d563a6 100644 --- a/src/extra/SoundsTutorial/__init__.py +++ b/src/extra/SoundsTutorial/__init__.py @@ -1 +1,2 @@ -from soundsTutorial import soundsTutorial +from __future__ import absolute_import +from .soundsTutorial import soundsTutorial diff --git a/src/extra/SoundsTutorial/soundsTutorial.py b/src/extra/SoundsTutorial/soundsTutorial.py index 37d9643a..fd835410 100644 --- a/src/extra/SoundsTutorial/soundsTutorial.py +++ b/src/extra/SoundsTutorial/soundsTutorial.py @@ -1,15 +1,16 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import platform import widgetUtils import os import paths import logging log = logging.getLogger("extra.SoundsTutorial.soundsTutorial") -import soundsTutorial_constants +from . import soundsTutorial_constants if platform.system() == "Windows": - import wx_ui as UI + from . import wx_ui as UI elif platform.system() == "Linux": - import gtk_ui as UI + from . import gtk_ui as UI class soundsTutorial(object): def __init__(self, sessionObject): diff --git a/src/extra/SoundsTutorial/soundsTutorial_constants.py b/src/extra/SoundsTutorial/soundsTutorial_constants.py index ae7cfe63..667e2373 100644 --- a/src/extra/SoundsTutorial/soundsTutorial_constants.py +++ b/src/extra/SoundsTutorial/soundsTutorial_constants.py @@ -1,5 +1,7 @@ #-*- coding: utf-8 -*- -import reverse_sort +from __future__ import absolute_import +#-*- coding: utf-8 -*- +from . import reverse_sort import application actions = reverse_sort.reverse_sort([ ("audio", _(u"Audio tweet.")), ("create_timeline", _(u"User timeline buffer created.")), diff --git a/src/extra/SpellChecker/__init__.py b/src/extra/SpellChecker/__init__.py index fedad8a8..4edff483 100644 --- a/src/extra/SpellChecker/__init__.py +++ b/src/extra/SpellChecker/__init__.py @@ -1,4 +1,5 @@ -import spellchecker +from __future__ import absolute_import +from . import spellchecker import platform if platform.system() == "Windows": - from wx_ui import * \ No newline at end of file + from .wx_ui import * \ No newline at end of file diff --git a/src/extra/SpellChecker/spellchecker.py b/src/extra/SpellChecker/spellchecker.py index a40102b5..cb3ce50d 100644 --- a/src/extra/SpellChecker/spellchecker.py +++ b/src/extra/SpellChecker/spellchecker.py @@ -1,14 +1,15 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import os import logging -import wx_ui +from . import wx_ui import widgetUtils import output import config import languageHandler import enchant import paths -import twitterFilter +from . import twitterFilter from enchant.checker import SpellChecker from enchant.errors import DictNotFoundError from enchant import tokenize @@ -52,7 +53,7 @@ class spellChecker(object): def check(self): try: - self.checker.next() + next(self.checker) textToSay = _(u"Misspelled word: %s") % (self.checker.word,) context = u"... %s %s %s" % (self.checker.leading_context(10), self.checker.word, self.checker.trailing_context(10)) self.dialog.set_title(textToSay) diff --git a/src/extra/autocompletionUsers/__init__.py b/src/extra/autocompletionUsers/__init__.py index 343ea6c0..888d9511 100644 --- a/src/extra/autocompletionUsers/__init__.py +++ b/src/extra/autocompletionUsers/__init__.py @@ -1,2 +1,4 @@ # -*- coding: utf-8 -*- -import completion, settings \ No newline at end of file +from __future__ import absolute_import +# -*- coding: utf-8 -*- +from . import completion, settings \ No newline at end of file diff --git a/src/extra/autocompletionUsers/completion.py b/src/extra/autocompletionUsers/completion.py index f9c9a516..7dedc525 100644 --- a/src/extra/autocompletionUsers/completion.py +++ b/src/extra/autocompletionUsers/completion.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import output -import storage -import wx_menu +from . import storage +from . import wx_menu class autocompletionUsers(object): def __init__(self, window, session_id): diff --git a/src/extra/autocompletionUsers/manage.py b/src/extra/autocompletionUsers/manage.py index 60e34ddc..a42ef607 100644 --- a/src/extra/autocompletionUsers/manage.py +++ b/src/extra/autocompletionUsers/manage.py @@ -1,7 +1,9 @@ # -*- coding: utf-8 -*- -import storage +from __future__ import absolute_import +# -*- coding: utf-8 -*- +from . import storage import widgetUtils -import wx_manage +from . import wx_manage from wxUI import commonMessageDialogs class autocompletionManage(object): diff --git a/src/extra/autocompletionUsers/settings.py b/src/extra/autocompletionUsers/settings.py index 6eb0762d..5b682850 100644 --- a/src/extra/autocompletionUsers/settings.py +++ b/src/extra/autocompletionUsers/settings.py @@ -1,8 +1,10 @@ # -*- coding: utf-8 -*- -import storage +from __future__ import absolute_import +# -*- coding: utf-8 -*- +from . import storage import widgetUtils -import wx_settings -import manage +from . import wx_settings +from . import manage import output from mysc.thread_utils import call_threaded diff --git a/src/extra/ocr/__init__.py b/src/extra/ocr/__init__.py index d127ddeb..b39f07d2 100644 --- a/src/extra/ocr/__init__.py +++ b/src/extra/ocr/__init__.py @@ -1,2 +1,4 @@ # -*- coding: utf-8 -*- -import OCRSpace \ No newline at end of file +from __future__ import absolute_import +# -*- coding: utf-8 -*- +from . import OCRSpace \ No newline at end of file diff --git a/src/extra/translator/__init__.py b/src/extra/translator/__init__.py index be356d51..9296eede 100644 --- a/src/extra/translator/__init__.py +++ b/src/extra/translator/__init__.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- -import translator +from __future__ import absolute_import +from . import translator import platform if platform.system() == "Windows": - import wx_ui as gui + from . import wx_ui as gui \ No newline at end of file diff --git a/src/extra/translator/wx_ui.py b/src/extra/translator/wx_ui.py index a61c9e7e..43b1c684 100644 --- a/src/extra/translator/wx_ui.py +++ b/src/extra/translator/wx_ui.py @@ -16,7 +16,26 @@ # along with this program. If not, see . # ############################################################ -import translator +from __future__ import absolute_import +# -*- coding: utf-8 -*- +############################################################ +# Copyright (c) 2013, 2014 Manuel Eduardo Cortéz Vallejo +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################ +from . import translator import wx from wxUI.dialogs import baseDialog diff --git a/src/fixes/__init__.py b/src/fixes/__init__.py index 354a5875..c14e4d6d 100644 --- a/src/fixes/__init__.py +++ b/src/fixes/__init__.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- """ This module contains some bugfixes for packages used in TWBlue.""" +from __future__ import absolute_import import sys -import fix_arrow # A few new locales for Three languages in arrow. -import fix_urllib3_warnings # Avoiding some SSL warnings related to Twython. -import fix_win32com -import fix_requests #fix cacert.pem location for TWBlue binary copies +from . import fix_arrow # A few new locales for Three languages in arrow. +from . import fix_urllib3_warnings # Avoiding some SSL warnings related to Twython. +from . import fix_win32com +from . import fix_requests #fix cacert.pem location for TWBlue binary copies def setup(): fix_arrow.fix() if hasattr(sys, "frozen"): diff --git a/src/keys/__init__.py b/src/keys/__init__.py index 69818a83..af724223 100644 --- a/src/keys/__init__.py +++ b/src/keys/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +from builtins import object import application import platform import exceptions diff --git a/src/keystrokeEditor/__init__.py b/src/keystrokeEditor/__init__.py index aef2cc0f..c76ba54e 100644 --- a/src/keystrokeEditor/__init__.py +++ b/src/keystrokeEditor/__init__.py @@ -1 +1,2 @@ -from keystrokeEditor import KeystrokeEditor \ No newline at end of file +from __future__ import absolute_import +from .keystrokeEditor import KeystrokeEditor \ No newline at end of file diff --git a/src/keystrokeEditor/keystrokeEditor.py b/src/keystrokeEditor/keystrokeEditor.py index 3f47abbc..c56b4cd0 100644 --- a/src/keystrokeEditor/keystrokeEditor.py +++ b/src/keystrokeEditor/keystrokeEditor.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import widgetUtils import config -import wx_ui -import constants +from . import wx_ui +from . import constants from pubsub import pub class KeystrokeEditor(object): diff --git a/src/keystrokeEditor/wx_ui.py b/src/keystrokeEditor/wx_ui.py index c8162ffa..dbd922d1 100644 --- a/src/keystrokeEditor/wx_ui.py +++ b/src/keystrokeEditor/wx_ui.py @@ -32,7 +32,7 @@ class keystrokeEditorDialog(baseDialog.BaseWXDialog): selection = self.keys.get_selected() self.keys.clear() for i in keystrokes: - if actions.has_key(i) == False: + if (i in actions) == False: continue action = actions[i] self.actions.append(i) diff --git a/src/multiplatform_widgets/__init__.py b/src/multiplatform_widgets/__init__.py index 126802d0..b282b4e9 100644 --- a/src/multiplatform_widgets/__init__.py +++ b/src/multiplatform_widgets/__init__.py @@ -1 +1,2 @@ -import widgets \ No newline at end of file +from __future__ import absolute_import +from . import widgets \ No newline at end of file diff --git a/src/notifier/__init__.py b/src/notifier/__init__.py index 3bd1ff6e..5eaab0ec 100644 --- a/src/notifier/__init__.py +++ b/src/notifier/__init__.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- """ A cross platform notification system. Under Linux, the wx.NotificationMessage does not show a notification on the taskbar, so we decided to use dbus for showing notifications for linux and wx for Windows.""" +from __future__ import absolute_import import platform notify = None @@ -8,10 +9,10 @@ notify = None def setup(): global notify if platform.system() == "Windows": - import windows + from . import windows notify = windows.notification() elif platform.system() == "Linux": - import linux + from . import linux notify = linux.notification() def send(title, text): diff --git a/src/sessionmanager/sessionManager.py b/src/sessionmanager/sessionManager.py index caf72820..a3cacd5c 100644 --- a/src/sessionmanager/sessionManager.py +++ b/src/sessionmanager/sessionManager.py @@ -1,20 +1,21 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import shutil import widgetUtils import platform import output if platform.system() == "Windows": - import wxUI as view + from . import wxUI as view from controller import settings elif platform.system() == "Linux": - import gtkUI as view + from . import gtkUI as view import paths import time import os import logging import sessions from sessions.twitter import session -import manager +from . import manager import config_utils import config @@ -77,7 +78,7 @@ class sessionManagerController(object): def do_ok(self): log.debug("Starting sessions...") for i in self.sessions: - if sessions.sessions.has_key(i) == True: continue + if (i in sessions.sessions) == True: continue s = session.Session(i) s.get_configuration() if i not in config.app["sessions"]["ignored_sessions"]: diff --git a/src/sessions/base.py b/src/sessions/base.py index 39f635a7..418f5875 100644 --- a/src/sessions/base.py +++ b/src/sessions/base.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- """ A base class to be derived in possible new sessions for TWBlue and services.""" +from __future__ import absolute_import import paths import output import time @@ -9,7 +10,7 @@ import config_utils import shelve import application import os -import session_exceptions as Exceptions +from . import session_exceptions as Exceptions log = logging.getLogger("sessionmanager.session") class baseSession(object): diff --git a/src/sessions/twitter/compose.py b/src/sessions/twitter/compose.py index 79138ee3..554f95de 100644 --- a/src/sessions/twitter/compose.py +++ b/src/sessions/twitter/compose.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import platform system = platform.system() -import utils +from . import utils import re import htmlentitydefs import time @@ -10,7 +11,7 @@ import languageHandler import arrow import logging import config -from long_tweets import twishort, tweets +from .long_tweets import twishort, tweets log = logging.getLogger("compose") def StripChars(s): @@ -38,13 +39,13 @@ def compose_tweet(tweet, db, relative_times, show_screen_names=False, session=No ts = original_date.replace(seconds=db["utc_offset"]).format(_(u"dddd, MMMM D, YYYY H:m:s"), locale=languageHandler.getLanguage()) else: ts = tweet["created_at"] - if tweet.has_key("message"): + if "message" in tweet: value = "message" - elif tweet.has_key("full_text"): + elif "full_text" in tweet: value = "full_text" else: value = "text" - if tweet.has_key("retweeted_status") and value != "message": + if "retweeted_status" in tweet and value != "message": text = StripChars(tweet["retweeted_status"][value]) else: text = StripChars(tweet[value]) @@ -53,16 +54,16 @@ def compose_tweet(tweet, db, relative_times, show_screen_names=False, session=No else: user = tweet["user"]["name"] source = re.sub(r"(?s)<.*?>", "", tweet["source"]) - if tweet.has_key("retweeted_status"): - if tweet.has_key("message") == False and tweet["retweeted_status"]["is_quote_status"] == False: + if "retweeted_status" in tweet: + if ("message" in tweet) == False and tweet["retweeted_status"]["is_quote_status"] == False: text = "RT @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], text) elif tweet["retweeted_status"]["is_quote_status"]: text = "%s" % (text) else: text = "RT @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], text) - if tweet.has_key("message") == False: + if ("message" in tweet) == False: urls = utils.find_urls_in_text(text) - if tweet.has_key("retweeted_status"): + if "retweeted_status" in tweet: for url in range(0, len(urls)): try: text = text.replace(urls[url], tweet["retweeted_status"]["entities"]["urls"][url]["expanded_url"]) @@ -110,14 +111,14 @@ def compose_direct_message(item, db, relative_times, show_screen_names=False, se def compose_quoted_tweet(quoted_tweet, original_tweet, show_screen_names=False, session=None): """ It receives a tweet and returns a list with the user, text for the tweet or message, date and the client where user is.""" - if quoted_tweet.has_key("retweeted_status"): - if quoted_tweet["retweeted_status"].has_key("full_text"): + if "retweeted_status" in quoted_tweet: + if "full_text" in quoted_tweet["retweeted_status"]: value = "full_text" else: value = "text" text = StripChars(quoted_tweet["retweeted_status"][value]) else: - if quoted_tweet.has_key("full_text"): + if "full_text" in quoted_tweet: value = "full_text" else: value = "text" @@ -127,13 +128,13 @@ def compose_quoted_tweet(quoted_tweet, original_tweet, show_screen_names=False, else: quoting_user = quoted_tweet["user"]["name"] source = re.sub(r"(?s)<.*?>", "", quoted_tweet["source"]) - if quoted_tweet.has_key("retweeted_status"): + if "retweeted_status" in quoted_tweet: text = "rt @%s: %s" % (quoted_tweet["retweeted_status"]["user"]["screen_name"], text) if text[-1] in chars: text=text+"." original_user = original_tweet["user"]["screen_name"] - if original_tweet.has_key("message"): + if "message" in original_tweet: original_text = original_tweet["message"] - elif original_tweet.has_key("full_text"): + elif "full_text" in original_tweet: original_text = StripChars(original_tweet["full_text"]) else: original_text = StripChars(original_tweet["text"]) @@ -151,7 +152,7 @@ def compose_followers_list(tweet, db, relative_times=True, show_screen_names=Fal ts = original_date.replace(seconds=db["utc_offset"]).format(_(u"dddd, MMMM D, YYYY H:m:s"), locale=languageHandler.getLanguage()) else: ts = tweet["created_at"] - if tweet.has_key("status"): + if "status" in tweet: if len(tweet["status"]) > 4 and system == "Windows": original_date2 = arrow.get(tweet["status"]["created_at"], "ddd MMM D H:m:s Z YYYY", locale="en") if relative_times: diff --git a/src/sessions/twitter/long_tweets/tweets.py b/src/sessions/twitter/long_tweets/tweets.py index 95e6052e..5445f8fa 100644 --- a/src/sessions/twitter/long_tweets/tweets.py +++ b/src/sessions/twitter/long_tweets/tweets.py @@ -22,9 +22,9 @@ def is_long(tweet): """ Check if the passed tweet contains a quote in its metadata. tweet dict: a tweet dictionary. returns True if a quote is detected, False otherwise.""" - if tweet.has_key("quoted_status_id") and tweet.has_key("quoted_status"): + if "quoted_status_id" in tweet and "quoted_status" in tweet: return tweet["quoted_status_id"] - elif tweet.has_key("retweeted_status") and tweet["retweeted_status"].has_key("quoted_status_id") and tweet["retweeted_status"].has_key("quoted_status"): + elif "retweeted_status" in tweet and "quoted_status_id" in tweet["retweeted_status"] and "quoted_status" in tweet["retweeted_status"]: return tweet["retweeted_status"]["quoted_status_id"] return False @@ -32,8 +32,8 @@ def clear_url(tweet): """ Reads data from a quoted tweet and removes the link to the Status from the tweet's text. tweet dict: a tweet dictionary. returns a tweet dictionary without the URL to the status ID in its text to display.""" - if tweet.has_key("retweeted_status"): - if tweet["retweeted_status"].has_key("full_text"): + if "retweeted_status" in tweet: + if "full_text" in tweet["retweeted_status"]: value = "full_text" else: value = "text" @@ -41,7 +41,7 @@ def clear_url(tweet): try: tweet["message"] = tweet["message"].replace(urls[-1], "") except IndexError: pass else: - if tweet.has_key("full_text"): + if "full_text" in tweet: value = "full_text" else: value = "text" diff --git a/src/sessions/twitter/long_tweets/twishort.py b/src/sessions/twitter/long_tweets/twishort.py index df27ccbc..46481828 100644 --- a/src/sessions/twitter/long_tweets/twishort.py +++ b/src/sessions/twitter/long_tweets/twishort.py @@ -16,6 +16,7 @@ # along with this program. If not, see . # ############################################################ +from __future__ import print_function import logging import requests import keys @@ -47,7 +48,7 @@ def is_long(tweet): # see https://github.com/manuelcortez/TWBlue/issues/103 except TypeError: pass - if long == False and tweet.has_key("retweeted_status"): + if long == False and "retweeted_status" in tweet: for url in range(0, len(tweet["retweeted_status"]["entities"]["urls"])): try: if tweet["retweeted_status"]["entities"]["urls"][url] != None and "twishort.com" in tweet["retweeted_status"]["entities"]["urls"][url]["expanded_url"]: @@ -97,5 +98,5 @@ def create_tweet(user_token, user_secret, text, media=0): try: return response.json()["text_to_tweet"] except: - print "There was a problem creating a long tweet" + print("There was a problem creating a long tweet") return 0 \ No newline at end of file diff --git a/src/sessions/twitter/session.py b/src/sessions/twitter/session.py index 1a08198e..fbcd429d 100644 --- a/src/sessions/twitter/session.py +++ b/src/sessions/twitter/session.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- """ This is the main session needed to access all Twitter Features.""" +from __future__ import absolute_import import os import time import logging @@ -15,7 +16,7 @@ from keys import keyring from sessions import base from sessions.twitter import utils, compose from sessions.twitter.long_tweets import tweets, twishort -from wxUI import authorisationDialog +from .wxUI import authorisationDialog log = logging.getLogger("sessions.twitterSession") @@ -30,9 +31,9 @@ class Session(base.baseSession): returns the number of items that have been added in this execution""" num = 0 last_id = None - if self.db.has_key(name) == False: + if (name in self.db) == False: self.db[name] = [] - if self.db.has_key("users") == False: + if ("users" in self.db) == False: self.db["users"] = {} if ignore_older and len(self.db[name]) > 0: if self.settings["general"]["reverse_timelines"] == False: @@ -51,8 +52,8 @@ class Session(base.baseSession): if self.settings["general"]["reverse_timelines"] == False: self.db[name].append(i) else: self.db[name].insert(0, i) num = num+1 - if i.has_key("user") == True: - if self.db["users"].has_key(i["user"]["id"]) == False: + if ("user" in i) == True: + if (i["user"]["id"] in self.db["users"]) == False: self.db["users"][i["user"]["id"]] = i["user"] return num @@ -66,7 +67,7 @@ class Session(base.baseSession): if name == "direct_messages": return self.order_direct_messages(data) num = 0 - if self.db.has_key(name) == False: + if (name in self.db) == False: self.db[name] = {} self.db[name]["items"] = [] for i in data: @@ -82,12 +83,12 @@ class Session(base.baseSession): returns the number of incoming messages processed in this execution, and sends an event with data regarding amount of sent direct messages added.""" incoming = 0 sent = 0 - if self.db.has_key("direct_messages") == False: + if ("direct_messages" in self.db) == False: self.db["direct_messages"] = {} self.db["direct_messages"]["items"] = [] for i in data: if i["message_create"]["sender_id"] == self.db["user_id"]: - if self.db.has_key("sent_direct_messages") and utils.find_item(i["id"], self.db["sent_direct_messages"]["items"]) == None: + if "sent_direct_messages" in self.db and utils.find_item(i["id"], self.db["sent_direct_messages"]["items"]) == None: if self.settings["general"]["reverse_timelines"] == False: self.db["sent_direct_messages"]["items"].append(i) else: self.db["sent_direct_messages"]["items"].insert(0, i) sent = sent+1 @@ -164,13 +165,13 @@ class Session(base.baseSession): users, dm bool: If any of these is set to True, the function will treat items as users or dm (they need different handling). name str: name of the database item to put new element in.""" results = [] - if kwargs.has_key("cursor") and kwargs["cursor"] == 0: + if "cursor" in kwargs and kwargs["cursor"] == 0: output.speak(_(u"There are no more items to retrieve in this buffer.")) return data = getattr(self.twitter, update_function)(*args, **kwargs) if users == True: - if type(data) == dict and data.has_key("next_cursor"): - if data.has_key("next_cursor"): # There are more objects to retrieve. + if type(data) == dict and "next_cursor" in data: + if "next_cursor" in data: # There are more objects to retrieve. self.db[name]["cursor"] = data["next_cursor"] else: # Set cursor to 0, wich means no more items available. self.db[name]["cursor"] = 0 @@ -178,7 +179,7 @@ class Session(base.baseSession): elif type(data) == list: results.extend(data[1:]) elif dm == True: - if data.has_key("next_cursor"): # There are more objects to retrieve. + if "next_cursor" in data: # There are more objects to retrieve. self.db[name]["cursor"] = data["next_cursor"] else: # Set cursor to 0, wich means no more items available. self.db[name]["cursor"] = 0 @@ -289,7 +290,7 @@ class Session(base.baseSession): name str: Name to save items to the database. function str: A function to get the items.""" last_id = -1 - if self.db.has_key(name): + if name in self.db: try: if self.db[name][0]["id"] > self.db[name][-1]["id"]: last_id = self.db[name][0]["id"] @@ -309,7 +310,7 @@ class Session(base.baseSession): returns number of items retrieved.""" items_ = [] try: - if self.db[name].has_key("cursor") and get_previous: + if "cursor" in self.db[name] and get_previous: cursor = self.db[name]["cursor"] else: cursor = -1 @@ -322,7 +323,7 @@ class Session(base.baseSession): tl[items].reverse() num = self.order_cursored_buffer(name, tl[items]) # Recently, Twitter's new endpoints have cursor if there are more results. - if tl.has_key("next_cursor"): + if "next_cursor" in tl: self.db[name]["cursor"] = tl["next_cursor"] else: self.db[name]["cursor"] = 0 @@ -352,7 +353,7 @@ class Session(base.baseSession): def get_quoted_tweet(self, tweet): """ Process a tweet and extract all information related to the quote.""" quoted_tweet = tweet - if tweet.has_key("full_text"): + if "full_text" in tweet: value = "full_text" else: value = "text" @@ -360,16 +361,16 @@ class Session(base.baseSession): for url in range(0, len(urls)): try: quoted_tweet[value] = quoted_tweet[value].replace(urls[url], quoted_tweet["entities"]["urls"][url]["expanded_url"]) except IndexError: pass - if quoted_tweet.has_key("quoted_status"): + if "quoted_status" in quoted_tweet: original_tweet = quoted_tweet["quoted_status"] - elif quoted_tweet.has_key("retweeted_status") and quoted_tweet["retweeted_status"].has_key("quoted_status"): + elif "retweeted_status" in quoted_tweet and "quoted_status" in quoted_tweet["retweeted_status"]: original_tweet = quoted_tweet["retweeted_status"]["quoted_status"] else: return quoted_tweet original_tweet = self.check_long_tweet(original_tweet) - if original_tweet.has_key("full_text"): + if "full_text" in original_tweet: value = "full_text" - elif original_tweet.has_key("message"): + elif "message" in original_tweet: value = "message" else: value = "text" @@ -386,13 +387,13 @@ class Session(base.baseSession): long = twishort.is_long(tweet) if long != False and config.app["app-settings"]["handle_longtweets"]: message = twishort.get_full_text(long) - if tweet.has_key("quoted_status"): + if "quoted_status" in tweet: tweet["quoted_status"]["message"] = message if tweet["quoted_status"]["message"] == False: return False tweet["quoted_status"]["twishort"] = True for i in tweet["quoted_status"]["entities"]["user_mentions"]: if "@%s" % (i["screen_name"]) not in tweet["quoted_status"]["message"] and i["screen_name"] != tweet["user"]["screen_name"]: - if tweet["quoted_status"].has_key("retweeted_status") and tweet["retweeted_status"]["user"]["screen_name"] == i["screen_name"]: + if "retweeted_status" in tweet["quoted_status"] and tweet["retweeted_status"]["user"]["screen_name"] == i["screen_name"]: continue tweet["quoted_status"]["message"] = u"@%s %s" % (i["screen_name"], tweet["message"]) else: @@ -401,7 +402,7 @@ class Session(base.baseSession): tweet["twishort"] = True for i in tweet["entities"]["user_mentions"]: if "@%s" % (i["screen_name"]) not in tweet["message"] and i["screen_name"] != tweet["user"]["screen_name"]: - if tweet.has_key("retweeted_status") and tweet["retweeted_status"]["user"]["screen_name"] == i["screen_name"]: + if "retweeted_status" in tweet and tweet["retweeted_status"]["user"]["screen_name"] == i["screen_name"]: continue return tweet @@ -409,7 +410,7 @@ class Session(base.baseSession): """ Returns an user object associated with an ID. id str: User identifier, provided by Twitter. returns an user dict.""" - if self.db.has_key("users") == False or self.db["users"].has_key(id) == False: + if ("users" in self.db) == False or (id in self.db["users"]) == False: user = self.twitter.show_user(id=id) self.db["users"][user["id_str"]] = user return user @@ -420,7 +421,7 @@ class Session(base.baseSession): """ Returns an user identifier associated with a screen_name. screen_name str: User name, such as tw_blue2, provided by Twitter. returns an user ID.""" - if self.db.has_key("users") == False: + if ("users" in self.db) == False: user = utils.if_user_exists(self.twitter, screen_name) self.db["users"][user["id_str"]] = user return user["id_str"] diff --git a/src/sessions/twitter/utils.py b/src/sessions/twitter/utils.py index cf1886fa..2c22ced4 100644 --- a/src/sessions/twitter/utils.py +++ b/src/sessions/twitter/utils.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +from __future__ import print_function import url_shortener, re import output from twython import TwythonError @@ -24,32 +25,32 @@ def find_urls_in_text(text): def find_urls (tweet): urls = [] # Let's add URLS from tweet entities. - if tweet.has_key("message_create"): + if "message_create" in tweet: entities = tweet["message_create"]["message_data"]["entities"] else: entities = tweet["entities"] for i in entities["urls"]: if i["expanded_url"] not in urls: urls.append(i["expanded_url"]) - if tweet.has_key("quoted_status"): + if "quoted_status" in tweet: for i in tweet["quoted_status"]["entities"]["urls"]: if i["expanded_url"] not in urls: urls.append(i["expanded_url"]) - if tweet.has_key("retweeted_status"): + if "retweeted_status" in tweet: for i in tweet["retweeted_status"]["entities"]["urls"]: if i["expanded_url"] not in urls: urls.append(i["expanded_url"]) - if tweet["retweeted_status"].has_key("quoted_status"): + if "quoted_status" in tweet["retweeted_status"]: for i in tweet["retweeted_status"]["quoted_status"]["entities"]["urls"]: if i["expanded_url"] not in urls: urls.append(i["expanded_url"]) - if tweet.has_key("message"): + if "message" in tweet: i = "message" - elif tweet.has_key("full_text"): + elif "full_text" in tweet: i = "full_text" else: i = "text" - if tweet.has_key("message_create"): + if "message_create" in tweet: extracted_urls = find_urls_in_text(tweet["message_create"]["message_data"]["text"]) else: extracted_urls = find_urls_in_text(tweet[i]) @@ -82,7 +83,7 @@ def is_audio(tweet): try: if len(find_urls(tweet)) < 1: return False - if tweet.has_key("message_create"): + if "message_create" in tweet: entities = tweet["message_create"]["message_data"]["entities"] else: entities = tweet["entities"] @@ -91,22 +92,22 @@ def is_audio(tweet): if i["text"] == "audio": return True except IndexError: - print tweet["entities"]["hashtags"] + print(tweet["entities"]["hashtags"]) log.exception("Exception while executing is_audio hashtag algorithm") def is_geocoded(tweet): - if tweet.has_key("coordinates") and tweet["coordinates"] != None: + if "coordinates" in tweet and tweet["coordinates"] != None: return True def is_media(tweet): - if tweet.has_key("message_create"): + if "message_create" in tweet: entities = tweet["message_create"]["message_data"]["entities"] else: entities = tweet["entities"] - if entities.has_key("media") == False: + if ("media" in entities) == False: return False for i in entities["media"]: - if i.has_key("type") and i["type"] == "photo": + if "type" in i and i["type"] == "photo": return True return False @@ -121,10 +122,10 @@ def get_all_mentioned(tweet, conf, field="screen_name"): def get_all_users(tweet, conf): string = [] - if tweet.has_key("retweeted_status"): + if "retweeted_status" in tweet: string.append(tweet["user"]["screen_name"]) tweet = tweet["retweeted_status"] - if tweet.has_key("sender"): + if "sender" in tweet: string.append(tweet["sender"]["screen_name"]) else: if tweet["user"]["screen_name"] != conf["user_name"]: @@ -161,16 +162,16 @@ def api_call(parent=None, call_name=None, preexec_message="", success="", succes def is_allowed(tweet, settings, buffer_name): clients = settings["twitter"]["ignored_clients"] - if tweet.has_key("sender"): return True + if "sender" in tweet: return True allowed = True tweet_data = {} - if tweet.has_key("retweeted_status"): + if "retweeted_status" in tweet: tweet_data["retweet"] = True if tweet["in_reply_to_status_id_str"] != None: tweet_data["reply"] = True - if tweet.has_key("quoted_status"): + if "quoted_status" in tweet: tweet_data["quote"] = True - if tweet.has_key("retweeted_status"): tweet = tweet["retweeted_status"] + if "retweeted_status" in tweet: tweet = tweet["retweeted_status"] source = re.sub(r"(?s)<.*?>", "", tweet["source"]) for i in clients: if i.lower() == source.lower(): @@ -178,7 +179,7 @@ def is_allowed(tweet, settings, buffer_name): return filter_tweet(tweet, tweet_data, settings, buffer_name) def filter_tweet(tweet, tweet_data, settings, buffer_name): - if tweet.has_key("full_text"): + if "full_text" in tweet: value = "full_text" else: value = "text" @@ -187,23 +188,23 @@ def filter_tweet(tweet, tweet_data, settings, buffer_name): regexp = settings["filters"][i]["regexp"] word = settings["filters"][i]["word"] # Added if/else for compatibility reasons. - if settings["filters"][i].has_key("allow_rts"): + if "allow_rts" in settings["filters"][i]: allow_rts = settings["filters"][i]["allow_rts"] else: allow_rts = "True" - if settings["filters"][i].has_key("allow_quotes"): + if "allow_quotes" in settings["filters"][i]: allow_quotes = settings["filters"][i]["allow_quotes"] else: allow_quotes = "True" - if settings["filters"][i].has_key("allow_replies"): + if "allow_replies" in settings["filters"][i]: allow_replies = settings["filters"][i]["allow_replies"] else: allow_replies = "True" - if allow_rts == "False" and tweet_data.has_key("retweet"): + if allow_rts == "False" and "retweet" in tweet_data: return False - if allow_quotes == "False" and tweet_data.has_key("quote"): + if allow_quotes == "False" and "quote" in tweet_data: return False - if allow_replies == "False" and tweet_data.has_key("reply"): + if allow_replies == "False" and "reply" in tweet_data: return False if word != "" and settings["filters"][i]["if_word_exists"]: if word in tweet[value]: diff --git a/src/update/updater.py b/src/update/updater.py index 2384f968..5b19da2d 100644 --- a/src/update/updater.py +++ b/src/update/updater.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import application -import update +from . import update import platform import logging import output from requests.exceptions import ConnectionError -from wxUpdater import * +from .wxUpdater import * logger = logging.getLogger("updater") def do_update(endpoint=application.update_url): diff --git a/src/update/wxUpdater.py b/src/update/wxUpdater.py index 761d620a..b3f3f34e 100644 --- a/src/update/wxUpdater.py +++ b/src/update/wxUpdater.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import wx import application -import utils +from . import utils progress_dialog = None diff --git a/src/widgetUtils/__init__.py b/src/widgetUtils/__init__.py index 30509ef6..0a15dadd 100644 --- a/src/widgetUtils/__init__.py +++ b/src/widgetUtils/__init__.py @@ -1,5 +1,6 @@ +from __future__ import absolute_import import platform if platform.system() == "Windows": - from wxUtils import * + from .wxUtils import * #elif platform.system() == "Linux": # from gtkUtils import * diff --git a/src/wxUI/buffers/__init__.py b/src/wxUI/buffers/__init__.py index 2380f3a9..d62019d7 100644 --- a/src/wxUI/buffers/__init__.py +++ b/src/wxUI/buffers/__init__.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- -from base import basePanel -from dm import dmPanel -from events import eventsPanel -from favourites import favsPanel -from lists import listPanel -from panels import accountPanel, emptyPanel -from people import peoplePanel -from trends import trendsPanel -from tweet_searches import searchPanel -from user_searches import searchUsersPanel \ No newline at end of file +from __future__ import absolute_import +from .base import basePanel +from .dm import dmPanel +from .events import eventsPanel +from .favourites import favsPanel +from .lists import listPanel +from .panels import accountPanel, emptyPanel +from .people import peoplePanel +from .trends import trendsPanel +from .tweet_searches import searchPanel +from .user_searches import searchUsersPanel \ No newline at end of file diff --git a/src/wxUI/buffers/dm.py b/src/wxUI/buffers/dm.py index db95aae0..774433ed 100644 --- a/src/wxUI/buffers/dm.py +++ b/src/wxUI/buffers/dm.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import wx -from base import basePanel +from .base import basePanel class dmPanel(basePanel): def __init__(self, parent, name): diff --git a/src/wxUI/buffers/favourites.py b/src/wxUI/buffers/favourites.py index 4837dd6f..5dd91a05 100644 --- a/src/wxUI/buffers/favourites.py +++ b/src/wxUI/buffers/favourites.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import wx -from base import basePanel +from .base import basePanel class favsPanel(basePanel): def __init__(self, parent, name): diff --git a/src/wxUI/buffers/lists.py b/src/wxUI/buffers/lists.py index 82ca73bc..baf6c95a 100644 --- a/src/wxUI/buffers/lists.py +++ b/src/wxUI/buffers/lists.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import wx -from base import basePanel +from .base import basePanel class listPanel(basePanel): def __init__(self, parent, name): diff --git a/src/wxUI/buffers/people.py b/src/wxUI/buffers/people.py index f887ba4d..47e5cf17 100644 --- a/src/wxUI/buffers/people.py +++ b/src/wxUI/buffers/people.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import wx from multiplatform_widgets import widgets -from base import basePanel +from .base import basePanel class peoplePanel(basePanel): """ Buffer used to show people.""" diff --git a/src/wxUI/buffers/tweet_searches.py b/src/wxUI/buffers/tweet_searches.py index 28cf974e..ad0c7aa0 100644 --- a/src/wxUI/buffers/tweet_searches.py +++ b/src/wxUI/buffers/tweet_searches.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import wx -from base import basePanel +from .base import basePanel class searchPanel(basePanel): def __init__(self, parent, name): diff --git a/src/wxUI/buffers/user_searches.py b/src/wxUI/buffers/user_searches.py index b3b1415c..c1ff9745 100644 --- a/src/wxUI/buffers/user_searches.py +++ b/src/wxUI/buffers/user_searches.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import wx -from tweet_searches import searchPanel +from .tweet_searches import searchPanel from multiplatform_widgets import widgets class searchUsersPanel(searchPanel): diff --git a/src/wxUI/dialogs/__init__.py b/src/wxUI/dialogs/__init__.py index a9c57be2..3605a2d1 100644 --- a/src/wxUI/dialogs/__init__.py +++ b/src/wxUI/dialogs/__init__.py @@ -1 +1,2 @@ -import baseDialog, trends, configuration, lists, message, search, find, show_user, update_profile, urlList, userSelection, utils, filterDialogs +from __future__ import absolute_import +from . import baseDialog, trends, configuration, lists, message, search, find, show_user, update_profile, urlList, userSelection, utils, filterDialogs diff --git a/src/wxUI/dialogs/configuration.py b/src/wxUI/dialogs/configuration.py index 3e7e5ff9..dcafb0ec 100644 --- a/src/wxUI/dialogs/configuration.py +++ b/src/wxUI/dialogs/configuration.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import logging as original_logger import wx import application import output import config import widgetUtils -import baseDialog +from . import baseDialog from multiplatform_widgets import widgets class general(wx.Panel, baseDialog.BaseWXDialog): diff --git a/src/wxUI/dialogs/filterDialogs.py b/src/wxUI/dialogs/filterDialogs.py index 6430df19..608ec2c8 100644 --- a/src/wxUI/dialogs/filterDialogs.py +++ b/src/wxUI/dialogs/filterDialogs.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- -import baseDialog +from __future__ import absolute_import +# -*- coding: utf-8 -*- +from . import baseDialog import wx import widgetUtils from multiplatform_widgets import widgets diff --git a/src/wxUI/dialogs/find.py b/src/wxUI/dialogs/find.py index 48396295..0b18ea20 100644 --- a/src/wxUI/dialogs/find.py +++ b/src/wxUI/dialogs/find.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- -import baseDialog +from __future__ import absolute_import +# -*- coding: utf-8 -*- +from . import baseDialog import wx class findDialog(baseDialog.BaseWXDialog): diff --git a/src/wxUI/dialogs/search.py b/src/wxUI/dialogs/search.py index 12849117..34992613 100644 --- a/src/wxUI/dialogs/search.py +++ b/src/wxUI/dialogs/search.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import widgetUtils -import baseDialog +from . import baseDialog import wx from extra import translator diff --git a/src/wxUI/dialogs/show_user.py b/src/wxUI/dialogs/show_user.py index 74b02070..2fb8d4ca 100644 --- a/src/wxUI/dialogs/show_user.py +++ b/src/wxUI/dialogs/show_user.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import wx -import baseDialog +from . import baseDialog class showUserProfile(baseDialog.BaseWXDialog): def __init__(self): diff --git a/src/wxUI/dialogs/trends.py b/src/wxUI/dialogs/trends.py index 6cf973f6..fa591b36 100644 --- a/src/wxUI/dialogs/trends.py +++ b/src/wxUI/dialogs/trends.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- -import baseDialog +from __future__ import absolute_import +# -*- coding: utf-8 -*- +from . import baseDialog import wx class trendingTopicsDialog(baseDialog.BaseWXDialog): diff --git a/src/wxUI/dialogs/update_profile.py b/src/wxUI/dialogs/update_profile.py index d9286516..ea248bc3 100644 --- a/src/wxUI/dialogs/update_profile.py +++ b/src/wxUI/dialogs/update_profile.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import import wx -import baseDialog +from . import baseDialog class updateProfileDialog(baseDialog.BaseWXDialog): def __init__(self): diff --git a/src/wxUI/dialogs/utils.py b/src/wxUI/dialogs/utils.py index fbc1be23..0adb20ca 100644 --- a/src/wxUI/dialogs/utils.py +++ b/src/wxUI/dialogs/utils.py @@ -16,8 +16,9 @@ # along with this program. If not, see . # ############################################################ +from __future__ import absolute_import import wx -import baseDialog +from . import baseDialog class selectUserDialog(baseDialog.BaseWXDialog): def __init__(self, title, users):