OXIESEC PANEL
- Current Dir:
/
/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
testfixtures
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
09/05/2025 09:34:06 AM
rwxr-xr-x
📄
__init__.py
1.19 KB
12/18/2024 10:23:15 AM
rw-r--r--
📁
__pycache__
-
02/07/2025 10:01:36 PM
rwxr-xr-x
📄
comparison.py
39.14 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
compat.py
224 bytes
12/18/2024 10:23:15 AM
rw-r--r--
📄
components.py
1.31 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
datetime.py
24.42 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
django.py
2.88 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
logcapture.py
10.75 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
mock.py
1.21 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
outputcapture.py
4.69 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
popen.py
9.89 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
replace.py
12.15 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
resolve.py
2.05 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
rmtree.py
2.52 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
shouldraise.py
3.58 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
shouldwarn.py
2.21 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
sybil.py
2.28 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
tempdirectory.py
12.89 KB
12/18/2024 10:23:15 AM
rw-r--r--
📁
tests
-
02/07/2025 10:01:36 PM
rwxr-xr-x
📄
twisted.py
4.8 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
utils.py
2.74 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
version.txt
6 bytes
12/18/2024 10:23:15 AM
rw-r--r--
Editing: resolve.py
Close
from operator import setitem from typing import Any, Callable, Optional from testfixtures import not_there # Should be Literal[setattr, getattr] but Python 3.8 only. Setter = Callable[[Any, str, Any], None] class Resolved: def __init__(self, container: Any, setter: Setter, name: str, found: Any): self.container: Any = container self.setter: Setter = setter self.name: str = name self.found: Any = found def __repr__(self): return f'<Resolved: {self.found}>' def resolve(dotted_name: str, container: Optional[Any] = None) -> Resolved: names = dotted_name.split('.') used = names.pop(0) if container is None: found = __import__(used) container = found else: assert not used, 'Absolute traversal not allowed when container supplied' used = '' found = container setter = None name = None for name in names: container = found used += '.' + name try: found = getattr(found, name) setter = setattr except AttributeError: try: __import__(used) except ImportError: setter = setitem try: found = found[name] # pragma: no branch except KeyError: found = not_there # pragma: no branch except TypeError: try: name = int(name) except ValueError: setter = setattr found = not_there else: found = found[name] # pragma: no branch else: found = getattr(found, name) setter = getattr return Resolved(container, setter, name, found) class _Reference: @classmethod def classmethod(cls): # pragma: no cover pass @staticmethod def staticmethod(cls): # pragma: no cover pass class_type = type(_Reference) classmethod_type = type(_Reference.classmethod)