code: def get_namespaces_imported_by_route_io(self):
          # type: () -> typing.List[ApiNamespace]
          
          namespace_data_types = sorted(self.get_route_io_data_types(),
                                        key=lambda dt: dt.name)
          referenced_namespaces = set()
          for data_type in namespace_data_types:
              if data_type.namespace != self:
                  referenced_namespaces.add(data_type.namespace)
          return sorted(referenced_namespaces, key=lambda n: n.name)
docs: Returns a list of Namespace objects. A namespace is a member of this
          list if it is imported by the current namespace and has a data type
          from it referenced as an argument, result, or error of a route.
          Namespaces are in ASCII order by name.