Skip to content

Commit

Permalink
Merge branch 'master' of github.com:ckan/ckan
Browse files Browse the repository at this point in the history
  • Loading branch information
amercader committed Feb 22, 2018
2 parents 9c7bcb6 + 189b543 commit a97af74
Show file tree
Hide file tree
Showing 23 changed files with 202 additions and 119 deletions.
3 changes: 2 additions & 1 deletion ckan/controllers/group.py
Expand Up @@ -5,6 +5,7 @@
from urllib import urlencode

from pylons.i18n import get_lang
from six import string_types

import ckan.lib.base as base
import ckan.lib.helpers as h
Expand Down Expand Up @@ -268,7 +269,7 @@ def search_url(params):
controller = lookup_group_controller(group_type)
action = 'bulk_process' if c.action == 'bulk_process' else 'read'
url = h.url_for(controller=controller, action=action, id=id)
params = [(k, v.encode('utf-8') if isinstance(v, basestring)
params = [(k, v.encode('utf-8') if isinstance(v, string_types)
else str(v)) for k, v in params]
return url + u'?' + urlencode(params)

Expand Down
3 changes: 2 additions & 1 deletion ckan/controllers/package.py
Expand Up @@ -9,6 +9,7 @@
from ckan.common import config
from paste.deploy.converters import asbool
import paste.fileapp
from six import string_types

import ckan.logic as logic
import ckan.lib.base as base
Expand Down Expand Up @@ -45,7 +46,7 @@


def _encode_params(params):
return [(k, v.encode('utf-8') if isinstance(v, basestring) else str(v))
return [(k, v.encode('utf-8') if isinstance(v, string_types) else str(v))
for k, v in params]


Expand Down
3 changes: 2 additions & 1 deletion ckan/lib/dictization/model_save.py
Expand Up @@ -5,6 +5,7 @@
import logging

from sqlalchemy.orm import class_mapper
from six import string_types

import ckan.lib.dictization as d
import ckan.lib.helpers as h
Expand Down Expand Up @@ -460,7 +461,7 @@ def package_api_to_dict(api1_dict, context):
for key, value in api1_dict.iteritems():
new_value = value
if key == 'tags':
if isinstance(value, basestring):
if isinstance(value, string_types):
new_value = [{"name": item} for item in value.split()]
else:
new_value = [{"name": item} for item in value]
Expand Down
3 changes: 2 additions & 1 deletion ckan/lib/extract.py
Expand Up @@ -3,6 +3,7 @@
import re
from jinja2.ext import babel_extract as extract_jinja2
import lib.jinja_extensions
from six import string_types

jinja_extensions = '''
jinja2.ext.do, jinja2.ext.with_,
Expand All @@ -24,7 +25,7 @@ def jinja2_cleaner(fileobj, *args, **kw):

for lineno, func, message, finder in raw_extract:

if isinstance(message, basestring):
if isinstance(message, string_types):
message = lib.jinja_extensions.regularise_html(message)
elif message is not None:
message = (lib.jinja_extensions.regularise_html(message[0])
Expand Down
15 changes: 8 additions & 7 deletions ckan/lib/helpers.py
Expand Up @@ -35,6 +35,7 @@
from flask import url_for as _flask_default_url_for
from werkzeug.routing import BuildError as FlaskRouteBuildError
import i18n
from six import string_types

import ckan.exceptions
import ckan.model as model
Expand Down Expand Up @@ -111,7 +112,7 @@ def _datestamp_to_datetime(datetime_):
:rtype: datetime
'''
if isinstance(datetime_, basestring):
if isinstance(datetime_, string_types):
try:
datetime_ = date_str_to_datetime(datetime_)
except TypeError:
Expand Down Expand Up @@ -171,7 +172,7 @@ def redirect_to(*args, **kw):
_url = ''
skip_url_parsing = False
parse_url = kw.pop('parse_url', False)
if uargs and len(uargs) is 1 and isinstance(uargs[0], basestring) \
if uargs and len(uargs) is 1 and isinstance(uargs[0], string_types) \
and (uargs[0].startswith('/') or is_url(uargs[0])) \
and parse_url is False:
skip_url_parsing = True
Expand Down Expand Up @@ -358,7 +359,7 @@ def _url_for_flask(*args, **kw):
# The API routes used to require a slash on the version number, make sure
# we remove it
if (args and args[0].startswith('api.') and
isinstance(kw.get('ver'), basestring) and
isinstance(kw.get('ver'), string_types) and
kw['ver'].startswith('/')):
kw['ver'] = kw['ver'].replace('/', '')

Expand Down Expand Up @@ -1051,7 +1052,7 @@ def get_param_int(name, default=10):
def _url_with_params(url, params):
if not params:
return url
params = [(k, v.encode('utf-8') if isinstance(v, basestring) else str(v))
params = [(k, v.encode('utf-8') if isinstance(v, string_types) else str(v))
for k, v in params]
return url + u'?' + urlencode(params)

Expand Down Expand Up @@ -1802,7 +1803,7 @@ def remove_url_param(key, value=None, replace=None, controller=None,
instead.
'''
if isinstance(key, basestring):
if isinstance(key, string_types):
keys = [key]
else:
keys = key
Expand Down Expand Up @@ -2137,7 +2138,7 @@ def format_resource_items(items):
# Sometimes values that can't be converted to ints can sneak
# into the db. In this case, just leave them as they are.
pass
elif isinstance(value, basestring):
elif isinstance(value, string_types):
# check if strings are actually datetime/number etc
if re.search(reg_ex_datetime, value):
datetime_ = date_str_to_datetime(value)
Expand Down Expand Up @@ -2534,7 +2535,7 @@ def get_translated(data_dict, field):
return data_dict[field + u'_translated'][language]
except KeyError:
val = data_dict.get(field, '')
return _(val) if val and isinstance(val, basestring) else val
return _(val) if val and isinstance(val, string_types) else val


@core_helper
Expand Down
4 changes: 3 additions & 1 deletion ckan/lib/search/common.py
Expand Up @@ -5,6 +5,8 @@
import re
import pysolr
import simplejson
from six import string_types

log = logging.getLogger(__name__)


Expand Down Expand Up @@ -72,7 +74,7 @@ def make_connection(decode_dates=True):

def solr_datetime_decoder(d):
for k, v in d.items():
if isinstance(v, basestring):
if isinstance(v, string_types):
possible_datetime = re.search(pysolr.DATETIME_REGEX, v)
if possible_datetime:
date_values = possible_datetime.groupdict()
Expand Down
8 changes: 4 additions & 4 deletions ckan/lib/search/query.py
Expand Up @@ -49,7 +49,7 @@ def convert_legacy_parameters_to_solr(legacy_params):
non_solr_params = set(legacy_params.keys()) - VALID_SOLR_PARAMETERS
for search_key in non_solr_params:
value_obj = legacy_params[search_key]
value = value_obj.replace('+', ' ') if isinstance(value_obj, basestring) else value_obj
value = value_obj.replace('+', ' ') if isinstance(value_obj, six.string_types) else value_obj
if search_key == 'all_fields':
if value:
solr_params['fl'] = '*'
Expand All @@ -62,7 +62,7 @@ def convert_legacy_parameters_to_solr(legacy_params):
elif search_key == 'tags':
if isinstance(value_obj, list):
tag_list = value_obj
elif isinstance(value_obj, basestring):
elif isinstance(value_obj, six.string_types):
tag_list = [value_obj]
else:
raise SearchQueryError('Was expecting either a string or JSON list for the tags parameter: %r' % value)
Expand Down Expand Up @@ -173,7 +173,7 @@ def run(self, query=None, fields=None, options=None, **kwargs):
else:
options.update(kwargs)

if isinstance(query, basestring):
if isinstance(query, six.string_types):
query = [query]

query = query[:] # don't alter caller's query list.
Expand Down Expand Up @@ -220,7 +220,7 @@ def run(self, fields={}, options=None, **kwargs):
# action.
query = []
for field, terms in fields.items():
if isinstance(terms, basestring):
if isinstance(terms, six.string_types):
terms = terms.split()
for term in terms:
query.append(':'.join([field, term]))
Expand Down
5 changes: 3 additions & 2 deletions ckan/logic/__init__.py
Expand Up @@ -7,6 +7,7 @@
from collections import defaultdict

import formencode.validators
from six import string_types

import ckan.model as model
import ckan.authz as authz
Expand Down Expand Up @@ -175,7 +176,7 @@ def clean_dict(data_dict):
if not isinstance(value, list):
continue
for inner_dict in value[:]:
if isinstance(inner_dict, basestring):
if isinstance(inner_dict, string_types):
break
if not any(inner_dict.values()):
value.remove(inner_dict)
Expand Down Expand Up @@ -516,7 +517,7 @@ def get_or_bust(data_dict, keys):
not in the given dictionary
'''
if isinstance(keys, basestring):
if isinstance(keys, string_types):
keys = [keys]

import ckan.logic.schema as schema
Expand Down
13 changes: 7 additions & 6 deletions ckan/logic/action/get.py
Expand Up @@ -11,6 +11,7 @@
from ckan.common import config
import sqlalchemy
from paste.deploy.converters import asbool
from six import string_types

import ckan.lib.dictization
import ckan.logic as logic
Expand Down Expand Up @@ -2109,7 +2110,7 @@ def resource_search(context, data_dict):
{'fields': _('Do not specify if using "query" parameter')})

elif query is not None:
if isinstance(query, basestring):
if isinstance(query, string_types):
query = [query]
try:
fields = dict(pair.split(":", 1) for pair in query)
Expand All @@ -2125,7 +2126,7 @@ def resource_search(context, data_dict):
# So maintain that behaviour
split_terms = {}
for field, terms in fields.items():
if isinstance(terms, basestring):
if isinstance(terms, string_types):
terms = terms.split()
split_terms[field] = terms
fields = split_terms
Expand All @@ -2143,7 +2144,7 @@ def resource_search(context, data_dict):
resource_fields = model.Resource.get_columns()
for field, terms in fields.items():

if isinstance(terms, basestring):
if isinstance(terms, string_types):
terms = [terms]

if field not in resource_fields:
Expand Down Expand Up @@ -2215,7 +2216,7 @@ def _tag_search(context, data_dict):
model = context['model']

terms = data_dict.get('query') or data_dict.get('q') or []
if isinstance(terms, basestring):
if isinstance(terms, string_types):
terms = [terms]
terms = [t.strip() for t in terms if t.strip()]

Expand Down Expand Up @@ -2402,7 +2403,7 @@ def term_translation_show(context, data_dict):
# This action accepts `terms` as either a list of strings, or a single
# string.
terms = _get_or_bust(data_dict, 'terms')
if isinstance(terms, basestring):
if isinstance(terms, string_types):
terms = [terms]
if terms:
q = q.where(trans_table.c.term.in_(terms))
Expand All @@ -2411,7 +2412,7 @@ def term_translation_show(context, data_dict):
# string.
if 'lang_codes' in data_dict:
lang_codes = _get_or_bust(data_dict, 'lang_codes')
if isinstance(lang_codes, basestring):
if isinstance(lang_codes, string_types):
lang_codes = [lang_codes]
q = q.where(trans_table.c.lang_code.in_(lang_codes))

Expand Down
10 changes: 6 additions & 4 deletions ckan/logic/converters.py
Expand Up @@ -2,6 +2,8 @@

import json

from six import string_types

import ckan.model as model
import ckan.lib.navl.dictization_functions as df
import ckan.logic.validators as validators
Expand Down Expand Up @@ -60,7 +62,7 @@ def callable(key, data, errors, context):
new_tags = data.get(key)
if not new_tags:
return
if isinstance(new_tags, basestring):
if isinstance(new_tags, string_types):
new_tags = [new_tags]

# get current number of tags
Expand Down Expand Up @@ -173,7 +175,7 @@ def convert_group_name_or_id_to_id(group_name_or_id, context):


def convert_to_json_if_string(value, context):
if isinstance(value, basestring):
if isinstance(value, string_types):
try:
return json.loads(value)
except ValueError:
Expand All @@ -183,13 +185,13 @@ def convert_to_json_if_string(value, context):


def convert_to_list_if_string(value, context=None):
if isinstance(value, basestring):
if isinstance(value, string_types):
return [value]
else:
return value


def remove_whitespace(value, context):
if isinstance(value, basestring):
if isinstance(value, string_types):
return value.strip()
return value
5 changes: 3 additions & 2 deletions ckan/model/types.py
Expand Up @@ -7,6 +7,7 @@
import simplejson as json

from sqlalchemy import types
from six import string_types

import meta

Expand Down Expand Up @@ -74,7 +75,7 @@ def process_bind_param(self, value, engine):
if value is None or value == {}: # ensure we stores nulls in db not json "null"
return None
else:
if isinstance(value, basestring):
if isinstance(value, string_types):
return unicode(value)
else:
return unicode(json.dumps(value, ensure_ascii=False))
Expand All @@ -89,7 +90,7 @@ def iso_date_to_datetime_for_sqlite(datetime_or_iso_date_if_sqlite):
# to call this to convert it into a datetime type. When running on
# postgres then you have a datetime anyway, so this function doesn't
# do anything.
if meta.engine_is_sqlite() and isinstance(datetime_or_iso_date_if_sqlite, basestring):
if meta.engine_is_sqlite() and isinstance(datetime_or_iso_date_if_sqlite, string_types):
return datetime.datetime.strptime(datetime_or_iso_date_if_sqlite,
'%Y-%m-%d %H:%M:%S.%f')
else:
Expand Down
3 changes: 2 additions & 1 deletion ckan/plugins/core.py
Expand Up @@ -12,6 +12,7 @@
from pyutilib.component.core import SingletonPlugin as _pca_SingletonPlugin
from pyutilib.component.core import Plugin as _pca_Plugin
from paste.deploy.converters import asbool
from six import string_types

import interfaces

Expand Down Expand Up @@ -244,7 +245,7 @@ def _get_service(plugin_name):
:return: the service object
'''

if isinstance(plugin_name, basestring):
if isinstance(plugin_name, string_types):
for group in GROUPS:
iterator = iter_entry_points(
group=group,
Expand Down

0 comments on commit a97af74

Please sign in to comment.