A full-featured console (xterm et al.) user interface library
|pypi| |docs| |ci| |coveralls|
Urwid is a console user interface library for Python on Linux, OSX, Cygwin or other unix-like OS. It includes many features useful for text console application developers including:
Home Page: http://urwid.org/
To install using pip
.. code:: bash
pip install urwid
For advanced functionality extra requirements need to be installed. Example for ZeroMQ event loop and LCD display:
.. code:: bash
pip install urwid[serial,zmq]
Alternatively if you are on Debian or Ubuntu
.. code:: bash
apt-get install python3-urwid
To run tests locally, install & run tox. You must have
appropriate Python versions installed to run tox for
each of them.
To test code in all Python versions:
.. code:: bash
tox # Test all versions specified in tox.ini:
tox -e py39 # Test Python 3.9 only
tox -e py39,py10,pypy3 # Test Python 3.9, Python 3.10 & pypy3
wardi <//github.com/wardi>_
and3rson <//github.com/and3rson>,
tonycpsu <//github.com/tonycpsu>,
ulidtko <//github.com/ulidtko>,
penguinolog <//github.com/penguinolog>
1in7billion <//github.com/1in7billion>,
abadger <//github.com/abadger>,
agrenott <//github.com/agrenott>,
akorb <//github.com/akorb>,
alethiophile <//github.com/alethiophile>,
aleufroy <//github.com/aleufroy>,
alobbs <//github.com/alobbs>,
amjltc295 <//github.com/amjltc295>,
and-semakin <//github.com/and-semakin>,
andrewshadura <//github.com/andrewshadura>,
andy-z <//github.com/andy-z>,
anttin2020 <//github.com/anttin2020>,
Apteryks <//github.com/Apteryks>,
Arfrever <//github.com/Arfrever>,
AutoAwesome <//github.com/AutoAwesome>,
belak <//github.com/belak>,
berney <//github.com/berney>,
bk2204 <//github.com/bk2204>,
BkPHcgQL3V <//github.com/BkPHcgQL3V>,
bwesterb <//github.com/bwesterb>,
carlos-jenkins <//github.com/carlos-jenkins>,
Certseeds <//github.com/Certseeds>,
Chipsterjulien <//github.com/Chipsterjulien>,
chrisspen <//github.com/chrisspen>,
cltrudeau <//github.com/cltrudeau>,
Codeberg-AsGithubAlternative-buhtz <//github.com/Codeberg-AsGithubAlternative-buhtz>,
cortesi <//github.com/cortesi>,
d0c-s4vage <//github.com/d0c-s4vage>,
derdon <//github.com/derdon>,
dholth <//github.com/dholth>,
dimays <//github.com/dimays>,
dlo <//github.com/dlo>,
dnaeon <//github.com/dnaeon>,
doddo <//github.com/doddo>,
douglas-larocca <//github.com/douglas-larocca>,
drestebon <//github.com/drestebon>,
dsotr <//github.com/dsotr>,
dwf <//github.com/dwf>,
EdwardBetts <//github.com/EdwardBetts>,
elenril <//github.com/elenril>,
EnricoBilla <//github.com/EnricoBilla>,
extempore <//github.com/extempore>,
fabiand <//github.com/fabiand>,
floppym <//github.com/floppym>,
flowblok <//github.com/flowblok>,
fmoreau <//github.com/fmoreau>,
goncalopp <//github.com/goncalopp>,
Gordin <//github.com/Gordin>,
GregIngelmo <//github.com/GregIngelmo>,
grzaks <//github.com/grzaks>,
gurupras <//github.com/gurupras>,
HarveyHunt <//github.com/HarveyHunt>,
Hoolean <//github.com/Hoolean>,
hukka <//github.com/hukka>,
hydratim <//github.com/hydratim>,
ids1024 <//github.com/ids1024>,
imrek <//github.com/imrek>,
isovector <//github.com/isovector>,
itaisod <//github.com/itaisod>,
ixxra <//github.com/ixxra>,
jeblair <//github.com/jeblair>,
johndeaton <//github.com/johndeaton>,
jonblack <//github.com/jonblack>,
jspricke <//github.com/jspricke>,
kedder <//github.com/kedder>,
Kelketek <//github.com/Kelketek>,
KennethNielsen <//github.com/KennethNielsen>,
kesipyc <//github.com/kesipyc>,
kkrolczyk <//github.com/kkrolczyk>,
Kwpolska <//github.com/Kwpolska>,
Lahorde <//github.com/Lahorde>,
laike9m <//github.com/laike9m>,
larsks <//github.com/larsks>,
lfam <//github.com/lfam>,
lgbaldoni <//github.com/lgbaldoni>,
lighth7015 <//github.com/lighth7015>,
livibetter <//github.com/livibetter>,
Lothiraldan <//github.com/Lothiraldan>,
Mad-ness <//github.com/Mad-ness>,
madebr <//github.com/madebr>,
magniff <//github.com/magniff>,
marlox-ouda <//github.com/marlox-ouda>,
mattymo <//github.com/mattymo>,
mdtrooper <//github.com/mdtrooper>,
mgk <//github.com/mgk>,
mimi1vx <//github.com/mimi1vx>,
mobyte0 <//github.com/mobyte0>,
MonAaraj <//github.com/MonAaraj>,
MonthlyPython <//github.com/MonthlyPython>,
mountainstorm <//github.com/mountainstorm>,
mselee <//github.com/mselee>,
mwhudson <//github.com/mwhudson>,
naquad <//github.com/naquad>,
nchavez324 <//github.com/nchavez324>,
neumond <//github.com/neumond>,
nolash <//github.com/nolash>,
ntamas <//github.com/ntamas>,
nyov <//github.com/nyov>,
ocarneiro <//github.com/ocarneiro>,
okayzed <//github.com/okayzed>,
pquentin <//github.com/pquentin>,
rbanffy <//github.com/rbanffy>,
ReddyKilowatt <//github.com/ReddyKilowatt>,
regebro <//github.com/regebro>,
renegarcia <//github.com/renegarcia>,
rianhunter <//github.com/rianhunter>,
roburban <//github.com/roburban>,
RRMoelker <//github.com/RRMoelker>,
rwarren <//github.com/rwarren>,
scopatz <//github.com/scopatz>,
seanhussey <//github.com/seanhussey>,
seonon <//github.com/seonon>,
shadedKE <//github.com/shadedKE>,
sithglan <//github.com/sithglan>,
Sjc1000 <//github.com/Sjc1000>,
sporkexec <//github.com/sporkexec>,
squrky <//github.com/squrky>,
ssbr <//github.com/ssbr>,
techdragon <//github.com/techdragon>,
thehunmonkgroup <//github.com/thehunmonkgroup>,
thisch <//github.com/thisch>,
thornycrackers <//github.com/thornycrackers>,
TomasTomecek <//github.com/TomasTomecek>,
tompickering <//github.com/tompickering>,
tony <//github.com/tony>,
ttanner <//github.com/ttanner>,
tu500 <//github.com/tu500>,
uSpike <//github.com/uSpike>,
vega0 <//github.com/vega0>,
vit1251 <//github.com/vit1251>,
waveform80 <//github.com/waveform80>,
Wesmania <//github.com/Wesmania>,
xandfury <//github.com/xandfury>,
xndcn <//github.com/xndcn>,
zhongshangwu <//github.com/zhongshangwu>,
zrax <//github.com/zrax>
.. |pypi| image:: https://img.shields.io/pypi/v/urwid :alt: current version on PyPi :target: https://pypi.python.org/pypi/urwid
.. |docs| image:: https://github.com/urwid/urwid/actions/workflows/documentation.yml/badge.svg?branch=master :alt: Documentation Status :target: https://urwid.org
.. |ci| image:: https://github.com/urwid/urwid/actions/workflows/pythonpackage.yml/badge.svg?branch=master :target: https://github.com/urwid/urwid/actions :alt: CI status
.. |coveralls| image:: https://coveralls.io/repos/github/urwid/urwid/badge.svg :alt: test coverage :target: https://coveralls.io/github/urwid/urwid