# Copyright 2026 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/python/python_host_test.gni")
import("//build/python/python_library.gni")

group("tests") {
  testonly = true
  deps = [ ":client_test($host_toolchain)" ]
}

if (is_host) {
  python_library("lib") {
    library_name = "pydap"
    sources = [
      "__init__.py",
      "client.py",
      "dap_types.py",
      "models.py",
    ]
    deps = [ "//third_party/pylibs/pydantic" ]
  }

  python_host_test("client_test") {
    main_source = "tests/client_test.py"
    deps = [ ":lib" ]
  }
}
