chore: Drop dead and deprecated code
* Remove six for PY2 compatability since our dependencies are not, PY2 is legacy. * Removed usages of utils from future/past libraries since they are deprecated. This includes 'from __future__ ...' and 'from past...' statements. * Removed compatibility imports for PY2, switched from six imports to standard library imports. * Removed utils code blocks that handle operations depending on PY2/3 versions. * Removed 'from __future__ ...' lines from templates/code generators * Used PY3 syntaxes in place of PY2 compatible blocks. eg: metaclass
This commit is contained in:
parent
e8cf96d1d3
commit
e407b78506
865 changed files with 527 additions and 1718 deletions
|
|
@ -1,6 +1,5 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
import base64
|
import base64
|
||||||
import binascii
|
import binascii
|
||||||
import json
|
import json
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
from six import iteritems
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from werkzeug.local import LocalManager
|
from werkzeug.local import LocalManager
|
||||||
|
|
@ -191,8 +189,9 @@ def make_form_dict(request):
|
||||||
frappe.throw(_("Invalid request arguments"))
|
frappe.throw(_("Invalid request arguments"))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
frappe.local.form_dict = frappe._dict({ k:v[0] if isinstance(v, (list, tuple)) else v \
|
frappe.local.form_dict = frappe._dict({
|
||||||
for k, v in iteritems(args) })
|
k: v[0] if isinstance(v, (list, tuple)) else v for k, v in args.items()
|
||||||
|
})
|
||||||
except IndexError:
|
except IndexError:
|
||||||
frappe.local.form_dict = frappe._dict(args)
|
frappe.local.form_dict = frappe._dict(args)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
from frappe import _
|
from frappe import _
|
||||||
import frappe
|
import frappe
|
||||||
import frappe.database
|
import frappe.database
|
||||||
|
|
@ -19,8 +16,7 @@ from frappe.core.doctype.activity_log.activity_log import add_authentication_log
|
||||||
from frappe.twofactor import (should_run_2fa, authenticate_for_2factor,
|
from frappe.twofactor import (should_run_2fa, authenticate_for_2factor,
|
||||||
confirm_otp_token, get_cached_user_pass)
|
confirm_otp_token, get_cached_user_pass)
|
||||||
from frappe.website.utils import get_home_page
|
from frappe.website.utils import get_home_page
|
||||||
|
from urllib.parse import quote
|
||||||
from six.moves.urllib.parse import quote
|
|
||||||
|
|
||||||
|
|
||||||
class HTTPRequest:
|
class HTTPRequest:
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
# Copyright (c) 2019, Frappe Technologies and contributors
|
# Copyright (c) 2019, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe.desk.form import assign_to
|
from frappe.desk.form import assign_to
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2019, Frappe Technologies and Contributors
|
# Copyright (c) 2019, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
from frappe.utils import random_string
|
from frappe.utils import random_string
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2019, Frappe Technologies and contributors
|
# Copyright (c) 2019, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
# import frappe
|
# import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2019, Frappe Technologies and contributors
|
# Copyright (c) 2019, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
# import frappe
|
# import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
|
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2018, Frappe Technologies and Contributors
|
# Copyright (c) 2018, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2020, Frappe Technologies and contributors
|
# Copyright (c) 2020, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
# import frappe
|
# import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
# Copyright (c) 2019, Frappe Technologies and contributors
|
# Copyright (c) 2019, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2019, Frappe Technologies and Contributors
|
# Copyright (c) 2019, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
#import frappe
|
#import frappe
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
# Copyright (c) 2019, Frappe Technologies and contributors
|
# Copyright (c) 2019, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
import frappe.cache_manager
|
import frappe.cache_manager
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2019, Frappe Technologies and Contributors
|
# Copyright (c) 2019, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import frappe.cache_manager
|
import frappe.cache_manager
|
||||||
import unittest
|
import unittest
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,5 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from six import iteritems, text_type
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
bootstrap client session
|
bootstrap client session
|
||||||
"""
|
"""
|
||||||
|
|
@ -75,7 +70,7 @@ def get_bootinfo():
|
||||||
frappe.get_attr(method)(bootinfo)
|
frappe.get_attr(method)(bootinfo)
|
||||||
|
|
||||||
if bootinfo.lang:
|
if bootinfo.lang:
|
||||||
bootinfo.lang = text_type(bootinfo.lang)
|
bootinfo.lang = str(bootinfo.lang)
|
||||||
bootinfo.versions = {k: v['version'] for k, v in get_versions().items()}
|
bootinfo.versions = {k: v['version'] for k, v in get_versions().items()}
|
||||||
|
|
||||||
bootinfo.error_report_email = frappe.conf.error_report_email
|
bootinfo.error_report_email = frappe.conf.error_report_email
|
||||||
|
|
@ -220,7 +215,7 @@ def load_translations(bootinfo):
|
||||||
messages[name] = frappe._(name)
|
messages[name] = frappe._(name)
|
||||||
|
|
||||||
# only untranslated
|
# only untranslated
|
||||||
messages = {k:v for k, v in iteritems(messages) if k!=v}
|
messages = {k: v for k, v in messages.items() if k!=v}
|
||||||
|
|
||||||
bootinfo["__messages"] = messages
|
bootinfo["__messages"] = messages
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import json
|
import json
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
|
from io import StringIO
|
||||||
from tempfile import mkdtemp, mktemp
|
from tempfile import mkdtemp, mktemp
|
||||||
from distutils.spawn import find_executable
|
from distutils.spawn import find_executable
|
||||||
|
|
||||||
|
|
@ -402,8 +402,6 @@ def get_build_maps():
|
||||||
|
|
||||||
|
|
||||||
def pack(target, sources, no_compress, verbose):
|
def pack(target, sources, no_compress, verbose):
|
||||||
from six import StringIO
|
|
||||||
|
|
||||||
outtype, outtxt = target.split(".")[-1], ""
|
outtype, outtxt = target.split(".")[-1], ""
|
||||||
jsm = JavascriptMinify()
|
jsm = JavascriptMinify()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe, json
|
import frappe, json
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe.desk.notifications import (delete_notification_count_for,
|
from frappe.desk.notifications import (delete_notification_count_for,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
# imports - standard imports
|
# imports - standard imports
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
# imports - module imports
|
# imports - module imports
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
# imports - module imports
|
# imports - module imports
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
# imports - module imports
|
# imports - module imports
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
import frappe
|
import frappe
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2018, Frappe Technologies and contributors
|
# Copyright (c) 2018, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
# imports - module imports
|
# imports - module imports
|
||||||
from frappe.chat.util.util import (
|
from frappe.chat.util.util import (
|
||||||
get_user_doc,
|
get_user_doc,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
# imports - standard imports
|
# imports - standard imports
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
@ -9,7 +7,6 @@ from frappe.chat.util import (
|
||||||
safe_json_loads
|
safe_json_loads
|
||||||
)
|
)
|
||||||
import frappe
|
import frappe
|
||||||
import six
|
|
||||||
|
|
||||||
class TestChatUtil(unittest.TestCase):
|
class TestChatUtil(unittest.TestCase):
|
||||||
def test_safe_json_loads(self):
|
def test_safe_json_loads(self):
|
||||||
|
|
@ -20,7 +17,7 @@ class TestChatUtil(unittest.TestCase):
|
||||||
self.assertEqual(type(number), float)
|
self.assertEqual(type(number), float)
|
||||||
|
|
||||||
string = safe_json_loads("foobar")
|
string = safe_json_loads("foobar")
|
||||||
self.assertEqual(type(string), six.text_type)
|
self.assertEqual(type(string), str)
|
||||||
|
|
||||||
array = safe_json_loads('[{ "foo": "bar" }]')
|
array = safe_json_loads('[{ "foo": "bar" }]')
|
||||||
self.assertEqual(type(array), list)
|
self.assertEqual(type(array), list)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
# imports - standard imports
|
# imports - standard imports
|
||||||
import json
|
import json
|
||||||
from collections.abc import MutableMapping, MutableSequence, Sequence
|
from collections.abc import MutableMapping, MutableSequence, Sequence
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.chat.util import filter_dict, safe_json_loads
|
from frappe.chat.util import filter_dict, safe_json_loads
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
import frappe.model
|
import frappe.model
|
||||||
|
|
@ -11,7 +9,6 @@ from frappe.utils import get_safe_filters
|
||||||
from frappe.desk.reportview import validate_args
|
from frappe.desk.reportview import validate_args
|
||||||
from frappe.model.db_query import check_parent_permission
|
from frappe.model.db_query import check_parent_permission
|
||||||
|
|
||||||
from six import iteritems, string_types, integer_types
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
Handle RESTful requests that are mapped to the `/api/resource` route.
|
Handle RESTful requests that are mapped to the `/api/resource` route.
|
||||||
|
|
@ -86,7 +83,7 @@ def get_value(doctype, fieldname, filters=None, as_dict=True, debug=False, paren
|
||||||
frappe.throw(_("No permission for {0}").format(doctype), frappe.PermissionError)
|
frappe.throw(_("No permission for {0}").format(doctype), frappe.PermissionError)
|
||||||
|
|
||||||
filters = get_safe_filters(filters)
|
filters = get_safe_filters(filters)
|
||||||
if isinstance(filters, string_types):
|
if isinstance(filters, str):
|
||||||
filters = {"name": filters}
|
filters = {"name": filters}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
@ -135,7 +132,7 @@ def set_value(doctype, name, fieldname, value=None):
|
||||||
|
|
||||||
if not value:
|
if not value:
|
||||||
values = fieldname
|
values = fieldname
|
||||||
if isinstance(fieldname, string_types):
|
if isinstance(fieldname, str):
|
||||||
try:
|
try:
|
||||||
values = json.loads(fieldname)
|
values = json.loads(fieldname)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
|
@ -161,7 +158,7 @@ def insert(doc=None):
|
||||||
'''Insert a document
|
'''Insert a document
|
||||||
|
|
||||||
:param doc: JSON or dict object to be inserted'''
|
:param doc: JSON or dict object to be inserted'''
|
||||||
if isinstance(doc, string_types):
|
if isinstance(doc, str):
|
||||||
doc = json.loads(doc)
|
doc = json.loads(doc)
|
||||||
|
|
||||||
if doc.get("parent") and doc.get("parenttype"):
|
if doc.get("parent") and doc.get("parenttype"):
|
||||||
|
|
@ -179,7 +176,7 @@ def insert_many(docs=None):
|
||||||
'''Insert multiple documents
|
'''Insert multiple documents
|
||||||
|
|
||||||
:param docs: JSON or list of dict objects to be inserted in one request'''
|
:param docs: JSON or list of dict objects to be inserted in one request'''
|
||||||
if isinstance(docs, string_types):
|
if isinstance(docs, str):
|
||||||
docs = json.loads(docs)
|
docs = json.loads(docs)
|
||||||
|
|
||||||
out = []
|
out = []
|
||||||
|
|
@ -205,7 +202,7 @@ def save(doc):
|
||||||
'''Update (save) an existing document
|
'''Update (save) an existing document
|
||||||
|
|
||||||
:param doc: JSON or dict object with the properties of the document to be updated'''
|
:param doc: JSON or dict object with the properties of the document to be updated'''
|
||||||
if isinstance(doc, string_types):
|
if isinstance(doc, str):
|
||||||
doc = json.loads(doc)
|
doc = json.loads(doc)
|
||||||
|
|
||||||
doc = frappe.get_doc(doc)
|
doc = frappe.get_doc(doc)
|
||||||
|
|
@ -228,7 +225,7 @@ def submit(doc):
|
||||||
'''Submit a document
|
'''Submit a document
|
||||||
|
|
||||||
:param doc: JSON or dict object to be submitted remotely'''
|
:param doc: JSON or dict object to be submitted remotely'''
|
||||||
if isinstance(doc, string_types):
|
if isinstance(doc, str):
|
||||||
doc = json.loads(doc)
|
doc = json.loads(doc)
|
||||||
|
|
||||||
doc = frappe.get_doc(doc)
|
doc = frappe.get_doc(doc)
|
||||||
|
|
@ -266,7 +263,7 @@ def make_width_property_setter(doc):
|
||||||
'''Set width Property Setter
|
'''Set width Property Setter
|
||||||
|
|
||||||
:param doc: Property Setter document with `width` property'''
|
:param doc: Property Setter document with `width` property'''
|
||||||
if isinstance(doc, string_types):
|
if isinstance(doc, str):
|
||||||
doc = json.loads(doc)
|
doc = json.loads(doc)
|
||||||
if doc["doctype"]=="Property Setter" and doc["property"]=="width":
|
if doc["doctype"]=="Property Setter" and doc["property"]=="width":
|
||||||
frappe.get_doc(doc).insert(ignore_permissions = True)
|
frappe.get_doc(doc).insert(ignore_permissions = True)
|
||||||
|
|
@ -280,7 +277,7 @@ def bulk_update(docs):
|
||||||
failed_docs = []
|
failed_docs = []
|
||||||
for doc in docs:
|
for doc in docs:
|
||||||
try:
|
try:
|
||||||
ddoc = {key: val for key, val in iteritems(doc) if key not in ['doctype', 'docname']}
|
ddoc = {key: val for key, val in doc.items() if key not in ['doctype', 'docname']}
|
||||||
doctype = doc['doctype']
|
doctype = doc['doctype']
|
||||||
docname = doc['docname']
|
docname = doc['docname']
|
||||||
doc = frappe.get_doc(doctype, docname)
|
doc = frappe.get_doc(doctype, docname)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
# Copyright (c) 2015, Web Notes Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Web Notes Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals, absolute_import, print_function
|
|
||||||
import sys
|
import sys
|
||||||
import click
|
import click
|
||||||
import cProfile
|
import cProfile
|
||||||
|
|
@ -10,7 +9,7 @@ import frappe
|
||||||
import frappe.utils
|
import frappe.utils
|
||||||
import subprocess # nosec
|
import subprocess # nosec
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from six import StringIO
|
from io import StringIO
|
||||||
from os import environ
|
from os import environ
|
||||||
|
|
||||||
click.disable_unicode_literals_warning = True
|
click.disable_unicode_literals_warning = True
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
from __future__ import unicode_literals, absolute_import, print_function
|
|
||||||
import click
|
import click
|
||||||
import sys
|
import sys
|
||||||
import frappe
|
import frappe
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
from __future__ import unicode_literals, absolute_import, print_function
|
|
||||||
import click
|
import click
|
||||||
from frappe.commands import pass_context, get_site
|
from frappe.commands import pass_context, get_site
|
||||||
from frappe.exceptions import SiteNotSpecifiedError
|
from frappe.exceptions import SiteNotSpecifiedError
|
||||||
|
|
|
||||||
|
|
@ -222,7 +222,7 @@ def execute(context, method, args=None, kwargs=None, profile=False):
|
||||||
|
|
||||||
if profile:
|
if profile:
|
||||||
import pstats
|
import pstats
|
||||||
from six import StringIO
|
from io import StringIO
|
||||||
|
|
||||||
pr.disable()
|
pr.disable()
|
||||||
s = StringIO()
|
s = StringIO()
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
from __future__ import unicode_literals
|
|
||||||
import json
|
|
||||||
from six import iteritems
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
from frappe.desk.moduleview import (get_data, get_onboard_items, config_exists, get_module_link_items_from_list)
|
from frappe.desk.moduleview import (get_data, get_onboard_items, config_exists, get_module_link_items_from_list)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# License: GNU General Public License v3. See license.txt
|
# License: GNU General Public License v3. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
|
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2015, Frappe Technologies and Contributors
|
# Copyright (c) 2015, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe, unittest
|
import frappe, unittest
|
||||||
from frappe.contacts.doctype.address.address import get_address_display
|
from frappe.contacts.doctype.address.address import get_address_display
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies and contributors
|
# Copyright (c) 2015, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe.utils import cint
|
from frappe.utils import cint
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2015, Frappe Technologies and Contributors
|
# Copyright (c) 2015, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe, unittest
|
import frappe, unittest
|
||||||
|
|
||||||
class TestAddressTemplate(unittest.TestCase):
|
class TestAddressTemplate(unittest.TestCase):
|
||||||
|
|
@ -42,4 +40,4 @@ class TestAddressTemplate(unittest.TestCase):
|
||||||
"doctype": "Address Template",
|
"doctype": "Address Template",
|
||||||
"country": 'Brazil',
|
"country": 'Brazil',
|
||||||
"template": template
|
"template": template
|
||||||
}).insert()
|
}).insert()
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# License: GNU General Public License v3. See license.txt
|
# License: GNU General Public License v3. See license.txt
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.utils import cstr, has_gravatar
|
from frappe.utils import cstr, has_gravatar
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2017, Frappe Technologies and Contributors
|
# Copyright (c) 2017, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2019, Frappe Technologies and contributors
|
# Copyright (c) 2019, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
# import frappe
|
# import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2019, Frappe Technologies and contributors
|
# Copyright (c) 2019, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
# import frappe
|
# import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2017, Frappe Technologies and contributors
|
# Copyright (c) 2017, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
class Gender(Document):
|
class Gender(Document):
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2017, Frappe Technologies and Contributors
|
# Copyright (c) 2017, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
class TestGender(unittest.TestCase):
|
class TestGender(unittest.TestCase):
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2017, Frappe Technologies and contributors
|
# Copyright (c) 2017, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
class Salutation(Document):
|
class Salutation(Document):
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2017, Frappe Technologies and Contributors
|
# Copyright (c) 2017, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
class TestSalutation(unittest.TestCase):
|
class TestSalutation(unittest.TestCase):
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
|
# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
from six import iteritems
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
|
||||||
|
|
@ -58,7 +55,7 @@ def get_reference_addresses_and_contact(reference_doctype, reference_name):
|
||||||
reference_details = get_reference_details(reference_doctype, "Address", reference_list, reference_details)
|
reference_details = get_reference_details(reference_doctype, "Address", reference_list, reference_details)
|
||||||
reference_details = get_reference_details(reference_doctype, "Contact", reference_list, reference_details)
|
reference_details = get_reference_details(reference_doctype, "Contact", reference_list, reference_details)
|
||||||
|
|
||||||
for reference_name, details in iteritems(reference_details):
|
for reference_name, details in reference_details.items():
|
||||||
addresses = details.get("address", [])
|
addresses = details.get("address", [])
|
||||||
contacts = details.get("contact", [])
|
contacts = details.get("contact", [])
|
||||||
if not any([addresses, contacts]):
|
if not any([addresses, contacts]):
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
import frappe.defaults
|
import frappe.defaults
|
||||||
import unittest
|
import unittest
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,2 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,6 @@
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
# imports - standard imports
|
# imports - standard imports
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
# imports - module imports
|
# imports - module imports
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2017, Frappe Technologies and contributors
|
# Copyright (c) 2017, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
from frappe import _
|
from frappe import _
|
||||||
from frappe.utils import get_fullname, now
|
from frappe.utils import get_fullname, now
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# License: See license.txt
|
# License: See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
import frappe.permissions
|
import frappe.permissions
|
||||||
from frappe.utils import get_fullname
|
from frappe.utils import get_fullname
|
||||||
from frappe import _
|
from frappe import _
|
||||||
from frappe.core.doctype.activity_log.activity_log import add_authentication_log
|
from frappe.core.doctype.activity_log.activity_log import add_authentication_log
|
||||||
from six import string_types
|
|
||||||
|
|
||||||
def update_feed(doc, method=None):
|
def update_feed(doc, method=None):
|
||||||
if frappe.flags.in_patch or frappe.flags.in_install or frappe.flags.in_import:
|
if frappe.flags.in_patch or frappe.flags.in_install or frappe.flags.in_import:
|
||||||
|
|
@ -23,7 +21,7 @@ def update_feed(doc, method=None):
|
||||||
feed = doc.get_feed()
|
feed = doc.get_feed()
|
||||||
|
|
||||||
if feed:
|
if feed:
|
||||||
if isinstance(feed, string_types):
|
if isinstance(feed, str):
|
||||||
feed = {"subject": feed}
|
feed = {"subject": feed}
|
||||||
|
|
||||||
feed = frappe._dict(feed)
|
feed = frappe._dict(feed)
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2015, Frappe Technologies and Contributors
|
# Copyright (c) 2015, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
import time
|
import time
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2019, Frappe Technologies and contributors
|
# Copyright (c) 2019, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals, absolute_import
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
import json
|
import json
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2019, Frappe Technologies and Contributors
|
# Copyright (c) 2019, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe, json
|
import frappe, json
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals, absolute_import
|
|
||||||
from collections import Counter
|
from collections import Counter
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
|
@ -13,7 +12,7 @@ from frappe.utils.bot import BotReply
|
||||||
from frappe.utils import parse_addr
|
from frappe.utils import parse_addr
|
||||||
from frappe.core.doctype.comment.comment import update_comment_in_doc
|
from frappe.core.doctype.comment.comment import update_comment_in_doc
|
||||||
from email.utils import parseaddr
|
from email.utils import parseaddr
|
||||||
from six.moves.urllib.parse import unquote
|
from urllib.parse import unquote
|
||||||
from frappe.utils.user import is_system_user
|
from frappe.utils.user import is_system_user
|
||||||
from frappe.contacts.doctype.contact.contact import get_contact_name
|
from frappe.contacts.doctype.contact.contact import get_contact_name
|
||||||
from frappe.automation.doctype.assignment_rule.assignment_rule import apply as apply_assignment_rule
|
from frappe.automation.doctype.assignment_rule.assignment_rule import apply as apply_assignment_rule
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals, absolute_import
|
|
||||||
from six.moves import range
|
|
||||||
from six import string_types
|
|
||||||
import frappe
|
import frappe
|
||||||
import json
|
import json
|
||||||
from email.utils import formataddr
|
from email.utils import formataddr
|
||||||
|
|
@ -77,7 +74,7 @@ def make(doctype=None, name=None, content=None, subject=None, sent_or_received =
|
||||||
|
|
||||||
comm.save(ignore_permissions=True)
|
comm.save(ignore_permissions=True)
|
||||||
|
|
||||||
if isinstance(attachments, string_types):
|
if isinstance(attachments, str):
|
||||||
attachments = json.loads(attachments)
|
attachments = json.loads(attachments)
|
||||||
|
|
||||||
# if not committed, delayed task doesn't find the communication
|
# if not committed, delayed task doesn't find the communication
|
||||||
|
|
@ -249,11 +246,11 @@ def prepare_to_notify(doc, print_html=None, print_format=None, attachments=None)
|
||||||
"name":doc.reference_name, "print_format":print_format, "html":print_html})
|
"name":doc.reference_name, "print_format":print_format, "html":print_html})
|
||||||
|
|
||||||
if attachments:
|
if attachments:
|
||||||
if isinstance(attachments, string_types):
|
if isinstance(attachments, str):
|
||||||
attachments = json.loads(attachments)
|
attachments = json.loads(attachments)
|
||||||
|
|
||||||
for a in attachments:
|
for a in attachments:
|
||||||
if isinstance(a, string_types):
|
if isinstance(a, str):
|
||||||
# is it a filename?
|
# is it a filename?
|
||||||
try:
|
try:
|
||||||
# check for both filename and file id
|
# check for both filename and file id
|
||||||
|
|
@ -355,7 +352,7 @@ def add_attachments(name, attachments):
|
||||||
'''Add attachments to the given Communication'''
|
'''Add attachments to the given Communication'''
|
||||||
# loop through attachments
|
# loop through attachments
|
||||||
for a in attachments:
|
for a in attachments:
|
||||||
if isinstance(a, string_types):
|
if isinstance(a, str):
|
||||||
attach = frappe.db.get_value("File", {"name":a},
|
attach = frappe.db.get_value("File", {"name":a},
|
||||||
["file_name", "file_url", "is_private"], as_dict=1)
|
["file_name", "file_url", "is_private"], as_dict=1)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
from six.moves.urllib.parse import quote
|
from urllib.parse import quote
|
||||||
test_records = frappe.get_test_records('Communication')
|
test_records = frappe.get_test_records('Communication')
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2019, Frappe Technologies and contributors
|
# Copyright (c) 2019, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies and contributors
|
# Copyright (c) 2015, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2015, Frappe Technologies and Contributors
|
# Copyright (c) 2015, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies and contributors
|
# Copyright (c) 2015, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2015, Frappe Technologies and Contributors
|
# Copyright (c) 2015, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
class DataExport(Document):
|
class DataExport(Document):
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
import frappe.permissions
|
import frappe.permissions
|
||||||
|
|
@ -10,7 +8,6 @@ import re, csv, os
|
||||||
from frappe.utils.csvutils import UnicodeWriter
|
from frappe.utils.csvutils import UnicodeWriter
|
||||||
from frappe.utils import cstr, formatdate, format_datetime, parse_json, cint, format_duration
|
from frappe.utils import cstr, formatdate, format_datetime, parse_json, cint, format_duration
|
||||||
from frappe.core.doctype.data_import_legacy.importer import get_data_keys
|
from frappe.core.doctype.data_import_legacy.importer import get_data_keys
|
||||||
from six import string_types
|
|
||||||
from frappe.core.doctype.access_log.access_log import make_access_log
|
from frappe.core.doctype.access_log.access_log import make_access_log
|
||||||
|
|
||||||
reflags = {
|
reflags = {
|
||||||
|
|
@ -57,7 +54,7 @@ class DataExporter:
|
||||||
|
|
||||||
self.docs_to_export = {}
|
self.docs_to_export = {}
|
||||||
if self.doctype:
|
if self.doctype:
|
||||||
if isinstance(self.doctype, string_types):
|
if isinstance(self.doctype, str):
|
||||||
self.doctype = [self.doctype]
|
self.doctype = [self.doctype]
|
||||||
|
|
||||||
if len(self.doctype) > 1:
|
if len(self.doctype) > 1:
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import os
|
import os
|
||||||
import io
|
import io
|
||||||
import frappe
|
import frappe
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2020, Frappe Technologies and Contributors
|
# Copyright (c) 2020, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
# import frappe
|
# import frappe
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2019, Frappe Technologies and Contributors
|
# Copyright (c) 2019, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.core.doctype.data_import.exporter import Exporter
|
from frappe.core.doctype.data_import.exporter import Exporter
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2019, Frappe Technologies and Contributors
|
# Copyright (c) 2019, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.core.doctype.data_import.importer import Importer
|
from frappe.core.doctype.data_import.importer import Importer
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals, print_function
|
|
||||||
|
|
||||||
from six.moves import range
|
|
||||||
import requests
|
import requests
|
||||||
import frappe, json
|
import frappe, json
|
||||||
import frappe.permissions
|
import frappe.permissions
|
||||||
|
|
@ -16,7 +13,6 @@ from frappe.utils.csvutils import getlink
|
||||||
from frappe.utils.dateutils import parse_date
|
from frappe.utils.dateutils import parse_date
|
||||||
|
|
||||||
from frappe.utils import cint, cstr, flt, getdate, get_datetime, get_url, get_absolute_url, duration_to_seconds
|
from frappe.utils import cint, cstr, flt, getdate, get_datetime, get_url, get_absolute_url, duration_to_seconds
|
||||||
from six import string_types
|
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
|
|
@ -42,7 +38,7 @@ def upload(rows = None, submit_after_import=None, ignore_encoding_errors=False,
|
||||||
frappe.cache().hdel("lang", user)
|
frappe.cache().hdel("lang", user)
|
||||||
frappe.set_user_lang(user)
|
frappe.set_user_lang(user)
|
||||||
|
|
||||||
if data_import_doc and isinstance(data_import_doc, string_types):
|
if data_import_doc and isinstance(data_import_doc, str):
|
||||||
data_import_doc = frappe.get_doc("Data Import Legacy", data_import_doc)
|
data_import_doc = frappe.get_doc("Data Import Legacy", data_import_doc)
|
||||||
if data_import_doc and from_data_import == "Yes":
|
if data_import_doc and from_data_import == "Yes":
|
||||||
no_email = data_import_doc.no_email
|
no_email = data_import_doc.no_email
|
||||||
|
|
@ -152,7 +148,7 @@ def upload(rows = None, submit_after_import=None, ignore_encoding_errors=False,
|
||||||
elif fieldtype in ("Float", "Currency", "Percent"):
|
elif fieldtype in ("Float", "Currency", "Percent"):
|
||||||
d[fieldname] = flt(d[fieldname])
|
d[fieldname] = flt(d[fieldname])
|
||||||
elif fieldtype == "Date":
|
elif fieldtype == "Date":
|
||||||
if d[fieldname] and isinstance(d[fieldname], string_types):
|
if d[fieldname] and isinstance(d[fieldname], str):
|
||||||
d[fieldname] = getdate(parse_date(d[fieldname]))
|
d[fieldname] = getdate(parse_date(d[fieldname]))
|
||||||
elif fieldtype == "Datetime":
|
elif fieldtype == "Datetime":
|
||||||
if d[fieldname]:
|
if d[fieldname]:
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2020, Frappe Technologies and Contributors
|
# Copyright (c) 2020, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
# import frappe
|
# import frappe
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
|
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies and contributors
|
# Copyright (c) 2015, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
import json
|
import json
|
||||||
from frappe.desk.doctype.bulk_update.bulk_update import show_progress
|
from frappe.desk.doctype.bulk_update.bulk_update import show_progress
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2015, Frappe Technologies and Contributors
|
# Copyright (c) 2015, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
|
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
import frappe.share
|
import frappe.share
|
||||||
import unittest
|
import unittest
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,10 @@
|
||||||
# MIT License. See license.txt
|
# MIT License. See license.txt
|
||||||
|
|
||||||
# imports - standard imports
|
# imports - standard imports
|
||||||
from __future__ import unicode_literals
|
|
||||||
import re, copy, os, shutil
|
import re, copy, os, shutil
|
||||||
import json
|
import json
|
||||||
from frappe.cache_manager import clear_user_cache, clear_controller_cache
|
from frappe.cache_manager import clear_user_cache, clear_controller_cache
|
||||||
|
|
||||||
# imports - third party imports
|
|
||||||
import six
|
|
||||||
from six import iteritems
|
|
||||||
|
|
||||||
# imports - module imports
|
# imports - module imports
|
||||||
import frappe
|
import frappe
|
||||||
import frappe.website.render
|
import frappe.website.render
|
||||||
|
|
@ -486,7 +481,7 @@ class DocType(Document):
|
||||||
# remove null and empty fields
|
# remove null and empty fields
|
||||||
def remove_null_fields(o):
|
def remove_null_fields(o):
|
||||||
to_remove = []
|
to_remove = []
|
||||||
for attr, value in iteritems(o):
|
for attr, value in o.items():
|
||||||
if isinstance(value, list):
|
if isinstance(value, list):
|
||||||
for v in value:
|
for v in value:
|
||||||
remove_null_fields(v)
|
remove_null_fields(v)
|
||||||
|
|
@ -670,7 +665,7 @@ class DocType(Document):
|
||||||
if not name:
|
if not name:
|
||||||
name = self.name
|
name = self.name
|
||||||
|
|
||||||
flags = {"flags": re.ASCII} if six.PY3 else {}
|
flags = {"flags": re.ASCII}
|
||||||
|
|
||||||
# a DocType name should not start or end with an empty space
|
# a DocType name should not start or end with an empty space
|
||||||
if re.search(r"^[ \t\n\r]+|[ \t\n\r]+$", name, **flags):
|
if re.search(r"^[ \t\n\r]+|[ \t\n\r]+$", name, **flags):
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
from frappe.core.doctype.doctype.doctype import (UniqueFieldnameError,
|
from frappe.core.doctype.doctype.doctype import (UniqueFieldnameError,
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2019, Frappe Technologies and contributors
|
# Copyright (c) 2019, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
# import frappe
|
# import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2019, Frappe Technologies and contributors
|
# Copyright (c) 2019, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
# import frappe
|
# import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2020, Frappe Technologies and contributors
|
# Copyright (c) 2020, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe.utils.data import evaluate_filters
|
from frappe.utils.data import evaluate_filters
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2020, Frappe Technologies and Contributors
|
# Copyright (c) 2020, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2020, Frappe Technologies and contributors
|
# Copyright (c) 2020, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
# import frappe
|
# import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2020, Frappe Technologies and Contributors
|
# Copyright (c) 2020, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
# import frappe
|
# import frappe
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2017, Frappe Technologies and contributors
|
# Copyright (c) 2017, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
|
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2017, Frappe Technologies and Contributors
|
# Copyright (c) 2017, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2017, Frappe Technologies and contributors
|
# Copyright (c) 2017, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies and contributors
|
# Copyright (c) 2015, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies and contributors
|
# Copyright (c) 2015, Frappe Technologies and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2015, Frappe Technologies and Contributors
|
# Copyright (c) 2015, Frappe Technologies and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# See license.txt
|
# See license.txt
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,6 @@ record of files
|
||||||
naming for same name files: file.gif, file-1.gif, file-2.gif etc
|
naming for same name files: file.gif, file-1.gif, file-2.gif etc
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import base64
|
import base64
|
||||||
import hashlib
|
import hashlib
|
||||||
import imghdr
|
import imghdr
|
||||||
|
|
@ -23,8 +21,8 @@ import zipfile
|
||||||
import requests
|
import requests
|
||||||
import requests.exceptions
|
import requests.exceptions
|
||||||
from PIL import Image, ImageFile, ImageOps
|
from PIL import Image, ImageFile, ImageOps
|
||||||
from six import PY2, StringIO, string_types, text_type
|
from io import StringIO
|
||||||
from six.moves.urllib.parse import quote, unquote
|
from urllib.parse import quote, unquote
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _, conf
|
from frappe import _, conf
|
||||||
|
|
@ -382,18 +380,14 @@ class File(Document):
|
||||||
file_path = self.get_full_path()
|
file_path = self.get_full_path()
|
||||||
|
|
||||||
# read the file
|
# read the file
|
||||||
if PY2:
|
with io.open(encode(file_path), mode='rb') as f:
|
||||||
with open(encode(file_path)) as f:
|
content = f.read()
|
||||||
content = f.read()
|
try:
|
||||||
else:
|
# for plain text files
|
||||||
with io.open(encode(file_path), mode='rb') as f:
|
content = content.decode()
|
||||||
content = f.read()
|
except UnicodeDecodeError:
|
||||||
try:
|
# for .png, .jpg, etc
|
||||||
# for plain text files
|
pass
|
||||||
content = content.decode()
|
|
||||||
except UnicodeDecodeError:
|
|
||||||
# for .png, .jpg, etc
|
|
||||||
pass
|
|
||||||
|
|
||||||
return content
|
return content
|
||||||
|
|
||||||
|
|
@ -430,7 +424,7 @@ class File(Document):
|
||||||
frappe.create_folder(file_path)
|
frappe.create_folder(file_path)
|
||||||
# write the file
|
# write the file
|
||||||
self.content = self.get_content()
|
self.content = self.get_content()
|
||||||
if isinstance(self.content, text_type):
|
if isinstance(self.content, str):
|
||||||
self.content = self.content.encode()
|
self.content = self.content.encode()
|
||||||
with open(os.path.join(file_path.encode('utf-8'), self.file_name.encode('utf-8')), 'wb+') as f:
|
with open(os.path.join(file_path.encode('utf-8'), self.file_name.encode('utf-8')), 'wb+') as f:
|
||||||
f.write(self.content)
|
f.write(self.content)
|
||||||
|
|
@ -483,7 +477,7 @@ class File(Document):
|
||||||
self.content = content
|
self.content = content
|
||||||
|
|
||||||
if decode:
|
if decode:
|
||||||
if isinstance(content, text_type):
|
if isinstance(content, str):
|
||||||
self.content = content.encode("utf-8")
|
self.content = content.encode("utf-8")
|
||||||
|
|
||||||
if b"," in self.content:
|
if b"," in self.content:
|
||||||
|
|
@ -632,7 +626,7 @@ def create_new_folder(file_name, folder):
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def move_file(file_list, new_parent, old_parent):
|
def move_file(file_list, new_parent, old_parent):
|
||||||
|
|
||||||
if isinstance(file_list, string_types):
|
if isinstance(file_list, str):
|
||||||
file_list = json.loads(file_list)
|
file_list = json.loads(file_list)
|
||||||
|
|
||||||
for file_obj in file_list:
|
for file_obj in file_list:
|
||||||
|
|
@ -834,7 +828,7 @@ def remove_file_by_url(file_url, doctype=None, name=None):
|
||||||
|
|
||||||
|
|
||||||
def get_content_hash(content):
|
def get_content_hash(content):
|
||||||
if isinstance(content, text_type):
|
if isinstance(content, str):
|
||||||
content = content.encode()
|
content = content.encode()
|
||||||
return hashlib.md5(content).hexdigest() #nosec
|
return hashlib.md5(content).hexdigest() #nosec
|
||||||
|
|
||||||
|
|
@ -887,8 +881,8 @@ def extract_images_from_html(doc, content):
|
||||||
filename = headers.split("filename=")[-1]
|
filename = headers.split("filename=")[-1]
|
||||||
|
|
||||||
# decode filename
|
# decode filename
|
||||||
if not isinstance(filename, text_type):
|
if not isinstance(filename, str):
|
||||||
filename = text_type(filename, 'utf-8')
|
filename = str(filename, 'utf-8')
|
||||||
else:
|
else:
|
||||||
mtype = headers.split(";")[0]
|
mtype = headers.split(";")[0]
|
||||||
filename = get_random_filename(content_type=mtype)
|
filename = get_random_filename(content_type=mtype)
|
||||||
|
|
@ -911,7 +905,7 @@ def extract_images_from_html(doc, content):
|
||||||
|
|
||||||
return '<img src="{file_url}"'.format(file_url=file_url)
|
return '<img src="{file_url}"'.format(file_url=file_url)
|
||||||
|
|
||||||
if content and isinstance(content, string_types):
|
if content and isinstance(content, str):
|
||||||
content = re.sub(r'<img[^>]*src\s*=\s*["\'](?=data:)(.*?)["\']', _save_file, content)
|
content = re.sub(r'<img[^>]*src\s*=\s*["\'](?=data:)(.*?)["\']', _save_file, content)
|
||||||
|
|
||||||
return content
|
return content
|
||||||
|
|
@ -941,7 +935,7 @@ def get_attached_images(doctype, names):
|
||||||
'''get list of image urls attached in form
|
'''get list of image urls attached in form
|
||||||
returns {name: ['image.jpg', 'image.png']}'''
|
returns {name: ['image.jpg', 'image.png']}'''
|
||||||
|
|
||||||
if isinstance(names, string_types):
|
if isinstance(names, str):
|
||||||
names = json.loads(names)
|
names = json.loads(names)
|
||||||
|
|
||||||
img_urls = frappe.db.get_list('File', filters={
|
img_urls = frappe.db.get_list('File', filters={
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue