code: def package(self):
      copy(
          self,
          pattern="LICENSE.txt",
          dst=os.path.join(self.package_folder, "licenses"),
          src=self.source_folder,
      )
      copy(
          self,
          pattern="NOTICE.txt",
          dst=os.path.join(self.package_folder, "licenses"),
          src=self.source_folder,
      )
      cmake = CMake(self)
      cmake.install()
  
      rmdir(self, os.path.join(self.package_folder, "lib", "cmake"))
      rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
      rmdir(self, os.path.join(self.package_folder, "share"))
  
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 31 for calling the ArrowConan obj's underlying member method code with example usage: obj.package() without return types