# Copyright 2010-2022 Google LLC # 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. # Python wrapper for cp_model. load("@pip_deps//:requirements.bzl", "requirement") load("@pybind11_bazel//:build_defs.bzl", "pybind_extension") load("@rules_python//python:defs.bzl", "py_library") pybind_extension( name = "swig_helper", srcs = ["swig_helper.cc"], visibility = ["//visibility:public"], deps = [ "//ortools/sat:cp_model_cc_proto", "//ortools/sat:sat_parameters_cc_proto", "//ortools/sat:swig_helper", "@com_google_absl//absl/strings", "@pybind11_protobuf//pybind11_protobuf:native_proto_caster", ], ) py_test( name = "swig_helper_test", srcs = ["swig_helper_test.py"], deps = [ ":swig_helper", "//ortools/sat:cp_model_py_pb2", "//ortools/sat:sat_parameters_py_pb2", "//ortools/util/python:sorted_interval_list", requirement("absl-py"), ], ) py_library( name = "cp_model_helper", srcs = ["cp_model_helper.py"], visibility = ["//visibility:public"], deps = [ ":swig_helper", requirement("numpy"), "@com_google_protobuf//:protobuf_python", ], ) py_test( name = "cp_model_helper_test", srcs = ["cp_model_helper_test.py"], deps = [ ":cp_model_helper", requirement("absl-py"), ], ) py_library( name = "cp_model", srcs = ["cp_model.py"], visibility = ["//visibility:public"], deps = [ ":cp_model_helper", ":swig_helper", requirement("numpy"), requirement("pandas"), "//ortools/sat:cp_model_py_pb2", "//ortools/sat:sat_parameters_py_pb2", "//ortools/util/python:sorted_interval_list", ], ) py_test( name = "cp_model_test", srcs = ["cp_model_test.py"], deps = [ ":cp_model", requirement("absl-py"), ], )