No description
|
Some checks failed
CI / build (macos-latest, 3.11) (push) Has been cancelled
CI / build (macos-latest, 3.12) (push) Has been cancelled
CI / build (macos-latest, 3.13) (push) Has been cancelled
CI / build (macos-latest, 3.14) (push) Has been cancelled
CI / build (ubuntu-latest, 3.11) (push) Has been cancelled
CI / build (ubuntu-latest, 3.12) (push) Has been cancelled
CI / build (ubuntu-latest, 3.13) (push) Has been cancelled
CI / build (ubuntu-latest, 3.14) (push) Has been cancelled
CI / build (windows-latest, 3.11) (push) Has been cancelled
CI / build (windows-latest, 3.12) (push) Has been cancelled
CI / build (windows-latest, 3.13) (push) Has been cancelled
CI / build (windows-latest, 3.14) (push) Has been cancelled
CI / build-limited-api (macos-latest) (push) Has been cancelled
CI / build-limited-api (ubuntu-latest) (push) Has been cancelled
CI / build-limited-api (windows-latest) (push) Has been cancelled
Linters / black (push) Has been cancelled
Linters / codespell (push) Has been cancelled
|
||
|---|---|---|
| .github | ||
| cwcwidth | ||
| docs | ||
| tests | ||
| .clang-format | ||
| .gitignore | ||
| CHANGELOG.md | ||
| LICENSE | ||
| MANIFEST.in | ||
| pyproject.toml | ||
| README.md | ||
| setup.cfg | ||
| setup.py | ||
Python bindings for wc(s)width
cwcwidth provides Python bindings for wcwidth and wcswidth functions defined in POSIX.1-2001
and POSIX.1-2008 based on Cython. These functions compute the printable
length of a unicode character/string on a terminal. The module provides the same functions as
wcwidth and its behavior is compatible.
On systems not conforming to POSIX.1-2001 and POSIX.1-2008, Markus Kuhn's implementation is used to provide the functionality.
Dependencies
Cython >= 3.1(optional, only for building). If Cython is not available, the C files are not regenerated from their source.
Quick installation guide
cwcwidth can be installed via pip:
pip install cwcwidth
or by running:
python3 setup.py install
In case the extension should be built with the limited Python API, set the environment variable
USE_LIMITED_API to any value.
Usage
>>> import cwcwidth
>>> cwcwidth.wcwidth("a")
1
>>> cwcwidth.wcswidth("コ")
2
>>> cwcwidth.wcswidth("コンニチハ, セカイ!")
19
>>> cwcwidth.wcswidth("コンニチハ, セカイ!", 5)
10
Comparison with wcwidth
>>> import wcwidth, cwcwidth, timeit
>>> timeit.timeit(lambda: wcwidth.wcswidth("コンニチハ, セカイ!"))
19.14463168097427
>>> timeit.timeit(lambda: cwcwidth.wcswidth("コンニチハ, セカイ!"))
0.16294104099506512
License
The code is licensed under the MIT license.