mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
zerver/lib: remove import six.
This commit is contained in:
@@ -72,7 +72,6 @@ from django.core.mail import EmailMessage
|
|||||||
from django.utils.timezone import now as timezone_now
|
from django.utils.timezone import now as timezone_now
|
||||||
|
|
||||||
from confirmation.models import Confirmation, create_confirmation_link
|
from confirmation.models import Confirmation, create_confirmation_link
|
||||||
import six
|
|
||||||
from six.moves import filter
|
from six.moves import filter
|
||||||
from six.moves import map
|
from six.moves import map
|
||||||
from six.moves import range
|
from six.moves import range
|
||||||
@@ -1267,7 +1266,7 @@ def check_typing_notification(sender, notification_to, operator):
|
|||||||
recipient = recipient_for_emails(notification_to, False,
|
recipient = recipient_for_emails(notification_to, False,
|
||||||
sender, sender)
|
sender, sender)
|
||||||
except ValidationError as e:
|
except ValidationError as e:
|
||||||
assert isinstance(e.messages[0], six.string_types)
|
assert isinstance(e.messages[0], str)
|
||||||
raise JsonableError(e.messages[0])
|
raise JsonableError(e.messages[0])
|
||||||
if recipient.type == Recipient.STREAM:
|
if recipient.type == Recipient.STREAM:
|
||||||
raise ValueError('Forbidden recipient type')
|
raise ValueError('Forbidden recipient type')
|
||||||
@@ -1438,7 +1437,7 @@ def extract_recipients(s):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
data = s
|
data = s
|
||||||
|
|
||||||
if isinstance(data, six.string_types):
|
if isinstance(data, str):
|
||||||
data = data.split(',')
|
data = data.split(',')
|
||||||
|
|
||||||
if not isinstance(data, list):
|
if not isinstance(data, list):
|
||||||
@@ -1608,7 +1607,7 @@ def check_message(sender, client, addressee,
|
|||||||
recipient = recipient_for_user_profiles(user_profiles, not_forged_mirror_message,
|
recipient = recipient_for_user_profiles(user_profiles, not_forged_mirror_message,
|
||||||
forwarder_user_profile, sender)
|
forwarder_user_profile, sender)
|
||||||
except ValidationError as e:
|
except ValidationError as e:
|
||||||
assert isinstance(e.messages[0], six.string_types)
|
assert isinstance(e.messages[0], str)
|
||||||
raise JsonableError(e.messages[0])
|
raise JsonableError(e.messages[0])
|
||||||
else:
|
else:
|
||||||
raise JsonableError(_("Invalid message type"))
|
raise JsonableError(_("Invalid message type"))
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ from zerver.models import (
|
|||||||
UserProfile,
|
UserProfile,
|
||||||
get_user_including_cross_realm,
|
get_user_including_cross_realm,
|
||||||
)
|
)
|
||||||
import six
|
|
||||||
|
|
||||||
def user_profiles_from_unvalidated_emails(emails, realm):
|
def user_profiles_from_unvalidated_emails(emails, realm):
|
||||||
# type: (Iterable[Text], Realm) -> List[UserProfile]
|
# type: (Iterable[Text], Realm) -> List[UserProfile]
|
||||||
@@ -28,7 +27,7 @@ def get_user_profiles(emails, realm):
|
|||||||
try:
|
try:
|
||||||
return user_profiles_from_unvalidated_emails(emails, realm)
|
return user_profiles_from_unvalidated_emails(emails, realm)
|
||||||
except ValidationError as e:
|
except ValidationError as e:
|
||||||
assert isinstance(e.messages[0], six.string_types)
|
assert isinstance(e.messages[0], str)
|
||||||
raise JsonableError(e.messages[0])
|
raise JsonableError(e.messages[0])
|
||||||
|
|
||||||
class Addressee(object):
|
class Addressee(object):
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ from django.db.models import Q
|
|||||||
from zerver.models import UserProfile, Realm
|
from zerver.models import UserProfile, Realm
|
||||||
from zerver.lib.cache import cache_with_key, realm_alert_words_cache_key
|
from zerver.lib.cache import cache_with_key, realm_alert_words_cache_key
|
||||||
import ujson
|
import ujson
|
||||||
import six
|
|
||||||
from typing import Dict, Iterable, List, Text
|
from typing import Dict, Iterable, List, Text
|
||||||
|
|
||||||
@cache_with_key(realm_alert_words_cache_key, timeout=3600*24)
|
@cache_with_key(realm_alert_words_cache_key, timeout=3600*24)
|
||||||
@@ -12,7 +11,7 @@ def alert_words_in_realm(realm):
|
|||||||
users_query = UserProfile.objects.filter(realm=realm, is_active=True)
|
users_query = UserProfile.objects.filter(realm=realm, is_active=True)
|
||||||
alert_word_data = users_query.filter(~Q(alert_words=ujson.dumps([]))).values('id', 'alert_words')
|
alert_word_data = users_query.filter(~Q(alert_words=ujson.dumps([]))).values('id', 'alert_words')
|
||||||
all_user_words = dict((elt['id'], ujson.loads(elt['alert_words'])) for elt in alert_word_data)
|
all_user_words = dict((elt['id'], ujson.loads(elt['alert_words'])) for elt in alert_word_data)
|
||||||
user_ids_with_words = dict((user_id, w) for (user_id, w) in six.iteritems(all_user_words) if len(w))
|
user_ids_with_words = dict((user_id, w) for (user_id, w) in all_user_words.items() if len(w))
|
||||||
return user_ids_with_words
|
return user_ids_with_words
|
||||||
|
|
||||||
def user_alert_words(user_profile):
|
def user_alert_words(user_profile):
|
||||||
|
|||||||
@@ -55,7 +55,6 @@ import zerver.lib.alert_words as alert_words
|
|||||||
import zerver.lib.mention as mention
|
import zerver.lib.mention as mention
|
||||||
from zerver.lib.str_utils import force_str, force_text
|
from zerver.lib.str_utils import force_str, force_text
|
||||||
from zerver.lib.tex import render_tex
|
from zerver.lib.tex import render_tex
|
||||||
import six
|
|
||||||
from six.moves import range, html_parser
|
from six.moves import range, html_parser
|
||||||
|
|
||||||
FullNameInfo = TypedDict('FullNameInfo', {
|
FullNameInfo = TypedDict('FullNameInfo', {
|
||||||
@@ -1247,7 +1246,7 @@ class AtomicLinkPattern(LinkPattern):
|
|||||||
ret = LinkPattern.handleMatch(self, m)
|
ret = LinkPattern.handleMatch(self, m)
|
||||||
if ret is None:
|
if ret is None:
|
||||||
return None
|
return None
|
||||||
if not isinstance(ret, six.string_types):
|
if not isinstance(ret, str):
|
||||||
ret.text = markdown.util.AtomicString(ret.text)
|
ret.text = markdown.util.AtomicString(ret.text)
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
@@ -1459,7 +1458,7 @@ def maybe_update_realm_filters(realm_filters_key):
|
|||||||
if realm_filters_key is None:
|
if realm_filters_key is None:
|
||||||
all_filters = all_realm_filters()
|
all_filters = all_realm_filters()
|
||||||
all_filters[DEFAULT_BUGDOWN_KEY] = []
|
all_filters[DEFAULT_BUGDOWN_KEY] = []
|
||||||
for realm_filters_key, filters in six.iteritems(all_filters):
|
for realm_filters_key, filters in all_filters.items():
|
||||||
make_realm_filters(realm_filters_key, filters)
|
make_realm_filters(realm_filters_key, filters)
|
||||||
# Hack to ensure that getConfig("realm") is right for mirrored Zephyrs
|
# Hack to ensure that getConfig("realm") is right for mirrored Zephyrs
|
||||||
make_realm_filters(ZEPHYR_MIRROR_BUGDOWN_KEY, [])
|
make_realm_filters(ZEPHYR_MIRROR_BUGDOWN_KEY, [])
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ Dependencies:
|
|||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
import markdown
|
import markdown
|
||||||
import six
|
|
||||||
from django.utils.html import escape
|
from django.utils.html import escape
|
||||||
from markdown.extensions.codehilite import CodeHilite, CodeHiliteExtension
|
from markdown.extensions.codehilite import CodeHilite, CodeHiliteExtension
|
||||||
from zerver.lib.str_utils import force_bytes
|
from zerver.lib.str_utils import force_bytes
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ import random
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import hashlib
|
import hashlib
|
||||||
import six
|
|
||||||
|
|
||||||
if False:
|
if False:
|
||||||
from zerver.models import UserProfile, Realm, Message
|
from zerver.models import UserProfile, Realm, Message
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ from typing import Any, Dict, List, Optional, Text
|
|||||||
from zerver.lib.str_utils import force_bytes
|
from zerver.lib.str_utils import force_bytes
|
||||||
import base64
|
import base64
|
||||||
import struct
|
import struct
|
||||||
import six
|
|
||||||
|
|
||||||
# Some DER encoding stuff. Bleh. This is because the ccache contains a
|
# Some DER encoding stuff. Bleh. This is because the ccache contains a
|
||||||
# DER-encoded krb5 Ticket structure, whereas Webathena deserializes
|
# DER-encoded krb5 Ticket structure, whereas Webathena deserializes
|
||||||
@@ -54,7 +53,7 @@ def der_encode_tlv(tag, value):
|
|||||||
|
|
||||||
def der_encode_integer_value(val):
|
def der_encode_integer_value(val):
|
||||||
# type: (int) -> bytes
|
# type: (int) -> bytes
|
||||||
if not isinstance(val, six.integer_types):
|
if not isinstance(val, int):
|
||||||
raise TypeError("int")
|
raise TypeError("int")
|
||||||
# base 256, MSB first, two's complement, minimum number of octets
|
# base 256, MSB first, two's complement, minimum number of octets
|
||||||
# necessary. This has a number of annoying edge cases:
|
# necessary. This has a number of annoying edge cases:
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ from typing import Any, Callable, Dict, Iterable, List, Set, Tuple, Text
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
import datetime
|
import datetime
|
||||||
import pytz
|
import pytz
|
||||||
import six
|
|
||||||
|
|
||||||
from django.db.models import Q, QuerySet
|
from django.db.models import Q, QuerySet
|
||||||
from django.template import loader
|
from django.template import loader
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ from zerver.models import Stream, Recipient, \
|
|||||||
get_user_profile_by_id, get_display_recipient, get_recipient, \
|
get_user_profile_by_id, get_display_recipient, get_recipient, \
|
||||||
Message, Realm, UserProfile, get_system_bot
|
Message, Realm, UserProfile, get_system_bot
|
||||||
from six import binary_type
|
from six import binary_type
|
||||||
import six
|
|
||||||
import talon
|
import talon
|
||||||
from talon import quotations
|
from talon import quotations
|
||||||
|
|
||||||
@@ -162,7 +161,7 @@ def send_to_missed_message_address(address, message):
|
|||||||
|
|
||||||
# Testing with basestring so we don't depend on the list return type from
|
# Testing with basestring so we don't depend on the list return type from
|
||||||
# get_display_recipient
|
# get_display_recipient
|
||||||
if not isinstance(display_recipient, six.string_types):
|
if not isinstance(display_recipient, str):
|
||||||
recipient_str = u','.join([user['email'] for user in display_recipient])
|
recipient_str = u','.join([user['email'] for user in display_recipient])
|
||||||
else:
|
else:
|
||||||
recipient_str = display_recipient
|
recipient_str = display_recipient
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
import six
|
|
||||||
|
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
@@ -52,7 +51,7 @@ def email_browser_error(report):
|
|||||||
more_info = report['more_info']
|
more_info = report['more_info']
|
||||||
if more_info is not None:
|
if more_info is not None:
|
||||||
body += "\nAdditional information:"
|
body += "\nAdditional information:"
|
||||||
for (key, value) in six.iteritems(more_info):
|
for (key, value) in more_info.items():
|
||||||
body += "\n %s: %s" % (key, value)
|
body += "\n %s: %s" % (key, value)
|
||||||
|
|
||||||
body += "\n\nLog:\n%s" % (report['log'],)
|
body += "\n\nLog:\n%s" % (report['log'],)
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
# high-level documentation on how this system works.
|
# high-level documentation on how this system works.
|
||||||
|
|
||||||
import copy
|
import copy
|
||||||
import six
|
|
||||||
import ujson
|
import ujson
|
||||||
|
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|||||||
@@ -11,8 +11,7 @@ Currently we have strings of 3 semantic types:
|
|||||||
typing.Text (which is `str` in python 3 and `unicode` in python 2).
|
typing.Text (which is `str` in python 3 and `unicode` in python 2).
|
||||||
|
|
||||||
2. binary strings: These strings are used to represent binary data.
|
2. binary strings: These strings are used to represent binary data.
|
||||||
This should be of type six.binary_type (which is `bytes` in python 3
|
This should be of type `bytes`
|
||||||
and `str` in python 2).
|
|
||||||
|
|
||||||
3. native strings: These strings are for internal use only. Strings of
|
3. native strings: These strings are for internal use only. Strings of
|
||||||
this type are not meant to be stored in database, displayed to end
|
this type are not meant to be stored in database, displayed to end
|
||||||
@@ -30,27 +29,25 @@ force_text and force_bytes.
|
|||||||
It is recommended to use the utility functions for other string conversions.
|
It is recommended to use the utility functions for other string conversions.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import six
|
|
||||||
from six import binary_type
|
|
||||||
from typing import Any, Dict, Mapping, Union, TypeVar, Text
|
from typing import Any, Dict, Mapping, Union, TypeVar, Text
|
||||||
|
|
||||||
NonBinaryStr = TypeVar('NonBinaryStr', str, Text)
|
NonBinaryStr = TypeVar('NonBinaryStr', str, Text)
|
||||||
# This is used to represent text or native strings
|
# This is used to represent text or native strings
|
||||||
|
|
||||||
def force_text(s, encoding='utf-8'):
|
def force_text(s, encoding='utf-8'):
|
||||||
# type: (Union[Text, binary_type], str) -> Text
|
# type: (Union[Text, bytes], str) -> Text
|
||||||
"""converts a string to a text string"""
|
"""converts a string to a text string"""
|
||||||
if isinstance(s, Text):
|
if isinstance(s, Text):
|
||||||
return s
|
return s
|
||||||
elif isinstance(s, binary_type):
|
elif isinstance(s, bytes):
|
||||||
return s.decode(encoding)
|
return s.decode(encoding)
|
||||||
else:
|
else:
|
||||||
raise TypeError("force_text expects a string type")
|
raise TypeError("force_text expects a string type")
|
||||||
|
|
||||||
def force_bytes(s, encoding='utf-8'):
|
def force_bytes(s, encoding='utf-8'):
|
||||||
# type: (Union[Text, binary_type], str) -> binary_type
|
# type: (Union[Text, bytes], str) -> bytes
|
||||||
"""converts a string to binary string"""
|
"""converts a string to binary string"""
|
||||||
if isinstance(s, binary_type):
|
if isinstance(s, bytes):
|
||||||
return s
|
return s
|
||||||
elif isinstance(s, Text):
|
elif isinstance(s, Text):
|
||||||
return s.encode(encoding)
|
return s.encode(encoding)
|
||||||
@@ -58,13 +55,13 @@ def force_bytes(s, encoding='utf-8'):
|
|||||||
raise TypeError("force_bytes expects a string type")
|
raise TypeError("force_bytes expects a string type")
|
||||||
|
|
||||||
def force_str(s, encoding='utf-8'):
|
def force_str(s, encoding='utf-8'):
|
||||||
# type: (Union[Text, binary_type], str) -> str
|
# type: (Union[Text, bytes], str) -> str
|
||||||
"""converts a string to a native string"""
|
"""converts a string to a native string"""
|
||||||
if isinstance(s, str):
|
if isinstance(s, str):
|
||||||
return s
|
return s
|
||||||
elif isinstance(s, Text):
|
elif isinstance(s, Text):
|
||||||
return s.encode(encoding)
|
return s.encode(encoding)
|
||||||
elif isinstance(s, binary_type):
|
elif isinstance(s, bytes):
|
||||||
return s.decode(encoding)
|
return s.decode(encoding)
|
||||||
else:
|
else:
|
||||||
raise TypeError("force_str expects a string type")
|
raise TypeError("force_str expects a string type")
|
||||||
@@ -72,7 +69,7 @@ def force_str(s, encoding='utf-8'):
|
|||||||
def dict_with_str_keys(dct, encoding='utf-8'):
|
def dict_with_str_keys(dct, encoding='utf-8'):
|
||||||
# type: (Mapping[NonBinaryStr, Any], str) -> Dict[str, Any]
|
# type: (Mapping[NonBinaryStr, Any], str) -> Dict[str, Any]
|
||||||
"""applies force_str on the keys of a dict (non-recursively)"""
|
"""applies force_str on the keys of a dict (non-recursively)"""
|
||||||
return {force_str(key, encoding): value for key, value in six.iteritems(dct)}
|
return {force_str(key, encoding): value for key, value in dct.items()}
|
||||||
|
|
||||||
class ModelReprMixin(object):
|
class ModelReprMixin(object):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -61,7 +61,6 @@ from six import binary_type
|
|||||||
from zerver.lib.str_utils import NonBinaryStr
|
from zerver.lib.str_utils import NonBinaryStr
|
||||||
|
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
import six
|
|
||||||
|
|
||||||
API_KEYS = {} # type: Dict[Text, Text]
|
API_KEYS = {} # type: Dict[Text, Text]
|
||||||
|
|
||||||
@@ -380,7 +379,7 @@ class ZulipTestCase(TestCase):
|
|||||||
message_type_name = "stream"
|
message_type_name = "stream"
|
||||||
else:
|
else:
|
||||||
raise AssertionError("Recipient type should be an Recipient.STREAM type enum")
|
raise AssertionError("Recipient type should be an Recipient.STREAM type enum")
|
||||||
if isinstance(raw_recipients, six.string_types):
|
if isinstance(raw_recipients, str):
|
||||||
recipient_list = [raw_recipients]
|
recipient_list = [raw_recipients]
|
||||||
else:
|
else:
|
||||||
recipient_list = raw_recipients
|
recipient_list = raw_recipients
|
||||||
|
|||||||
@@ -58,7 +58,6 @@ from six import binary_type
|
|||||||
from zerver.lib.str_utils import NonBinaryStr
|
from zerver.lib.str_utils import NonBinaryStr
|
||||||
|
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
import six
|
|
||||||
import fakeldap
|
import fakeldap
|
||||||
import ldap
|
import ldap
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
from types import TracebackType
|
from types import TracebackType
|
||||||
from typing import Any, Callable, Optional, Tuple, Type, TypeVar
|
from typing import Any, Callable, Optional, Tuple, Type, TypeVar
|
||||||
|
|
||||||
|
import six
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import ctypes
|
import ctypes
|
||||||
import threading
|
import threading
|
||||||
import six
|
|
||||||
from six.moves import range
|
from six.moves import range
|
||||||
|
|
||||||
# Based on http://code.activestate.com/recipes/483752/
|
# Based on http://code.activestate.com/recipes/483752/
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ from sqlalchemy.sql import (
|
|||||||
Selectable
|
Selectable
|
||||||
)
|
)
|
||||||
|
|
||||||
import six
|
|
||||||
import ujson
|
import ujson
|
||||||
|
|
||||||
def get_topic_mutes(user_profile):
|
def get_topic_mutes(user_profile):
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ for any particular type of object.
|
|||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.core.validators import validate_email, URLValidator
|
from django.core.validators import validate_email, URLValidator
|
||||||
import six
|
|
||||||
from typing import Any, Callable, Iterable, Optional, Tuple, TypeVar, Text
|
from typing import Any, Callable, Iterable, Optional, Tuple, TypeVar, Text
|
||||||
|
|
||||||
from zerver.lib.request import JsonableError
|
from zerver.lib.request import JsonableError
|
||||||
@@ -37,7 +36,7 @@ Validator = Callable[[str, Any], Optional[str]]
|
|||||||
|
|
||||||
def check_string(var_name, val):
|
def check_string(var_name, val):
|
||||||
# type: (str, Any) -> Optional[str]
|
# type: (str, Any) -> Optional[str]
|
||||||
if not isinstance(val, six.string_types):
|
if not isinstance(val, str):
|
||||||
return _('%s is not a string') % (var_name,)
|
return _('%s is not a string') % (var_name,)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user