From 72ca7e975335114d986caa2e7106075c69d44f67 Mon Sep 17 00:00:00 2001 From: leela Date: Thu, 6 May 2021 07:32:59 +0530 Subject: [PATCH] refactor: remove six dependency --- frappe/__init__.py | 23 +++++++++---------- frappe/core/doctype/data_import/importer.py | 6 ++--- .../user_permission/user_permission.py | 2 +- frappe/database/database.py | 2 +- frappe/database/postgres/database.py | 8 +++---- .../notification_log/notification_log.py | 2 +- frappe/model/db_query.py | 2 +- frappe/model/meta.py | 2 +- frappe/utils/data.py | 2 +- frappe/utils/jinja_globals.py | 2 +- 10 files changed, 25 insertions(+), 26 deletions(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index 10bf3eaddf..54dc9edc8e 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -11,7 +11,6 @@ be used to build database driven apps. Read the documentation: https://frappeframework.com/docs """ -from six import iteritems, binary_type, text_type, string_types from werkzeug.local import Local, release_local import os, sys, importlib, inspect, json, warnings import typing @@ -91,14 +90,14 @@ def _(msg, lang=None, context=None): def as_unicode(text, encoding='utf-8'): '''Convert to unicode if required''' - if isinstance(text, text_type): + if isinstance(text, str): return text elif text==None: return '' - elif isinstance(text, binary_type): - return text_type(text, encoding) + elif isinstance(text, bytes): + return str(text, encoding) else: - return text_type(text) + return str(text) def get_lang_dict(fortype, name=None): """Returns the translated language dict for the given type and name. @@ -591,7 +590,7 @@ def is_whitelisted(method): # strictly sanitize form_dict # escapes html characters like <> except for predefined tags like a, b, ul etc. for key, value in form_dict.items(): - if isinstance(value, string_types): + if isinstance(value, str): form_dict[key] = sanitize_html(value) def read_only(): @@ -715,7 +714,7 @@ def has_website_permission(doc=None, ptype='read', user=None, verbose=False, doc user = session.user if doc: - if isinstance(doc, string_types): + if isinstance(doc, str): doc = get_doc(doctype, doc) doctype = doc.doctype @@ -784,7 +783,7 @@ def set_value(doctype, docname, fieldname, value=None): return frappe.client.set_value(doctype, docname, fieldname, value) def get_cached_doc(*args, **kwargs): - if args and len(args) > 1 and isinstance(args[1], text_type): + if args and len(args) > 1 and isinstance(args[1], str): key = get_document_cache_key(args[0], args[1]) # local cache doc = local.document_cache.get(key) @@ -815,7 +814,7 @@ def clear_document_cache(doctype, name): def get_cached_value(doctype, name, fieldname, as_dict=False): doc = get_cached_doc(doctype, name) - if isinstance(fieldname, string_types): + if isinstance(fieldname, str): if as_dict: throw('Cannot make dict for single fieldname') return doc.get(fieldname) @@ -1021,7 +1020,7 @@ def get_doc_hooks(): if not hasattr(local, 'doc_events_hooks'): hooks = get_hooks('doc_events', {}) out = {} - for key, value in iteritems(hooks): + for key, value in hooks.items(): if isinstance(key, tuple): for doctype in key: append_hook(out, doctype, value) @@ -1138,7 +1137,7 @@ def get_file_json(path): def read_file(path, raise_not_found=False): """Open a file and return its content as Unicode.""" - if isinstance(path, text_type): + if isinstance(path, str): path = path.encode("utf-8") if os.path.exists(path): @@ -1161,7 +1160,7 @@ def get_attr(method_string): def call(fn, *args, **kwargs): """Call a function and match arguments.""" - if isinstance(fn, string_types): + if isinstance(fn, str): fn = get_attr(fn) newargs = get_newargs(fn, kwargs) diff --git a/frappe/core/doctype/data_import/importer.py b/frappe/core/doctype/data_import/importer.py index 388d9389f2..720fe1dda7 100644 --- a/frappe/core/doctype/data_import/importer.py +++ b/frappe/core/doctype/data_import/importer.py @@ -233,7 +233,7 @@ class Importer: return updated_doc else: # throw if no changes - frappe.throw("No changes to update") + frappe.throw(_("No changes to update")) def get_eta(self, current, total, processing_time): self.last_eta = getattr(self, "last_eta", 0) @@ -319,7 +319,7 @@ class ImportFile: self.warnings = [] self.file_doc = self.file_path = self.google_sheets_url = None - if isinstance(file, frappe.string_types): + if isinstance(file, str): if frappe.db.exists("File", {"file_url": file}): self.file_doc = frappe.get_doc("File", {"file_url": file}) elif "docs.google.com/spreadsheets" in file: @@ -626,7 +626,7 @@ class Row: return elif df.fieldtype in ["Date", "Datetime"]: value = self.get_date(value, col) - if isinstance(value, frappe.string_types): + if isinstance(value, str): # value was not parsed as datetime object self.warnings.append( { diff --git a/frappe/core/doctype/user_permission/user_permission.py b/frappe/core/doctype/user_permission/user_permission.py index fbc788f6bf..fec5019ca9 100644 --- a/frappe/core/doctype/user_permission/user_permission.py +++ b/frappe/core/doctype/user_permission/user_permission.py @@ -191,7 +191,7 @@ def clear_user_permissions(user, for_doctype): def add_user_permissions(data): ''' Add and update the user permissions ''' frappe.only_for('System Manager') - if isinstance(data, frappe.string_types): + if isinstance(data, str): data = json.loads(data) data = frappe._dict(data) diff --git a/frappe/database/database.py b/frappe/database/database.py index 58e5c8a46e..c9c1ec3909 100644 --- a/frappe/database/database.py +++ b/frappe/database/database.py @@ -858,7 +858,7 @@ class Database(object): if not datetime: return '0001-01-01 00:00:00.000000' - if isinstance(datetime, frappe.string_types): + if isinstance(datetime, str): if ':' not in datetime: datetime = datetime + ' 00:00:00.000000' else: diff --git a/frappe/database/postgres/database.py b/frappe/database/postgres/database.py index f40dfad901..6ac2767a71 100644 --- a/frappe/database/postgres/database.py +++ b/frappe/database/postgres/database.py @@ -11,9 +11,9 @@ from frappe.database.postgres.schema import PostgresTable # cast decimals as floats DEC2FLOAT = psycopg2.extensions.new_type( - psycopg2.extensions.DECIMAL.values, - 'DEC2FLOAT', - lambda value, curs: float(value) if value is not None else None) + psycopg2.extensions.DECIMAL.values, + 'DEC2FLOAT', + lambda value, curs: float(value) if value is not None else None) psycopg2.extensions.register_type(DEC2FLOAT) @@ -111,7 +111,7 @@ class PostgresDatabase(Database): if not date: return '0001-01-01' - if not isinstance(date, frappe.string_types): + if not isinstance(date, str): date = date.strftime('%Y-%m-%d') return date diff --git a/frappe/desk/doctype/notification_log/notification_log.py b/frappe/desk/doctype/notification_log/notification_log.py index 20551559fd..25af92f532 100644 --- a/frappe/desk/doctype/notification_log/notification_log.py +++ b/frappe/desk/doctype/notification_log/notification_log.py @@ -46,7 +46,7 @@ def enqueue_create_notification(users, doc): doc = frappe._dict(doc) - if isinstance(users, frappe.string_types): + if isinstance(users, str): users = [user.strip() for user in users.split(',') if user.strip()] users = list(set(users)) diff --git a/frappe/model/db_query.py b/frappe/model/db_query.py index 1c863a1577..e0c3406c46 100644 --- a/frappe/model/db_query.py +++ b/frappe/model/db_query.py @@ -465,7 +465,7 @@ class DatabaseQuery(object): elif f.operator.lower() in ('in', 'not in'): values = f.value or '' - if isinstance(values, frappe.string_types): + if isinstance(values, str): values = values.split(",") fallback = "''" diff --git a/frappe/model/meta.py b/frappe/model/meta.py index 7f58c28397..66e8b08d92 100644 --- a/frappe/model/meta.py +++ b/frappe/model/meta.py @@ -118,7 +118,7 @@ class Meta(Document): # non standard list object, skip continue - if (isinstance(value, (frappe.text_type, int, float, datetime, list, tuple)) + if (isinstance(value, (str, int, float, datetime, list, tuple)) or (not no_nulls and value is None)): out[key] = value diff --git a/frappe/utils/data.py b/frappe/utils/data.py index 3ffa8dc874..1e09be7ad0 100644 --- a/frappe/utils/data.py +++ b/frappe/utils/data.py @@ -871,7 +871,7 @@ def in_words(integer, in_million=True): return ret.replace('-', ' ') def is_html(text): - if not isinstance(text, frappe.string_types): + if not isinstance(text, str): return False return re.search('<[^>]+>', text) diff --git a/frappe/utils/jinja_globals.py b/frappe/utils/jinja_globals.py index e63926a109..d8c5cb79f1 100644 --- a/frappe/utils/jinja_globals.py +++ b/frappe/utils/jinja_globals.py @@ -10,7 +10,7 @@ def resolve_class(classes): if classes is None: return "" - if isinstance(classes, frappe.string_types): + if isinstance(classes, str): return classes if isinstance(classes, (list, tuple)):