當前位置: 首頁>>代碼示例>>Python>>正文


Python yaml.Node方法代碼示例

本文整理匯總了Python中yaml.Node方法的典型用法代碼示例。如果您正苦於以下問題:Python yaml.Node方法的具體用法?Python yaml.Node怎麽用?Python yaml.Node使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在yaml的用法示例。


在下文中一共展示了yaml.Node方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: is_dataclass

# 需要導入模塊: import yaml [as 別名]
# 或者: from yaml import Node [as 別名]
def is_dataclass(obj: Any) -> bool:
    from omegaconf.base import Node

    if dataclasses is None or isinstance(obj, Node):
        return False
    return dataclasses.is_dataclass(obj) 
開發者ID:omry,項目名稱:omegaconf,代碼行數:8,代碼來源:_utils.py

示例2: is_attr_class

# 需要導入模塊: import yaml [as 別名]
# 或者: from yaml import Node [as 別名]
def is_attr_class(obj: Any) -> bool:
    from omegaconf.base import Node

    if attr is None or isinstance(obj, Node):
        return False
    return attr.has(obj) 
開發者ID:omry,項目名稱:omegaconf,代碼行數:8,代碼來源:_utils.py

示例3: __init__

# 需要導入模塊: import yaml [as 別名]
# 或者: from yaml import Node [as 別名]
def __init__(self, node: Node, mode: ViewMode) -> None:
        self.node = node
        self.mode = mode 
開發者ID:datawire,項目名稱:ambassador,代碼行數:5,代碼來源:parser.py

示例4: node

# 需要導入模塊: import yaml [as 別名]
# 或者: from yaml import Node [as 別名]
def node(value: Any) -> Node:
    return COERCIONS[type(value)](value) 
開發者ID:datawire,項目名稱:ambassador,代碼行數:4,代碼來源:parser.py

示例5: __call__

# 需要導入模塊: import yaml [as 別名]
# 或者: from yaml import Node [as 別名]
def __call__(self, loader: SafeLoader, node: Node) -> str:
        """ Implement the tag constructor interface.

        :param loader: YAML loader
        :param node: YAML node to process
        :return: final value
        """
        value = loader.construct_scalar(node)
        return Template(value).substitute(self._params) 
開發者ID:mdklatt,項目名稱:cookiecutter-python-app,代碼行數:11,代碼來源:config.py

示例6: construct_include

# 需要導入模塊: import yaml [as 別名]
# 或者: from yaml import Node [as 別名]
def construct_include(loader: Loader, node: yaml.Node) -> Any:
    """Include file referenced at node."""

    relative_path = os.path.join(loader._root, loader.construct_scalar(node))
    full_path = os.path.abspath(relative_path)
    extension = os.path.splitext(full_path)[1].lstrip(".")

    with open(full_path, "r") as f:
        if extension in ("yaml", "yml"):
            return yaml.load(f, Loader)
        elif extension in ("json",):
            return json.load(f)
        else:
            raise FileFormatNotSupportedError(f".{extension}", relative_path) 
開發者ID:scanapi,項目名稱:scanapi,代碼行數:16,代碼來源:config_loader.py

示例7: get_yaml_loader

# 需要導入模塊: import yaml [as 別名]
# 或者: from yaml import Node [as 別名]
def get_yaml_loader() -> Any:
    # Custom constructor that checks for duplicate keys
    # (from https://gist.github.com/pypt/94d747fe5180851196eb)
    def no_duplicates_constructor(
        loader: yaml.Loader, node: yaml.Node, deep: bool = False
    ) -> Any:
        mapping: Dict[str, Any] = {}
        for key_node, value_node in node.value:
            key = loader.construct_object(key_node, deep=deep)
            value = loader.construct_object(value_node, deep=deep)
            if key in mapping:
                raise yaml.constructor.ConstructorError(
                    "while constructing a mapping",
                    node.start_mark,
                    f"found duplicate key {key}",
                    key_node.start_mark,
                )
            mapping[key] = value
        return loader.construct_mapping(node, deep)

    loader = yaml.SafeLoader
    loader.add_implicit_resolver(
        "tag:yaml.org,2002:float",
        re.compile(
            """^(?:
         [-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+]?[0-9]+)?
        |[-+]?(?:[0-9][0-9_]*)(?:[eE][-+]?[0-9]+)
        |\\.[0-9_]+(?:[eE][-+][0-9]+)?
        |[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*
        |[-+]?\\.(?:inf|Inf|INF)
        |\\.(?:nan|NaN|NAN))$""",
            re.X,
        ),
        list("-+0123456789."),
    )  # type : ignore
    loader.yaml_implicit_resolvers = {
        key: [
            (tag, regexp)
            for tag, regexp in resolvers
            if tag != "tag:yaml.org,2002:timestamp"
        ]
        for key, resolvers in loader.yaml_implicit_resolvers.items()
    }
    loader.add_constructor(
        yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG, no_duplicates_constructor
    )
    return loader 
開發者ID:omry,項目名稱:omegaconf,代碼行數:49,代碼來源:_utils.py

示例8: get_ref_type

# 需要導入模塊: import yaml [as 別名]
# 或者: from yaml import Node [as 別名]
def get_ref_type(obj: Any, key: Any = None) -> Optional[Type[Any]]:
    from omegaconf import DictConfig, ListConfig
    from omegaconf.base import Container, Node
    from omegaconf.nodes import ValueNode

    def none_as_any(t: Optional[Type[Any]]) -> Union[Type[Any], Any]:
        if t is None:
            return Any
        else:
            return t

    if isinstance(obj, Container) and key is not None:
        obj = obj._get_node(key)

    is_optional = True
    ref_type = None
    if isinstance(obj, ValueNode):
        is_optional = obj._is_optional()
        ref_type = obj._metadata.ref_type
    elif isinstance(obj, Container):
        if isinstance(obj, Node):
            ref_type = obj._metadata.ref_type
        if ref_type is Any:
            pass
        elif not is_structured_config(ref_type):
            kt = none_as_any(obj._metadata.key_type)
            vt = none_as_any(obj._metadata.element_type)
            if isinstance(obj, DictConfig):
                ref_type = Dict[kt, vt]  # type: ignore
            elif isinstance(obj, ListConfig):
                ref_type = List[vt]  # type: ignore
        is_optional = obj._is_optional()
    else:
        if isinstance(obj, dict):
            ref_type = Dict[Any, Any]
        elif isinstance(obj, (list, tuple)):
            ref_type = List[Any]
        else:
            ref_type = get_type_of(obj)

    ref_type = none_as_any(ref_type)
    if is_optional and ref_type is not Any:
        ref_type = Optional[ref_type]  # type: ignore
    return ref_type 
開發者ID:omry,項目名稱:omegaconf,代碼行數:46,代碼來源:_utils.py


注:本文中的yaml.Node方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。