@classmethod
def _get_all(cls, with_conformance=False, limit=None, minimal=True,
    page_size=100, page=1, values=None, language=None):
    """
        Query Wikidata to get all instances of this model.

        Notes:
            - Based on the way the query is optimized, the page_size and limit will provide UPPER bounds, but
              the response count can at times be less than the number provided due to post-query clean-up
              such as merging duplicates.

            - TODO: Consider use the .objects.all() style
        Args:
            with_conformance (Optional[Bool]): True if intending to use SheX validation, False otherwise
            limit (Optional[Int]): The maximum records to query Wikidata for
            minimal (Optional[Bool]): True if only need ID, label and description, False otherwise
            page_size (Optional[Int]): Maximum Number of records per API Request
            page (Optional[Int]): Page position, If None, get all pages
            values (Optional[List[str]]): List of QID values to use in the query.
            language (Optional[str]): Set the Primary language. If not set, will default to Meta Option.

        Returns (Generator[WikidataItemBase]): Generator of this model's instances

        """
    finished = False
    single_page = isinstance(page, int)
    unknown_depth = not values
    page = page or 1
    remaining_limit = limit
    value_total = len(values) if values else None
    if value_total:
        remaining_limit = min(remaining_limit, value_total
            ) if remaining_limit else value_total
    while not finished:
        offset = (page - 1) * page_size
        query_limit = min(remaining_limit, page_size) if limit else page_size
        if values:
            query_values = values[offset:offset + query_limit]
            query_offset = 0
        else:
            query_values = values
            query_offset = offset
        cls.logger.debug(
            'Querying for Page: %s  Limit: %s  Offset: %s  Minimal: %s',
            page, query_limit, offset, minimal)
        wikidata_response = cls._query_wikidata(limit=query_limit, minimal=
            minimal, offset=query_offset, values=query_values, language=
            language)
        for item in wikidata_response:
            yield cls._from_wikidata(item, with_conformance=with_conformance)
        api_count = len(wikidata_response)
        cls.logger.debug('... found %s item(s)', api_count)
        if remaining_limit:
            remaining_limit -= api_count
        finished = (single_page or unknown_depth and not api_count or 
            isinstance(remaining_limit, int) and remaining_limit <= 0 or 
            value_total and offset >= value_total)
        page += 1
