blob: 460746f94f1fdbb237481549478461fc4af2c01c [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# pylint: disable=no-else-return, unidiomatic-typecheck, unused-import
"""The base node types for the Relay language."""
import os
import tvm._ffi
from tvm.ir import Node as RelayNode
from tvm.ir import SourceName, Span, SequentialSpan
from tvm.runtime import Object
from . import _ffi_api
__STD_PATH__ = os.path.join(os.path.dirname(os.path.realpath(__file__)), "std")
def pretty_print(obj: Object) -> None:
"""Pretty print the object."""
return _ffi_api.PrettyPrint(obj) # type: ignore # pylint: disable=no-member
def astext(obj: Object, show_meta_data=True, annotate=None):
"""Get the text format of the expression.
Parameters
----------
obj : Object
The object to be printed.
show_meta_data : bool
Whether to include meta data section in the text
if there is meta data.
annotate: Optional[Object->str]
Optionally annotate function to provide additional
information in the comment block.
Returns
-------
text : str
The text format of the expression.
Notes
-----
The meta data section is necessary to fully parse the text format.
However, it can contain dumps that are big (e.g constant weights),
so it can be helpful to skip printing the meta data section.
"""
return _ffi_api.AsText(obj, show_meta_data, annotate) # type: ignore # pylint: disable=no-member
@tvm._ffi.register_func("tvm.relay.std_path")
def _std_path():
return __STD_PATH__
@tvm._ffi.register_object("relay.Id")
class Id(Object):
"""Unique identifier(name) used in Var.
Guaranteed to be stable across all passes.
"""
def __init__(self):
raise RuntimeError("Cannot directly construct Id")