Gets a ``CompositionList`` corresponding to the given composition genus ``Type`` which does not include compositions of types derived from the specified ``Type``.

        arg:    composition_genus_type (osid.type.Type): a composition
                genus type
        return: (osid.repository.CompositionList) - the returned
                ``Composition list``
        raise:  NullArgument - ``composition_genus_type`` is ``null``
        raise:  OperationFailed - unable to complete request
        raise:  PermissionDenied - authorization failure
        *compliance: mandatory -- This method must be implemented.*

def get_compositions_by_genus_type(self, composition_genus_type):
        """Gets a ``CompositionList`` corresponding to the given composition genus ``Type`` which does not include compositions of types derived from the specified ``Type``.

        arg:    composition_genus_type (osid.type.Type): a composition
                genus type
        return: (osid.repository.CompositionList) - the returned
                ``Composition list``
        raise:  NullArgument - ``composition_genus_type`` is ``null``
        raise:  OperationFailed - unable to complete request
        raise:  PermissionDenied - authorization failure
        *compliance: mandatory -- This method must be implemented.*

        """
        # Implemented from template for
        # osid.resource.ResourceLookupSession.get_resources_by_genus_type
        # NOTE: This implementation currently ignores plenary view
        collection = JSONClientValidated('repository',
                                         collection='Composition',
                                         runtime=self._runtime)
        result = collection.find(
            dict({'genusTypeId': str(composition_genus_type)},
                 **self._view_filter())).sort('_id', DESCENDING)
        return objects.CompositionList(result, runtime=self._runtime, proxy=self._proxy)