code: def setup_mappers(cls):
      include_base = cls.include_base
      lazy_relationship = cls.lazy_relationship
      redefine_colprop = cls.redefine_colprop
      with_polymorphic = cls.with_polymorphic
  
      if with_polymorphic == "unions":
          if include_base:
              person_join = polymorphic_union(
                  {
                      "engineer": people.join(engineers),
                      "manager": people.join(managers),
                      "person": people.select()
                      .where(people.c.type == "person")
                      .subquery(),
                  },
                  None,
                  "pjoin",
              )
          else:
              person_join = polymorphic_union(
                  {
                      "engineer": people.join(engineers),
                      "manager": people.join(managers),
                  },
                  None,
                  "pjoin",
              )
  
          manager_join = people.join(managers).outerjoin(boss)
          person_with_polymorphic = ["*", person_join]
          manager_with_polymorphic = ["*", manager_join]
      elif with_polymorphic == "joins":
          person_join = (
              people.outerjoin(engineers)
              .outerjoin(managers)
              .outerjoin(boss)
          )
          manager_join = people.join(managers).outerjoin(boss)
          person_with_polymorphic = ["*", person_join]
          manager_with_polymorphic = ["*", manager_join]
      elif with_polymorphic == "auto":
          person_with_polymorphic = "*"
          manager_with_polymorphic = "*"
      else:
          person_with_polymorphic = None
          manager_with_polymorphic = None
  
      if redefine_colprop:
          person_mapper = cls.mapper_registry.map_imperatively(
              Person,
              people,
              with_polymorphic=person_with_polymorphic,
              polymorphic_on=people.c.type,
              polymorphic_identity="person",
              properties={"person_name": people.c.name},
          )
      else:
          person_mapper = cls.mapper_registry.map_imperatively(
              Person,
              people,
              with_polymorphic=person_with_polymorphic,
              polymorphic_on=people.c.type,
              polymorphic_identity="person",
          )
  
      cls.mapper_registry.map_imperatively(
          Engineer,
          engineers,
          inherits=person_mapper,
          polymorphic_identity="engineer",
      )
      cls.mapper_registry.map_imperatively(
          Manager,
          managers,
          inherits=person_mapper,
          with_polymorphic=manager_with_polymorphic,
          polymorphic_identity="manager",
      )
  
      cls.mapper_registry.map_imperatively(
          Boss, boss, inherits=Manager, polymorphic_identity="boss"
      )
  
      cls.mapper_registry.map_imperatively(
          Company,
          companies,
          properties={
              "employees": relationship(
                  Person,
                  lazy=lazy_relationship,
                  cascade="all, delete-orphan",
                  backref="company",
                  order_by=people.c.person_id,
              )
          },
      )
  
imports: from sqlalchemy import exc
  from sqlalchemy import ForeignKey
  from sqlalchemy import Integer
  from sqlalchemy import String
  from sqlalchemy import Table
  from sqlalchemy import testing
  from sqlalchemy.orm import polymorphic_union
  from sqlalchemy.orm import relationship
  from sqlalchemy.orm import Session
  from sqlalchemy.testing import assert_raises
  from sqlalchemy.testing import eq_
  from sqlalchemy.testing import fixtures
  from sqlalchemy.testing import is_
  from sqlalchemy.testing.entities import ComparableEntity
  from sqlalchemy.testing.fixtures import fixture_session
  from sqlalchemy.testing.schema import Column
label_desc: Use image node_id 1 for calling the RoundTripTest obj's underlying member method code with example usage: obj.setup_mappers(cls) without return types