# Path: q2_types/plugin_setup.py

# 
# Path: q2_types/feature_data/_format.py
# class TaxonomyFormat(model.TextFileFormat):
# class HeaderlessTSVTaxonomyFormat(TaxonomyFormat):
# class TSVTaxonomyFormat(model.TextFileFormat):
# class FASTAFormat(model.TextFileFormat):
# class AlignedFASTAFormatMixin:
# class DNAFASTAFormat(FASTAFormat):
# class RNAFASTAFormat(FASTAFormat):
# class PairedDNASequencesDirectoryFormat(model.DirectoryFormat):
# class PairedRNASequencesDirectoryFormat(model.DirectoryFormat):
# class AlignedDNAFASTAFormat(AlignedFASTAFormatMixin, DNAFASTAFormat):
# class AlignedRNAFASTAFormat(AlignedFASTAFormatMixin, RNAFASTAFormat):
# class DifferentialFormat(model.TextFileFormat):
# class ProteinFASTAFormat(FASTAFormat):
# class AlignedProteinFASTAFormat(AlignedFASTAFormatMixin, ProteinFASTAFormat):
# class BLAST6Format(model.TextFileFormat):
#     def sniff(self):
#     def _check_n_records(self, n=None):
#     def _validate_(self, level):
#     def __init__(self, *args, **kwargs):
#     def _validate_(self, level):
#     def _validate_FASTA(self, level, FASTAValidator=None, ValidationSet=None):
#     def _turn_into_alignment(self):
#     def _validate_line_lengths(
#             self, seq_len, prev_seq_len, prev_seq_start_line):
#     def __init__(self, *args, **kwargs):
#     def __init__(self, *args, **kwargs):
#     def __init__(self, *args, **kwargs):
#     def __init__(self, *args, **kwargs):
# def _construct_validator_from_alphabet(alphabet_str):
#     def validate(self, *args):
#     def __init__(self, *args, **kwargs):
#     def __init__(self, *args, **kwargs):
#     def validate(self, *args):
#     HEADER = ['Feature ID', 'Taxon']


from qiime2.plugin import SemanticType
from ..plugin_setup import plugin
from . import (TSVTaxonomyDirectoryFormat, DNASequencesDirectoryFormat,
               PairedDNASequencesDirectoryFormat,
               AlignedDNASequencesDirectoryFormat,
               DifferentialDirectoryFormat, ProteinSequencesDirectoryFormat,
               AlignedProteinSequencesDirectoryFormat,
               RNASequencesDirectoryFormat, AlignedRNASequencesDirectoryFormat,
               PairedRNASequencesDirectoryFormat, BLAST6DirectoryFormat)
                                 variant_of=FeatureData.field['type'])

PairedEndRNASequence = SemanticType('PairedEndRNASequence',
                                    variant_of=FeatureData.field['type'])

AlignedSequence = SemanticType('AlignedSequence',
                               variant_of=FeatureData.field['type'])

AlignedRNASequence = SemanticType('AlignedRNASequence',
                                  variant_of=FeatureData.field['type'])

Differential = SemanticType('Differential',
                            variant_of=FeatureData.field['type'])

ProteinSequence = SemanticType('ProteinSequence',
                               variant_of=FeatureData.field['type'])

AlignedProteinSequence = SemanticType('AlignedProteinSequence',
                                      variant_of=FeatureData.field['type'])

BLAST6 = SemanticType('BLAST6', variant_of=FeatureData.field['type'])

plugin.register_semantic_types(FeatureData, Taxonomy, Sequence,
                               PairedEndSequence, AlignedSequence,
                               Differential, ProteinSequence,
                               AlignedProteinSequence, RNASequence,
                               AlignedRNASequence, PairedEndRNASequence,
                               BLAST6)



# Path: q2_types/plugin_setup.py

# 
# Path: q2_types/feature_data/_format.py
# class TaxonomyFormat(model.TextFileFormat):
# class HeaderlessTSVTaxonomyFormat(TaxonomyFormat):
# class TSVTaxonomyFormat(model.TextFileFormat):
# class FASTAFormat(model.TextFileFormat):
# class AlignedFASTAFormatMixin:
# class DNAFASTAFormat(FASTAFormat):
# class RNAFASTAFormat(FASTAFormat):
# class PairedDNASequencesDirectoryFormat(model.DirectoryFormat):
# class PairedRNASequencesDirectoryFormat(model.DirectoryFormat):
# class AlignedDNAFASTAFormat(AlignedFASTAFormatMixin, DNAFASTAFormat):
# class AlignedRNAFASTAFormat(AlignedFASTAFormatMixin, RNAFASTAFormat):
# class DifferentialFormat(model.TextFileFormat):
# class ProteinFASTAFormat(FASTAFormat):
# class AlignedProteinFASTAFormat(AlignedFASTAFormatMixin, ProteinFASTAFormat):
# class BLAST6Format(model.TextFileFormat):
#     def sniff(self):
#     def _check_n_records(self, n=None):
#     def _validate_(self, level):
#     def __init__(self, *args, **kwargs):
#     def _validate_(self, level):
#     def _validate_FASTA(self, level, FASTAValidator=None, ValidationSet=None):
#     def _turn_into_alignment(self):
#     def _validate_line_lengths(
#             self, seq_len, prev_seq_len, prev_seq_start_line):
#     def __init__(self, *args, **kwargs):
#     def __init__(self, *args, **kwargs):
#     def __init__(self, *args, **kwargs):
#     def __init__(self, *args, **kwargs):
# def _construct_validator_from_alphabet(alphabet_str):
#     def validate(self, *args):
#     def __init__(self, *args, **kwargs):
#     def __init__(self, *args, **kwargs):
#     def validate(self, *args):
#     HEADER = ['Feature ID', 'Taxon']


# Path: q2_types/feature_data/_type.py
from qiime2.plugin import SemanticType
from ..plugin_setup import plugin
from . import (TSVTaxonomyDirectoryFormat, DNASequencesDirectoryFormat,
               PairedDNASequencesDirectoryFormat,
               AlignedDNASequencesDirectoryFormat,
               DifferentialDirectoryFormat, ProteinSequencesDirectoryFormat,
               AlignedProteinSequencesDirectoryFormat,
               RNASequencesDirectoryFormat, AlignedRNASequencesDirectoryFormat,
               PairedRNASequencesDirectoryFormat, BLAST6DirectoryFormat)

                                 variant_of=FeatureData.field['type'])

PairedEndRNASequence = SemanticType('PairedEndRNASequence',
                                    variant_of=FeatureData.field['type'])

AlignedSequence = SemanticType('AlignedSequence',
                               variant_of=FeatureData.field['type'])

AlignedRNASequence = SemanticType('AlignedRNASequence',
                                  variant_of=FeatureData.field['type'])

Differential = SemanticType('Differential',
                            variant_of=FeatureData.field['type'])

ProteinSequence = SemanticType('ProteinSequence',
                               variant_of=FeatureData.field['type'])

AlignedProteinSequence = SemanticType('AlignedProteinSequence',
                                      variant_of=FeatureData.field['type'])

BLAST6 = SemanticType('BLAST6', variant_of=FeatureData.field['type'])

plugin.register_semantic_types(FeatureData, Taxonomy, Sequence,
                               PairedEndSequence, AlignedSequence,
                               Differential, ProteinSequence,
                               AlignedProteinSequence, RNASequence,
                               AlignedRNASequence, PairedEndRNASequence,
                               BLAST6)



plugin.register_semantic_type_to_format(