From 50a899f2f0587c850fb8774ebba65eb9ac407bb2 Mon Sep 17 00:00:00 2001 From: Justin Campbell Date: Fri, 30 Oct 2020 11:15:09 -0400 Subject: [PATCH] Create utility function for checking valid item names --- api/ECNQueue.py | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/api/ECNQueue.py b/api/ECNQueue.py index 4af0767..a1ad7a8 100644 --- a/api/ECNQueue.py +++ b/api/ECNQueue.py @@ -56,6 +56,29 @@ queuesToIgnore = ["archives", "drafts", "inbox", "coral"] + +#------------------------------------------------------------------------------# +# Utilities +#------------------------------------------------------------------------------# + +def isValidItemName(name: str) -> bool: + """Returns true if file name is a valid item name + + Example: + isValidItemName("21") -> true + isValidItemName("twentyone") -> false + + Args: + name (str): The name to test. + + Returns: + bool: Name is valid item name. + """ + itemPattern = re.compile("^[0123456789]{1,3}$") + return True if itemPattern.match(name) else False + + + #------------------------------------------------------------------------------# # Classes #------------------------------------------------------------------------------# @@ -1187,8 +1210,6 @@ def __repr__(self) -> str: return self.queue + str(self.number) # TODO: Make Queue iterable using __iter__. See: https://thispointer.com/python-how-to-make-a-class-iterable-create-iterator-class-for-it/ - - class Queue: """A collection of items. @@ -1225,10 +1246,7 @@ def __getItems(self) -> list: isFile = True if os.path.isfile(itemPath) else False - itemPattern = re.compile("^[0123456789]{1,3}$") - isItem = True if itemPattern.match(item) else False - - if isFile and isItem: + if isFile and isValidItemName(item): items.append(Item(self.name, item)) return items @@ -1252,6 +1270,9 @@ def toJson(self) -> dict: def __len__(self) -> int: return len(self.items) + def __repr__(self) -> str: + return f'{self.name}_queue' + def getValidQueues() -> list: """Returns a list of queues on the filesystem excluding ignored queues. @@ -1284,7 +1305,4 @@ def loadQueues() -> list: for queue in getValidQueues(): queues.append(Queue(queue)) - return queues - -if __name__ == "__main__": - print("Stop") \ No newline at end of file + return queues \ No newline at end of file