# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/05_strs.ipynb.

# %% auto 0
__all__ = ['pttn', 'strtmpl', 'strq', 'nilstr', 'strbytes', 'notnilstr', 'notstrbytes', 'strs', 'iterstr']

# %% ../nbs/05_strs.ipynb 6
#| export


# %% ../nbs/05_strs.ipynb 8
from typing import Literal

# %% ../nbs/05_strs.ipynb 10
#| export


# %% ../nbs/05_strs.ipynb 12
from ptyp import Prototype, Opt, Not
from matr import repattern, strtemplate

# %% ../nbs/05_strs.ipynb 14
from .iter import itertype

# %% ../nbs/05_strs.ipynb 16
@Prototype(repattern)
class pttn: '''`re.Pattern`'''

@Prototype(str, strtemplate)
class strtmpl: '''`str or string.Template`'''

# %% ../nbs/05_strs.ipynb 17
@Opt(str)
class strq: '''str or `None`'''

@Prototype(Literal[''])
class nilstr: '''`''` (the nil string)'''

# %% ../nbs/05_strs.ipynb 18
@Prototype(str, bytes)
class strbytes: '''str or bytes'''

@Not(nilstr)
class notnilstr: '''not `nilstr` (not `''`, the nil string)'''

@Not(str, bytes)
class notstrbytes: '''not (str or bytes)'''

@Prototype(list, tuple, itertype, notstrbytes, attrs=dict(dtype=str))
class strs: '''iterable of `str`'''

@Prototype(itertype, notstrbytes, attrs=dict(dtype=str))
class iterstr: '''iterable of `str`'''
