59 lines
1.6 KiB
ReStructuredText
59 lines
1.6 KiB
ReStructuredText
|
|
cwcwidth -- bindings for wc(s)width
|
|
===================================
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
:caption: Contents:
|
|
|
|
To compute the number of columns needed to print a string, POSIX.1-2001 and POSIX.1-2008 define two
|
|
functions: ``wcwidth`` and ``wcswidth``. Given a character or string, they return the required
|
|
number of columns or error out with ``-1`` if they encounter a nonprintable character. These
|
|
functions are not available per default in Python, but are quite useful when the width plays a role
|
|
for formatting outputs on a terminal.
|
|
|
|
Module documentation
|
|
--------------------
|
|
|
|
The ``cwcwidth`` module provides the following two functions:
|
|
|
|
.. py:function:: cwcwidth.wcwidth(wc: str) -> int
|
|
|
|
Return the printable length of a unicode character.
|
|
|
|
.. py:function:: cwcwidth.wcswidth(pwcs: str, n: Optional[int]=None) -> int
|
|
|
|
Return the printable length of a unicode string. If the optional argument ``n`` is provided, only
|
|
the first ``n`` characters of the string are considered.
|
|
|
|
Both functions behave in the same way as the functions with the same signture from the `wcwidth`_
|
|
module.
|
|
|
|
.. _wcwidth: https://pypi.org/project/wcwidth/
|
|
|
|
Example usage
|
|
-------------
|
|
|
|
::
|
|
|
|
>>> from cwcwidth import wcwidth, wcswidth
|
|
>>> wcwidth("a")
|
|
1
|
|
>>> wcswidth("コ")
|
|
2
|
|
>>> wcswidth("コンニチハ, セカイ!")
|
|
19
|
|
>>> wcswidth("コンニチハ, セカイ!", 5)
|
|
10
|
|
|
|
|
|
Users
|
|
-----
|
|
|
|
``cwcwidth`` is currently used by the following projects:
|
|
|
|
* `curtsies`_
|
|
* `bpython`_
|
|
|
|
.. _curtsies: https://pypi.org/project/curtsies/
|
|
.. _bpython: https://pypi.org/project/bpython/
|