zerver core: Remove unused imports.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
This commit is contained in:
Anders Kaseorg
2019-02-02 14:53:55 -08:00
committed by Tim Abbott
parent 3968fe9fdf
commit f0ecb93515
52 changed files with 85 additions and 196 deletions

View File

@@ -1,5 +1,5 @@
from typing import Any, Dict, List, Optional from typing import Any, Dict, Optional
from django.http import HttpRequest from django.http import HttpRequest
from django.conf import settings from django.conf import settings

View File

@@ -2,7 +2,6 @@
import django_otp import django_otp
from two_factor.utils import default_device from two_factor.utils import default_device
from django_otp import user_has_device, _user_is_authenticated from django_otp import user_has_device, _user_is_authenticated
from django_otp.conf import settings as otp_settings
from django.contrib.auth.decorators import user_passes_test as django_user_passes_test from django.contrib.auth.decorators import user_passes_test as django_user_passes_test
from django.contrib.auth.models import AnonymousUser from django.contrib.auth.models import AnonymousUser
@@ -29,8 +28,7 @@ from zerver.lib.types import ViewFuncT
from zerver.lib.rate_limiter import incr_ratelimit, is_ratelimited, \ from zerver.lib.rate_limiter import incr_ratelimit, is_ratelimited, \
api_calls_left, RateLimitedUser, RateLimiterLockingException api_calls_left, RateLimitedUser, RateLimiterLockingException
from zerver.lib.request import REQ, has_request_variables, JsonableError, RequestVariableMissingError from zerver.lib.request import REQ, has_request_variables, RequestVariableMissingError
from django.core.handlers import base
from functools import wraps from functools import wraps
import base64 import base64
@@ -40,7 +38,7 @@ import logging
from io import BytesIO from io import BytesIO
import urllib import urllib
from typing import Union, Any, Callable, Sequence, Dict, Optional, TypeVar, Tuple, cast from typing import Union, Any, Callable, Dict, Optional, TypeVar, Tuple
from zerver.lib.logging_util import log_to_file from zerver.lib.logging_util import log_to_file
# This is a hack to ensure that RemoteZulipServer always exists even # This is a hack to ensure that RemoteZulipServer always exists even

View File

@@ -7,10 +7,8 @@ from django.contrib.auth.forms import SetPasswordForm, AuthenticationForm, \
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.urls import reverse from django.urls import reverse
from django.core.validators import validate_email from django.core.validators import validate_email
from django.db.models.query import QuerySet
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django.contrib.auth.tokens import default_token_generator from django.contrib.auth.tokens import default_token_generator
from django.contrib.sites.shortcuts import get_current_site
from django.utils.http import urlsafe_base64_encode from django.utils.http import urlsafe_base64_encode
from django.utils.encoding import force_bytes from django.utils.encoding import force_bytes
from django.contrib.auth.tokens import PasswordResetTokenGenerator from django.contrib.auth.tokens import PasswordResetTokenGenerator
@@ -22,7 +20,7 @@ from zerver.lib.actions import do_change_password, email_not_system_bot, \
from zerver.lib.name_restrictions import is_reserved_subdomain, is_disposable_domain from zerver.lib.name_restrictions import is_reserved_subdomain, is_disposable_domain
from zerver.lib.request import JsonableError from zerver.lib.request import JsonableError
from zerver.lib.send_email import send_email, FromAddress from zerver.lib.send_email import send_email, FromAddress
from zerver.lib.subdomains import get_subdomain, user_matches_subdomain, is_root_domain_available from zerver.lib.subdomains import get_subdomain, is_root_domain_available
from zerver.lib.users import check_full_name from zerver.lib.users import check_full_name
from zerver.models import Realm, get_user_by_delivery_email, UserProfile, get_realm, \ from zerver.models import Realm, get_user_by_delivery_email, UserProfile, get_realm, \
email_to_domain, \ email_to_domain, \
@@ -34,7 +32,7 @@ import logging
import re import re
import DNS import DNS
from typing import Any, Callable, List, Optional, Dict from typing import Any, List, Optional, Dict
from two_factor.forms import AuthenticationTokenForm as TwoFactorAuthenticationTokenForm from two_factor.forms import AuthenticationTokenForm as TwoFactorAuthenticationTokenForm
from two_factor.utils import totp_digits from two_factor.utils import totp_digits

View File

@@ -1,6 +1,6 @@
from typing import ( from typing import (
AbstractSet, Any, AnyStr, Callable, Dict, Iterable, List, Mapping, MutableMapping, AbstractSet, Any, Callable, Dict, Iterable, List, Mapping, MutableMapping,
Optional, Sequence, Set, Tuple, TypeVar, Union, cast Optional, Sequence, Set, Tuple, Union, cast
) )
from mypy_extensions import TypedDict from mypy_extensions import TypedDict
@@ -77,7 +77,6 @@ from zerver.lib.users import (
check_bot_name_available, check_bot_name_available,
check_full_name, check_full_name,
get_api_key, get_api_key,
user_ids_to_users
) )
from zerver.lib.user_status import ( from zerver.lib.user_status import (
update_user_status, update_user_status,
@@ -88,10 +87,10 @@ from zerver.models import Realm, RealmEmoji, Stream, UserProfile, UserActivity,
RealmDomain, Service, SubMessage, \ RealmDomain, Service, SubMessage, \
Subscription, Recipient, Message, Attachment, UserMessage, RealmAuditLog, \ Subscription, Recipient, Message, Attachment, UserMessage, RealmAuditLog, \
UserHotspot, MultiuseInvite, ScheduledMessage, UserStatus, \ UserHotspot, MultiuseInvite, ScheduledMessage, UserStatus, \
Client, DefaultStream, DefaultStreamGroup, UserPresence, PushDeviceToken, \ Client, DefaultStream, DefaultStreamGroup, UserPresence, \
ScheduledEmail, MAX_TOPIC_NAME_LENGTH, \ ScheduledEmail, MAX_TOPIC_NAME_LENGTH, \
MAX_MESSAGE_LENGTH, get_client, get_stream, get_personal_recipient, get_huddle, \ MAX_MESSAGE_LENGTH, get_client, get_stream, get_personal_recipient, \
get_user_profile_by_id, PreregistrationUser, get_display_recipient, \ get_user_profile_by_id, PreregistrationUser, \
get_realm, bulk_get_recipients, get_stream_recipient, get_stream_recipients, \ get_realm, bulk_get_recipients, get_stream_recipient, get_stream_recipients, \
email_allowed_for_realm, email_to_username, display_recipient_cache_key, \ email_allowed_for_realm, email_to_username, display_recipient_cache_key, \
get_user_by_delivery_email, get_stream_cache_key, active_non_guest_user_ids, \ get_user_by_delivery_email, get_stream_cache_key, active_non_guest_user_ids, \
@@ -101,7 +100,7 @@ from zerver.models import Realm, RealmEmoji, Stream, UserProfile, UserActivity,
Reaction, EmailChangeStatus, CustomProfileField, \ Reaction, EmailChangeStatus, CustomProfileField, \
custom_profile_fields_for_realm, get_huddle_user_ids, \ custom_profile_fields_for_realm, get_huddle_user_ids, \
CustomProfileFieldValue, validate_attachment_request, get_system_bot, \ CustomProfileFieldValue, validate_attachment_request, get_system_bot, \
get_display_recipient_by_id, query_for_ids, get_huddle_recipient, \ query_for_ids, get_huddle_recipient, \
UserGroup, UserGroupMembership, get_default_stream_groups, \ UserGroup, UserGroupMembership, get_default_stream_groups, \
get_bot_services, get_bot_dicts_in_realm, DomainNotAllowedForRealmError, \ get_bot_services, get_bot_dicts_in_realm, DomainNotAllowedForRealmError, \
DisposableEmailError, EmailContainsPlusError, \ DisposableEmailError, EmailContainsPlusError, \
@@ -130,23 +129,21 @@ from zerver.lib.utils import generate_api_key
from zerver.lib.create_user import create_user from zerver.lib.create_user import create_user
from zerver.lib import bugdown from zerver.lib import bugdown
from zerver.lib.cache import cache_with_key, cache_set, \ from zerver.lib.cache import cache_with_key, cache_set, \
user_profile_by_email_cache_key, user_profile_cache_key, \ user_profile_by_email_cache_key, \
cache_set_many, cache_delete, cache_delete_many cache_set_many, cache_delete, cache_delete_many
from zerver.decorator import statsd_increment from zerver.decorator import statsd_increment
from zerver.lib.utils import log_statsd_event, statsd from zerver.lib.utils import log_statsd_event, statsd
from zerver.lib.html_diff import highlight_html_differences
from zerver.lib.i18n import get_language_name from zerver.lib.i18n import get_language_name
from zerver.lib.alert_words import user_alert_words, add_user_alert_words, \ from zerver.lib.alert_words import add_user_alert_words, \
remove_user_alert_words, set_user_alert_words remove_user_alert_words, set_user_alert_words
from zerver.lib.notifications import clear_scheduled_emails, \ from zerver.lib.notifications import clear_scheduled_emails, \
clear_scheduled_invitation_emails, enqueue_welcome_emails clear_scheduled_invitation_emails, enqueue_welcome_emails
from zerver.lib.narrow import check_supported_events_narrow_filter
from zerver.lib.exceptions import JsonableError, ErrorCode, BugdownRenderingException from zerver.lib.exceptions import JsonableError, ErrorCode, BugdownRenderingException
from zerver.lib.sessions import delete_user_sessions from zerver.lib.sessions import delete_user_sessions
from zerver.lib.upload import attachment_url_re, attachment_url_to_path_id, \ from zerver.lib.upload import attachment_url_re, attachment_url_to_path_id, \
claim_attachment, delete_message_image, upload_emoji_image, delete_avatar_image claim_attachment, delete_message_image, upload_emoji_image, delete_avatar_image
from zerver.lib.video_calls import request_zoom_video_call_url from zerver.lib.video_calls import request_zoom_video_call_url
from zerver.tornado.event_queue import request_event_queue, send_event from zerver.tornado.event_queue import send_event
from zerver.lib.types import ProfileFieldData from zerver.lib.types import ProfileFieldData
from analytics.models import StreamCount from analytics.models import StreamCount

View File

@@ -1,10 +1,8 @@
from typing import Iterable, List, Optional, Sequence, Union, cast from typing import Iterable, List, Optional, Sequence, Union, cast
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from zerver.lib.exceptions import JsonableError from zerver.lib.exceptions import JsonableError
from zerver.lib.request import JsonableError
from zerver.models import ( from zerver.models import (
Realm, Realm,
UserProfile, UserProfile,

View File

@@ -1,5 +1,4 @@
from typing import Dict, Any, Optional, Iterable from typing import Dict, Any, Optional, Iterable
from io import StringIO
import json import json
import os import os

View File

@@ -1,27 +1,18 @@
import json import json
import logging
import os import os
import signal
import sys
import time
import re
import importlib import importlib
from zerver.lib.actions import internal_send_private_message, \ from zerver.lib.actions import internal_send_private_message, \
internal_send_stream_message, internal_send_huddle_message internal_send_stream_message, internal_send_huddle_message
from zerver.models import UserProfile, get_active_user from zerver.models import UserProfile, get_active_user
from zerver.lib.bot_storage import get_bot_storage, set_bot_storage, \ from zerver.lib.bot_storage import get_bot_storage, set_bot_storage, \
is_key_in_bot_storage, get_bot_storage_size, remove_bot_storage is_key_in_bot_storage, remove_bot_storage
from zerver.lib.bot_config import get_bot_config, ConfigError from zerver.lib.bot_config import get_bot_config, ConfigError
from zerver.lib.integrations import EMBEDDED_BOTS from zerver.lib.integrations import EMBEDDED_BOTS
from zerver.lib.topic import get_topic_from_message_info from zerver.lib.topic import get_topic_from_message_info
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
import configparser from typing import Any, Dict
from mypy_extensions import NoReturn
from typing import Any, Optional, List, Dict
from types import ModuleType
our_dir = os.path.dirname(os.path.abspath(__file__)) our_dir = os.path.dirname(os.path.abspath(__file__))

View File

@@ -1,8 +1,8 @@
from typing import Any, Dict, Iterable, List, Mapping, Optional, Set, Tuple from typing import Any, Dict, List, Optional, Set, Tuple
from zerver.lib.initial_password import initial_password from zerver.lib.initial_password import initial_password
from zerver.models import Realm, Stream, UserProfile, Huddle, \ from zerver.models import Realm, Stream, UserProfile, \
Subscription, Recipient, Client, RealmAuditLog, get_huddle_hash Subscription, Recipient, RealmAuditLog
from zerver.lib.create_user import create_user_profile from zerver.lib.create_user import create_user_profile
from zerver.lib.bugdown import convert as bugdown_convert from zerver.lib.bugdown import convert as bugdown_convert

View File

@@ -8,9 +8,8 @@ from django.conf import settings
from django.db.models import Q from django.db.models import Q
from django.core.cache.backends.base import BaseCache from django.core.cache.backends.base import BaseCache
from django.http import HttpRequest from django.http import HttpRequest
from django import template
from typing import cast, Any, Callable, Dict, Iterable, List, Optional, Union, Set, TypeVar, Tuple from typing import Any, Callable, Dict, Iterable, List, Optional, TypeVar, Tuple
from zerver.lib.utils import statsd, statsd_key, make_safe_digest from zerver.lib.utils import statsd, statsd_key, make_safe_digest
import time import time

View File

@@ -13,7 +13,7 @@ from django.conf import settings
from zerver.models import Message, UserProfile, Stream, get_stream_cache_key, \ from zerver.models import Message, UserProfile, Stream, get_stream_cache_key, \
Recipient, get_recipient_cache_key, Client, get_client_cache_key, \ Recipient, get_recipient_cache_key, Client, get_client_cache_key, \
Huddle, huddle_hash_cache_key Huddle, huddle_hash_cache_key
from zerver.lib.cache import cache_with_key, cache_set, \ from zerver.lib.cache import \
user_profile_by_api_key_cache_key, \ user_profile_by_api_key_cache_key, \
user_profile_cache_key, get_remote_cache_time, get_remote_cache_requests, \ user_profile_cache_key, get_remote_cache_time, get_remote_cache_requests, \
cache_set_many, to_dict_cache_key_id cache_set_many, to_dict_cache_key_id

View File

@@ -6,10 +6,7 @@ from zerver.lib.upload import copy_avatar
from zerver.lib.hotspots import copy_hotpots from zerver.lib.hotspots import copy_hotpots
from zerver.lib.utils import generate_api_key from zerver.lib.utils import generate_api_key
import base64
import ujson import ujson
import os
import string
from typing import Optional from typing import Optional

View File

@@ -1,4 +1,4 @@
from typing import Any, Callable, Dict, Iterable, List, Set, Tuple, Union from typing import Any, Dict, List, Set, Tuple, Union
from collections import defaultdict from collections import defaultdict
import datetime import datetime
@@ -6,7 +6,6 @@ import logging
import pytz import pytz
from django.db.models import Q, QuerySet from django.db.models import Q, QuerySet
from django.template import loader
from django.conf import settings from django.conf import settings
from django.utils.timezone import now as timezone_now from django.utils.timezone import now as timezone_now
@@ -14,7 +13,7 @@ from confirmation.models import one_click_unsubscribe_link
from zerver.lib.notifications import build_message_list from zerver.lib.notifications import build_message_list
from zerver.lib.send_email import send_future_email, FromAddress from zerver.lib.send_email import send_future_email, FromAddress
from zerver.lib.url_encoding import encode_stream from zerver.lib.url_encoding import encode_stream
from zerver.models import UserProfile, UserMessage, Recipient, Stream, \ from zerver.models import UserProfile, UserMessage, Recipient, \
Subscription, UserActivity, get_active_streams, get_user_profile_by_id, \ Subscription, UserActivity, get_active_streams, get_user_profile_by_id, \
Realm, Message Realm, Message
from zerver.context_processors import common_context from zerver.context_processors import common_context

View File

@@ -1,4 +1,4 @@
from typing import Any, Dict, List, Optional, Union, cast from typing import Any, Dict, Optional
import logging import logging
import re import re
@@ -21,8 +21,7 @@ from zerver.lib.utils import generate_random_token
from zerver.lib.send_email import FromAddress from zerver.lib.send_email import FromAddress
from zerver.models import Stream, Recipient, \ from zerver.models import Stream, Recipient, \
get_user_profile_by_id, get_display_recipient, get_personal_recipient, \ get_user_profile_by_id, get_display_recipient, get_personal_recipient, \
Message, Realm, UserProfile, get_system_bot, get_user, MAX_TOPIC_NAME_LENGTH, \ Message, Realm, UserProfile, get_system_bot, get_user
MAX_MESSAGE_LENGTH
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@@ -1,13 +1,11 @@
# System documented in https://zulip.readthedocs.io/en/latest/subsystems/logging.html # System documented in https://zulip.readthedocs.io/en/latest/subsystems/logging.html
import logging
from collections import defaultdict from collections import defaultdict
from django.conf import settings from django.conf import settings
from django.core.mail import mail_admins from django.core.mail import mail_admins
from django.http import HttpResponse from django.http import HttpResponse
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from typing import cast, Any, Dict, Optional from typing import Any, Dict, Optional
from zerver.filters import clean_data_from_query_parameters from zerver.filters import clean_data_from_query_parameters
from zerver.models import get_system_bot from zerver.models import get_system_bot

View File

@@ -2,20 +2,18 @@
# high-level documentation on how this system works. # high-level documentation on how this system works.
import copy import copy
import ujson
from collections import defaultdict from collections import defaultdict
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django.conf import settings from django.conf import settings
from importlib import import_module from importlib import import_module
from typing import ( from typing import (
cast, Any, Callable, Dict, Iterable, List, Optional, Sequence, Set, Tuple, Union Any, Callable, Dict, Iterable, Optional, Sequence, Set
) )
session_engine = import_module(settings.SESSION_ENGINE) session_engine = import_module(settings.SESSION_ENGINE)
from zerver.lib.alert_words import user_alert_words from zerver.lib.alert_words import user_alert_words
from zerver.lib.attachments import user_attachments
from zerver.lib.avatar import avatar_url, get_avatar_field from zerver.lib.avatar import avatar_url, get_avatar_field
from zerver.lib.bot_config import load_bot_config_template from zerver.lib.bot_config import load_bot_config_template
from zerver.lib.hotspots import get_next_hotspots from zerver.lib.hotspots import get_next_hotspots
@@ -35,7 +33,6 @@ from zerver.lib.request import JsonableError
from zerver.lib.topic import TOPIC_NAME from zerver.lib.topic import TOPIC_NAME
from zerver.lib.topic_mutes import get_topic_mutes from zerver.lib.topic_mutes import get_topic_mutes
from zerver.lib.actions import ( from zerver.lib.actions import (
validate_user_access_to_subscribers_helper,
do_get_streams, get_default_streams_for_realm, do_get_streams, get_default_streams_for_realm,
gather_subscriptions_helper, get_cross_realm_dicts, gather_subscriptions_helper, get_cross_realm_dicts,
get_status_dict, streams_to_dicts_sorted, get_status_dict, streams_to_dicts_sorted,

View File

@@ -1,5 +1,5 @@
from enum import Enum from enum import Enum
from typing import Any, Dict, List, Optional, Type from typing import Any, Dict, List, Type
from mypy_extensions import NoReturn from mypy_extensions import NoReturn
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied

View File

@@ -6,8 +6,7 @@ from typing import Any, Mapping, Optional
from zerver.lib.actions import internal_send_message from zerver.lib.actions import internal_send_message
from zerver.lib.send_email import FromAddress from zerver.lib.send_email import FromAddress
from zerver.lib.redis_utils import get_redis_client from zerver.lib.redis_utils import get_redis_client
from zerver.models import get_realm, get_system_bot, \ from zerver.models import get_system_bot
UserProfile, Realm
import time import time

View File

@@ -1,7 +1,7 @@
import itertools import itertools
import ujson import ujson
import random import random
from typing import List, Dict, Any, Optional from typing import List, Dict, Any
def load_config() -> Dict[str, Any]: def load_config() -> Dict[str, Any]:
with open("zerver/tests/fixtures/config.generate_data.json", "r") as infile: with open("zerver/tests/fixtures/config.generate_data.json", "r") as infile:

View File

@@ -1,16 +1,12 @@
import os import os
import pathlib import pathlib
from typing import Dict, List, Optional, TypeVar, Any from typing import Dict, List, Optional, Any
from django.conf import settings from django.conf import settings
from django.conf.urls import url from django.conf.urls import url
from django.urls.resolvers import LocaleRegexProvider from django.urls.resolvers import LocaleRegexProvider
from django.utils.module_loading import import_string from django.utils.module_loading import import_string
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django.template import loader
from zerver.templatetags.app_filters import render_markdown_path
"""This module declares all of the (documented) integrations available """This module declares all of the (documented) integrations available

View File

@@ -1,5 +1,5 @@
import json import json
from typing import Any, Dict, Iterator, Optional from typing import Any, Iterator
# Taken from # Taken from
# https://github.com/simplejson/simplejson/blob/8edc82afcf6f7512b05fba32baa536fe756bd273/simplejson/encoder.py#L378-L402 # https://github.com/simplejson/simplejson/blob/8edc82afcf6f7512b05fba32baa536fe756bd273/simplejson/encoder.py#L378-L402

View File

@@ -1,6 +1,5 @@
# Library code for use in management commands # Library code for use in management commands
import sys
import time import time
from argparse import ArgumentParser, RawTextHelpFormatter from argparse import ArgumentParser, RawTextHelpFormatter

View File

@@ -1,7 +1,6 @@
import os import os
import subprocess import subprocess
import logging import logging
import difflib
class DiffException(Exception): class DiffException(Exception):
pass pass

View File

@@ -16,7 +16,6 @@ from zerver.lib.cache import (
generic_bulk_cached_fetch, generic_bulk_cached_fetch,
to_dict_cache_key, to_dict_cache_key,
to_dict_cache_key_id, to_dict_cache_key_id,
cache_set,
) )
from zerver.lib.request import JsonableError from zerver.lib.request import JsonableError
from zerver.lib.stream_subscription import ( from zerver.lib.stream_subscription import (

View File

@@ -1,8 +1,6 @@
from django.db.models.query import QuerySet
from psycopg2.extensions import cursor from psycopg2.extensions import cursor
from typing import Any, Callable, Dict, List, Tuple, TypeVar from typing import List, TypeVar
import re
import time import time
CursorObj = TypeVar('CursorObj', bound=cursor) CursorObj = TypeVar('CursorObj', bound=cursor)

View File

@@ -1,11 +1,9 @@
from typing import cast, Any, Dict, Iterable, List, Mapping, Optional, Sequence, Tuple from typing import Any, Dict, Iterable, List, Optional, Tuple
from confirmation.models import Confirmation, one_click_unsubscribe_link from confirmation.models import one_click_unsubscribe_link
from django.conf import settings from django.conf import settings
from django.template import loader
from django.utils.timezone import now as timezone_now from django.utils.timezone import now as timezone_now
from django.utils.translation import ugettext as _
from django.contrib.auth import get_backends from django.contrib.auth import get_backends
from django_auth_ldap.backend import LDAPBackend from django_auth_ldap.backend import LDAPBackend
@@ -22,21 +20,18 @@ from zerver.models import (
Stream, Stream,
get_display_recipient, get_display_recipient,
UserProfile, UserProfile,
get_user,
get_user_profile_by_id, get_user_profile_by_id,
receives_offline_email_notifications, receives_offline_email_notifications,
get_context_for_message, get_context_for_message,
Message, Message,
Realm,
) )
from datetime import timedelta, datetime from datetime import timedelta
from email.utils import formataddr from email.utils import formataddr
from lxml.cssselect import CSSSelector from lxml.cssselect import CSSSelector
import lxml.html import lxml.html
import re import re
import subprocess import subprocess
import ujson
from collections import defaultdict from collections import defaultdict
import pytz import pytz
@@ -529,7 +524,7 @@ def enqueue_welcome_emails(user: UserProfile, realm_creation: bool=False) -> Non
else: else:
context['getting_started_link'] = "https://zulipchat.com" context['getting_started_link'] = "https://zulipchat.com"
from zproject.backends import email_belongs_to_ldap, require_email_format_usernames from zproject.backends import email_belongs_to_ldap
if email_belongs_to_ldap(user.realm, user.email): if email_belongs_to_ldap(user.realm, user.email):
context["ldap"] = True context["ldap"] = True

View File

@@ -1,12 +1,12 @@
from django.conf import settings from django.conf import settings
from zerver.lib.actions import set_default_streams, bulk_add_subscriptions, \ from zerver.lib.actions import set_default_streams, \
internal_prep_stream_message, internal_send_private_message, \ internal_prep_stream_message, internal_send_private_message, \
create_stream_if_needed, create_streams_if_needed, do_send_messages, \ create_streams_if_needed, do_send_messages, \
do_add_reaction_legacy, create_users, missing_any_realm_internal_bots do_add_reaction_legacy, create_users, missing_any_realm_internal_bots
from zerver.lib.topic import get_turtle_message from zerver.lib.topic import get_turtle_message
from zerver.models import Realm, UserProfile, Message, Reaction, get_system_bot from zerver.models import Realm, UserProfile, get_system_bot
from typing import Any, Dict, List, Mapping from typing import Any, Dict, List, Mapping

View File

@@ -1,24 +1,18 @@
from typing import Any, AnyStr, Iterable, Dict, Tuple, Callable, Mapping, Optional from typing import Any, AnyStr, Dict, Optional
import requests import requests
import json import json
import sys
import inspect
import logging import logging
import re
import urllib
from functools import reduce
from requests import Response from requests import Response
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from zerver.models import Realm, UserProfile, get_user_profile_by_id, get_client, \ from zerver.models import UserProfile, get_user_profile_by_id, get_client, \
GENERIC_INTERFACE, Service, SLACK_INTERFACE, email_to_domain GENERIC_INTERFACE, Service, SLACK_INTERFACE, email_to_domain
from zerver.lib.actions import check_send_message from zerver.lib.actions import check_send_message
from zerver.lib.queue import retry_event from zerver.lib.queue import retry_event
from zerver.lib.topic import get_topic_from_message_info from zerver.lib.topic import get_topic_from_message_info
from zerver.lib.url_encoding import near_message_url from zerver.lib.url_encoding import near_message_url
from zerver.lib.validator import check_dict, check_string
from zerver.decorator import JsonableError from zerver.decorator import JsonableError
from version import ZULIP_VERSION from version import ZULIP_VERSION

View File

@@ -2,15 +2,12 @@
import base64 import base64
import binascii import binascii
from functools import partial
import logging import logging
import lxml.html import lxml.html
import os
import re import re
import time import time
import random
from typing import Any, Dict, List, Optional, SupportsInt, Tuple, Type, Union, cast from typing import Any, Dict, List, Optional, Tuple, Union, cast
from django.conf import settings from django.conf import settings
from django.db import IntegrityError, transaction from django.db import IntegrityError, transaction
@@ -18,21 +15,17 @@ from django.utils.timezone import now as timezone_now
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from gcm import GCM from gcm import GCM
import requests import requests
import urllib
import ujson
from zerver.decorator import statsd_increment from zerver.decorator import statsd_increment
from zerver.lib.avatar import absolute_avatar_url from zerver.lib.avatar import absolute_avatar_url
from zerver.lib.exceptions import ErrorCode, JsonableError from zerver.lib.exceptions import JsonableError
from zerver.lib.message import access_message, huddle_users from zerver.lib.message import access_message, huddle_users
from zerver.lib.queue import retry_event from zerver.lib.queue import retry_event
from zerver.lib.remote_server import send_to_push_bouncer, send_json_to_push_bouncer, \ from zerver.lib.remote_server import send_to_push_bouncer, send_json_to_push_bouncer
PushNotificationBouncerException from zerver.lib.timestamp import datetime_to_timestamp
from zerver.lib.timestamp import datetime_to_timestamp, timestamp_to_datetime
from zerver.lib.utils import generate_random_token
from zerver.models import PushDeviceToken, Message, Recipient, UserProfile, \ from zerver.models import PushDeviceToken, Message, Recipient, UserProfile, \
UserMessage, get_display_recipient, receives_offline_push_notifications, \ get_display_recipient, receives_offline_push_notifications, \
receives_online_notifications, receives_stream_notifications, get_user_profile_by_id, \ receives_online_notifications, get_user_profile_by_id, \
ArchivedMessage ArchivedMessage
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@@ -1,7 +1,7 @@
import os import os
from typing import Any, Iterator, List, Optional, Tuple from typing import List, Optional, Tuple
from django.conf import settings from django.conf import settings
from zerver.lib.redis_utils import get_redis_client from zerver.lib.redis_utils import get_redis_client
@@ -10,7 +10,6 @@ from zerver.models import UserProfile
import redis import redis
import time import time
import logging
# Implement a rate-limiting scheme inspired by the one described here, but heavily modified # Implement a rate-limiting scheme inspired by the one described here, but heavily modified
# http://blog.domaintools.com/2013/04/rate-limiting-with-redis/ # http://blog.domaintools.com/2013/04/rate-limiting-with-redis/

View File

@@ -1,6 +1,6 @@
from django.conf import settings from django.conf import settings
from zerver.lib.avatar_hash import gravatar_hash, user_avatar_hash from zerver.lib.avatar_hash import gravatar_hash
from zerver.lib.upload import upload_backend from zerver.lib.upload import upload_backend
from zerver.models import Realm from zerver.models import Realm

View File

@@ -2,7 +2,6 @@
from datetime import timedelta from datetime import timedelta
from django.db import connection, transaction from django.db import connection, transaction
from django.forms.models import model_to_dict
from django.utils.timezone import now as timezone_now from django.utils.timezone import now as timezone_now
from zerver.models import Realm, Message, UserMessage, ArchivedMessage, ArchivedUserMessage, \ from zerver.models import Realm, Message, UserMessage, ArchivedMessage, ArchivedUserMessage, \
Attachment, ArchivedAttachment Attachment, ArchivedAttachment

View File

@@ -13,7 +13,7 @@ import logging
import ujson import ujson
import os import os
from typing import Any, Dict, Iterable, List, Mapping, Optional, Tuple from typing import Any, Dict, List, Mapping, Optional, Tuple
from zerver.lib.logging_util import log_to_file from zerver.lib.logging_util import log_to_file
from confirmation.models import generate_key from confirmation.models import generate_key

View File

@@ -9,7 +9,7 @@ from django.utils.timezone import now as timezone_now
from typing import DefaultDict, List, Union, Any from typing import DefaultDict, List, Union, Any
from zerver.models import UserProfile, UserMessage, RealmAuditLog, \ from zerver.models import UserProfile, UserMessage, RealmAuditLog, \
Subscription, Message, Recipient, UserActivity, Realm Subscription, Message, Recipient, UserActivity
logger = logging.getLogger("zulip.soft_deactivation") logger = logging.getLogger("zulip.soft_deactivation")
log_to_file(logger, settings.SOFT_DEACTIVATION_LOG_PATH) log_to_file(logger, settings.SOFT_DEACTIVATION_LOG_PATH)

View File

@@ -1,9 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from zerver.models import UserProfile, UserActivity, UserActivityInterval, Message from zerver.models import UserProfile, UserActivityInterval
from django.utils.timezone import utc
from typing import Any, Dict, List, Sequence, Set
from datetime import datetime, timedelta from datetime import datetime, timedelta

View File

@@ -1,4 +1,4 @@
from typing import (Dict, List, Set) from typing import Set
from django.db.models.query import QuerySet from django.db.models.query import QuerySet
from zerver.lib.stream_subscription import ( from zerver.lib.stream_subscription import (

View File

@@ -1,7 +1,6 @@
from typing import Any, Iterable, List, Mapping, Set, Tuple, Optional from typing import Any, Iterable, List, Mapping, Set, Tuple, Optional
from django.http import HttpRequest, HttpResponse
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from zerver.lib.actions import check_stream_name, create_streams_if_needed from zerver.lib.actions import check_stream_name, create_streams_if_needed

View File

@@ -1,6 +1,6 @@
from contextlib import contextmanager from contextlib import contextmanager
from typing import (cast, Any, Callable, Dict, Iterable, Iterator, List, Mapping, Optional, from typing import (cast, Any, Dict, Iterable, Iterator, List, Optional,
Sized, Tuple, Union) Tuple, Union)
from django.apps import apps from django.apps import apps
from django.db.migrations.state import StateApps from django.db.migrations.state import StateApps
@@ -24,7 +24,7 @@ from zerver.lib.users import get_api_key
from zerver.lib.actions import ( from zerver.lib.actions import (
check_send_message, create_stream_if_needed, bulk_add_subscriptions, check_send_message, create_stream_if_needed, bulk_add_subscriptions,
get_display_recipient, bulk_remove_subscriptions, do_create_user, bulk_remove_subscriptions,
check_send_stream_message, gather_subscriptions, check_send_stream_message, gather_subscriptions,
get_default_value_for_history_public_to_subscribers, get_default_value_for_history_public_to_subscribers,
) )
@@ -40,13 +40,13 @@ from zerver.lib.test_helpers import (
from zerver.models import ( from zerver.models import (
get_stream, get_stream,
get_client, get_client,
get_display_recipient,
get_user, get_user,
get_realm, get_realm,
Client, Client,
Message, Message,
Realm, Realm,
Recipient, Recipient,
Service,
Stream, Stream,
Subscription, Subscription,
UserProfile, UserProfile,

View File

@@ -1,28 +1,23 @@
from contextlib import contextmanager from contextlib import contextmanager
from typing import ( from typing import (
cast, Any, Callable, Dict, Generator, Iterable, Iterator, List, Mapping, Any, Callable, Dict, Generator, Iterable, Iterator, List, Mapping,
Optional, Set, Sized, Tuple, Union, IO, TypeVar Optional, Tuple, Union, IO, TypeVar
) )
from django.core import signing from django.core import signing
from django.urls.resolvers import LocaleRegexURLResolver from django.urls.resolvers import LocaleRegexURLResolver
from django.conf import settings from django.conf import settings
from django.test import TestCase, override_settings from django.test import override_settings
from django.test.client import (
BOUNDARY, MULTIPART_CONTENT, encode_multipart,
)
from django.template import loader from django.template import loader
from django.http import HttpResponse, HttpResponseRedirect from django.http import HttpResponse, HttpResponseRedirect
from django.db.utils import IntegrityError
from django.db.migrations.state import StateApps from django.db.migrations.state import StateApps
from boto.s3.connection import Location, S3Connection from boto.s3.connection import S3Connection
from boto.s3.bucket import Bucket from boto.s3.bucket import Bucket
import zerver.lib.upload import zerver.lib.upload
from zerver.lib.upload import S3UploadBackend, LocalUploadBackend from zerver.lib.upload import S3UploadBackend, LocalUploadBackend
from zerver.lib.avatar import avatar_url from zerver.lib.avatar import avatar_url
from zerver.lib.cache import get_cache_backend from zerver.lib.cache import get_cache_backend
from zerver.lib.initial_password import initial_password
from zerver.lib.db import TimeTrackingCursor from zerver.lib.db import TimeTrackingCursor
from zerver.lib import cache from zerver.lib import cache
from zerver.tornado import event_queue from zerver.tornado import event_queue
@@ -30,40 +25,29 @@ from zerver.tornado.handlers import allocate_handler_id
from zerver.worker import queue_processors from zerver.worker import queue_processors
from zerver.lib.actions import ( from zerver.lib.actions import (
check_send_message, create_stream_if_needed, bulk_add_subscriptions,
get_stream_recipient, get_stream_recipient,
) )
from zerver.models import ( from zerver.models import (
get_recipient,
get_stream, get_stream,
get_user,
Client, Client,
Message, Message,
Realm,
Recipient,
Stream,
Subscription, Subscription,
UserMessage, UserMessage,
UserProfile, UserProfile,
) )
from zerver.lib.request import JsonableError
if False: if False:
# Avoid an import cycle; we only need these for type annotations. # Avoid an import cycle; we only need these for type annotations.
from zerver.lib.test_classes import ZulipTestCase, MigrationsTestCase from zerver.lib.test_classes import ZulipTestCase, MigrationsTestCase
import collections import collections
import base64
import mock import mock
import os import os
import re import re
import sys import sys
import time import time
import ujson import ujson
import unittest
import urllib
from moto import mock_s3_deprecated from moto import mock_s3_deprecated
import fakeldap import fakeldap
@@ -581,9 +565,6 @@ def use_db_models(method: Callable[..., None]) -> Callable[..., None]:
'zerver.lib.test_helpers', 'zerver.lib.test_helpers',
Client=Client, Client=Client,
Message=Message, Message=Message,
Realm=Realm,
Recipient=Recipient,
Stream=Stream,
Subscription=Subscription, Subscription=Subscription,
UserMessage=UserMessage, UserMessage=UserMessage,
UserProfile=UserProfile, UserProfile=UserProfile,
@@ -595,7 +576,6 @@ def use_db_models(method: Callable[..., None]) -> Callable[..., None]:
Message=Message, Message=Message,
Realm=Realm, Realm=Realm,
Recipient=Recipient, Recipient=Recipient,
Service=Service,
Stream=Stream, Stream=Stream,
Subscription=Subscription, Subscription=Subscription,
UserProfile=UserProfile, UserProfile=UserProfile,

View File

@@ -2,8 +2,8 @@
from functools import partial from functools import partial
import random import random
from typing import Any, Callable, Dict, Iterable, List, Optional, Set, Tuple, \ from typing import Any, Callable, Dict, List, Optional, Set, Tuple, \
Type, cast, Union, TypeVar Type, cast, TypeVar
from unittest import loader, runner # type: ignore # Mypy cannot pick these up. from unittest import loader, runner # type: ignore # Mypy cannot pick these up.
from unittest.result import TestResult from unittest.result import TestResult
@@ -21,15 +21,12 @@ from zerver.lib.rate_limiter import bounce_redis_key_prefix_for_testing
from zerver.lib.test_classes import flush_caches_for_testing from zerver.lib.test_classes import flush_caches_for_testing
from zerver.lib.sqlalchemy_utils import get_sqlalchemy_connection from zerver.lib.sqlalchemy_utils import get_sqlalchemy_connection
from zerver.lib.test_helpers import ( from zerver.lib.test_helpers import (
get_all_templates, write_instrumentation_reports, write_instrumentation_reports,
append_instrumentation_data append_instrumentation_data
) )
import os import os
import subprocess
import sys
import time import time
import traceback
import unittest import unittest
from multiprocessing.sharedctypes import Synchronized from multiprocessing.sharedctypes import Synchronized

View File

@@ -1,8 +1,7 @@
from typing import Any, Dict, Mapping, Optional, Tuple from typing import Dict, Optional, Tuple
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django.conf import settings from django.conf import settings
from django.template.defaultfilters import slugify
from django.core.files import File from django.core.files import File
from django.http import HttpRequest from django.http import HttpRequest
from django.db.models import Sum from django.db.models import Sum
@@ -17,7 +16,7 @@ from boto.s3.key import Key
from boto.s3.connection import S3Connection from boto.s3.connection import S3Connection
from mimetypes import guess_type, guess_extension from mimetypes import guess_type, guess_extension
from zerver.models import get_user_profile_by_id, RealmEmoji from zerver.models import get_user_profile_by_id
from zerver.models import Attachment from zerver.models import Attachment
from zerver.models import Realm, RealmEmoji, UserProfile, Message from zerver.models import Realm, RealmEmoji, UserProfile, Message

View File

@@ -1,11 +1,10 @@
from __future__ import absolute_import from __future__ import absolute_import
from collections import defaultdict
from django.db import transaction from django.db import transaction
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from zerver.lib.exceptions import JsonableError from zerver.lib.exceptions import JsonableError
from zerver.models import UserProfile, Realm, UserGroupMembership, UserGroup from zerver.models import UserProfile, Realm, UserGroupMembership, UserGroup
from typing import Dict, Iterable, List, Tuple, Any from typing import Dict, List, Any
def access_user_group_by_id(user_group_id: int, user_profile: UserProfile) -> UserGroup: def access_user_group_by_id(user_group_id: int, user_profile: UserProfile) -> UserGroup:
try: try:

View File

@@ -2,14 +2,13 @@ from typing import Dict, List, Optional, Union, cast
from django.db.models.query import QuerySet from django.db.models.query import QuerySet
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django.conf import settings
from zerver.lib.cache import generic_bulk_cached_fetch, user_profile_cache_key_id, \ from zerver.lib.cache import generic_bulk_cached_fetch, user_profile_cache_key_id, \
user_profile_by_id_cache_key user_profile_by_id_cache_key
from zerver.lib.request import JsonableError from zerver.lib.request import JsonableError
from zerver.lib.avatar import avatar_url from zerver.lib.avatar import avatar_url
from zerver.models import UserProfile, Service, Realm, \ from zerver.models import UserProfile, Service, Realm, \
get_user_profile_by_id, query_for_ids, get_user_profile_by_id_in_realm, \ get_user_profile_by_id_in_realm, \
CustomProfileField CustomProfileField
from zulip_bots.custom_exceptions import ConfigValidationError from zulip_bots.custom_exceptions import ConfigValidationError

View File

@@ -2,13 +2,11 @@
from typing import Any, Callable, List, Optional, Sequence, TypeVar, Iterable, Set, Tuple from typing import Any, Callable, List, Optional, Sequence, TypeVar, Iterable, Set, Tuple
import base64 import base64
import errno
import hashlib import hashlib
import heapq import heapq
import itertools import itertools
import os import os
import string import string
import sys
from time import sleep from time import sleep
from itertools import zip_longest from itertools import zip_longest

View File

@@ -30,8 +30,7 @@ import ujson
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
from typing import Callable, Iterable, Optional, Tuple, TypeVar, cast, \ from typing import Iterable, Optional, Tuple, cast
Dict
from datetime import datetime from datetime import datetime
from zerver.lib.request import JsonableError from zerver.lib.request import JsonableError

View File

@@ -1,6 +1,5 @@
from urllib.parse import unquote from urllib.parse import unquote
from django.conf import settings
from django.http import HttpRequest from django.http import HttpRequest
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from typing import Optional from typing import Optional
@@ -11,7 +10,7 @@ from zerver.lib.exceptions import StreamDoesNotExistError, JsonableError, \
ErrorCode ErrorCode
from zerver.lib.request import REQ, has_request_variables from zerver.lib.request import REQ, has_request_variables
from zerver.lib.send_email import FromAddress from zerver.lib.send_email import FromAddress
from zerver.models import UserProfile, get_system_bot from zerver.models import UserProfile
MISSING_EVENT_HEADER_MESSAGE = """ MISSING_EVENT_HEADER_MESSAGE = """

View File

@@ -1,5 +1,4 @@
from typing import MutableMapping, Any, Optional, List, Tuple from typing import MutableMapping, Any, Optional, Tuple
from django.conf import settings
import re import re
import json import json

View File

@@ -8,10 +8,8 @@ import traceback
from typing import Any, Dict, Optional from typing import Any, Dict, Optional
from django.conf import settings from django.conf import settings
from django.core import mail
from django.http import HttpRequest from django.http import HttpRequest
from django.utils.log import AdminEmailHandler from django.views.debug import get_exception_reporter_filter
from django.views.debug import ExceptionReporter, get_exception_reporter_filter
from zerver.lib.logging_util import find_log_caller_module from zerver.lib.logging_util import find_log_caller_module
from zerver.lib.queue import queue_json_publish from zerver.lib.queue import queue_json_publish
@@ -113,7 +111,6 @@ class AdminNotifyHandler(logging.Handler):
if record.exc_info: if record.exc_info:
stack_trace = ''.join(traceback.format_exception(*record.exc_info)) stack_trace = ''.join(traceback.format_exception(*record.exc_info))
message = str(record.exc_info[1]) message = str(record.exc_info[1])
from zerver.lib.exceptions import BugdownRenderingException
is_bugdown_rendering_exception = record.msg.startswith('Exception in Markdown parser') is_bugdown_rendering_exception = record.msg.startswith('Exception in Markdown parser')
else: else:
stack_trace = 'No stack trace available' stack_trace = 'No stack trace available'

View File

@@ -3,7 +3,7 @@ import cProfile
import logging import logging
import time import time
import traceback import traceback
from typing import Any, AnyStr, Callable, Dict, \ from typing import Any, AnyStr, Dict, \
Iterable, List, MutableMapping, Optional Iterable, List, MutableMapping, Optional
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
@@ -13,7 +13,7 @@ from django.contrib.sessions.middleware import SessionMiddleware
from django.core.exceptions import DisallowedHost, SuspiciousOperation from django.core.exceptions import DisallowedHost, SuspiciousOperation
from django.db import connection from django.db import connection
from django.http import HttpRequest, HttpResponse, StreamingHttpResponse from django.http import HttpRequest, HttpResponse, StreamingHttpResponse
from django.shortcuts import redirect, render from django.shortcuts import render
from django.utils.cache import patch_vary_headers from django.utils.cache import patch_vary_headers
from django.utils.deprecation import MiddlewareMixin from django.utils.deprecation import MiddlewareMixin
from django.utils.http import cookie_date from django.utils.http import cookie_date

View File

@@ -1,11 +1,10 @@
from typing import Any, DefaultDict, Dict, List, Set, Tuple, TypeVar, \ from typing import Any, DefaultDict, Dict, List, Set, Tuple, TypeVar, \
Union, Optional, Sequence, AbstractSet, Pattern, AnyStr, Callable, Iterable Union, Optional, Sequence, AbstractSet, Callable, Iterable
from typing.re import Match from typing.re import Match
from django.db import models from django.db import models
from django.db.models.query import QuerySet, F from django.db.models.query import QuerySet
from django.db.models import Manager, CASCADE, Sum from django.db.models import Manager, CASCADE
from django.db.models.functions import Length
from django.conf import settings from django.conf import settings
from django.contrib.auth.models import AbstractBaseUser, UserManager, \ from django.contrib.auth.models import AbstractBaseUser, UserManager, \
PermissionsMixin PermissionsMixin
@@ -30,27 +29,23 @@ from zerver.lib.timestamp import datetime_to_timestamp
from django.db.models.signals import pre_save, post_save, post_delete from django.db.models.signals import pre_save, post_save, post_delete
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from zerver.lib import cache from zerver.lib import cache
from zerver.lib.validator import check_int, check_float, \ from zerver.lib.validator import check_int, \
check_short_string, check_long_string, validate_choice_field, check_date, \ check_short_string, check_long_string, validate_choice_field, check_date, \
check_url, check_list check_url, check_list
from zerver.lib.name_restrictions import is_disposable_domain from zerver.lib.name_restrictions import is_disposable_domain
from zerver.lib.types import Validator, ExtendedValidator, \ from zerver.lib.types import Validator, ExtendedValidator, \
ProfileDataElement, ProfileData, FieldTypeData, FieldElement, \ ProfileDataElement, ProfileData, FieldTypeData, \
RealmUserValidator RealmUserValidator
from django.utils.encoding import force_text
from bitfield import BitField from bitfield import BitField
from bitfield.types import BitHandler from bitfield.types import BitHandler
from collections import defaultdict, OrderedDict from collections import defaultdict, OrderedDict
from datetime import timedelta from datetime import timedelta
import pylibmc import pylibmc
import re import re
import logging
import sre_constants import sre_constants
import time import time
import datetime import datetime
import sys
MAX_TOPIC_NAME_LENGTH = 60 MAX_TOPIC_NAME_LENGTH = 60
MAX_MESSAGE_LENGTH = 10000 MAX_MESSAGE_LENGTH = 10000

View File

@@ -1,10 +1,8 @@
from typing import Any, Optional
from typing import Any, Dict, Optional
from django.conf import settings from django.conf import settings
from django.contrib.auth.signals import user_logged_in from django.contrib.auth.signals import user_logged_in
from django.dispatch import receiver from django.dispatch import receiver
from django.template import loader
from django.utils.timezone import \ from django.utils.timezone import \
get_current_timezone_name as timezone_get_current_timezone_name get_current_timezone_name as timezone_get_current_timezone_name
from django.utils.timezone import now as timezone_now from django.utils.timezone import now as timezone_now

View File

@@ -1,4 +1,3 @@
import os
from html import unescape from html import unescape
from typing import Any, Dict, List, Optional from typing import Any, Dict, List, Optional
@@ -7,8 +6,7 @@ import markdown.extensions.admonition
import markdown.extensions.codehilite import markdown.extensions.codehilite
import markdown.extensions.extra import markdown.extensions.extra
import markdown.extensions.toc import markdown.extensions.toc
from django.conf import settings from django.template import Library, engines
from django.template import Library, engines, loader
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from jinja2.exceptions import TemplateNotFound from jinja2.exceptions import TemplateNotFound
@@ -21,7 +19,6 @@ import zerver.lib.bugdown.help_settings_links
import zerver.lib.bugdown.help_relative_links import zerver.lib.bugdown.help_relative_links
import zerver.lib.bugdown.help_emoticon_translations_table import zerver.lib.bugdown.help_emoticon_translations_table
import zerver.lib.bugdown.include import zerver.lib.bugdown.include
from zerver.context_processors import zulip_default_context
from zerver.lib.cache import ignore_unhashable_lru_cache from zerver.lib.cache import ignore_unhashable_lru_cache
register = Library() register = Library()

View File

@@ -14,8 +14,8 @@ from django.db import connection
from django.core.handlers.wsgi import WSGIRequest from django.core.handlers.wsgi import WSGIRequest
from django.core.handlers.base import BaseHandler from django.core.handlers.base import BaseHandler
from zerver.models import \ from zerver.models import \
get_client, get_system_bot, ScheduledEmail, PreregistrationUser, \ get_client, get_system_bot, PreregistrationUser, \
get_user_profile_by_id, Message, Realm, Service, UserMessage, UserProfile, \ get_user_profile_by_id, Message, Realm, UserMessage, UserProfile, \
Client Client
from zerver.lib.context_managers import lockfile from zerver.lib.context_managers import lockfile
from zerver.lib.error_notify import do_report_error from zerver.lib.error_notify import do_report_error
@@ -27,7 +27,7 @@ from zerver.lib.push_notifications import handle_push_notification, handle_remov
initialize_push_notifications initialize_push_notifications
from zerver.lib.actions import do_send_confirmation_email, \ from zerver.lib.actions import do_send_confirmation_email, \
do_update_user_activity, do_update_user_activity_interval, do_update_user_presence, \ do_update_user_activity, do_update_user_activity_interval, do_update_user_presence, \
internal_send_message, check_send_message, extract_recipients, \ internal_send_message, \
render_incoming_message, do_update_embedded_data, do_mark_stream_messages_as_read render_incoming_message, do_update_embedded_data, do_mark_stream_messages_as_read
from zerver.lib.url_preview import preview as url_preview from zerver.lib.url_preview import preview as url_preview
from zerver.lib.digest import handle_digest_email from zerver.lib.digest import handle_digest_email
@@ -35,7 +35,6 @@ from zerver.lib.send_email import send_future_email, send_email_from_dict, \
FromAddress, EmailNotDeliveredException, handle_send_email_format_changes FromAddress, EmailNotDeliveredException, handle_send_email_format_changes
from zerver.lib.email_mirror import process_message as mirror_email from zerver.lib.email_mirror import process_message as mirror_email
from zerver.lib.streams import access_stream_by_id from zerver.lib.streams import access_stream_by_id
from zerver.decorator import JsonableError
from zerver.tornado.socket import req_redis_key, respond_send_message from zerver.tornado.socket import req_redis_key, respond_send_message
from confirmation.models import Confirmation, create_confirmation_link from confirmation.models import Confirmation, create_confirmation_link
from zerver.lib.db import reset_queries from zerver.lib.db import reset_queries
@@ -56,8 +55,6 @@ import datetime
import logging import logging
import requests import requests
from io import StringIO from io import StringIO
import re
import importlib
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)