# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= python-wcwidth VERSION= 0.2.13 KEYWORDS= python VARIANTS= v12 v13 SDESC[v12]= Measures number of terminal column cells (3.12) SDESC[v13]= Measures number of terminal column cells (3.13) HOMEPAGE= https://github.com/jquast/wcwidth CONTACT= Python_Automaton[python@ironwolf.systems] DOWNLOAD_GROUPS= main SITES[main]= PYPIWHL/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528 DISTFILE[1]= wcwidth-0.2.13-py2.py3-none-any.whl:main DIST_SUBDIR= python-src DF_INDEX= 1 SPKGS[v12]= single SPKGS[v13]= single OPTIONS_AVAILABLE= PY312 PY313 OPTIONS_STANDARD= none VOPTS[v12]= PY312=ON PY313=OFF VOPTS[v13]= PY312=OFF PY313=ON DISTNAME= wcwidth-0.2.13.dist-info GENERATED= yes [PY312].USES_ON= python:v12,wheel [PY313].USES_ON= python:v13,wheel [FILE:1433:descriptions/desc.single] |pypi_downloads| |codecov| |license| ============ Introduction ============ This library is mainly for CLI programs that carefully produce output for Terminals, or make pretend to be an emulator. **Problem Statement**: The printable length of *most* strings are equal to the number of cells they occupy on the screen ``1 character : 1 cell``. However, there are categories of characters that *occupy 2 cells* (full-wide), and others that *occupy 0* cells (zero-width). **Solution**: POSIX.1-2001 and POSIX.1-2008 conforming systems provide `wcwidth(3)`_ and `wcswidth(3)`_ C functions of which this python module's functions precisely copy. *These functions return the number of cells a unicode string is expected to occupy.* Installation ------------ The stable version of this package is maintained on pypi, install using pip:: pip install wcwidth Example ------- **Problem**: given the following phrase (Japanese), >>> text = u'コンニチハ' Python **incorrectly** uses the *string length* of 5 codepoints rather than the *printable length* of 10 cells, so that when using the `rjust` function, the output length is wrong:: >>> print(len('コンニチハ')) 5 >>> print('コンニチハ'.rjust(20, '_')) _______________コンニチハ By defining our own "rjust" function that uses wcwidth, we can correct this:: >>> def wc_rjust(text, length, padding=' '): :alt: MIT License [FILE:125:distinfo] 3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 34166 python-src/wcwidth-0.2.13-py2.py3-none-any.whl