code: def append_to_uri_path(uri, *paths):
      """Appends the specified POSIX `paths` to the path component of the specified `uri`.
  
      Args:
          uri: The input URI, represented as a string.
          paths: The POSIX paths to append to the specified `uri`'s path component.
  
      Returns:
          A new URI with a path component consisting of the specified `paths` appended to
          the path component of the specified `uri`.
  
          .. code-block:: python
            uri1 = "s3://root/base/path?param=value"
            uri1 = append_to_uri_path(uri1, "some/subpath", "/anotherpath")
            assert uri1 == "s3://root/base/path/some/subpath/anotherpath?param=value"
            uri2 = "a/posix/path"
            uri2 = append_to_uri_path(uri2, "/some", "subpath")
            assert uri2 == "a/posixpath/some/subpath"
      """
      path = ""
      for subpath in paths:
          path = _join_posixpaths_and_append_absolute_suffixes(
              path, subpath
          )
  
      parsed_uri = urllib.parse.urlparse(uri)
  
      # Validate query string not to contain any traveral path (../) before appending
      # to the end of the path, otherwise they will be resolved as part of the path.
      validate_query_string(parsed_uri.query)
  
      if len(parsed_uri.scheme) == 0:
          # If the input URI does not define a scheme, we assume that it is a POSIX path
          # and join it with the specified input paths
          return _join_posixpaths_and_append_absolute_suffixes(
              uri, path
          )
  
      prefix = ""
      if not parsed_uri.path.startswith("/"):
          # For certain URI schemes (e.g., "file:"), urllib's unparse routine does
          # not preserve the relative URI path component properly. In certain cases,
          # urlunparse converts relative paths to absolute paths. We introduce this logic
          # to circumvent urlunparse's erroneous conversion
          prefix = parsed_uri.scheme + ":"
          parsed_uri = parsed_uri._replace(scheme="")
  
      new_uri_path = _join_posixpaths_and_append_absolute_suffixes(
          parsed_uri.path, path
      )
      new_parsed_uri = parsed_uri._replace(path=new_uri_path)
      return prefix + urllib.parse.urlunparse(new_parsed_uri)
  
imports: import os
  import pathlib
  import posixpath
  import re
  import urllib.parse
  import uuid
  from typing import Any, Tuple
  from mlflow.exceptions import MlflowException
  from mlflow.protos.databricks_pb2 import INVALID_PARAMETER_VALUE
  from mlflow.store.db.db_types import DATABASE_ENGINES
  from mlflow.utils.os import is_windows
  from mlflow.utils.validation import _validate_db_type_string
label_desc: Use image node_id 16 for calling a global function with example usage: append_to_uri_path(uri) and returns: unknown, _join_posixpaths_and_append_absolute_suffixes