OXIESEC PANEL
- Current Dir:
/
/
snap
/
certbot
/
4737
/
usr
/
lib
/
python3
/
dist-packages
/
pip
/
_vendor
/
tenacity
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
06/12/2025 06:19:49 PM
rwxr-xr-x
📄
__init__.py
20.01 KB
10/18/2024 05:04:47 PM
rw-r--r--
📄
_asyncio.py
3.47 KB
10/18/2024 05:04:47 PM
rw-r--r--
📄
_utils.py
2.13 KB
10/18/2024 05:04:47 PM
rw-r--r--
📄
after.py
1.64 KB
10/18/2024 05:04:47 PM
rw-r--r--
📄
before.py
1.53 KB
10/18/2024 05:04:47 PM
rw-r--r--
📄
before_sleep.py
2.32 KB
10/18/2024 05:04:47 PM
rw-r--r--
📄
nap.py
1.35 KB
10/18/2024 05:04:47 PM
rw-r--r--
📄
retry.py
8.54 KB
10/18/2024 05:04:47 PM
rw-r--r--
📄
stop.py
3.01 KB
10/18/2024 05:04:47 PM
rw-r--r--
📄
tornadoweb.py
2.09 KB
10/18/2024 05:04:47 PM
rw-r--r--
📄
wait.py
7.84 KB
10/18/2024 05:04:47 PM
rw-r--r--
Editing: _utils.py
Close
# Copyright 2016 Julien Danjou # Copyright 2016 Joshua Harlow # Copyright 2013-2014 Ray Holder # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import sys import typing from datetime import timedelta # sys.maxsize: # An integer giving the maximum value a variable of type Py_ssize_t can take. MAX_WAIT = sys.maxsize / 2 def find_ordinal(pos_num: int) -> str: # See: https://en.wikipedia.org/wiki/English_numerals#Ordinal_numbers if pos_num == 0: return "th" elif pos_num == 1: return "st" elif pos_num == 2: return "nd" elif pos_num == 3: return "rd" elif 4 <= pos_num <= 20: return "th" else: return find_ordinal(pos_num % 10) def to_ordinal(pos_num: int) -> str: return f"{pos_num}{find_ordinal(pos_num)}" def get_callback_name(cb: typing.Callable[..., typing.Any]) -> str: """Get a callback fully-qualified name. If no name can be produced ``repr(cb)`` is called and returned. """ segments = [] try: segments.append(cb.__qualname__) except AttributeError: try: segments.append(cb.__name__) except AttributeError: pass if not segments: return repr(cb) else: try: # When running under sphinx it appears this can be none? if cb.__module__: segments.insert(0, cb.__module__) except AttributeError: pass return ".".join(segments) time_unit_type = typing.Union[int, float, timedelta] def to_seconds(time_unit: time_unit_type) -> float: return float(time_unit.total_seconds() if isinstance(time_unit, timedelta) else time_unit)