From cd70abf9b5b7a7187f061798ca2cd93c93531064 Mon Sep 17 00:00:00 2001 From: amercader Date: Sun, 10 Nov 2019 18:24:01 +0100 Subject: [PATCH] [#4801] Transform relative imports into absolute ones --- ckan/controllers/admin.py | 3 +- ckan/controllers/package.py | 2 +- ckan/lib/cli.py | 5 ++- ckan/lib/helpers.py | 8 ++--- ckan/lib/navl/dictization_functions.py | 4 +-- ckan/lib/redis.py | 4 --- ckan/lib/search/__init__.py | 17 ++++++---- ckan/lib/search/index.py | 2 +- ckan/model/__init__.py | 45 +++++++++++++------------- ckan/model/activity.py | 5 ++- ckan/model/core.py | 7 +--- ckan/model/dashboard.py | 2 +- ckan/model/domain_object.py | 5 +-- ckan/model/follower.py | 6 ++-- ckan/model/group.py | 12 +++---- ckan/model/group_extra.py | 12 ++++--- ckan/model/meta.py | 2 +- ckan/model/package.py | 35 ++++++++++---------- ckan/model/package_extra.py | 16 ++++----- ckan/model/package_relationship.py | 10 +++--- ckan/model/rating.py | 10 +++--- ckan/model/resource.py | 18 +++++------ ckan/model/resource_view.py | 6 ++-- ckan/model/system_info.py | 6 ++-- ckan/model/tag.py | 17 +++++----- ckan/model/task_status.py | 6 ++-- ckan/model/term_translation.py | 2 +- ckan/model/tracking.py | 4 +-- ckan/model/types.py | 2 +- ckan/model/user.py | 8 ++--- ckan/model/vocabulary.py | 5 +-- 31 files changed, 139 insertions(+), 147 deletions(-) diff --git a/ckan/controllers/admin.py b/ckan/controllers/admin.py index 3d2f44559e1..bed19630cc0 100644 --- a/ckan/controllers/admin.py +++ b/ckan/controllers/admin.py @@ -8,8 +8,7 @@ import ckan.lib.navl.dictization_functions as dict_fns import ckan.model as model import ckan.logic as logic -import ckan.plugins as plugins -from home import CACHE_PARAMETERS +from ckan.controllers.home import CACHE_PARAMETERS c = base.c diff --git a/ckan/controllers/package.py b/ckan/controllers/package.py index aecbfb8fe07..71e40a1d287 100644 --- a/ckan/controllers/package.py +++ b/ckan/controllers/package.py @@ -25,7 +25,7 @@ import ckan.lib.render from ckan.common import OrderedDict, _, json, request, c, response -from home import CACHE_PARAMETERS +from ckan.controllers.home import CACHE_PARAMETERS log = logging.getLogger(__name__) diff --git a/ckan/lib/cli.py b/ckan/lib/cli.py index f9f78e56c5c..dd826e8a1ab 100644 --- a/ckan/lib/cli.py +++ b/ckan/lib/cli.py @@ -1295,8 +1295,7 @@ class CreateTestDataCommand(CkanCommand): def command(self): self._load_config() - from ckan import plugins - from create_test_data import CreateTestData + from ckan.lib.create_test_data import CreateTestData if self.args: cmd = self.args[0] @@ -2364,7 +2363,7 @@ class ConfigToolCommand(paste.script.command.Command): help='Supply an options file to merge in') def command(self): - import config_tool + from ckan.lib import config_tool if len(self.args) < 1: self.parser.error('Not enough arguments (got %i, need at least 1)' % len(self.args)) diff --git a/ckan/lib/helpers.py b/ckan/lib/helpers.py index 29764b9d0bb..7c68198ba1d 100644 --- a/ckan/lib/helpers.py +++ b/ckan/lib/helpers.py @@ -17,7 +17,7 @@ import uuid from paste.deploy import converters -from webhelpers.html import HTML, literal, tags, tools +from webhelpers.html import HTML, literal, tags from webhelpers import paginate import webhelpers.text as whtext import webhelpers.date as date @@ -26,12 +26,12 @@ from pylons import url as _pylons_default_url from ckan.common import config, is_flask_request from flask import redirect as _flask_redirect -from flask import _request_ctx_stack, current_app +from flask import _request_ctx_stack from routes import redirect_to as _routes_redirect_to from routes import url_for as _routes_default_url_for from flask import url_for as _flask_default_url_for from werkzeug.routing import BuildError as FlaskRouteBuildError -import i18n +from ckan.lib import i18n from six import string_types, text_type from six.moves.urllib.parse import ( @@ -2690,7 +2690,7 @@ def compare_pkg_dicts(old, new, old_activity_id): string indicating the type of change made as well as other data necessary to form a detailed summary of the change. ''' - from changes import check_metadata_changes, check_resource_changes + from ckan.lib.changes import check_metadata_changes, check_resource_changes change_list = [] check_metadata_changes(change_list, old, new) diff --git a/ckan/lib/navl/dictization_functions.py b/ckan/lib/navl/dictization_functions.py index 91fa166bb08..8377ad4dfc0 100644 --- a/ckan/lib/navl/dictization_functions.py +++ b/ckan/lib/navl/dictization_functions.py @@ -6,9 +6,7 @@ import json from six import text_type -from ckan.common import config - -from ckan.common import _ +from ckan.common import config, _ class Missing(object): diff --git a/ckan/lib/redis.py b/ckan/lib/redis.py index 3a542618690..79a0760999f 100644 --- a/ckan/lib/redis.py +++ b/ckan/lib/redis.py @@ -5,10 +5,6 @@ .. versionadded:: 2.7 ''' - -from __future__ import absolute_import - -import datetime import logging from redis import ConnectionPool, Redis diff --git a/ckan/lib/search/__init__.py b/ckan/lib/search/__init__.py index e31fe175e12..36f7935d3cc 100644 --- a/ckan/lib/search/__init__.py +++ b/ckan/lib/search/__init__.py @@ -8,17 +8,20 @@ import requests -from ckan.common import asbool - import ckan.model as model import ckan.plugins as p import ckan.logic as logic -from common import (SearchIndexError, SearchError, SearchQueryError, - make_connection, is_available, SolrSettings) -from index import PackageSearchIndex, NoopSearchIndex -from query import (TagSearchQuery, ResourceSearchQuery, PackageSearchQuery, - QueryOptions, convert_legacy_parameters_to_solr) +from ckan.lib.search.common import ( + SearchIndexError, SearchError, SearchQueryError, + make_connection, is_available, SolrSettings +) +from ckan.lib.search.index import PackageSearchIndex, NoopSearchIndex +from ckan.lib.search.query import ( + TagSearchQuery, ResourceSearchQuery, PackageSearchQuery, + QueryOptions, convert_legacy_parameters_to_solr +) + log = logging.getLogger(__name__) diff --git a/ckan/lib/search/index.py b/ckan/lib/search/index.py index 486487c1df5..282f32d565c 100644 --- a/ckan/lib/search/index.py +++ b/ckan/lib/search/index.py @@ -16,7 +16,7 @@ from six import text_type from six.moves import map -from common import SearchIndexError, make_connection +from .common import SearchIndexError, make_connection from ckan.model import PackageRelationship import ckan.model as model from ckan.plugins import (PluginImplementations, diff --git a/ckan/model/__init__.py b/ckan/model/__init__.py index 012d662f5c0..0ed5d97d04e 100644 --- a/ckan/model/__init__.py +++ b/ckan/model/__init__.py @@ -19,24 +19,25 @@ ) from alembic.config import Config as AlembicConfig -import meta -from meta import ( +from ckan.model import meta + +from ckan.model.meta import ( Session, engine_is_sqlite, engine_is_pg, ) -from core import ( +from ckan.model.core import ( System, State, ) -from package import ( +from ckan.model.package import ( Package, PACKAGE_NAME_MIN_LENGTH, PACKAGE_NAME_MAX_LENGTH, PACKAGE_VERSION_MAX_LENGTH, package_table, ) -from tag import ( +from ckan.model.tag import ( Tag, PackageTag, MAX_TAG_LENGTH, @@ -44,82 +45,82 @@ tag_table, package_tag_table, ) -from user import ( +from ckan.model.user import ( User, user_table, ) -from group import ( +from ckan.model.group import ( Member, Group, group_table, member_table, ) -from group_extra import ( +from ckan.model.group_extra import ( GroupExtra, group_extra_table, ) -from package_extra import ( +from ckan.model.package_extra import ( PackageExtra, package_extra_table, ) -from resource import ( +from ckan.model.resource import ( Resource, DictProxy, resource_table, ) -from resource_view import ( +from ckan.model.resource_view import ( ResourceView, resource_view_table, ) -from tracking import ( +from ckan.model.tracking import ( tracking_summary_table, TrackingSummary, tracking_raw_table ) -from rating import ( +from ckan.model.rating import ( Rating, MIN_RATING, MAX_RATING, ) -from package_relationship import ( +from ckan.model.package_relationship import ( PackageRelationship, package_relationship_table, ) -from task_status import ( +from ckan.model.task_status import ( TaskStatus, task_status_table, ) -from vocabulary import ( +from ckan.model.vocabulary import ( Vocabulary, VOCABULARY_NAME_MAX_LENGTH, VOCABULARY_NAME_MIN_LENGTH, ) -from activity import ( +from ckan.model.activity import ( Activity, ActivityDetail, activity_table, activity_detail_table, ) -from term_translation import ( +from ckan.model.term_translation import ( term_translation_table, ) -from follower import ( +from ckan.model.follower import ( UserFollowingUser, UserFollowingDataset, UserFollowingGroup, ) -from system_info import ( +from ckan.model.system_info import ( system_info_table, SystemInfo, get_system_info, set_system_info, delete_system_info, ) -from domain_object import ( +from ckan.model.domain_object import ( DomainObjectOperation, DomainObject, ) -from dashboard import ( +from ckan.model.dashboard import ( Dashboard, ) diff --git a/ckan/model/activity.py b/ckan/model/activity.py index aa609a94ac2..4e6c65c731d 100644 --- a/ckan/model/activity.py +++ b/ckan/model/activity.py @@ -16,9 +16,8 @@ ) import ckan.model -import meta -import types as _types -import domain_object +from ckan.model import meta +from ckan.model import domain_object, types as _types __all__ = ['Activity', 'activity_table', 'ActivityDetail', 'activity_detail_table', diff --git a/ckan/model/core.py b/ckan/model/core.py index 596f86d5099..ab7f1f694fd 100644 --- a/ckan/model/core.py +++ b/ckan/model/core.py @@ -1,11 +1,6 @@ # encoding: utf-8 -import datetime - -from sqlalchemy import Column, DateTime, Text, Boolean - -import domain_object -import meta +from ckan.model import domain_object __all__ = ['System', 'State', 'StatefulObjectMixin'] diff --git a/ckan/model/dashboard.py b/ckan/model/dashboard.py index c3de63a0b08..4007733feb9 100644 --- a/ckan/model/dashboard.py +++ b/ckan/model/dashboard.py @@ -2,7 +2,7 @@ import datetime import sqlalchemy -import meta +from ckan.model import meta dashboard_table = sqlalchemy.Table('dashboard', meta.metadata, sqlalchemy.Column('user_id', sqlalchemy.types.UnicodeText, diff --git a/ckan/model/domain_object.py b/ckan/model/domain_object.py index 39aafa8726f..47fdd363f97 100644 --- a/ckan/model/domain_object.py +++ b/ckan/model/domain_object.py @@ -6,11 +6,12 @@ from sqlalchemy import orm from sqlalchemy.util import OrderedDict -import meta -import core +from ckan.model import meta, core + __all__ = ['DomainObject', 'DomainObjectOperation'] + class Enum(set): '''Simple enumeration e.g. Animal = Enum("dog", "cat", "horse") diff --git a/ckan/model/follower.py b/ckan/model/follower.py index cc3e5729da4..22f1a93d66b 100644 --- a/ckan/model/follower.py +++ b/ckan/model/follower.py @@ -1,12 +1,12 @@ # encoding: utf-8 -import meta +from ckan.model import meta import datetime import sqlalchemy -import core +from ckan.model import core import ckan.model -import domain_object +from ckan.model import domain_object class ModelFollowingModel(domain_object.DomainObject): diff --git a/ckan/model/group.py b/ckan/model/group.py index 0174f5c6144..f63455087c2 100644 --- a/ckan/model/group.py +++ b/ckan/model/group.py @@ -4,12 +4,12 @@ from sqlalchemy import orm, types, Column, Table, ForeignKey, or_, and_, text -import meta -import core -import package as _package -import types as _types -import domain_object -import user as _user +from ckan.model import meta +from ckan.model import core +from ckan.model import package as _package +from ckan.model import types as _types +from ckan.model import domain_object +from ckan.model import user as _user __all__ = ['group_table', 'Group', 'Member', diff --git a/ckan/model/group_extra.py b/ckan/model/group_extra.py index 08a61e51be5..42463ae6210 100644 --- a/ckan/model/group_extra.py +++ b/ckan/model/group_extra.py @@ -4,11 +4,13 @@ from sqlalchemy.ext.associationproxy import association_proxy from six import text_type -import group -import meta -import core -import types as _types -import domain_object +from ckan.model import ( + group, + meta, + core, + types as _types, + domain_object +) __all__ = ['GroupExtra', 'group_extra_table'] diff --git a/ckan/model/meta.py b/ckan/model/meta.py index 95f0908a7bc..aded9871c80 100644 --- a/ckan/model/meta.py +++ b/ckan/model/meta.py @@ -9,7 +9,7 @@ import sqlalchemy.orm as orm from sqlalchemy.orm.session import SessionExtension -import extension +from ckan.model import extension __all__ = ['Session', 'engine_is_sqlite', 'engine_is_pg'] diff --git a/ckan/model/package.py b/ckan/model/package.py index 37465ffd675..6bd5cd7ae7c 100644 --- a/ckan/model/package.py +++ b/ckan/model/package.py @@ -8,16 +8,17 @@ from sqlalchemy import types, Column, Table from ckan.common import config -import meta -import core -import license as _license -import types as _types -import domain_object -import activity -import extension +from ckan.model import ( + meta, + core, + license as _license, + types as _types, + domain_object, + activity, + extension, +) import ckan.lib.maintain as maintain -import ckan.lib.dictization as dictization logger = logging.getLogger(__name__) @@ -94,7 +95,7 @@ def related_packages(self): return [self] def add_resource(self, url, format=u'', description=u'', hash=u'', **kw): - import resource + from ckan.model import resource self.resources_all.append(resource.Resource( package_id=self.id, url=url, @@ -131,7 +132,7 @@ def add_tag_by_name(self, tag_name, vocab=None, autoflush=True): to the vocabulary. """ - from tag import Tag + from ckan.model.tag import Tag if not tag_name: return # Get the named tag. @@ -224,7 +225,7 @@ def add_relationship(self, type_, related_package, comment=u''): Raises KeyError if the type_ is invalid. ''' - import package_relationship + from ckan.model import package_relationship if type_ in package_relationship.PackageRelationship.get_forward_types(): subject = self object_ = related_package @@ -262,7 +263,7 @@ def get_relationships(self, with_package=None, type=None, active=True, assert direction in ('both', 'forward', 'reverse') if with_package: assert isinstance(with_package, Package) - from package_relationship import PackageRelationship + from ckan.model.package_relationship import PackageRelationship forward_filters = [PackageRelationship.subject==self] reverse_filters = [PackageRelationship.object==self] if with_package: @@ -297,7 +298,7 @@ def get_relationships_printable(self): non-direct relationships (such as siblings). @return: e.g. [(annakarenina, u"is a parent"), ...] ''' - from package_relationship import PackageRelationship + from ckan.model.package_relationship import PackageRelationship rel_list = [] for rel in self.get_relationships(): if rel.subject == self: @@ -483,8 +484,8 @@ def set_rating(self, user_or_ip, rating): @param user_or_ip - user object or an IP address string ''' user = None - from user import User - from rating import Rating, MAX_RATING, MIN_RATING + from ckan.model.user import User + from ckan.model.rating import Rating, MAX_RATING, MIN_RATING if isinstance(user_or_ip, User): user = user_or_ip rating_query = meta.Session.query(Rating)\ @@ -525,7 +526,7 @@ def extras_list(self): Returns a list of the dataset's extras, as PackageExtra object NB includes deleted ones too (state='deleted') ''' - from package_extra import PackageExtra + from ckan.model.package_extra import PackageExtra return meta.Session.query(PackageExtra) \ .filter_by(package_id=self.id) \ .all() @@ -535,7 +536,7 @@ class RatingValueException(Exception): pass # import here to prevent circular import -import tag +from ckan.model import tag meta.mapper(Package, package_table, properties={ # delete-orphan on cascade does NOT work! diff --git a/ckan/model/package_extra.py b/ckan/model/package_extra.py index 2d5e8ede167..a57dc4483b5 100644 --- a/ckan/model/package_extra.py +++ b/ckan/model/package_extra.py @@ -4,14 +4,14 @@ from sqlalchemy import orm, types, Column, Table, ForeignKey from sqlalchemy.ext.associationproxy import association_proxy -import meta -import core -import package as _package -import extension -import domain_object -import types as _types -import ckan.lib.dictization -import activity +from ckan.model import ( + meta, + core, + package as _package, + extension, + domain_object, + types as _types, +) __all__ = ['PackageExtra', 'package_extra_table'] diff --git a/ckan/model/package_relationship.py b/ckan/model/package_relationship.py index 3e623911498..28739e1ba01 100644 --- a/ckan/model/package_relationship.py +++ b/ckan/model/package_relationship.py @@ -2,11 +2,11 @@ from sqlalchemy import orm, types, Column, Table, ForeignKey -import meta -import core -import package as _package -import types as _types -import domain_object +from ckan.model import meta +from ckan.model import core +from ckan.model import package as _package +from ckan.model import types as _types +from ckan.model import domain_object # i18n only works when this is run as part of pylons, # which isn't the case for paster commands. diff --git a/ckan/model/rating.py b/ckan/model/rating.py index f123822f65a..626a6b47132 100644 --- a/ckan/model/rating.py +++ b/ckan/model/rating.py @@ -4,11 +4,11 @@ from sqlalchemy import orm, types, Column, Table, ForeignKey -import meta -import package as _package -import user -import domain_object -import types as _types +from ckan.model import meta +from ckan.model import package as _package +from ckan.model import user +from ckan.model import domain_object +from ckan.model import types as _types __all__ = ['Rating', 'MIN_RATING', 'MAX_RATING'] diff --git a/ckan/model/resource.py b/ckan/model/resource.py index dfbc45ec207..11bf74f023d 100644 --- a/ckan/model/resource.py +++ b/ckan/model/resource.py @@ -7,15 +7,15 @@ from sqlalchemy.ext.orderinglist import ordering_list from sqlalchemy import orm from ckan.common import config -from sqlalchemy import types, func, Column, Table, ForeignKey, and_ - -import meta -import core -import package as _package -import types as _types -import extension -import activity -import domain_object +from sqlalchemy import types, func, Column, Table, ForeignKey + +from ckan.model import ( + meta, + core, + types as _types, + extension, + domain_object, +) import ckan.lib.dictization from .package import Package import ckan.model diff --git a/ckan/model/resource_view.py b/ckan/model/resource_view.py index 72804c51137..88f2a7eda5c 100644 --- a/ckan/model/resource_view.py +++ b/ckan/model/resource_view.py @@ -2,9 +2,9 @@ import sqlalchemy as sa -import meta -import types as _types -import domain_object +from ckan.model import meta +from ckan.model import types as _types +from ckan.model import domain_object __all__ = ['ResourceView', 'resource_view_table'] diff --git a/ckan/model/system_info.py b/ckan/model/system_info.py index 62248bab007..4a48741f4f6 100644 --- a/ckan/model/system_info.py +++ b/ckan/model/system_info.py @@ -10,9 +10,9 @@ from sqlalchemy import types, Column, Table from six import text_type -import meta -import core -import domain_object +from ckan.model import meta +from ckan.model import core +from ckan.model import domain_object __all__ = ['system_info_table', 'SystemInfo', 'get_system_info', 'set_system_info'] diff --git a/ckan/model/tag.py b/ckan/model/tag.py index 0e1ade204f0..be076473df1 100644 --- a/ckan/model/tag.py +++ b/ckan/model/tag.py @@ -3,14 +3,15 @@ from sqlalchemy.orm import relation from sqlalchemy import types, Column, Table, ForeignKey, and_, UniqueConstraint -import package as _package -import extension as _extension -import core -import meta -import types as _types -import domain_object -import vocabulary -import activity +from ckan.model import ( + core, + meta, + types as _types, + domain_object, + vocabulary, + package as _package, + extension as _extension, +) import ckan # this import is needed import ckan.lib.dictization import ckan.lib.maintain as maintain diff --git a/ckan/model/task_status.py b/ckan/model/task_status.py index 44f4295158f..4bdfcb41b65 100644 --- a/ckan/model/task_status.py +++ b/ckan/model/task_status.py @@ -3,9 +3,9 @@ from datetime import datetime from sqlalchemy import types, Column, Table, UniqueConstraint -import meta -import types as _types -import domain_object +from ckan.model import meta +from ckan.model import types as _types +from ckan.model import domain_object __all__ = ['TaskStatus', 'task_status_table'] diff --git a/ckan/model/term_translation.py b/ckan/model/term_translation.py index e316a030cd3..dde7356cb79 100644 --- a/ckan/model/term_translation.py +++ b/ckan/model/term_translation.py @@ -2,7 +2,7 @@ from sqlalchemy import Column, Table from sqlalchemy.types import UnicodeText -import meta +from ckan.model import meta __all__ = ['term_translation_table'] diff --git a/ckan/model/tracking.py b/ckan/model/tracking.py index e36a9bbd59a..56c8752ab38 100644 --- a/ckan/model/tracking.py +++ b/ckan/model/tracking.py @@ -2,8 +2,8 @@ from sqlalchemy import types, Column, Table, text -import meta -import domain_object +from ckan.model import meta +from ckan.model import domain_object __all__ = ['tracking_summary_table', 'TrackingSummary', 'tracking_raw_table'] diff --git a/ckan/model/types.py b/ckan/model/types.py index fcc01d36b0a..7e30f347a73 100644 --- a/ckan/model/types.py +++ b/ckan/model/types.py @@ -9,7 +9,7 @@ from sqlalchemy import types from six import string_types, text_type -import meta +from ckan.model import meta __all__ = ['iso_date_to_datetime_for_sqlite', 'make_uuid', 'UuidType', 'JsonType', 'JsonDictType'] diff --git a/ckan/model/user.py b/ckan/model/user.py index a02885a1218..b1cd0391d9d 100644 --- a/ckan/model/user.py +++ b/ckan/model/user.py @@ -12,10 +12,10 @@ from sqlalchemy import types, Column, Table, func from six import text_type -import meta -import core -import types as _types -import domain_object +from ckan.model import meta +from ckan.model import core +from ckan.model import types as _types +from ckan.model import domain_object user_table = Table('user', meta.metadata, diff --git a/ckan/model/vocabulary.py b/ckan/model/vocabulary.py index d21a2107e3b..e3266169385 100644 --- a/ckan/model/vocabulary.py +++ b/ckan/model/vocabulary.py @@ -2,10 +2,7 @@ from sqlalchemy import types, Column, Table -import meta -import types as _types -import tag -import domain_object +from ckan.model import meta, types as _types, tag, domain_object VOCABULARY_NAME_MIN_LENGTH = 2 VOCABULARY_NAME_MAX_LENGTH = 100