diff options
| author | John Estabrook <jestabro@vyos.io> | 2023-05-10 16:05:00 -0500 | 
|---|---|---|
| committer | John Estabrook <jestabro@vyos.io> | 2023-05-17 12:49:45 -0500 | 
| commit | 222f459d82ec8bed2f4e4c89e7ea81249bc4ebe4 (patch) | |
| tree | bd224a75a3f8d3c5f1da779a26f7c9345237f01f /python/vyos/xml_ref/__init__.py | |
| parent | ec4f1851058cc7c57ec460f3e81146bf318e2cc4 (diff) | |
| download | vyos-1x-222f459d82ec8bed2f4e4c89e7ea81249bc4ebe4.tar.gz vyos-1x-222f459d82ec8bed2f4e4c89e7ea81249bc4ebe4.zip | |
xml: T5218: add operations on xml cache
Diffstat (limited to 'python/vyos/xml_ref/__init__.py')
| -rw-r--r-- | python/vyos/xml_ref/__init__.py | 58 | 
1 files changed, 58 insertions, 0 deletions
| diff --git a/python/vyos/xml_ref/__init__.py b/python/vyos/xml_ref/__init__.py new file mode 100644 index 000000000..66525865c --- /dev/null +++ b/python/vyos/xml_ref/__init__.py @@ -0,0 +1,58 @@ +# Copyright 2023 VyOS maintainers and contributors <maintainers@vyos.io> +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this library.  If not, see <http://www.gnu.org/licenses/>. + +from vyos.xml_ref import definition + +def load_reference(cache=[]): +    if cache: +        return cache[0] + +    xml = definition.Xml() + +    try: +        from vyos.xml_ref.cache import reference +        xml.define(reference) +        cache.append(xml) +    except Exception: +        raise ImportError('no xml reference cache !!') + +    return xml + +def is_tag(path: list) -> bool: +    return load_reference().is_tag(path) + +def is_tag_value(path: list) -> bool: +    return load_reference().is_tag_value(path) + +def is_multi(path: list) -> bool: +    return load_reference().is_multi(path) + +def is_valueless(path: list) -> bool: +    return load_reference().is_valueless(path) + +def is_leaf(path: list) -> bool: +    return load_reference().is_leaf(path) + +def component_version() -> dict: +    return load_reference().component_version() + +def multi_to_list(rpath: list, conf: dict) -> dict: +    return load_reference().multi_to_list(rpath, conf) + +def get_defaults(path: list, get_first_key=False) -> dict: +    return load_reference().get_defaults(path, get_first_key=get_first_key) + +def merge_defaults(path: list, conf: dict) -> dict: +    return load_reference().merge_defaults(path, conf) | 
