refactor: fix py3 datatypes and remove references to six in oauth

This commit is contained in:
Rohan Bansal 2021-04-28 13:52:14 +05:30
parent 0e015fdcb6
commit dade7ed216
5 changed files with 35 additions and 38 deletions

View file

@ -2,19 +2,19 @@
# Copyright (c) 2019, Frappe Technologies and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
import frappe
import json
import time
import requests
from six import iteritems
import frappe
from frappe import _
from frappe.model.document import Document
from frappe.frappeclient import FrappeClient
from frappe.utils.background_jobs import get_jobs
from frappe.utils.data import get_url, get_link_to_form
from frappe.utils.password import get_decrypted_password
from frappe.custom.doctype.custom_field.custom_field import create_custom_field
from frappe.frappeclient import FrappeClient
from frappe.model.document import Document
from frappe.utils.background_jobs import get_jobs
from frappe.utils.data import get_link_to_form, get_url
from frappe.utils.password import get_decrypted_password
class EventProducer(Document):
@ -271,8 +271,8 @@ def set_insert(update, producer_site, event_producer):
if update.mapping:
if update.get('dependencies'):
dependencies_created = sync_mapped_dependencies(update.dependencies, producer_site)
for fieldname, value in iteritems(dependencies_created):
doc.update({ fieldname : value })
for fieldname, value in dependencies_created.items():
doc.update({fieldname: value})
else:
sync_dependencies(doc, producer_site)
@ -303,8 +303,8 @@ def set_update(update, producer_site):
if update.mapping:
if update.get('dependencies'):
dependencies_created = sync_mapped_dependencies(update.dependencies, producer_site)
for fieldname, value in iteritems(dependencies_created):
local_doc.update({ fieldname : value })
for fieldname, value in dependencies_created.items():
local_doc.update({fieldname: value})
else:
sync_dependencies(local_doc, producer_site)
@ -314,7 +314,7 @@ def set_update(update, producer_site):
def update_row_removed(local_doc, removed):
"""Sync child table row deletion type update"""
for tablename, rownames in iteritems(removed):
for tablename, rownames in removed.items():
table = local_doc.get_table_field_doctype(tablename)
for row in rownames:
table_rows = local_doc.get(tablename)
@ -332,7 +332,7 @@ def get_child_table_row(table_rows, row):
def update_row_changed(local_doc, changed):
"""Sync child table row updation type update"""
for tablename, rows in iteritems(changed):
for tablename, rows in changed.items():
old = local_doc.get(tablename)
for doc in old:
for row in rows:
@ -342,7 +342,7 @@ def update_row_changed(local_doc, changed):
def update_row_added(local_doc, added):
"""Sync child table row addition type update"""
for tablename, rows in iteritems(added):
for tablename, rows in added.items():
local_doc.extend(tablename, rows)
for child in rows:
child_doc = frappe.get_doc(child)

View file

@ -1,20 +1,21 @@
import json
from urllib.parse import quote, urlencode
from oauthlib.oauth2 import FatalClientError, OAuth2Error
from oauthlib.openid.connect.core.endpoints.pre_configured import (
Server as WebApplicationServer,
)
import frappe
from frappe.integrations.doctype.oauth_provider_settings.oauth_provider_settings import (
get_oauth_settings,
)
from frappe.oauth import (
OAuthWebRequestValidator,
generate_json_error_response,
get_server_url,
get_userinfo,
)
from frappe.integrations.doctype.oauth_provider_settings.oauth_provider_settings import (
get_oauth_settings,
)
def get_oauth_server():

View file

@ -1,13 +1,13 @@
import pytz
import jwt
import hashlib
import re
import base64
import datetime
import hashlib
import re
from http import cookies
from urllib.parse import unquote, urlparse
import jwt
import pytz
from oauthlib.openid import RequestValidator
from urllib.parse import urlparse, unquote
import frappe
from frappe.auth import LoginManager

View file

@ -1,16 +1,16 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt
from __future__ import unicode_literals
import unittest
import requests
from urllib.parse import parse_qs, urljoin, urlparse
import jwt
from six.moves.urllib.parse import urlparse, parse_qs, urljoin
from urllib.parse import urlencode, quote
import requests
import frappe
from frappe.test_runner import make_test_records
from frappe.integrations.oauth2 import encode_params
from frappe.test_runner import make_test_records
class TestOAuth20(unittest.TestCase):

View file

@ -1,8 +1,6 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt
from __future__ import print_function, unicode_literals
import functools
import hashlib
import io
@ -12,13 +10,12 @@ import re
import sys
import traceback
import typing
from email.header import decode_header, make_header
from email.utils import formataddr, parseaddr
from gzip import GzipFile
from typing import Generator, Iterable
from urllib.parse import quote, urlparse
from werkzeug.test import Client
import frappe
@ -26,7 +23,6 @@ import frappe
from frappe.utils.data import *
from frappe.utils.html_utils import sanitize_html
default_fields = ['doctype', 'name', 'owner', 'creation', 'modified', 'modified_by',
'parent', 'parentfield', 'parenttype', 'idx', 'docstatus']
@ -71,7 +67,7 @@ def get_formatted_email(user, mail=None):
def extract_email_id(email):
"""fetch only the email part of the Email Address"""
email_id = parse_addr(email)[1]
if email_id and isinstance(email_id, str) and not isinstance(email_id, str):
if email_id and isinstance(email_id, bytes):
email_id = email_id.decode("utf-8", "ignore")
return email_id
@ -369,14 +365,14 @@ def get_site_url(site):
def encode_dict(d, encoding="utf-8"):
for key in d:
if isinstance(d[key], str) and isinstance(d[key], str):
if isinstance(d[key], str):
d[key] = d[key].encode(encoding)
return d
def decode_dict(d, encoding="utf-8"):
for key in d:
if isinstance(d[key], str) and not isinstance(d[key], str):
if isinstance(d[key], bytes):
d[key] = d[key].decode(encoding, "ignore")
return d
@ -813,10 +809,10 @@ def groupby_metric(iterable: typing.Dict[str, list], key: str):
records.setdefault(item[key], {}).setdefault(category, []).append(item)
return records
def validate_url(url_string):
try:
result = urlparse(url_string)
return result.scheme and result.scheme in ["http", "https", "ftp", "ftps"]
except Exception:
return False