From f4cb272e22a72613ce6cc7e4c0e0ad52aa5e671e Mon Sep 17 00:00:00 2001 From: Chiizujin Date: Mon, 1 Apr 2024 15:51:39 +1100 Subject: [PATCH 1/2] Add support to get_numbered_name() for omitting the article for single items --- evennia/objects/objects.py | 6 ++++++ evennia/objects/tests.py | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/evennia/objects/objects.py b/evennia/objects/objects.py index 97b5849224..829b8df6d8 100644 --- a/evennia/objects/objects.py +++ b/evennia/objects/objects.py @@ -1476,6 +1476,7 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase): method is used. return_string (bool): If `True`, return only the singular form if count is 0,1 or the plural form otherwise. If `False` (default), return both forms as a tuple. + no_article (bool): If `True`, do not return an article if `count` is 1. Returns: tuple: This is a tuple `(str, str)` with the singular and plural forms of the key @@ -1505,6 +1506,11 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase): # look at 'an egg'. self.aliases.add(singular, category=plural_category) + if kwargs.get("no_article") and count == 1: + if kwargs.get("return_string"): + return key + return key, key + if kwargs.get("return_string"): return singular if count==1 else plural diff --git a/evennia/objects/tests.py b/evennia/objects/tests.py index a77b348d02..abc2adecdb 100644 --- a/evennia/objects/tests.py +++ b/evennia/objects/tests.py @@ -185,6 +185,11 @@ class DefaultObjectTest(BaseEvenniaTest): pattern, ) + def test_get_name_without_article(self): + self.assertEqual(self.obj1.get_numbered_name(1, self.char1, return_string=True), "an Obj") + self.assertEqual( + self.obj1.get_numbered_name(1, self.char1, return_string=True, no_article=True), "Obj" + ) class TestObjectManager(BaseEvenniaTest): "Test object manager methods" From 8da1e3790fc58d6059db11dc32e74e7cd20c7dea Mon Sep 17 00:00:00 2001 From: Chiizujin Date: Mon, 1 Apr 2024 23:05:25 +1100 Subject: [PATCH 2/2] Add examples to doc string of get_numbered_name() --- evennia/objects/objects.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/evennia/objects/objects.py b/evennia/objects/objects.py index 829b8df6d8..4b4fed4ad1 100644 --- a/evennia/objects/objects.py +++ b/evennia/objects/objects.py @@ -1483,8 +1483,12 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase): including the count. Examples: - :: - obj.get_numbered_name(3, looker, key="foo") -> ("a foo", "three foos") + :: + - obj.get_numbered_name(3, looker, key="foo") -> ("a foo", "three foos") + - obj.get_numbered_name(1, looker, key="Foobert", return_string=True) + -> "a Foobert" + - obj.get_numbered_name(1, looker, key="Foobert", return_string=True, no_article=True) + -> "Foobert" """ plural_category = "plural_key"