# {py:mod}`tcurl_login` ```{py:module} tcurl_login ``` ```{autodoc2-docstring} tcurl_login :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`FormPile ` - ```{autodoc2-docstring} tcurl_login.FormPile :summary: ``` * - {py:obj}`CredentialForm ` - ```{autodoc2-docstring} tcurl_login.CredentialForm :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`get_credentials ` - ```{autodoc2-docstring} tcurl_login.get_credentials :summary: ``` * - {py:obj}`parser_factory ` - ```{autodoc2-docstring} tcurl_login.parser_factory :summary: ``` * - {py:obj}`main ` - ```{autodoc2-docstring} tcurl_login.main :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`VERSION ` - ```{autodoc2-docstring} tcurl_login.VERSION :summary: ``` * - {py:obj}`PALETTE ` - ```{autodoc2-docstring} tcurl_login.PALETTE :summary: ``` ```` ### API ````{py:data} VERSION :canonical: tcurl_login.VERSION :value: > '2026.05-DEV' ```{autodoc2-docstring} tcurl_login.VERSION ``` ```` `````{py:class} FormPile :canonical: tcurl_login.FormPile Bases: {py:obj}`urwid.Pile` ```{autodoc2-docstring} tcurl_login.FormPile ``` ````{py:method} keypress(size, key) :canonical: tcurl_login.FormPile.keypress ```{autodoc2-docstring} tcurl_login.FormPile.keypress ``` ```` ````{py:method} _focus_is_edit() :canonical: tcurl_login.FormPile._focus_is_edit ```{autodoc2-docstring} tcurl_login.FormPile._focus_is_edit ``` ```` ````` ````{py:data} PALETTE :canonical: tcurl_login.PALETTE :value: > [('body', 'white', 'light blue'), ('title', 'white', 'light blue', 'bold'), ('prompt', 'yellow', 'li... ```{autodoc2-docstring} tcurl_login.PALETTE ``` ```` `````{py:class} CredentialForm(defaults: dict[str, str] | None = None) :canonical: tcurl_login.CredentialForm ```{autodoc2-docstring} tcurl_login.CredentialForm ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} tcurl_login.CredentialForm.__init__ ``` ````{py:method} _on_otp_change(widget: urwid.Edit, old_text: str) -> None :canonical: tcurl_login.CredentialForm._on_otp_change ```{autodoc2-docstring} tcurl_login.CredentialForm._on_otp_change ``` ```` ````{py:method} on_submit(button: urwid.Button) -> None :canonical: tcurl_login.CredentialForm.on_submit ```{autodoc2-docstring} tcurl_login.CredentialForm.on_submit ``` ```` ````{py:method} on_cancel(button: urwid.Button) -> None :canonical: tcurl_login.CredentialForm.on_cancel ```{autodoc2-docstring} tcurl_login.CredentialForm.on_cancel ``` ```` ````{py:method} run() -> dict | None :canonical: tcurl_login.CredentialForm.run ```{autodoc2-docstring} tcurl_login.CredentialForm.run ``` ```` ````{py:method} _handle_escape() -> bool :canonical: tcurl_login.CredentialForm._handle_escape ```{autodoc2-docstring} tcurl_login.CredentialForm._handle_escape ``` ```` ````` ````{py:function} get_credentials(defaults: dict[str, str] | None = None) -> dict[str, str] | None :canonical: tcurl_login.get_credentials ```{autodoc2-docstring} tcurl_login.get_credentials ``` ```` ````{py:function} parser_factory(color: bool = False) -> argparse.ArgumentParser :canonical: tcurl_login.parser_factory ```{autodoc2-docstring} tcurl_login.parser_factory ``` ```` ````{py:function} main() :canonical: tcurl_login.main ```{autodoc2-docstring} tcurl_login.main ``` ````