aboutsummaryrefslogtreecommitdiffstats
path: root/bsfs/utils/uri.py
diff options
context:
space:
mode:
Diffstat (limited to 'bsfs/utils/uri.py')
-rw-r--r--bsfs/utils/uri.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/bsfs/utils/uri.py b/bsfs/utils/uri.py
index 0693017..5755a6e 100644
--- a/bsfs/utils/uri.py
+++ b/bsfs/utils/uri.py
@@ -4,6 +4,8 @@ import re
import typing
# constants
+RX_CHARS = re.compile(r'[<>" {}|\\^]')
+
RX_URI = re.compile(r'''
^
(?:(?P<scheme>[^:/?#]+):)? # scheme, ://-delimited
@@ -77,6 +79,9 @@ class URI(str):
no claim about the validity of an URI!
"""
+ # check characters
+ if RX_CHARS.search(query) is not None:
+ return False
# check uri
parts = RX_URI.match(query)
if parts is not None:
@@ -227,9 +232,6 @@ class URI(str):
# overload formatting methods
- def format(self, *args, **kwargs) -> 'URI':
- return URI(super().format(*args, **kwargs))
-
def __mod__(self, *args) -> 'URI':
return URI(super().__mod__(*args))