zulip/zerver/lib
Steve Howell 3910448b1d Extract MessageDict.post_process_dicts().
Introduce MessageDict.post_process_dicts() will allow us
the ability to do the following:

    * use less memory in the cache for repeated data
    * prevent cache invalidation
    * format data according to different client needs

The first use of this function is pretty inconsequential, but
it sets us up for more consequential changes.

In this commit we defer the MessageDict.hydrate_recipient_info
step until after we pull data out of the cache.  This impacts
cache size as follows:

    * streams - negligibly bigger
    * PMs/huddles - slimmer due to not needing to repeat
                    sender data like email/full_name

Again, the main point of this change is to start setting up
the infrastructure to do post-processing.
2017-10-11 11:37:16 -07:00
..
bugdown emoji: Migrate bugdown emoji to use sprite sheets. 2017-09-29 11:14:34 -07:00
url_preview zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
webhooks mypy: strict optional fixes. 2017-05-24 18:50:59 -07:00
__init__.py
actions.py Only require stream_id in private_stream_user_ids(). 2017-10-08 20:18:34 -07:00
addressee.py refactor: Move default_sending_stream logic to Addressee. 2017-09-28 12:14:08 -07:00
alert_words.py zerver/lib: remove `import six`. 2017-09-27 19:10:28 -07:00
attachments.py settings: Show error or success message when deleting uploaded files. 2017-09-27 17:50:22 -07:00
avatar.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
avatar_hash.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
bot_lib.py zerver/lib: Remove print_function. 2017-09-27 18:05:45 -07:00
bulk_create.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
cache.py zerver/lib: remove `import six`. 2017-09-27 19:10:28 -07:00
cache_helpers.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
camo.py pep8: Add compliance with rule E261 to camo.py. 2017-05-07 23:21:50 -07:00
ccache.py zerver/lib: remove `import six`. 2017-09-27 19:10:28 -07:00
context_managers.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
create_user.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
db.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
debug.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
digest.py zerver/lib: remove `import six`. 2017-09-27 19:10:28 -07:00
domains.py Add stricter domain validation and improve error messages. 2017-01-26 17:24:25 -08:00
email_mirror.py email_mirror: Filter out null characters in email bodies. 2017-10-03 15:32:05 -07:00
emoji.py reactions: Switch to using `name_to_codepoint`. 2017-10-04 23:09:14 -07:00
error_notify.py error_notify: Add IP address to browser error reports. 2017-10-04 13:46:05 -07:00
events.py Use user_ids, not emails, for bulk stream operations. 2017-10-08 12:31:12 -07:00
exceptions.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
export.py django: Bump version to 1.11.5. 2017-10-03 08:27:06 -07:00
feedback.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
fix_unreads.py zerver/lib: Remove print_function. 2017-09-27 18:05:45 -07:00
generate_test_data.py zerver/lib: Remove print_function. 2017-09-27 18:05:45 -07:00
hotspots.py hotspots: Use tutorial_status to manage whether we show hotspots. 2017-09-15 04:14:52 -07:00
html_diff.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
i18n.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
initial_password.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
integrations.py integrations: Render xkcd bot's documentation. 2017-10-09 11:40:44 -07:00
logging_util.py logging: Add option to show the PID in each log message. 2017-10-06 19:21:40 -07:00
management.py zerver/lib: Remove print_function. 2017-09-27 18:05:45 -07:00
mention.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
message.py Extract MessageDict.post_process_dicts(). 2017-10-11 11:37:16 -07:00
migrate.py zerver/lib: Remove print_function. 2017-09-27 18:05:45 -07:00
mobile_auth_otp.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
name_restrictions.py name_restrictions: Update with new competitors and portico pages 2017-07-26 12:10:58 -04:00
narrow.py Update narrow.py, messages.py to support is:unread. 2017-06-19 06:51:13 -04:00
notifications.py mypy: Workaround lxml annotations being busted. 2017-10-08 12:38:20 -07:00
onboarding.py zerver/lib: Remove print_function. 2017-09-27 18:05:45 -07:00
outgoing_webhook.py outgoing webhook: Make exception handling more granular and verbose. 2017-09-30 10:14:28 -07:00
parallel.py zerver/lib: Remove print_function. 2017-09-27 18:05:45 -07:00
profile.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
push_notifications.py push_notifications: Start using `get_mobile_push_content()` function. 2017-10-06 16:47:25 -07:00
queue.py mypy: Use Dict instead of Mapping in queues. 2017-10-03 10:35:07 -07:00
rate_limiter.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
realm_icon.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
redis_utils.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
request.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
request.pyi JsonableError: Move into a normally-typed file. 2017-07-24 16:41:22 -07:00
response.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
rest.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
retention.py zerver/lib: Remove print_function. 2017-09-27 18:05:45 -07:00
send_email.py backends: Create custom email backend EmailLogBackEnd. 2017-10-04 08:20:29 -07:00
sessions.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
soft_deactivation.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
sqlalchemy_utils.py mypy: Remove a bunch of now-unnecessary type: ignore annotations. 2016-10-17 11:48:34 -07:00
statistics.py zerver/lib: Remove from __future__ import *. 2017-09-28 10:14:03 -07:00
str_utils.py zerver/lib: remove `import six`. 2017-09-27 19:10:28 -07:00
stream_recipient.py zerver/lib: Remove print_function. 2017-09-27 18:05:45 -07:00
streams.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
test_classes.py tests: Provide more useful output in assert_length(). 2017-10-06 14:30:30 -07:00
test_data.source.txt test_data.source.txt: Replace postmodernism generator text with a play. 2017-08-23 13:00:39 -07:00
test_fixtures.py Create complex sample messages for dev VM. 2017-08-01 20:54:39 -07:00
test_helpers.py zerver/lib: remove `import six`. 2017-09-27 19:10:28 -07:00
test_runner.py zerver/lib: Remove print_function. 2017-09-27 18:05:45 -07:00
tex.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
timeout.py zerver/lib: remove `import six`. 2017-09-27 19:10:28 -07:00
timestamp.py analytics: Enforce various datetime arguments are in UTC. 2017-10-05 11:22:06 -07:00
timezone.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
topic_mutes.py Have topic_is_muted take a stream_id. 2017-10-05 09:32:16 -07:00
type_debug.py zerver/lib: Remove print_function. 2017-09-27 18:05:45 -07:00
unminify.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
upload.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
user_agent.py tests: Replace test_user_agent_parsing with a normal test. 2017-09-16 03:56:18 -07:00
users.py zerver/lib: Remove absolute_import. 2017-09-27 10:00:39 -07:00
utils.py subdomains: Hardcode REALMS_HAVE_SUBDOMAINS=True. 2017-10-02 16:42:43 -07:00
validator.py zerver/lib: remove `import six`. 2017-09-27 19:10:28 -07:00