code: def package_info(self):
      self.cpp_info.filenames["cmake_find_package"] = "Arrow"
      self.cpp_info.filenames["cmake_find_package_multi"] = "Arrow"
      self.cpp_info.components["libarrow"].libs = [
          self._lib_name("arrow")
      ]
      self.cpp_info.components["libarrow"].names[
          "cmake_find_package"
      ] = "arrow"
      self.cpp_info.components["libarrow"].names[
          "cmake_find_package_multi"
      ] = "arrow"
      self.cpp_info.components["libarrow"].names["pkg_config"] = "arrow"
      if not self.options.shared:
          self.cpp_info.components["libarrow"].defines = [
              "ARROW_STATIC"
          ]
          if self.settings.os in ["Linux", "FreeBSD"]:
              self.cpp_info.components["libarrow"].system_libs = [
                  "pthread",
                  "m",
                  "dl",
                  "rt",
              ]
  
      if self._parquet():
          self.cpp_info.components["libparquet"].libs = [
              self._lib_name("parquet")
          ]
          self.cpp_info.components["libparquet"].names[
              "cmake_find_package"
          ] = "parquet"
          self.cpp_info.components["libparquet"].names[
              "cmake_find_package_multi"
          ] = "parquet"
          self.cpp_info.components["libparquet"].names[
              "pkg_config"
          ] = "parquet"
          self.cpp_info.components["libparquet"].requires = ["libarrow"]
          if not self.options.shared:
              self.cpp_info.components["libparquet"].defines = [
                  "PARQUET_STATIC"
              ]
  
      if self.options.get_safe("substrait", False):
          self.cpp_info.components["libarrow_substrait"].libs = [
              self._lib_name("arrow_substrait")
          ]
          self.cpp_info.components["libarrow_substrait"].names[
              "cmake_find_package"
          ] = "arrow_substrait"
          self.cpp_info.components["libarrow_substrait"].names[
              "cmake_find_package_multi"
          ] = "arrow_substrait"
          self.cpp_info.components["libarrow_substrait"].names[
              "pkg_config"
          ] = "arrow_substrait"
          self.cpp_info.components["libarrow_substrait"].requires = [
              "libparquet",
              "dataset",
              "acero",
          ]
  
      if self._plasma():
          self.cpp_info.components["libplasma"].libs = [
              self._lib_name("plasma")
          ]
          self.cpp_info.components["libplasma"].names[
              "cmake_find_package"
          ] = "plasma"
          self.cpp_info.components["libplasma"].names[
              "cmake_find_package_multi"
          ] = "plasma"
          self.cpp_info.components["libplasma"].names[
              "pkg_config"
          ] = "plasma"
          self.cpp_info.components["libplasma"].requires = ["libarrow"]
  
      if self.options.gandiva:
          self.cpp_info.components["libgandiva"].libs = [
              self._lib_name("gandiva")
          ]
          self.cpp_info.components["libgandiva"].names[
              "cmake_find_package"
          ] = "gandiva"
          self.cpp_info.components["libgandiva"].names[
              "cmake_find_package_multi"
          ] = "gandiva"
          self.cpp_info.components["libgandiva"].names[
              "pkg_config"
          ] = "gandiva"
          self.cpp_info.components["libgandiva"].requires = ["libarrow"]
          if not self.options.shared:
              self.cpp_info.components["libgandiva"].defines = [
                  "GANDIVA_STATIC"
              ]
  
      if self._with_flight_rpc():
          self.cpp_info.components["libarrow_flight"].libs = [
              self._lib_name("arrow_flight")
          ]
          self.cpp_info.components["libarrow_flight"].names[
              "cmake_find_package"
          ] = "flight_rpc"
          self.cpp_info.components["libarrow_flight"].names[
              "cmake_find_package_multi"
          ] = "flight_rpc"
          self.cpp_info.components["libarrow_flight"].names[
              "pkg_config"
          ] = "flight_rpc"
          self.cpp_info.components["libarrow_flight"].requires = [
              "libarrow"
          ]
  
      if self.options.get_safe("with_flight_sql"):
          self.cpp_info.components["libarrow_flight_sql"].libs = [
              self._lib_name("arrow_flight_sql")
          ]
          self.cpp_info.components["libarrow_flight_sql"].names[
              "cmake_find_package"
          ] = "flight_sql"
          self.cpp_info.components["libarrow_flight_sql"].names[
              "cmake_find_package_multi"
          ] = "flight_sql"
          self.cpp_info.components["libarrow_flight_sql"].names[
              "pkg_config"
          ] = "flight_sql"
          self.cpp_info.components["libarrow_flight_sql"].requires = [
              "libarrow",
              "libarrow_flight",
          ]
  
      if self._acero():
          self.cpp_info.components["acero"].libs = ["arrow_acero"]
  
      if self._dataset_modules():
          self.cpp_info.components["dataset"].libs = ["arrow_dataset"]
  
      if (
          self.options.cli
          and (
              self.options.with_cuda
              or self._with_flight_rpc()
              or self._parquet()
          )
      ) or self._plasma():
          binpath = os.path.join(self.package_folder, "bin")
          self.output.info(f"Appending PATH env var: {binpath}")
          self.env_info.PATH.append(binpath)
  
      if self._with_boost():
          if self.options.gandiva:
              # FIXME: only filesystem component is used
              self.cpp_info.components["libgandiva"].requires.append(
                  "boost::boost"
              )
          if (
              self._parquet()
              and self.settings.compiler == "gcc"
              and self.settings.compiler.version < Version("4.9")
          ):
              self.cpp_info.components["libparquet"].requires.append(
                  "boost::boost"
              )
          if Version(self.version) >= "2.0":
              # FIXME: only headers components is used
              self.cpp_info.components["libarrow"].requires.append(
                  "boost::boost"
              )
      if self._with_openssl():
          self.cpp_info.components["libarrow"].requires.append(
              "openssl::openssl"
          )
      if self._with_gflags():
          self.cpp_info.components["libarrow"].requires.append(
              "gflags::gflags"
          )
      if self._with_glog():
          self.cpp_info.components["libarrow"].requires.append(
              "glog::glog"
          )
      if self._with_jemalloc():
          self.cpp_info.components["libarrow"].requires.append(
              "jemalloc::jemalloc"
          )
      if self.options.with_mimalloc:
          self.cpp_info.components["libarrow"].requires.append(
              "mimalloc::mimalloc"
          )
      if self._with_re2():
          if self.options.gandiva:
              self.cpp_info.components["libgandiva"].requires.append(
                  "re2::re2"
              )
          if self._parquet():
              self.cpp_info.components["libparquet"].requires.append(
                  "re2::re2"
              )
          self.cpp_info.components["libarrow"].requires.append(
              "re2::re2"
          )
      if self._with_llvm():
          self.cpp_info.components["libgandiva"].requires.append(
              "llvm-core::llvm-core"
          )
      if self._with_protobuf():
          self.cpp_info.components["libarrow"].requires.append(
              "protobuf::protobuf"
          )
      if self._with_utf8proc():
          self.cpp_info.components["libarrow"].requires.append(
              "utf8proc::utf8proc"
          )
      if self._with_thrift():
          self.cpp_info.components["libarrow"].requires.append(
              "thrift::thrift"
          )
      if self.options.with_backtrace:
          self.cpp_info.components["libarrow"].requires.append(
              "libbacktrace::libbacktrace"
          )
      if self.options.with_cuda:
          self.cpp_info.components["libarrow"].requires.append(
              "cuda::cuda"
          )
      if self._with_rapidjson():
          self.cpp_info.components["libarrow"].requires.append(
              "rapidjson::rapidjson"
          )
      if self.options.with_s3:
          self.cpp_info.components["libarrow"].requires.append(
              "aws-sdk-cpp::s3"
          )
      if self.options.get_safe("with_gcs"):
          self.cpp_info.components["libarrow"].requires.append(
              "google-cloud-cpp::storage"
          )
      if self.options.with_orc:
          self.cpp_info.components["libarrow"].requires.append(
              "orc::orc"
          )
      if self.options.get_safe("with_opentelemetry"):
          self.cpp_info.components["libarrow"].requires.append(
              "opentelemetry-cpp::opentelemetry-cpp"
          )
      if self.options.with_brotli:
          self.cpp_info.components["libarrow"].requires.append(
              "brotli::brotli"
          )
      if self.options.with_bz2:
          self.cpp_info.components["libarrow"].requires.append(
              "bzip2::bzip2"
          )
      if self.options.with_lz4:
          self.cpp_info.components["libarrow"].requires.append(
              "lz4::lz4"
          )
      if self.options.with_snappy:
          self.cpp_info.components["libarrow"].requires.append(
              "snappy::snappy"
          )
      if (
          self.options.get_safe("simd_level") != None
          or self.options.get_safe("runtime_simd_level") != None
      ):
          self.cpp_info.components["libarrow"].requires.append(
              "xsimd::xsimd"
          )
      if self.options.with_zlib:
          self.cpp_info.components["libarrow"].requires.append(
              "zlib::zlib"
          )
      if self.options.with_zstd:
          self.cpp_info.components["libarrow"].requires.append(
              "zstd::zstd"
          )
      if self._with_boost():
          self.cpp_info.components["libarrow"].requires.append(
              "boost::boost"
          )
      if self._with_grpc():
          self.cpp_info.components["libarrow"].requires.append(
              "grpc::grpc"
          )
      if self._with_flight_rpc():
          self.cpp_info.components["libarrow_flight"].requires.append(
              "protobuf::protobuf"
          )
  
imports: from conan import ConanFile
  from conan.errors import ConanInvalidConfiguration
  from conan.tools.microsoft import is_msvc_static_runtime, is_msvc, check_min_vs
  from conan.tools.files import export_conandata_patches, apply_conandata_patches, get, copy, rmdir
  from conan.tools.build import check_min_cppstd, cross_building
  from conan.tools.scm import Version
  from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
  import os
  import glob
label_desc: Use image node_id 34 for calling the ArrowConan obj's underlying member method code with example usage: obj.package_info() without return types