zulip/zerver/lib
Anders Kaseorg c263bfdb41 queue: Use a thread-local Pika connection.
According to the documentation: “Pika does not have any notion of
threading in the code. If you want to use Pika with threading, make
sure you have a Pika connection per thread, created in that thread. It
is not safe to share one Pika connection across threads, with one
exception: you may call the connection method add_callback_threadsafe
from another thread to schedule a callback within an active pika
connection.”

https://pika.readthedocs.io/en/stable/faq.html

This also means that synchronous Django code running in Tornado will
use its own synchronous SimpleQueueClient rather than sharing the
asynchronous TornadoQueueClient, which is unfortunate but necessary as
they’re about to be on different threads.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2022-05-02 17:41:49 -07:00
..
markdown Correctly hyphenate “non-”. 2022-04-27 22:10:31 -07:00
url_preview python: Use Python 3.8 typing.{Protocol,TypedDict}. 2022-04-27 12:57:49 -07:00
webhooks actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
__init__.py
addressee.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
alert_words.py docs: Remove highlight parameters from links. 2022-02-16 13:15:39 -08:00
attachments.py python: Fix mypy no_implicit_reexport errors. 2021-07-16 14:02:31 -07:00
avatar.py avatar: Remove ?x=x kludge. 2021-10-14 12:47:43 -07:00
avatar_hash.py typing: Improve typing with assertions. 2021-08-20 05:54:19 -07:00
bot_config.py bot_config: Placate mypy 0.930. 2021-12-28 09:31:55 -08:00
bot_lib.py actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
bot_storage.py
bulk_create.py actions: Move part into zerver.lib.bulk_create. 2022-04-14 17:14:33 -07:00
cache.py python: Excise None from pointlessly nullable booleans. 2022-04-27 12:40:14 -07:00
cache_helpers.py session: Enforce that changes cannot happen in a transaction. 2022-03-15 13:52:15 -07:00
camo.py python: Convert "".format to Python 3.6 f-strings. 2021-08-02 15:53:52 -07:00
ccache.py python: Remove default "utf8" argument for encode(), decode(). 2021-08-02 15:53:52 -07:00
compatibility.py compatibility: Shift functions to new module. 2021-06-05 07:33:25 -07:00
context_managers.py
create_user.py users: Use browser locale to set the default language of new user. 2022-04-28 15:03:26 -07:00
data_types.py
db.py db: Fix types. 2022-03-24 19:16:52 -07:00
debug.py python: Accept Optional[FrameType] in signal handlers. 2021-12-28 09:31:55 -08:00
dev_ldap_directory.py
digest.py digest: Don't send emails to deactivated users, even if queued. 2022-04-15 14:32:55 -07:00
display_recipient.py python: Use Python 3.8 typing.{Protocol,TypedDict}. 2022-04-27 12:57:49 -07:00
domains.py
drafts.py actions: Split out zerver.lib.recipient_users. 2022-04-14 17:14:30 -07:00
email_mirror.py actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
email_mirror_helpers.py email_mirror: Move ZulipEmailForwardUserError into email_mirror_helpers. 2021-08-31 16:37:54 -07:00
email_notifications.py email_notifications: Soft reactivate mentioned users. 2022-04-27 16:43:54 -07:00
email_validation.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
emoji.py emoji: Add backend changes to support still image for animated emojis. 2021-09-12 07:13:04 +00:00
error_notify.py actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
event_schema.py backend: Add `org_type` to realm settings updates and events. 2022-04-26 16:29:12 -07:00
events.py backend: Add `org_type` to realm settings updates and events. 2022-04-26 16:29:12 -07:00
exceptions.py zilencer: Stop serving requests from deactivated remote servers. 2022-01-21 14:56:04 -08:00
export.py python: Use Python 3.8 typing.{Protocol,TypedDict}. 2022-04-27 12:57:49 -07:00
external_accounts.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
fix_unreads.py models: Use default db table name for UserTopic. 2021-09-17 12:14:28 -07:00
generate_test_data.py populate_db: Generate resolved topics for testing. 2021-08-03 16:42:09 -07:00
github.py fetch-contributor-data: Use builtin backoff. 2021-09-01 05:34:13 -07:00
home.py home: Send rendered realm description for spectators. 2022-02-17 16:17:15 +00:00
hotspots.py hotspots: Remove intro_reply hotspot. 2021-12-07 21:55:59 -08:00
html_diff.py html_diff: Handle empty differences between empty strings. 2021-10-18 18:27:40 -07:00
html_to_text.py
i18n.py i18n: Add function to get default language for new users. 2022-04-28 15:03:26 -07:00
import_realm.py import: Default the S3 metadata user of emoji to the first owner. 2022-04-28 16:51:58 -07:00
initial_password.py initial_password: Add explicit development environment assertion. 2022-03-21 12:05:59 -07:00
integrations.py webhooks: Rename Yo App to Yo. 2021-12-22 14:05:17 -08:00
logging_util.py python: Remove duplicates of global imports inside functions. 2022-01-12 13:50:12 -08:00
management.py management: Remove unnecessary default=SUPPRESS logic. 2022-03-21 12:05:59 -07:00
mdiff.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
mention.py performance: Cache stream lookups in MentionBackend. 2021-12-30 11:28:15 -08:00
message.py python: Use Python 3.8 typing.{Protocol,TypedDict}. 2022-04-27 12:57:49 -07:00
migrate.py typing: Replace CursorObj by CursorWrapper. 2021-08-20 05:54:19 -07:00
mobile_auth_otp.py
name_restrictions.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
narrow.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
notes.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
notification_data.py notifications: Move user group mentions helpers together. 2022-04-27 16:43:54 -07:00
onboarding.py onboarding: Override the language of welcome bot PMs with user setting. 2022-04-28 15:03:26 -07:00
outgoing_http.py python: Replace requests.packages.urllib3 alias with urllib3. 2022-01-23 22:14:17 -08:00
outgoing_webhook.py actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
presence.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
profile.py profile: Strengthen decorator types using ParamSpec. 2022-04-14 12:44:35 -07:00
push_notifications.py push_notifications: Soft reactivate mentioned users. 2022-04-27 16:43:54 -07:00
pysa.py
queue.py queue: Use a thread-local Pika connection. 2022-05-02 17:41:49 -07:00
rate_limiter.py upload: Allow rate limited access to spectators for uploaded files. 2022-03-24 10:50:00 -07:00
realm_description.py markdown: Refactor out additional properties added to Message. 2021-06-24 18:14:53 -07:00
realm_icon.py
realm_logo.py realm: Rename plan type constants to be more descriptive. 2021-10-19 12:20:39 -07:00
recipient_users.py actions: Split out zerver.lib.recipient_users. 2022-04-14 17:14:30 -07:00
redis_utils.py
remote_server.py push_notifs: Log the number of devices notification was sent to. 2021-09-29 15:50:06 -07:00
request.py python: Use Python 3.8 typing.{Protocol,TypedDict}. 2022-04-27 12:57:49 -07:00
response.py backend: Add request as parameter to json_success. 2022-02-04 15:16:56 -08:00
rest.py upload: Allow rate limited access to spectators for uploaded files. 2022-03-24 10:50:00 -07:00
retention.py models: Manage indexes from migration 0001 with Django. 2022-02-23 11:59:45 -08:00
safe_session_cached_db.py session: Enforce that changes cannot happen in a transaction. 2022-03-15 13:52:15 -07:00
scim.py actions: Split out zerver.actions.create_user. 2022-04-14 17:14:35 -07:00
scim_filter.py scim: Order Users by id when queried using filter syntax. 2021-11-26 16:06:16 -08:00
send_email.py send_email: Only warn if EMAIL_HOST_PASSWORD is unset, not "". 2022-04-12 16:41:27 -07:00
server_initialization.py actions: Split out zerver.actions.users. 2022-04-14 17:14:34 -07:00
sessions.py python: Use Python 3.8 typing.{Protocol,TypedDict}. 2022-04-27 12:57:49 -07:00
singleton_bmemcached.py cache: Instantiate only one BMemcached cache backend. 2022-05-02 17:41:49 -07:00
soft_deactivation.py email_notifications: Soft reactivate mentioned users. 2022-04-27 16:43:54 -07:00
sounds.py actions: Split out zerver.lib.sounds. 2022-04-14 14:26:40 -07:00
sqlalchemy_utils.py sqlalchemy_utils: Remove NonClosingPool.recreate override. 2022-02-10 11:59:41 -08:00
storage.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
stream_color.py streams: Extract stream_color library. 2022-03-14 18:01:36 -07:00
stream_subscription.py performance: Avoid monster query for existing subs. 2021-12-28 12:15:02 -08:00
stream_topic.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
stream_traffic.py streams: Extract stream_traffic library. 2022-03-14 18:01:36 -07:00
streams.py python: Use Python 3.8 typing.{Protocol,TypedDict}. 2022-04-27 12:57:49 -07:00
string_validation.py string_validation: Prohibit non-printable characters in stream names. 2022-02-01 16:04:34 -08:00
subdomains.py python: Reformat with Black 22 (stable). 2022-02-18 18:03:13 -08:00
subscription_info.py actions: Move part into zerver.lib.subscription_info. 2022-04-14 17:14:33 -07:00
templates.py api docs: Replace most markdown files with a common template. 2021-06-24 10:42:08 -07:00
test_classes.py email_notifications: Soft reactivate mentioned users. 2022-04-27 16:43:54 -07:00
test_console_output.py test_console_output: Avoid appending to bytes in a loop. 2021-12-29 16:50:08 -08:00
test_data.source.txt Rename default branch to ‘main’. 2021-09-06 12:56:35 -07:00
test_fixtures.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
test_helpers.py help: Add redirect to new public access page. 2022-04-28 12:27:13 -07:00
test_runner.py sqlalchemy_utils: Make get_sqlalchemy_connection a context manager. 2022-02-10 11:59:41 -08:00
tex.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
thumbnail.py thumbnail: Remove unused is_camo_url parameter. 2021-08-19 01:51:37 -07:00
timeout.py timeout: Minor comment cleanups. 2022-04-07 17:26:01 -07:00
timestamp.py docs: Add missing space in “time zone”. 2022-02-24 14:05:12 -08:00
timezone.py
topic.py request: Add a var_name parameter to converter. 2022-03-15 13:02:02 -07:00
transfer.py
type_debug.py
types.py python: Use Python 3.8 typing.{Protocol,TypedDict}. 2022-04-27 12:57:49 -07:00
unminify.py
upload.py actions: Split out zerver.actions.uploads. 2022-04-14 17:14:32 -07:00
url_encoding.py hash_util: Move enc/decodeHashComponent to shared. 2022-03-01 18:14:31 -08:00
user_agent.py
user_counts.py actions: Split out zerver.lib.user_counts. 2022-04-14 17:14:30 -07:00
user_groups.py user_groups: Add get_user_group_direct_members function. 2022-04-27 14:17:52 -07:00
user_message.py actions: Split out zerver.lib.user_message. 2022-04-14 17:14:30 -07:00
user_mutes.py typing: Use assertions for function arguments. 2021-07-26 14:48:45 -07:00
user_status.py status: Extract format_user_status helper. 2021-09-02 16:50:25 -07:00
user_topics.py muting: Add a flag to allow user duplicate mutes to silently succeed. 2022-03-24 21:27:11 -07:00
users.py python: Use Python 3.8 typing.{Protocol,TypedDict}. 2022-04-27 12:57:49 -07:00
utils.py utils: Remove unused split_by function. 2021-08-19 01:51:37 -07:00
validator.py validator: Add WildValue class for enforcing JSON type checking. 2022-03-15 13:02:02 -07:00
widget.py poll widget: Add server validation. 2021-06-14 17:46:16 -07:00
zcommand.py actions: Split out zerver.actions.user_settings. 2022-04-14 17:14:34 -07:00
zephyr.py