def __init__(self, taxonomy: Union[(pd.DataFrame, pd.Series, str)], taxonomy_columns: Union[(str, int, Sequence[Union[(int, str)]])]=None, **kwargs: Any) -> None:
    'Constructor for :class:`.RepTaxonomy`\n\n        Parameters\n        ----------\n        taxonomy\n            Data containing feature taxonomy\n        taxonomy_columns\n            Column(s) containing taxonomy data\n        kwargs\n             Passed to :func:`~pandas.read_csv` or :mod:`biome` loader.\n        '
    tmp_metadata = kwargs.pop('metadata', {})
    self.__avail_ranks = []
    self.__internal_taxonomy = None
    if isinstance(taxonomy, pd.DataFrame):
        if (taxonomy.shape[0] > 0):
            if (taxonomy.shape[1] > 1):
                if validate_ranks(list(taxonomy.columns.values), VALID_RANKS):
                    tmp_taxonomy = taxonomy
                else:
                    raise ValueError('Provided `taxonomy` Datafame has invalid ranks.')
            else:
                tmp_taxonomy = taxonomy.iloc[:, 0]
        else:
            raise ValueError('Provided `taxonomy` Datafame is invalid.')
    elif isinstance(taxonomy, pd.Series):
        if (taxonomy.shape[0] > 0):
            tmp_taxonomy = taxonomy
        else:
            raise ValueError('Provided `taxonomy` Series is invalid.')
    elif isinstance(taxonomy, str):
        if path.isfile(taxonomy):
            file_extension = path.splitext(taxonomy)[(- 1)].lower()
            if (file_extension in ['.csv', '.tsv']):
                if (taxonomy_columns is None):
                    tmp_taxonomy = pd.read_csv(taxonomy, sep=kwargs.pop('sep', ','), header=kwargs.pop('header', 'infer'), index_col=kwargs.pop('index_col', None))
                elif isinstance(taxonomy_columns, int):
                    tmp_taxonomy = pd.read_csv(taxonomy, sep=kwargs.pop('sep', ','), header=kwargs.pop('header', 'infer'), index_col=kwargs.pop('index_col', None)).iloc[:, taxonomy_columns]
                else:
                    tmp_taxonomy = pd.read_csv(taxonomy, sep=kwargs.pop('sep', ','), header=kwargs.pop('header', 'infer'), index_col=kwargs.pop('index_col', None)).loc[:, taxonomy_columns]
            elif (file_extension in ['.biom', '.biome']):
                (tmp_taxonomy, new_metadata) = self.__load_biom(taxonomy, **kwargs)
                tmp_metadata.update({'biom': new_metadata})
            else:
                raise NotImplementedError('File type is not supported.')
        else:
            raise FileNotFoundError('Provided `taxonomy` file path is invalid.')
    else:
        raise TypeError('Provided `taxonomy` has invalid type.')
    self.__init_internal_taxonomy(tmp_taxonomy, **kwargs)
    super().__init__(metadata=tmp_metadata, **kwargs)
Constructor for :class:`.RepTaxonomy`

Parameters
----------
taxonomy
    Data containing feature taxonomy
taxonomy_columns
    Column(s) containing taxonomy data
kwargs
     Passed to :func:`~pandas.read_csv` or :mod:`biome` loader.
def __init__(self, taxonomy: Union[(pd.DataFrame, pd.Series, str)], taxonomy_columns: Union[(str, int, Sequence[Union[(int, str)]])]=None, **kwargs: Any) -> None:
    'Constructor for :class:`.RepTaxonomy`\n\n        Parameters\n        ----------\n        taxonomy\n            Data containing feature taxonomy\n        taxonomy_columns\n            Column(s) containing taxonomy data\n        kwargs\n             Passed to :func:`~pandas.read_csv` or :mod:`biome` loader.\n        '
    tmp_metadata = kwargs.pop('metadata', {})
    self.__avail_ranks = []
    self.__internal_taxonomy = None
    if isinstance(taxonomy, pd.DataFrame):
        if (taxonomy.shape[0] > 0):
            if (taxonomy.shape[1] > 1):
                if validate_ranks(list(taxonomy.columns.values), VALID_RANKS):
                    tmp_taxonomy = taxonomy
                else:
                    raise ValueError('Provided `taxonomy` Datafame has invalid ranks.')
            else:
                tmp_taxonomy = taxonomy.iloc[:, 0]
        else:
            raise ValueError('Provided `taxonomy` Datafame is invalid.')
    elif isinstance(taxonomy, pd.Series):
        if (taxonomy.shape[0] > 0):
            tmp_taxonomy = taxonomy
        else:
            raise ValueError('Provided `taxonomy` Series is invalid.')
    elif isinstance(taxonomy, str):
        if path.isfile(taxonomy):
            file_extension = path.splitext(taxonomy)[(- 1)].lower()
            if (file_extension in ['.csv', '.tsv']):
                if (taxonomy_columns is None):
                    tmp_taxonomy = pd.read_csv(taxonomy, sep=kwargs.pop('sep', ','), header=kwargs.pop('header', 'infer'), index_col=kwargs.pop('index_col', None))
                elif isinstance(taxonomy_columns, int):
                    tmp_taxonomy = pd.read_csv(taxonomy, sep=kwargs.pop('sep', ','), header=kwargs.pop('header', 'infer'), index_col=kwargs.pop('index_col', None)).iloc[:, taxonomy_columns]
                else:
                    tmp_taxonomy = pd.read_csv(taxonomy, sep=kwargs.pop('sep', ','), header=kwargs.pop('header', 'infer'), index_col=kwargs.pop('index_col', None)).loc[:, taxonomy_columns]
            elif (file_extension in ['.biom', '.biome']):
                (tmp_taxonomy, new_metadata) = self.__load_biom(taxonomy, **kwargs)
                tmp_metadata.update({'biom': new_metadata})
            else:
                raise NotImplementedError('File type is not supported.')
        else:
            raise FileNotFoundError('Provided `taxonomy` file path is invalid.')
    else:
        raise TypeError('Provided `taxonomy` has invalid type.')
    self.__init_internal_taxonomy(tmp_taxonomy, **kwargs)
    super().__init__(metadata=tmp_metadata, **kwargs)