# SPDX-FileCopyrightText: Copyright (c) 2020-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#
# Licensed 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.
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://nvidia.github.io/NVTX/LICENSE.txt for license information.

from nvtx.nvtx import (
    annotate,
    enabled,
    push_range,
    pop_range,
    start_range,
    end_range,
    mark,
    get_domain,
    Domain,
    numpy_dtype,
)

from nvtx._lib import (
    BatchOrdering,
    EntryKind,
    EventKind,
    PayloadEntryType,
    PredefinedScope,
)

from nvtx._lib.counters import (
    Counter,
    CounterInterpolation,
    CounterNoValueReason,
    CounterSemantics,
    CounterValueType,
    ExtCounter,
    Float64Counter,
    Int64Counter,
)

from nvtx._lib.time import TimestampType

if enabled():
    from nvtx._lib.profiler import Profile
else:
    class Profile:
        def __init__(self, *args, **kwargs):
            pass

        def enable(self):
            pass

        def disable(self):
            pass
