code: def prepare_catboostmodel_lib(
      src_dir: str, dst_dir: str, release_version: str
  ):
      for system, archs in get_sys_arch_list():
          lib_prefix = "" if system == "windows" else "lib"
          lib_suffixes = {
              "darwin": [".dylib"],
              "linux": [".so"],
              "windows": [".lib", ".dll"],
          }[system]
  
          for arch in archs:
              for lib_suffix in lib_suffixes:
                  os.rename(
                      os.path.join(
                          src_dir,
                          f"model_interface_{system}-{arch}",
                          f"{lib_prefix}catboostmodel{lib_suffix}",
                      ),
                      os.path.join(
                          dst_dir,
                          f"{lib_prefix}catboostmodel-{system}-{arch}-{release_version}{lib_suffix}",
                      ),
                  )
  
      # legacy names for compatibility
      for lib_suffix in [".lib", ".dll"]:
          shutil.copy2(
              os.path.join(
                  dst_dir,
                  f"catboostmodel-windows-x86_64-{release_version}{lib_suffix}",
              ),
              os.path.join(dst_dir, f"catboostmodel{lib_suffix}"),
          )
      shutil.copy2(
          os.path.join(
              dst_dir,
              f"libcatboostmodel-darwin-universal2-{release_version}.dylib",
          ),
          os.path.join(dst_dir, "libcatboostmodel.dylib"),
      )
      shutil.copy2(
          os.path.join(
              dst_dir,
              f"libcatboostmodel-linux-x86_64-{release_version}.so",
          ),
          os.path.join(dst_dir, "libcatboostmodel.so"),
      )
  
file_path: catboost/ci/prepare_release_artifacts.py
imports: import argparse
  import os
  import shutil
  import tarfile
  import tempfile
label_desc: Use image node_id 5 for calling a global function with example usage: prepare_catboostmodel_lib(src_dir, dst_dir, release_version) without return types