SYMBOL INDEX (158 symbols across 49 files) FILE: opi/__init__.py class NoOptionSelected (line 32) | class NoOptionSelected(Exception): class HTTPError (line 35) | class HTTPError(Exception): function get_cpu_arch (line 43) | def get_cpu_arch(): function get_os_release (line 55) | def get_os_release(): function get_distribution (line 71) | def get_distribution(prefix=False, use_releasever_variable=False): function get_version (line 99) | def get_version() -> str: function expand_vars (line 104) | def expand_vars(s: str) -> str: function add_packman_repo (line 116) | def add_packman_repo(dup=False): function add_openh264_repo (line 147) | def add_openh264_repo(dup=False): function install_packman_packages (line 177) | def install_packman_packages(packages, **kwargs): class Repository (line 185) | class Repository: method __init__ (line 186) | def __init__(self, alias: str, name: str, url: str, auto_refresh: bool... method name_expanded (line 194) | def name_expanded(self): method url_expanded (line 198) | def url_expanded(self): function search_local_repos (line 202) | def search_local_repos(package): function url_normalize (line 264) | def url_normalize(url): function get_repos (line 267) | def get_repos(): function get_enabled_repo_by_url (line 290) | def get_enabled_repo_by_url(url): function add_repo (line 295) | def add_repo(filename, name, url, enabled=True, gpgcheck=True, gpgkey=No... function refresh_repos (line 319) | def refresh_repos(repo_alias=None, auto_import_keys=False): function normalize_key (line 329) | def normalize_key(pem): function split_keys (line 341) | def split_keys(keys): function get_keys_from_rpmdb (line 345) | def get_keys_from_rpmdb(): function install_packages (line 361) | def install_packages(packages, **kwargs): function dist_upgrade (line 364) | def dist_upgrade(**kwargs): function pkgmgr_action (line 367) | def pkgmgr_action(action, packages=[], from_repo=None, allow_vendor_chan... class Installable (line 396) | class Installable: method __init__ (line 397) | def __init__(self, name: str, version: str, release: str, arch: str): method install (line 403) | def install(self): method name_with_arch (line 406) | def name_with_arch(self): method _install_from_existing_repo (line 409) | def _install_from_existing_repo(self, repo: Repository): class OBSPackage (line 417) | class OBSPackage(Installable): method __init__ (line 419) | def __init__(self, method install (line 428) | def install(self): method weight (line 467) | def weight(self): method __lt__ (line 496) | def __lt__(self, other): method is_from_official_project (line 500) | def is_from_official_project(self): method is_from_personal_project (line 503) | def is_from_personal_project(self): class LocalPackage (line 506) | class LocalPackage(Installable): method __init__ (line 508) | def __init__(self, name: str, version: str, release: str, arch: str, r... method install (line 512) | def install(self): function search_published_packages (line 515) | def search_published_packages(obs_instance, query): function get_package_names (line 593) | def get_package_names(packages: list): function sort_uniq_packages (line 602) | def sort_uniq_packages(packages: list): function ask_yes_or_no (line 620) | def ask_yes_or_no(question, default_answer='y'): function ask_for_option (line 634) | def ask_for_option(options, question='Pick a number (0 to quit):', optio... function ask_import_key (line 683) | def ask_import_key(keyurl): function ask_keep_key (line 702) | def ask_keep_key(keyurl, repo_alias=None): function ask_keep_repo (line 731) | def ask_keep_repo(repo_alias): function format_pkg_option (line 738) | def format_pkg_option(package, table=True): FILE: opi/config/__init__.py class ConfigError (line 10) | class ConfigError(Exception): function get_key_from_config (line 14) | def get_key_from_config(key: str): FILE: opi/deb.py function extract_deb (line 6) | def extract_deb(deb, target_dir): FILE: opi/github.py function http_get_json (line 5) | def http_get_json(url): function get_releases (line 10) | def get_releases(org, repo, filter_prereleases=True, filters=[]): function get_latest_release (line 18) | def get_latest_release(org, repo, filter_prereleases=True, filters=[]): function get_release_assets (line 22) | def get_release_assets(release): function get_release_asset (line 25) | def get_release_asset(release, filters=[]): function install_rpm_release (line 31) | def install_rpm_release(org, repo, filters=[lambda a: a['name'].endswith... FILE: opi/http.py function download_file (line 4) | def download_file(url, local_filename): function print_progress (line 22) | def print_progress(bytes_received, total_size): FILE: opi/pager.py function ask_number_with_pager (line 5) | def ask_number_with_pager(text, question='Pick a number (0 to quit):', s... FILE: opi/plugins/__init__.py class BasePlugin (line 6) | class BasePlugin: method matches (line 12) | def matches(cls, query): method run (line 16) | def run(cls, query): class PluginManager (line 19) | class PluginManager: method __init__ (line 20) | def __init__(self): method run (line 31) | def run(self, query): method get_plugin_string (line 41) | def get_plugin_string(self, indent=''): FILE: opi/plugins/antigravity.py class Antigravity (line 4) | class Antigravity(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/anydesk.py class AnyDesk (line 4) | class AnyDesk(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/atom.py class Atom (line 5) | class Atom(BasePlugin): method run (line 11) | def run(cls, query): FILE: opi/plugins/brave.py class BraveBrowser (line 5) | class BraveBrowser(BasePlugin): method run (line 11) | def run(cls, query): FILE: opi/plugins/chrome.py class GoogleChrome (line 5) | class GoogleChrome(BasePlugin): method run (line 11) | def run(cls, query): FILE: opi/plugins/collabora.py class collabora (line 4) | class collabora(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/dotnet.py class MSDotnet (line 4) | class MSDotnet(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/freeoffice.py class SoftMakerFreeOffice (line 4) | class SoftMakerFreeOffice(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/jami.py class Jami (line 4) | class Jami(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/libation.py class Libation (line 5) | class Libation(BasePlugin): method run (line 11) | def run(cls, query): FILE: opi/plugins/librewolf.py class librewolf (line 4) | class librewolf(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/localsend.py class LocalSend (line 10) | class LocalSend(BasePlugin): method run (line 16) | def run(cls, query): FILE: opi/plugins/maptool.py class MapTool (line 5) | class MapTool(BasePlugin): method run (line 11) | def run(cls, query): FILE: opi/plugins/megasync.py class MEGAsync (line 6) | class MEGAsync(BasePlugin): method run (line 12) | def run(cls, query): FILE: opi/plugins/ms_edge.py class MSEdge (line 6) | class MSEdge(BasePlugin): method run (line 12) | def run(cls, query): FILE: opi/plugins/mullvad-browser.py class MullvadBrowser (line 5) | class MullvadBrowser(BasePlugin): method run (line 11) | def run(cls, query): FILE: opi/plugins/ocenaudio.py class Ocenaudio (line 4) | class Ocenaudio(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/onlyoffice.py class OnlyOffice (line 7) | class OnlyOffice(BasePlugin): method run (line 13) | def run(cls, query): FILE: opi/plugins/orca_slicer.py class OrcaSlicer (line 8) | class OrcaSlicer(BasePlugin): method run (line 14) | def run(cls, query): FILE: opi/plugins/packman.py class PackmanCodecsPlugin (line 4) | class PackmanCodecsPlugin(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/plex.py class PlexMediaServer (line 4) | class PlexMediaServer(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/resilio-sync.py class ResilioSync (line 4) | class ResilioSync(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/rustdesk.py class RustDesk (line 5) | class RustDesk(BasePlugin): method run (line 11) | def run(cls, query): FILE: opi/plugins/skype.py class Skype (line 4) | class Skype(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/slack.py class Slack (line 5) | class Slack(BasePlugin): method run (line 11) | def run(cls, query): FILE: opi/plugins/spotify.py class Spotify (line 9) | class Spotify(BasePlugin): method run (line 15) | def run(cls, query): FILE: opi/plugins/sublime.py class SublimeText (line 4) | class SublimeText(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/teams-for-linux.py class TeamsForLinux (line 4) | class TeamsForLinux(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/teamviewer.py class Teamviewer (line 6) | class Teamviewer(BasePlugin): method run (line 12) | def run(cls, query): FILE: opi/plugins/vagrant.py class Vagrant (line 4) | class Vagrant(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/vivaldi.py class Vivaldi (line 4) | class Vivaldi(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/vs_code.py class VSCode (line 4) | class VSCode(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/vs_codium.py class VSCodium (line 4) | class VSCodium(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/yandex-browser.py class YandexBrowser (line 4) | class YandexBrowser(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/yandex-disk.py class YandexDisk (line 4) | class YandexDisk(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/plugins/zellij.py class Zellij (line 11) | class Zellij(BasePlugin): method run (line 17) | def run(cls, query): FILE: opi/plugins/zoom.py class Zoom (line 4) | class Zoom(BasePlugin): method run (line 10) | def run(cls, query): FILE: opi/rpmbuild.py function copy (line 10) | def copy(src, dst): function dedent (line 26) | def dedent(s): class RPMBuild (line 32) | class RPMBuild: method __init__ (line 33) | def __init__(self, name, version, description, buildarch="noarch", method mkspec (line 63) | def mkspec(self): method add_desktop_file (line 92) | def add_desktop_file(self, cmd, icon, **kwargs): method build (line 109) | def build(self): FILE: opi/snap.py function http_get_json (line 6) | def http_get_json(url): function get_snap (line 11) | def get_snap(snap, channel='stable', arch=None): function extract_snap (line 20) | def extract_snap(snap, target_dir): FILE: opi/state.py class GlobalState (line 1) | class GlobalState: method __setattr__ (line 9) | def __setattr__(self, key, value): method __getattr__ (line 12) | def __getattr__(self, key): FILE: proxy/opi_proxy/__init__.py function endpoint (line 15) | def endpoint(): FILE: test/99_install_opi.py function run (line 5) | def run(cmd, **kwargs):