class_docstr: This entity may change or be removed in a future release without warning.
  SQLAlchemy compliant backend store for tracking meta data for MLflow entities. MLflow
  supports the database dialects ``mysql``, ``mssql``, ``sqlite``, and ``postgresql``.
  As specified in the
  `SQLAlchemy docs <https://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls>`_ ,
  the database URI is expected in the format
  ``<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>``. If you do not
  specify a driver, SQLAlchemy uses a dialect's default driver.
  
  This store interacts with SQL store using SQLAlchemy abstractions defined for MLflow entities.
  :py:class:`mlflow.store.model_registry.models.RegisteredModel` and
  :py:class:`mlflow.store.model_registry.models.ModelVersion`
docstr: Latest version models for each requested stage. If no ``stages`` argument is provided,
  returns the latest version for each stage.
  
  :param name: Registered model name.
  :param stages: List of desired stages. If input list is None, return latest versions for
                 each stage.
  :return: List of :py:class:`mlflow.entities.model_registry.ModelVersion` objects.
docstr_tok: ["Latest","version","models","for","each","requested","stage",".","If","no","``","stages","``","argument","is","provided",",","returns","the","latest","version","for","each","stage",".",":","param","name",":","Registered","model","name",".",":","param","stages",":","List","of","desired","stages",".","If","input","list","is","None",",","return","latest","versions","for","each","stage",".",":","return",":","List","of",":","py",":","class",":","`","mlflow.entities.model_registry.ModelVersion","`","objects","."]
code: def get_latest_versions(self, name, stages=None):
      """
      Latest version models for each requested stage. If no ``stages`` argument is provided,
      returns the latest version for each stage.
  
      :param name: Registered model name.
      :param stages: List of desired stages. If input list is None, return latest versions for
                     each stage.
      :return: List of :py:class:`mlflow.entities.model_registry.ModelVersion` objects.
      """
      with self.ManagedSessionMaker() as session:
          sql_registered_model = self._get_registered_model(
              session, name
          )
          # Convert to RegisteredModel entity first and then extract latest_versions
          latest_versions = (
              sql_registered_model.to_mlflow_entity().latest_versions
          )
          if stages is None or len(stages) == 0:
              expected_stages = {
                  get_canonical_stage(stage) for stage in ALL_STAGES
              }
          else:
              expected_stages = {
                  get_canonical_stage(stage) for stage in stages
              }
          return [
              mv
              for mv in latest_versions
              if mv.current_stage in expected_stages
          ]
  
imports: import logging
  import urllib
  import sqlalchemy
  from sqlalchemy.future import select
  import mlflow.store.db.utils
  from mlflow.entities.model_registry.model_version_stages import ALL_STAGES, DEFAULT_STAGES_FOR_GET_LATEST_VERSIONS, STAGE_ARCHIVED, STAGE_DELETED_INTERNAL, get_canonical_stage
  from mlflow.exceptions import MlflowException
  from mlflow.protos.databricks_pb2 import INVALID_PARAMETER_VALUE, INVALID_STATE, RESOURCE_ALREADY_EXISTS, RESOURCE_DOES_NOT_EXIST
  from mlflow.store.artifact.utils.models import _parse_model_uri
  from mlflow.store.entities.paged_list import PagedList
  from mlflow.store.model_registry import SEARCH_MODEL_VERSION_MAX_RESULTS_DEFAULT, SEARCH_MODEL_VERSION_MAX_RESULTS_THRESHOLD, SEARCH_REGISTERED_MODEL_MAX_RESULTS_DEFAULT, SEARCH_REGISTERED_MODEL_MAX_RESULTS_THRESHOLD
  from mlflow.store.model_registry.abstract_store import AbstractStore
  from mlflow.store.model_registry.dbmodels.models import SqlModelVersion, SqlModelVersionTag, SqlRegisteredModel, SqlRegisteredModelAlias, SqlRegisteredModelTag
  from mlflow.utils.search_utils import SearchModelUtils, SearchModelVersionUtils, SearchUtils
  from mlflow.utils.time import get_current_time_millis
  from mlflow.utils.uri import extract_db_type_from_uri
  from mlflow.utils.validation import _validate_model_alias_name, _validate_model_name, _validate_model_version, _validate_model_version_tag, _validate_registered_model_tag, _validate_tag_name
label_desc: Use image node_id 18 for calling the SqlAlchemyStore obj's underlying member method code with example usage: obj.get_latest_versions(name, stages) and returns: unknown