rewrite use of dict.iteritems (#3498)
* dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility * dict.iteritems to six.iteritems(dict) for python3 compatibility
This commit is contained in:
parent
702e52e665
commit
bbde2ec4cf
31 changed files with 94 additions and 41 deletions
|
|
@ -6,6 +6,7 @@ globals attached to frappe module
|
|||
"""
|
||||
from __future__ import unicode_literals, print_function
|
||||
|
||||
from six import iteritems
|
||||
from werkzeug.local import Local, release_local
|
||||
import os, sys, importlib, inspect, json
|
||||
|
||||
|
|
@ -757,7 +758,7 @@ def get_doc_hooks():
|
|||
if not hasattr(local, 'doc_events_hooks'):
|
||||
hooks = get_hooks('doc_events', {})
|
||||
out = {}
|
||||
for key, value in hooks.iteritems():
|
||||
for key, value in iteritems(hooks):
|
||||
if isinstance(key, tuple):
|
||||
for doctype in key:
|
||||
append_hook(out, doctype, value)
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ from __future__ import unicode_literals
|
|||
|
||||
import os
|
||||
import MySQLdb
|
||||
from six import iteritems
|
||||
|
||||
from werkzeug.wrappers import Request
|
||||
from werkzeug.local import LocalManager
|
||||
|
|
@ -115,7 +116,7 @@ def init_request(request):
|
|||
|
||||
def make_form_dict(request):
|
||||
frappe.local.form_dict = frappe._dict({ k:v[0] if isinstance(v, (list, tuple)) else v \
|
||||
for k, v in (request.form or request.args).iteritems() })
|
||||
for k, v in iteritems(request.form or request.args) })
|
||||
|
||||
if "_" in frappe.local.form_dict:
|
||||
# _ is passed by $.ajax so that the request is not cached by the browser. So, remove _ from form_dict
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
# MIT License. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from six import iteritems
|
||||
|
||||
"""
|
||||
bootstrap client session
|
||||
"""
|
||||
|
|
@ -179,7 +182,7 @@ def load_translations(bootinfo):
|
|||
messages[name] = frappe._(name)
|
||||
|
||||
# only untranslated
|
||||
messages = {k:v for k, v in messages.iteritems() if k!=v}
|
||||
messages = {k:v for k, v in iteritems(messages) if k!=v}
|
||||
|
||||
bootinfo["__messages"] = messages
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ from __future__ import unicode_literals, print_function
|
|||
from frappe.utils.minify import JavascriptMinify
|
||||
import subprocess
|
||||
|
||||
from six import iteritems
|
||||
|
||||
"""
|
||||
Build the `public` folders and setup languages
|
||||
"""
|
||||
|
|
@ -87,7 +89,7 @@ def make_asset_dirs(make_copy=False):
|
|||
def build(no_compress=False, verbose=False):
|
||||
assets_path = os.path.join(frappe.local.sites_path, "assets")
|
||||
|
||||
for target, sources in get_build_maps().iteritems():
|
||||
for target, sources in iteritems(get_build_maps()):
|
||||
pack(os.path.join(assets_path, target), sources, no_compress, verbose)
|
||||
|
||||
def get_build_maps():
|
||||
|
|
@ -100,7 +102,7 @@ def get_build_maps():
|
|||
if os.path.exists(path):
|
||||
with open(path) as f:
|
||||
try:
|
||||
for target, sources in json.loads(f.read()).iteritems():
|
||||
for target, sources in iteritems(json.loads(f.read())):
|
||||
# update app path
|
||||
source_paths = []
|
||||
for source in sources:
|
||||
|
|
@ -182,7 +184,7 @@ def scrub_html_template(content):
|
|||
return content.replace("'", "\'")
|
||||
|
||||
def files_dirty():
|
||||
for target, sources in get_build_maps().iteritems():
|
||||
for target, sources in iteritems(get_build_maps()):
|
||||
for f in sources:
|
||||
if ':' in f: f, suffix = f.split(':')
|
||||
if not os.path.exists(f) or os.path.isdir(f): continue
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ import frappe.model
|
|||
import frappe.utils
|
||||
import json, os
|
||||
|
||||
from six import iteritems
|
||||
|
||||
'''
|
||||
Handle RESTful requests that are mapped to the `/api/resource` route.
|
||||
|
||||
|
|
@ -228,7 +230,7 @@ def bulk_update(docs):
|
|||
failed_docs = []
|
||||
for doc in docs:
|
||||
try:
|
||||
ddoc = {key: val for key, val in doc.iteritems() if key not in ['doctype', 'docname']}
|
||||
ddoc = {key: val for key, val in iteritems(doc) if key not in ['doctype', 'docname']}
|
||||
doctype = doc['doctype']
|
||||
docname = doc['docname']
|
||||
doc = frappe.get_doc(doctype, docname)
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ from jinja2 import TemplateSyntaxError
|
|||
from frappe.utils.user import is_website_user
|
||||
from frappe.model.naming import make_autoname
|
||||
from frappe.core.doctype.dynamic_link.dynamic_link import deduplicate_dynamic_links
|
||||
from six import iteritems
|
||||
|
||||
|
||||
class Address(Document):
|
||||
def __setup__(self):
|
||||
|
|
@ -191,7 +193,7 @@ def address_query(doctype, txt, searchfield, start, page_len, filters):
|
|||
link_name = filters.pop('link_name')
|
||||
|
||||
condition = ""
|
||||
for fieldname, value in filters.iteritems():
|
||||
for fieldname, value in iteritems(filters):
|
||||
condition += " and {field}={value}".format(
|
||||
field=fieldname,
|
||||
value=value
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ from frappe.utils import cstr, has_gravatar
|
|||
from frappe import _
|
||||
from frappe.model.document import Document
|
||||
from frappe.core.doctype.dynamic_link.dynamic_link import deduplicate_dynamic_links
|
||||
from six import iteritems
|
||||
|
||||
|
||||
class Contact(Document):
|
||||
def autoname(self):
|
||||
|
|
@ -118,7 +120,7 @@ def contact_query(doctype, txt, searchfield, start, page_len, filters):
|
|||
link_name = filters.pop('link_name')
|
||||
|
||||
condition = ""
|
||||
for fieldname, value in filters.iteritems():
|
||||
for fieldname, value in iteritems(filters):
|
||||
condition += " and {field}={value}".format(
|
||||
field=fieldname,
|
||||
value=value
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ from frappe.modules.export_file import export_to_files
|
|||
from frappe.modules import make_boilerplate
|
||||
from frappe.core.doctype.page.page import delete_custom_role
|
||||
from frappe.core.doctype.custom_role.custom_role import get_custom_allowed_roles
|
||||
from six import iteritems
|
||||
|
||||
|
||||
class Report(Document):
|
||||
def validate(self):
|
||||
|
|
@ -123,7 +125,7 @@ class Report(Document):
|
|||
_filters = params.get('filters') or []
|
||||
|
||||
if filters:
|
||||
for key, value in filters.iteritems():
|
||||
for key, value in iteritems(filters):
|
||||
condition, _value = '=', value
|
||||
if isinstance(value, (list, tuple)):
|
||||
condition, _value = value
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ from frappe.utils import now, get_datetime, cstr
|
|||
from frappe import _
|
||||
from types import StringType, UnicodeType
|
||||
from frappe.utils.global_search import sync_global_search
|
||||
from six import iteritems
|
||||
|
||||
|
||||
class Database:
|
||||
"""
|
||||
|
|
@ -655,7 +657,7 @@ class Database:
|
|||
where field in ({0}) and
|
||||
doctype=%s'''.format(', '.join(['%s']*len(keys))),
|
||||
keys + [dt], debug=debug)
|
||||
for key, value in to_update.iteritems():
|
||||
for key, value in iteritems(to_update):
|
||||
self.sql('''insert into tabSingles(doctype, field, value) values (%s, %s, %s)''',
|
||||
(dt, key, value), debug=debug)
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ from frappe import _
|
|||
import json
|
||||
import random
|
||||
from frappe.model.document import Document
|
||||
from six import iteritems
|
||||
|
||||
|
||||
class DesktopIcon(Document):
|
||||
def validate(self):
|
||||
|
|
@ -323,7 +325,7 @@ def sync_from_app(app):
|
|||
|
||||
if isinstance(modules, dict):
|
||||
modules_list = []
|
||||
for m, desktop_icon in modules.iteritems():
|
||||
for m, desktop_icon in iteritems(modules):
|
||||
desktop_icon['module_name'] = m
|
||||
modules_list.append(desktop_icon)
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import frappe
|
|||
import json
|
||||
from frappe import _
|
||||
from frappe.model.document import Document
|
||||
from six import iteritems
|
||||
|
||||
|
||||
class KanbanBoard(Document):
|
||||
|
|
@ -91,7 +92,7 @@ def update_order(board_name, order):
|
|||
order_dict = json.loads(order)
|
||||
|
||||
updated_cards = []
|
||||
for col_name, cards in order_dict.iteritems():
|
||||
for col_name, cards in iteritems(order_dict):
|
||||
order_list = []
|
||||
for card in cards:
|
||||
column = frappe.get_value(
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ from frappe.model.utils import render_include
|
|||
from frappe.build import scrub_html_template
|
||||
|
||||
######
|
||||
from six import iteritems
|
||||
|
||||
|
||||
def get_meta(doctype, cached=True):
|
||||
if cached and not frappe.conf.developer_mode:
|
||||
|
|
@ -153,7 +155,7 @@ class FormMeta(Meta):
|
|||
app = module.__name__.split(".")[0]
|
||||
templates = {}
|
||||
if hasattr(module, "form_grid_templates"):
|
||||
for key, path in module.form_grid_templates.iteritems():
|
||||
for key, path in iteritems(module.form_grid_templates):
|
||||
templates[key] = get_html_format(frappe.get_app_path(app, path))
|
||||
|
||||
self.set("__form_grid_templates", templates)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ from frappe.utils import (get_url, scrub_urls, strip, expand_relative_urls, cint
|
|||
split_emails, to_markdown, markdown, encode, random_string)
|
||||
import email.utils
|
||||
from frappe.utils import parse_addr
|
||||
from six import iteritems
|
||||
|
||||
|
||||
def get_email(recipients, sender='', msg='', subject='[No Subject]',
|
||||
text_content = None, footer=None, print_html=None, formatted=None, attachments=None,
|
||||
|
|
@ -209,7 +211,7 @@ class EMail:
|
|||
}
|
||||
|
||||
# reset headers as values may be changed.
|
||||
for key, val in headers.iteritems():
|
||||
for key, val in iteritems(headers):
|
||||
self.set_header(key, val)
|
||||
|
||||
# call hook to enable apps to modify msg_root before sending
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
# MIT License. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from six import iteritems
|
||||
from six.moves import range
|
||||
import time, _socket, poplib, imaplib, email, email.utils, datetime, chardet, re, hashlib
|
||||
from email_reply_parser import EmailReplyParser
|
||||
|
|
@ -343,7 +345,7 @@ class EmailServer:
|
|||
return
|
||||
|
||||
self.imap.select("Inbox")
|
||||
for uid, operation in uid_list.iteritems():
|
||||
for uid, operation in iteritems(uid_list):
|
||||
if not uid: continue
|
||||
|
||||
op = "+FLAGS" if operation == "Read" else "-FLAGS"
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ from __future__ import print_function
|
|||
import requests
|
||||
import json
|
||||
import frappe
|
||||
from six import iteritems
|
||||
|
||||
'''
|
||||
FrappeClient is a library that helps you connect with other frappe systems
|
||||
|
|
@ -270,7 +271,7 @@ class FrappeClient(object):
|
|||
|
||||
def preprocess(self, params):
|
||||
"""convert dicts, lists to json"""
|
||||
for key, value in params.iteritems():
|
||||
for key, value in iteritems(params):
|
||||
if isinstance(value, (dict, list)):
|
||||
params[key] = json.dumps(value)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
# MIT License. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
from six import reraise as raise_
|
||||
from six import reraise as raise_, iteritems
|
||||
import frappe, sys
|
||||
from frappe import _
|
||||
from frappe.utils import (cint, flt, now, cstr, strip_html, getdate, get_datetime, to_timedelta,
|
||||
|
|
@ -72,7 +72,7 @@ class BaseDocument(object):
|
|||
if key in d:
|
||||
self.set(key, d.get(key))
|
||||
|
||||
for key, value in d.iteritems():
|
||||
for key, value in iteritems(d):
|
||||
self.set(key, value)
|
||||
|
||||
return self
|
||||
|
|
@ -83,7 +83,7 @@ class BaseDocument(object):
|
|||
|
||||
if "doctype" in d:
|
||||
self.set("doctype", d.get("doctype"))
|
||||
for key, value in d.iteritems():
|
||||
for key, value in iteritems(d):
|
||||
# dont_update_if_missing is a list of fieldnames, for which, you don't want to set default value
|
||||
if (self.get(key) is None) and (value is not None) and (key not in self.dont_update_if_missing):
|
||||
self.set(key, value)
|
||||
|
|
@ -565,7 +565,7 @@ class BaseDocument(object):
|
|||
if frappe.flags.in_install:
|
||||
return
|
||||
|
||||
for fieldname, value in self.get_valid_dict().iteritems():
|
||||
for fieldname, value in iteritems(self.get_valid_dict()):
|
||||
df = self.meta.get_field(fieldname)
|
||||
if df and df.fieldtype in type_map and type_map[df.fieldtype][0]=="varchar":
|
||||
max_length = cint(df.get("length")) or cint(varchar_len)
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
# MIT License. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from six import iteritems
|
||||
|
||||
"""build query for doclistview and return results"""
|
||||
|
||||
import frappe, json, copy
|
||||
|
|
@ -171,7 +174,7 @@ class DatabaseQuery(object):
|
|||
if isinstance(filters, dict):
|
||||
fdict = filters
|
||||
filters = []
|
||||
for key, value in fdict.iteritems():
|
||||
for key, value in iteritems(fdict):
|
||||
filters.append(make_filter_tuple(self.doctype, key, value))
|
||||
setattr(self, filter_name, filters)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ from frappe.utils import flt, cstr, now, get_datetime_str, file_lock
|
|||
from frappe.utils.background_jobs import enqueue
|
||||
from frappe.model.base_document import BaseDocument, get_controller
|
||||
from frappe.model.naming import set_new_name
|
||||
from six import iteritems
|
||||
from werkzeug.exceptions import NotFound, Forbidden
|
||||
import hashlib, json
|
||||
from frappe.model import optional_fields
|
||||
|
|
@ -344,7 +345,7 @@ class Document(BaseDocument):
|
|||
def get_values():
|
||||
values = self.as_dict()
|
||||
# format values
|
||||
for key, value in values.iteritems():
|
||||
for key, value in iteritems(values):
|
||||
if value==None:
|
||||
values[key] = ""
|
||||
return values
|
||||
|
|
@ -361,7 +362,7 @@ class Document(BaseDocument):
|
|||
def update_single(self, d):
|
||||
"""Updates values for Single type Document in `tabSingles`."""
|
||||
frappe.db.sql("""delete from tabSingles where doctype=%s""", self.doctype)
|
||||
for field, value in d.iteritems():
|
||||
for field, value in iteritems(d):
|
||||
if field != "doctype":
|
||||
frappe.db.sql("""insert into tabSingles(doctype, field, value)
|
||||
values (%s, %s, %s)""", (self.doctype, field, value))
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
from __future__ import unicode_literals
|
||||
|
||||
import frappe
|
||||
from six import iteritems
|
||||
|
||||
ignore_doctypes = ("DocType", "Print Format", "Role", "Module Def", "Communication",
|
||||
"ToDo")
|
||||
|
|
@ -26,7 +27,7 @@ def update_link_count():
|
|||
link_count = frappe.cache().get_value('_link_count')
|
||||
|
||||
if link_count:
|
||||
for key, count in link_count.iteritems():
|
||||
for key, count in iteritems(link_count):
|
||||
if key[0] not in ignore_doctypes:
|
||||
try:
|
||||
frappe.db.sql('update `tab{0}` set idx = idx + {1} where name=%s'.format(key[0], count),
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
# such as page_limit, filters, last_view
|
||||
|
||||
import frappe, json
|
||||
from six import iteritems
|
||||
|
||||
|
||||
def get_user_settings(doctype, for_update=False):
|
||||
user_settings = frappe.cache().hget('_user_settings',
|
||||
|
|
@ -36,7 +38,7 @@ def update_user_settings(doctype, user_settings, for_update=False):
|
|||
|
||||
def sync_user_settings():
|
||||
'''Sync from cache to database (called asynchronously via the browser)'''
|
||||
for key, data in frappe.cache().hgetall('_user_settings').iteritems():
|
||||
for key, data in iteritems(frappe.cache().hgetall('_user_settings')):
|
||||
doctype, user = key.split('::')
|
||||
frappe.db.sql('''insert into __UserSettings (user, doctype, data) values (%s, %s, %s)
|
||||
on duplicate key update data=%s''', (user, doctype, data, data))
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ from frappe.utils import get_files_path, get_site_path
|
|||
# a backup from a time before version 3 migration
|
||||
#
|
||||
# * Patch remaining unpatched File records.
|
||||
from six import iteritems
|
||||
|
||||
|
||||
def execute():
|
||||
frappe.db.auto_commit_on_many_writes = True
|
||||
|
|
@ -49,7 +51,7 @@ def get_replaced_files():
|
|||
old_files = dict(frappe.db.sql("select name, file_name from `tabFile` where ifnull(content_hash, '')=''"))
|
||||
invfiles = invert_dict(new_files)
|
||||
|
||||
for nname, nfilename in new_files.iteritems():
|
||||
for nname, nfilename in iteritems(new_files):
|
||||
if 'files/' + nfilename in old_files.values():
|
||||
ret.append((nfilename, invfiles[nfilename]))
|
||||
return ret
|
||||
|
|
@ -82,7 +84,7 @@ def rename_replacing_files():
|
|||
|
||||
def invert_dict(ddict):
|
||||
ret = {}
|
||||
for k,v in ddict.iteritems():
|
||||
for k,v in iteritems(ddict):
|
||||
if not ret.get(v):
|
||||
ret[v] = [k]
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
from frappe.installer import create_user_settings_table
|
||||
from frappe.model.utils.user_settings import update_user_settings
|
||||
import frappe, json
|
||||
from six import iteritems
|
||||
|
||||
|
||||
def execute():
|
||||
if frappe.db.table_exists("__ListSettings"):
|
||||
|
|
@ -32,7 +34,7 @@ def execute():
|
|||
|
||||
for user in frappe.db.get_all('User', {'user_type': 'System User'}):
|
||||
defaults = frappe.defaults.get_defaults_for(user.name)
|
||||
for key, value in defaults.iteritems():
|
||||
for key, value in iteritems(defaults):
|
||||
if key.startswith('_list_settings:'):
|
||||
doctype = key.replace('_list_settings:', '')
|
||||
columns = ['`tab{1}`.`{0}`'.format(*c) for c in json.loads(value)]
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
from __future__ import unicode_literals, print_function
|
||||
|
||||
from six import iteritems
|
||||
|
||||
"""
|
||||
frappe.translate
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
|
@ -120,7 +122,7 @@ def get_dict(fortype, name=None):
|
|||
message_dict.update(get_dict_from_hooks(fortype, name))
|
||||
|
||||
# remove untranslated
|
||||
message_dict = {k:v for k, v in message_dict.iteritems() if k!=v}
|
||||
message_dict = {k:v for k, v in iteritems(message_dict) if k!=v}
|
||||
|
||||
translation_assets[asset_key] = message_dict
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ from dateutil import parser
|
|||
from num2words import num2words
|
||||
import HTMLParser
|
||||
from html2text import html2text
|
||||
from six import iteritems
|
||||
|
||||
DATE_FORMAT = "%Y-%m-%d"
|
||||
TIME_FORMAT = "%H:%M:%S.%f"
|
||||
|
|
@ -686,7 +687,7 @@ operator_map = {
|
|||
def evaluate_filters(doc, filters):
|
||||
'''Returns true if doc matches filters'''
|
||||
if isinstance(filters, dict):
|
||||
for key, value in filters.iteritems():
|
||||
for key, value in iteritems(filters):
|
||||
f = get_filter(None, {key:value})
|
||||
if not compare(doc.get(f.fieldname), f.operator, f.value):
|
||||
return False
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ from collections import defaultdict
|
|||
from rq import Worker, Connection
|
||||
from frappe.utils.background_jobs import get_redis_conn, get_queue, get_queue_list
|
||||
from frappe.utils.scheduler import is_scheduler_disabled
|
||||
from six import iteritems
|
||||
|
||||
|
||||
def get_workers():
|
||||
|
|
@ -118,7 +119,7 @@ def doctor(site=None):
|
|||
print("Queue:", queue)
|
||||
print("Number of Jobs: ", job_count[queue])
|
||||
print("Methods:")
|
||||
for method, count in jobs_per_queue[queue].iteritems():
|
||||
for method, count in iteritems(jobs_per_queue[queue]):
|
||||
print("{0} : {1}".format(method, count))
|
||||
print("------------")
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ from __future__ import unicode_literals
|
|||
import redis, frappe, re
|
||||
import cPickle as pickle
|
||||
from frappe.utils import cstr
|
||||
from six import iteritems
|
||||
|
||||
|
||||
class RedisWrapper(redis.Redis):
|
||||
"""Redis client that will automatically prefix conf.db_name"""
|
||||
|
|
@ -148,7 +150,7 @@ class RedisWrapper(redis.Redis):
|
|||
|
||||
def hgetall(self, name):
|
||||
return {key: pickle.loads(value) for key, value in
|
||||
super(redis.Redis, self).hgetall(self.make_key(name)).iteritems()}
|
||||
iteritems(super(redis.Redis, self).hgetall(self.make_key(name)))}
|
||||
|
||||
def hget(self, name, key, generator=None, shared=False):
|
||||
_name = self.make_key(name, shared=shared)
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ from __future__ import unicode_literals, print_function
|
|||
import os, json, frappe, shutil, re
|
||||
from frappe.website.context import get_context
|
||||
from frappe.utils import markdown
|
||||
from six import iteritems
|
||||
|
||||
|
||||
class setup_docs(object):
|
||||
def __init__(self, app):
|
||||
|
|
@ -294,7 +296,7 @@ class setup_docs(object):
|
|||
return '{% raw %}' + matchobj.group(0) + '{% endraw %}'
|
||||
|
||||
cnt = 0
|
||||
for path, context in pages.iteritems():
|
||||
for path, context in iteritems(pages):
|
||||
print("Writing {0}".format(path))
|
||||
|
||||
# set this for get_context / website libs
|
||||
|
|
@ -420,7 +422,7 @@ class setup_docs(object):
|
|||
"images/up.png": "img/up.png"
|
||||
}
|
||||
|
||||
for source, target in copy_files.iteritems():
|
||||
for source, target in iteritems(copy_files):
|
||||
source_path = frappe.get_app_path("frappe", "public", source)
|
||||
if os.path.isdir(source_path):
|
||||
if not os.path.exists(os.path.join(assets_path, target)):
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ from frappe.utils.file_manager import get_max_file_size
|
|||
from frappe.modules.utils import export_module_json, get_doc_module
|
||||
from urllib import urlencode
|
||||
from frappe.integrations.utils import get_payment_gateway_controller
|
||||
from six import iteritems
|
||||
|
||||
|
||||
class WebForm(WebsiteGenerator):
|
||||
website = frappe._dict(
|
||||
|
|
@ -206,7 +208,7 @@ def get_context(context):
|
|||
context.params_from_form_dict = ''
|
||||
|
||||
params = {}
|
||||
for key, value in frappe.form_dict.iteritems():
|
||||
for key, value in iteritems(frappe.form_dict):
|
||||
if frappe.get_meta(self.doc_type).get_field(key):
|
||||
params[key] = value
|
||||
|
||||
|
|
@ -365,7 +367,7 @@ def accept(web_form, data, for_payment=False):
|
|||
doc = frappe.new_doc(data.doctype)
|
||||
|
||||
# set values
|
||||
for fieldname, value in data.iteritems():
|
||||
for fieldname, value in iteritems(data):
|
||||
if value and isinstance(value, dict):
|
||||
try:
|
||||
if "__file_attachment" in value:
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ from frappe import _
|
|||
import frappe.sessions
|
||||
from frappe.utils import cstr
|
||||
import mimetypes, json
|
||||
|
||||
from six import iteritems
|
||||
from werkzeug.wrappers import Response
|
||||
from werkzeug.routing import Map, Rule, NotFound
|
||||
|
||||
|
|
@ -78,7 +80,7 @@ def build_response(path, data, http_status_code, headers=None):
|
|||
response.headers[b"X-From-Cache"] = frappe.local.response.from_cache or False
|
||||
|
||||
if headers:
|
||||
for key, val in headers.iteritems():
|
||||
for key, val in iteritems(headers):
|
||||
response.headers[bytes(key)] = val.encode("utf-8")
|
||||
|
||||
return response
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
from __future__ import unicode_literals
|
||||
import frappe, re, os
|
||||
from six import iteritems
|
||||
|
||||
|
||||
def delete_page_cache(path):
|
||||
cache = frappe.cache()
|
||||
|
|
@ -190,7 +192,7 @@ def get_full_index(route=None, app=None):
|
|||
pages = get_pages(app=app)
|
||||
|
||||
# make children map
|
||||
for route, page_info in pages.iteritems():
|
||||
for route, page_info in iteritems(pages):
|
||||
parent_route = os.path.dirname(route)
|
||||
children_map.setdefault(parent_route, []).append(page_info)
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import urllib
|
|||
import frappe
|
||||
from frappe.utils import get_request_site_address, get_datetime, nowdate
|
||||
from frappe.website.router import get_pages, get_all_page_context_from_doctypes
|
||||
from six import iteritems
|
||||
|
||||
no_cache = 1
|
||||
no_sitemap = 1
|
||||
|
|
@ -16,14 +17,14 @@ def get_context(context):
|
|||
"""generate the sitemap XML"""
|
||||
host = get_request_site_address()
|
||||
links = []
|
||||
for route, page in get_pages().iteritems():
|
||||
for route, page in iteritems(get_pages()):
|
||||
if not page.no_sitemap:
|
||||
links.append({
|
||||
"loc": urllib.basejoin(host, urllib.quote(page.name.encode("utf-8"))),
|
||||
"lastmod": nowdate()
|
||||
})
|
||||
|
||||
for route, data in get_all_page_context_from_doctypes().iteritems():
|
||||
for route, data in iteritems(get_all_page_context_from_doctypes()):
|
||||
links.append({
|
||||
"loc": urllib.basejoin(host, urllib.quote((route or "").encode("utf-8"))),
|
||||
"lastmod": get_datetime(data.get("modified")).strftime("%Y-%m-%d")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue