summary refs log tree commit diff
path: root/synapse/config
diff options
context:
space:
mode:
authorreivilibre <oliverw@matrix.org>2023-09-06 13:01:10 +0000
committerGitHub <noreply@github.com>2023-09-06 14:01:10 +0100
commite937e2111a45d0cb3ecc973f95dafafecb6e9c36 (patch)
tree2a776e522093526abe2309654fd7a2f68097a349 /synapse/config
parentAllow modules to delete rooms. (#15997) (diff)
downloadsynapse-e937e2111a45d0cb3ecc973f95dafafecb6e9c36.tar.xz
Add the ability to use `G` (GiB) and `T` (TiB) suffixes in configuration options that refer to numbers of bytes. (#16219)
* Add more suffixes to `parse_size`

* Newsfile

Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>

---------

Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
Diffstat (limited to 'synapse/config')
-rw-r--r--synapse/config/_base.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/synapse/config/_base.py b/synapse/config/_base.py
index 69a8318127..58856839e1 100644
--- a/synapse/config/_base.py
+++ b/synapse/config/_base.py
@@ -179,8 +179,9 @@ class Config:
 
         If an integer is provided it is treated as bytes and is unchanged.
 
-        String byte sizes can have a suffix of 'K' or `M`, representing kibibytes and
-        mebibytes respectively. No suffix is understood as a plain byte count.
+        String byte sizes can have a suffix of 'K', `M`, `G` or `T`,
+        representing kibibytes, mebibytes, gibibytes and tebibytes respectively.
+        No suffix is understood as a plain byte count.
 
         Raises:
             TypeError, if given something other than an integer or a string
@@ -189,7 +190,7 @@ class Config:
         if type(value) is int:  # noqa: E721
             return value
         elif isinstance(value, str):
-            sizes = {"K": 1024, "M": 1024 * 1024}
+            sizes = {"K": 1024, "M": 1024 * 1024, "G": 1024**3, "T": 1024**4}
             size = 1
             suffix = value[-1]
             if suffix in sizes: