OXIESEC PANEL
- Current Dir:
/
/
lib
/
python3.9
/
site-packages
/
S3
Server IP: 2a02:4780:11:1594:0:ef5:22d7:a
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
10/22/2025 07:58:12 AM
rwxr-xr-x
📄
ACL.py
8.4 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
AccessLog.py
3.54 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
BaseUtils.py
10.21 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
BidirMap.py
1.37 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
CloudFront.py
36.71 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
Config.py
29.24 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
ConnMan.py
12.98 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
Crypto.py
12.62 KB
12/12/2023 01:00:41 AM
rw-r--r--
📄
Custom_httplib27.py
7.99 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
Custom_httplib3x.py
11.24 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
Exceptions.py
4.74 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
ExitCodes.py
2.2 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
FileDict.py
2.68 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
FileLists.py
28.15 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
HashCache.py
1.91 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
MultiPart.py
13.33 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
PkgInfo.py
934 bytes
12/12/2023 01:08:44 AM
rw-r--r--
📄
Progress.py
8.35 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
S3.py
102.36 KB
12/12/2023 01:00:41 AM
rw-r--r--
📄
S3Uri.py
7.69 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
SortedDict.py
3.08 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
Utils.py
10.77 KB
12/06/2023 09:07:23 AM
rw-r--r--
📄
__init__.py
24 bytes
12/06/2023 09:07:23 AM
rw-r--r--
📁
__pycache__
-
10/22/2025 07:58:12 AM
rwxr-xr-x
Editing: BidirMap.py
Close
# -*- coding: utf-8 -*- ## -------------------------------------------------------------------- ## Amazon S3 manager ## ## Authors : Michal Ludvig <michal@logix.cz> (https://www.logix.cz/michal) ## Florent Viard <florent@sodria.com> (https://www.sodria.com) ## Copyright : TGRMN Software, Sodria SAS and contributors ## License : GPL Version 2 ## Website : https://s3tools.org ## -------------------------------------------------------------------- class BidirMap(object): def __init__(self, **map): self.k2v = {} self.v2k = {} for key in map: self.__setitem__(key, map[key]) def __setitem__(self, key, value): if value in self.v2k: if self.v2k[value] != key: raise KeyError("Value '"+str(value)+"' already in use with key '"+str(self.v2k[value])+"'") try: del(self.v2k[self.k2v[key]]) except KeyError: pass self.k2v[key] = value self.v2k[value] = key def __getitem__(self, key): return self.k2v[key] def __str__(self): return self.v2k.__str__() def getkey(self, value): return self.v2k[value] def getvalue(self, key): return self.k2v[key] def keys(self): return [key for key in self.k2v] def values(self): return [value for value in self.v2k] # vim:et:ts=4:sts=4:ai