'A namespace of all :class:`.MapperProperty` objects
associated this mapper.
This is an object that provides each property based on
its key name.  For instance, the mapper for a
``User`` class which has ``User.name`` attribute would
provide ``mapper.attrs.name``, which would be the
:class:`.ColumnProperty` representing the ``name``
column.   The namespace object can also be iterated,
which would yield each :class:`.MapperProperty`.
:class:`.Mapper` has several pre-filtered views
of this attribute which limit the types of properties
returned, inclding :attr:`.synonyms`, :attr:`.column_attrs`,
:attr:`.relationships`, and :attr:`.composites`.
.. seealso::
:attr:`.Mapper.all_orm_descriptors`'

@util.memoized_property
def attrs(self):

    if Mapper._new_mappers:
        configure_mappers()
    return util.ImmutableProperties(self._props)
