From ec9465654e726d1bead20658f4c66cc91514111e Mon Sep 17 00:00:00 2001 From: Sergey Motornyuk Date: Fri, 22 Nov 2019 17:02:26 +0200 Subject: [PATCH] Futurize codebase --- ckanext/googleanalytics/commands.py | 16 +++++++++------- ckanext/googleanalytics/controller.py | 14 ++++++++------ ckanext/googleanalytics/plugin/__init__.py | 12 ++++++++---- ckanext/googleanalytics/plugin/flask_plugin.py | 6 ++++-- ckanext/googleanalytics/plugin/paster_plugin.py | 6 ++++-- ckanext/googleanalytics/views.py | 2 +- 6 files changed, 34 insertions(+), 22 deletions(-) diff --git a/ckanext/googleanalytics/commands.py b/ckanext/googleanalytics/commands.py index 0b0011d..24041c2 100644 --- a/ckanext/googleanalytics/commands.py +++ b/ckanext/googleanalytics/commands.py @@ -1,3 +1,5 @@ +from __future__ import print_function +from __future__ import absolute_import import os import re import logging @@ -8,7 +10,7 @@ from pylons import config as pylonsconfig from ckan.lib.cli import CkanCommand import ckan.model as model -import dbutil +from . import dbutil log = logging.getLogger("ckanext.googleanalytics") PACKAGE_URL = "/dataset/" # XXX get from routes... @@ -78,7 +80,7 @@ class LoadAnalytics(CkanCommand): ) engine.execute(sql) - for url, count in packages_data.iteritems(): + for url, count in packages_data.items(): # If it matches the resource then we should mark it as a resource. # For resources we don't currently find the package ID. if RESOURCE_URL_REGEX.match(url): @@ -174,7 +176,7 @@ class LoadAnalytics(CkanCommand): time.sleep(0.25) start_date = stop_date log.info("%s received %s" % (len(packages_data), start_date)) - print "%s received %s" % (len(packages_data), start_date) + print("%s received %s" % (len(packages_data), start_date)) def get_ga_data_new(self, start_date=None, end_date=None): """Get raw data from Google Analtyics for packages and @@ -234,7 +236,7 @@ class LoadAnalytics(CkanCommand): def parse_and_save(self): """Grab raw data from Google Analytics and save to the database""" - from ga_auth import init_service, get_profile_id + from .ga_auth import init_service, get_profile_id tokenfile = self.args[0] if not os.path.exists(tokenfile): @@ -262,7 +264,7 @@ class LoadAnalytics(CkanCommand): def save_ga_data(self, packages_data): """Save tuples of packages_data to the database """ - for identifier, visits in packages_data.items(): + for identifier, visits in list(packages_data.items()): recently = visits.get("recent", 0) ever = visits.get("ever", 0) matches = RESOURCE_URL_REGEX.match(identifier) @@ -314,7 +316,7 @@ class LoadAnalytics(CkanCommand): if not sort: sort = "-ga:uniquePageviews" - print "%s -> %s" % (from_date, to_date) + print("%s -> %s" % (from_date, to_date)) results = ( self.service.data() @@ -349,7 +351,7 @@ class LoadAnalytics(CkanCommand): packages = {} queries = ["ga:pagePath=~%s" % PACKAGE_URL] dates = {"recent": recent_date, "ever": floor_date} - for date_name, date in dates.iteritems(): + for date_name, date in dates.items(): for query in queries: results = self.ga_query( query_filter=query, diff --git a/ckanext/googleanalytics/controller.py b/ckanext/googleanalytics/controller.py index ede9667..cdf9922 100644 --- a/ckanext/googleanalytics/controller.py +++ b/ckanext/googleanalytics/controller.py @@ -1,10 +1,12 @@ +from __future__ import absolute_import +from builtins import str import logging from ckan.lib.base import BaseController, c, render, request -import dbutil +from . import dbutil import ckan.logic as logic import hashlib -import plugin +from . import plugin from pylons import config from paste.util.multidict import MultiDict @@ -56,7 +58,7 @@ class GAApiController(ApiController): if "query" in request_data: id = request_data["query"] self._post_analytics(c.user, logic_function, "", id) - except Exception, e: + except Exception as e: log.debug(e) pass return ApiController.action(self, logic_function, ver) @@ -107,11 +109,11 @@ class GAApiController(ApiController): id = None try: params = MultiDict(self._get_search_params(request.params)) - if "q" in params.keys(): + if "q" in list(params.keys()): id = params["q"] - if "query" in params.keys(): + if "query" in list(params.keys()): id = params["query"] - except ValueError, e: + except ValueError as e: log.debug(str(e)) pass self._post_analytics(c.user, register, "search", id) diff --git a/ckanext/googleanalytics/plugin/__init__.py b/ckanext/googleanalytics/plugin/__init__.py index be0ce9c..fdd9085 100644 --- a/ckanext/googleanalytics/plugin/__init__.py +++ b/ckanext/googleanalytics/plugin/__init__.py @@ -1,13 +1,17 @@ from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() +from builtins import str +from builtins import range import ast import logging -import urllib +import urllib.request, urllib.parse, urllib.error import ckanext.googleanalytics.commands as commands import paste.deploy.converters as converters import ckan.lib.helpers as h import ckan.plugins as p import ckan.plugins.toolkit as tk -import urllib2 +import urllib.request, urllib.error, urllib.parse from ckan.exceptions import CkanVersionException import threading @@ -37,10 +41,10 @@ class AnalyticsPostThread(threading.Thread): # grabs host from queue data_dict = self.queue.get() - data = urllib.urlencode(data_dict) + data = urllib.parse.urlencode(data_dict) log.debug("Sending API event to Google Analytics: " + data) # send analytics - urllib2.urlopen( + urllib.request.urlopen( "http://www.google-analytics.com/collect", data, # timeout in seconds diff --git a/ckanext/googleanalytics/plugin/flask_plugin.py b/ckanext/googleanalytics/plugin/flask_plugin.py index ba5bc50..6d332d4 100644 --- a/ckanext/googleanalytics/plugin/flask_plugin.py +++ b/ckanext/googleanalytics/plugin/flask_plugin.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- -import Queue +from future import standard_library +standard_library.install_aliases() +import queue import ckan.plugins as plugins @@ -9,7 +11,7 @@ from ckanext.googleanalytics.views import ga class GAMixinPlugin(plugins.SingletonPlugin): plugins.implements(plugins.IBlueprint) - analytics_queue = Queue.Queue() + analytics_queue = queue.Queue() def get_blueprint(self): return [ga] diff --git a/ckanext/googleanalytics/plugin/paster_plugin.py b/ckanext/googleanalytics/plugin/paster_plugin.py index 3e3d1bb..d82197e 100644 --- a/ckanext/googleanalytics/plugin/paster_plugin.py +++ b/ckanext/googleanalytics/plugin/paster_plugin.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- -import Queue +from future import standard_library +standard_library.install_aliases() +import queue import hashlib import importlib @@ -15,7 +17,7 @@ from routes.mapper import SubMapper class GAMixinPlugin(plugins.SingletonPlugin): plugins.implements(plugins.IRoutes) - analytics_queue = Queue.Queue() + analytics_queue = queue.Queue() def before_map(self, map): """Add new routes that this extension's controllers handle. diff --git a/ckanext/googleanalytics/views.py b/ckanext/googleanalytics/views.py index e663a84..fc2a907 100644 --- a/ckanext/googleanalytics/views.py +++ b/ckanext/googleanalytics/views.py @@ -25,7 +25,7 @@ def action(logic_function, ver=api.API_MAX_VERSION): if "query" in request_data: id = request_data["query"] _post_analytics(g.user, "CKAN API Request", logic_function, "", id) - except Exception, e: + except Exception as e: log.debug(e) pass