Source code for poolparty.fixed_ops.upper

"""Upper operation - convert sequence characters to uppercase."""

from numbers import Real

from ..pool import Pool
from ..types import Optional, Pool_type, RegionType, Union, beartype
from ..utils.parsing_utils import transform_nontag_chars


[docs] @beartype def upper( pool: Union[Pool_type, str], region: RegionType = None, remove_tags: Optional[bool] = None, iter_order: Optional[Real] = None, prefix: Optional[str] = None, style: Optional[str] = None, ) -> Pool: """ Create a Pool containing uppercase sequences from the input pool. Preserves XML marker tags exactly as they appear (only transforms non-marker characters). Parameters ---------- pool : Union[Pool_type, str] Parent pool or sequence to convert to uppercase. region : RegionType, default=None Region to apply transformation to. Can be marker name (str), [start, stop], or None. remove_tags : Optional[bool], default=None If True and region is a marker name, remove marker tags from output. iter_order : Optional[Real], default=None Iteration order priority for the Operation. prefix : Optional[str], default=None Prefix for sequence names in the resulting Pool. style : Optional[str], default=None Style to apply to the resulting sequences (e.g., 'red', 'blue bold'). Returns ------- Pool A Pool containing uppercase sequences. """ from .fixed import fixed_operation result_pool = fixed_operation( parent_pools=[pool], seq_from_seqs_fn=lambda seqs: transform_nontag_chars(seqs[0], str.upper), seq_length_from_pool_lengths_fn=lambda lengths: lengths[0], region=region, remove_tags=remove_tags, iter_order=iter_order, prefix=prefix, _factory_name="upper", ) # Apply style if specified if style is not None: from .stylize import stylize result_pool = stylize(result_pool, style=style) return result_pool