# -*- coding: utf-8 -*-

"""Predicate functions for filtering lists of nodes."""

from .activities import has_activity, has_edge_modifier, is_degraded, is_translocated
from .misc import is_isolated_list_abundance, none_of, one_of
from .modifications import (
    has_fragment,
    has_gene_modification,
    has_hgvs,
    has_protein_modification,
    has_variant,
)
from .relations import (
    has_causal_edges,
    has_causal_in_edges,
    has_causal_out_edges,
    has_in_edges,
    has_out_edges,
    is_causal_central,
    is_causal_sink,
    is_causal_source,
    no_causal_edges,
    no_causal_in_edges,
    no_causal_out_edges,
    no_in_edges,
    no_out_edges,
)
from .types import (
    is_abundance,
    is_biological_process,
    is_central_dogma,
    is_complex,
    is_composite,
    is_gene,
    is_list,
    is_mirna,
    is_pathology,
    is_population,
    is_protein,
    is_reaction,
    is_rna,
    is_transcribable,
    not_abundance,
    not_biological_process,
    not_central_dogma,
    not_complex,
    not_composite,
    not_gene,
    not_list,
    not_mirna,
    not_pathology,
    not_population,
    not_protein,
    not_reaction,
    not_rna,
    not_transcribable,
)
from .utils import (
    concatenate_node_predicates,
    false_node_predicate,
    invert_node_predicate,
    node_predicate,
    true_node_predicate,
)

__all__ = [k for k in locals() if not k.startswith("_")]
