OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
python3
/
dist-packages
/
cloudinit
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/17/2025 09:32:20 AM
rwxr-xr-x
📄
__init__.py
0 bytes
04/20/2023 09:31:09 PM
rw-r--r--
📁
__pycache__
-
05/09/2024 07:15:08 AM
rwxr-xr-x
📁
analyze
-
05/09/2024 07:15:08 AM
rwxr-xr-x
📄
apport.py
5.74 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
atomic_helper.py
1.38 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
cloud.py
3.49 KB
04/20/2023 09:31:09 PM
rw-r--r--
📁
cmd
-
05/09/2024 07:15:08 AM
rwxr-xr-x
📁
config
-
05/09/2024 07:15:08 AM
rwxr-xr-x
📄
dhclient_hook.py
2.49 KB
04/20/2023 09:31:09 PM
rw-r--r--
📁
distros
-
05/09/2024 07:15:08 AM
rwxr-xr-x
📄
dmi.py
6.82 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
event.py
2.05 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
features.py
3.07 KB
04/21/2023 07:44:30 PM
rw-r--r--
📁
filters
-
05/09/2024 07:15:08 AM
rwxr-xr-x
📄
gpg.py
4.32 KB
04/20/2023 09:31:09 PM
rw-r--r--
📁
handlers
-
05/09/2024 07:15:08 AM
rwxr-xr-x
📄
helpers.py
16.43 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
importer.py
1.75 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
log.py
4.33 KB
04/20/2023 09:31:09 PM
rw-r--r--
📁
mergers
-
05/09/2024 07:15:07 AM
rwxr-xr-x
📁
net
-
05/09/2024 07:15:08 AM
rwxr-xr-x
📄
netinfo.py
22.57 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
patcher.py
1.1 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
persistence.py
2.54 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
registry.py
1.02 KB
04/20/2023 09:31:09 PM
rw-r--r--
📁
reporting
-
05/09/2024 07:15:08 AM
rwxr-xr-x
📄
safeyaml.py
7.72 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
settings.py
1.99 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
signal_handler.py
1.78 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
simpletable.py
1.93 KB
04/20/2023 09:31:09 PM
rw-r--r--
📁
sources
-
05/09/2024 07:15:07 AM
rwxr-xr-x
📄
ssh_util.py
20.71 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
stages.py
34.48 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
subp.py
13.24 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
temp_utils.py
3.19 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
templater.py
5.83 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
type_utils.py
726 bytes
04/20/2023 09:31:09 PM
rw-r--r--
📄
url_helper.py
27.96 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
user_data.py
14.49 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
util.py
90.45 KB
04/20/2023 09:31:09 PM
rw-r--r--
📄
version.py
591 bytes
04/21/2023 07:44:30 PM
rw-r--r--
📄
warnings.py
3.84 KB
04/20/2023 09:31:09 PM
rw-r--r--
Editing: importer.py
Close
# Copyright (C) 2012 Canonical Ltd. # Copyright (C) 2012 Hewlett-Packard Development Company, L.P. # Copyright (C) 2012 Yahoo! Inc. # # Author: Scott Moser <scott.moser@canonical.com> # Author: Juerg Haefliger <juerg.haefliger@hp.com> # Author: Joshua Harlow <harlowja@yahoo-inc.com> # # This file is part of cloud-init. See LICENSE file for license information. import importlib from types import ModuleType from typing import Optional, Sequence def import_module(module_name: str) -> ModuleType: return importlib.import_module(module_name) def _count_attrs( module_name: str, attrs: Optional[Sequence[str]] = None ) -> int: found_attrs = 0 if not attrs: return found_attrs mod = importlib.import_module(module_name) for attr in attrs: if hasattr(mod, attr): found_attrs += 1 return found_attrs def find_module( base_name: str, search_paths: Sequence[str], required_attrs: Optional[Sequence[str]] = None, ) -> tuple: """Finds specified modules""" if not required_attrs: required_attrs = [] # NOTE(harlowja): translate the search paths to include the base name. lookup_paths = [] for path in search_paths: real_path = [] if path: real_path.extend(path.split(".")) real_path.append(base_name) full_path = ".".join(real_path) lookup_paths.append(full_path) found_paths = [] for full_path in lookup_paths: if not importlib.util.find_spec(full_path): continue # Check that required_attrs are all present within the module. if _count_attrs(full_path, required_attrs) == len(required_attrs): found_paths.append(full_path) return (found_paths, lookup_paths) # vi: ts=4 expandtab