mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 06:23:38 +00:00
narrow: Rename *narrow_filter to *narrow_predicate.
This is consistent with how we name similar functions on the frontend, and "filter" is misleading when you are not dealing with lists.
This commit is contained in:
@@ -1475,7 +1475,7 @@ def do_events_register(
|
|||||||
modern_narrow = narrow_dataclasses_from_tuples(narrow)
|
modern_narrow = narrow_dataclasses_from_tuples(narrow)
|
||||||
|
|
||||||
# Technically we don't need to check this here because
|
# Technically we don't need to check this here because
|
||||||
# build_narrow_filter will check it, but it's nicer from an error
|
# build_narrow_predicate will check it, but it's nicer from an error
|
||||||
# handling perspective to do it before contacting Tornado
|
# handling perspective to do it before contacting Tornado
|
||||||
check_narrow_for_events(modern_narrow)
|
check_narrow_for_events(modern_narrow)
|
||||||
|
|
||||||
|
|||||||
@@ -153,14 +153,14 @@ class NarrowPredicate(Protocol):
|
|||||||
...
|
...
|
||||||
|
|
||||||
|
|
||||||
def build_narrow_filter(
|
def build_narrow_predicate(
|
||||||
narrow: Collection[NarrowTerm],
|
narrow: Collection[NarrowTerm],
|
||||||
) -> NarrowPredicate:
|
) -> NarrowPredicate:
|
||||||
"""Changes to this function should come with corresponding changes to
|
"""Changes to this function should come with corresponding changes to
|
||||||
NarrowLibraryTest."""
|
NarrowLibraryTest."""
|
||||||
check_narrow_for_events(narrow)
|
check_narrow_for_events(narrow)
|
||||||
|
|
||||||
def narrow_filter(*, message: Dict[str, Any], flags: List[str]) -> bool:
|
def narrow_predicate(*, message: Dict[str, Any], flags: List[str]) -> bool:
|
||||||
def satisfies_operator(*, operator: str, operand: str) -> bool:
|
def satisfies_operator(*, operator: str, operand: str) -> bool:
|
||||||
if operator == "stream":
|
if operator == "stream":
|
||||||
if message["type"] != "stream":
|
if message["type"] != "stream":
|
||||||
@@ -204,7 +204,7 @@ def build_narrow_filter(
|
|||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return narrow_filter
|
return narrow_predicate
|
||||||
|
|
||||||
|
|
||||||
LARGER_THAN_MAX_MESSAGE_ID = 10000000000000000
|
LARGER_THAN_MAX_MESSAGE_ID = 10000000000000000
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ from zerver.lib.narrow import (
|
|||||||
BadNarrowOperatorError,
|
BadNarrowOperatorError,
|
||||||
NarrowBuilder,
|
NarrowBuilder,
|
||||||
NarrowTerm,
|
NarrowTerm,
|
||||||
build_narrow_filter,
|
build_narrow_predicate,
|
||||||
exclude_muting_conditions,
|
exclude_muting_conditions,
|
||||||
find_first_unread_anchor,
|
find_first_unread_anchor,
|
||||||
is_spectator_compatible,
|
is_spectator_compatible,
|
||||||
@@ -592,24 +592,24 @@ class NarrowBuilderTest(ZulipTestCase):
|
|||||||
|
|
||||||
|
|
||||||
class NarrowLibraryTest(ZulipTestCase):
|
class NarrowLibraryTest(ZulipTestCase):
|
||||||
def test_build_narrow_filter(self) -> None:
|
def test_build_narrow_predicate(self) -> None:
|
||||||
narrow_filter = build_narrow_filter([NarrowTerm(operator="stream", operand="devel")])
|
narrow_predicate = build_narrow_predicate([NarrowTerm(operator="stream", operand="devel")])
|
||||||
|
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"display_recipient": "devel", "type": "stream"},
|
message={"display_recipient": "devel", "type": "stream"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "private"},
|
message={"type": "private"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"display_recipient": "social", "type": "stream"},
|
message={"display_recipient": "social", "type": "stream"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
@@ -617,35 +617,35 @@ class NarrowLibraryTest(ZulipTestCase):
|
|||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
narrow_filter = build_narrow_filter([NarrowTerm(operator="topic", operand="bark")])
|
narrow_predicate = build_narrow_predicate([NarrowTerm(operator="topic", operand="bark")])
|
||||||
|
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "stream", "subject": "BarK"},
|
message={"type": "stream", "subject": "BarK"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "stream", "topic": "bark"},
|
message={"type": "stream", "topic": "bark"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "private"},
|
message={"type": "private"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "stream", "subject": "play with tail"},
|
message={"type": "stream", "subject": "play with tail"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "stream", "topic": "play with tail"},
|
message={"type": "stream", "topic": "play with tail"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
@@ -653,7 +653,7 @@ class NarrowLibraryTest(ZulipTestCase):
|
|||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
narrow_filter = build_narrow_filter(
|
narrow_predicate = build_narrow_predicate(
|
||||||
[
|
[
|
||||||
NarrowTerm(operator="stream", operand="devel"),
|
NarrowTerm(operator="stream", operand="devel"),
|
||||||
NarrowTerm(operator="topic", operand="python"),
|
NarrowTerm(operator="topic", operand="python"),
|
||||||
@@ -661,26 +661,26 @@ class NarrowLibraryTest(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"display_recipient": "devel", "type": "stream", "subject": "python"},
|
message={"display_recipient": "devel", "type": "stream", "subject": "python"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "private"},
|
message={"type": "private"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"display_recipient": "devel", "type": "stream", "subject": "java"},
|
message={"display_recipient": "devel", "type": "stream", "subject": "java"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"display_recipient": "social", "type": "stream"},
|
message={"display_recipient": "social", "type": "stream"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
@@ -688,19 +688,19 @@ class NarrowLibraryTest(ZulipTestCase):
|
|||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
narrow_filter = build_narrow_filter(
|
narrow_predicate = build_narrow_predicate(
|
||||||
[NarrowTerm(operator="sender", operand="hamlet@zulip.com")]
|
[NarrowTerm(operator="sender", operand="hamlet@zulip.com")]
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"sender_email": "hamlet@zulip.com"},
|
message={"sender_email": "hamlet@zulip.com"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"sender_email": "cordelia@zulip.com"},
|
message={"sender_email": "cordelia@zulip.com"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
@@ -708,17 +708,17 @@ class NarrowLibraryTest(ZulipTestCase):
|
|||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
narrow_filter = build_narrow_filter([NarrowTerm(operator="is", operand="dm")])
|
narrow_predicate = build_narrow_predicate([NarrowTerm(operator="is", operand="dm")])
|
||||||
|
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "private"},
|
message={"type": "private"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "stream"},
|
message={"type": "stream"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
@@ -726,17 +726,17 @@ class NarrowLibraryTest(ZulipTestCase):
|
|||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
narrow_filter = build_narrow_filter([NarrowTerm(operator="is", operand="private")])
|
narrow_predicate = build_narrow_predicate([NarrowTerm(operator="is", operand="private")])
|
||||||
|
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "private"},
|
message={"type": "private"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "stream"},
|
message={"type": "stream"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
@@ -744,17 +744,17 @@ class NarrowLibraryTest(ZulipTestCase):
|
|||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
narrow_filter = build_narrow_filter([NarrowTerm(operator="is", operand="starred")])
|
narrow_predicate = build_narrow_predicate([NarrowTerm(operator="is", operand="starred")])
|
||||||
|
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={},
|
message={},
|
||||||
flags=["starred"],
|
flags=["starred"],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={},
|
message={},
|
||||||
flags=["alerted"],
|
flags=["alerted"],
|
||||||
)
|
)
|
||||||
@@ -762,17 +762,17 @@ class NarrowLibraryTest(ZulipTestCase):
|
|||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
narrow_filter = build_narrow_filter([NarrowTerm(operator="is", operand="alerted")])
|
narrow_predicate = build_narrow_predicate([NarrowTerm(operator="is", operand="alerted")])
|
||||||
|
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={},
|
message={},
|
||||||
flags=["mentioned"],
|
flags=["mentioned"],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={},
|
message={},
|
||||||
flags=["starred"],
|
flags=["starred"],
|
||||||
)
|
)
|
||||||
@@ -780,17 +780,17 @@ class NarrowLibraryTest(ZulipTestCase):
|
|||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
narrow_filter = build_narrow_filter([NarrowTerm(operator="is", operand="mentioned")])
|
narrow_predicate = build_narrow_predicate([NarrowTerm(operator="is", operand="mentioned")])
|
||||||
|
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={},
|
message={},
|
||||||
flags=["mentioned"],
|
flags=["mentioned"],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={},
|
message={},
|
||||||
flags=["starred"],
|
flags=["starred"],
|
||||||
)
|
)
|
||||||
@@ -798,17 +798,17 @@ class NarrowLibraryTest(ZulipTestCase):
|
|||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
narrow_filter = build_narrow_filter([NarrowTerm(operator="is", operand="unread")])
|
narrow_predicate = build_narrow_predicate([NarrowTerm(operator="is", operand="unread")])
|
||||||
|
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={},
|
message={},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={},
|
message={},
|
||||||
flags=["read"],
|
flags=["read"],
|
||||||
)
|
)
|
||||||
@@ -816,31 +816,31 @@ class NarrowLibraryTest(ZulipTestCase):
|
|||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
narrow_filter = build_narrow_filter([NarrowTerm(operator="is", operand="resolved")])
|
narrow_predicate = build_narrow_predicate([NarrowTerm(operator="is", operand="resolved")])
|
||||||
|
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "stream", "subject": "✔ python"},
|
message={"type": "stream", "subject": "✔ python"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "private"},
|
message={"type": "private"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
narrow_filter(
|
narrow_predicate(
|
||||||
message={"type": "stream", "subject": "java"},
|
message={"type": "stream", "subject": "java"},
|
||||||
flags=[],
|
flags=[],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_build_narrow_filter_invalid(self) -> None:
|
def test_build_narrow_predicate_invalid(self) -> None:
|
||||||
with self.assertRaises(JsonableError):
|
with self.assertRaises(JsonableError):
|
||||||
build_narrow_filter([NarrowTerm(operator="invalid_operator", operand="operand")])
|
build_narrow_predicate([NarrowTerm(operator="invalid_operator", operand="operand")])
|
||||||
|
|
||||||
def test_is_spectator_compatible(self) -> None:
|
def test_is_spectator_compatible(self) -> None:
|
||||||
self.assertTrue(is_spectator_compatible([]))
|
self.assertTrue(is_spectator_compatible([]))
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ from tornado import autoreload
|
|||||||
from version import API_FEATURE_LEVEL, ZULIP_MERGE_BASE, ZULIP_VERSION
|
from version import API_FEATURE_LEVEL, ZULIP_MERGE_BASE, ZULIP_VERSION
|
||||||
from zerver.lib.exceptions import JsonableError
|
from zerver.lib.exceptions import JsonableError
|
||||||
from zerver.lib.message import MessageDict
|
from zerver.lib.message import MessageDict
|
||||||
from zerver.lib.narrow import build_narrow_filter, narrow_dataclasses_from_tuples
|
from zerver.lib.narrow import build_narrow_predicate, narrow_dataclasses_from_tuples
|
||||||
from zerver.lib.notification_data import UserMessageNotificationsData
|
from zerver.lib.notification_data import UserMessageNotificationsData
|
||||||
from zerver.lib.queue import queue_json_publish, retry_event
|
from zerver.lib.queue import queue_json_publish, retry_event
|
||||||
from zerver.middleware import async_request_timer_restart
|
from zerver.middleware import async_request_timer_restart
|
||||||
@@ -119,7 +119,7 @@ class ClientDescriptor:
|
|||||||
self.client_type_name = client_type_name
|
self.client_type_name = client_type_name
|
||||||
self._timeout_handle: Any = None # TODO: should be return type of ioloop.call_later
|
self._timeout_handle: Any = None # TODO: should be return type of ioloop.call_later
|
||||||
self.narrow = narrow
|
self.narrow = narrow
|
||||||
self.narrow_filter = build_narrow_filter(modern_narrow)
|
self.narrow_predicate = build_narrow_predicate(modern_narrow)
|
||||||
self.bulk_message_deletion = bulk_message_deletion
|
self.bulk_message_deletion = bulk_message_deletion
|
||||||
self.stream_typing_notifications = stream_typing_notifications
|
self.stream_typing_notifications = stream_typing_notifications
|
||||||
self.user_settings_object = user_settings_object
|
self.user_settings_object = user_settings_object
|
||||||
@@ -230,7 +230,7 @@ class ClientDescriptor:
|
|||||||
# older servers that don't support user_topic.
|
# older servers that don't support user_topic.
|
||||||
return False
|
return False
|
||||||
if event["type"] == "message":
|
if event["type"] == "message":
|
||||||
return self.narrow_filter(message=event["message"], flags=event["flags"])
|
return self.narrow_predicate(message=event["message"], flags=event["flags"])
|
||||||
if event["type"] == "typing" and "stream_id" in event:
|
if event["type"] == "typing" and "stream_id" in event:
|
||||||
# Typing notifications for stream messages are only
|
# Typing notifications for stream messages are only
|
||||||
# delivered if the stream_typing_notifications
|
# delivered if the stream_typing_notifications
|
||||||
|
|||||||
Reference in New Issue
Block a user