summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorPatrick Cloke <clokep@users.noreply.github.com>2021-02-19 08:32:21 -0500
committerGitHub <noreply@github.com>2021-02-19 08:32:21 -0500
commita1901abd6bb7be4887f439350144a9c8ca548208 (patch)
treef102383e2f58d323f8abb5d3ba3f534b183ec728 /synapse
parentFix style checking due to updated black. (diff)
downloadsynapse-a1901abd6bb7be4887f439350144a9c8ca548208.tar.xz
Add documentation and type hints to parse_duration. (#9432)
Diffstat (limited to 'synapse')
-rw-r--r--synapse/config/_base.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/synapse/config/_base.py b/synapse/config/_base.py
index 97399eb9ba..e89decda34 100644
--- a/synapse/config/_base.py
+++ b/synapse/config/_base.py
@@ -21,7 +21,7 @@ import os
 from collections import OrderedDict
 from hashlib import sha256
 from textwrap import dedent
-from typing import Any, Iterable, List, MutableMapping, Optional
+from typing import Any, Iterable, List, MutableMapping, Optional, Union
 
 import attr
 import jinja2
@@ -147,7 +147,20 @@ class Config:
         return int(value) * size
 
     @staticmethod
-    def parse_duration(value):
+    def parse_duration(value: Union[str, int]) -> int:
+        """Convert a duration as a string or integer to a number of milliseconds.
+
+        If an integer is provided it is treated as milliseconds and is unchanged.
+
+        String durations can have a suffix of 's', 'm', 'h', 'd', 'w', or 'y'.
+        No suffix is treated as milliseconds.
+
+        Args:
+            value: The duration to parse.
+
+        Returns:
+            The number of milliseconds in the duration.
+        """
         if isinstance(value, int):
             return value
         second = 1000