Package: humanize
humanizeThis modest package contains various common humanization utilities, like turning a
number into a fuzzy human-readable duration ("3 minutes ago") or into a human-readable
size or throughput. It is localized to:ArabicBasqueBengaliBrazilian PortugueseCatalanDanishDutchEsperantoEuropean PortugueseFinnishFrenchGermanGreekHebrewIndonesianItalianJapaneseKlingonKoreanNorwegianPersianPolishRussianSimplified ChineseSlovakSlovenianSpanishSwedishTurkishUkrainianVietnameseAPI referencehttps://humanize.readthedocs.ioInstallationFrom PyPIpython3-mpipinstall--upgradehumanizeFrom sourcegitclonehttps://github.com/python-humanize/humanizecdhumanize
python3-mpipinstall-e.UsageInteger humanization>>>importhumanize>>>humanize.intcomma(12345)'12,345'>>>humanize.intword(123455913)'123.5 million'>>>humanize.intword(12345591313)'12.3 billion'>>>humanize.apnumber(4)'four'>>>humanize.apnumber(41)'41'Date & time humanization>>>importhumanize>>>importdatetimeasdt>>>humanize.naturalday(dt.datetime.now())'today'>>>humanize.naturaldelta(dt.timedelta(seconds=1001))'16 minutes'>>>humanize.naturalday(dt.datetime.now()-dt.timedelta(days=1))'yesterday'>>>humanize.naturalday(dt.date(2007,6,5))'Jun 05'>>>humanize.naturaldate(dt.date(2007,6,5))'Jun 05 2007'>>>humanize.naturaltime(dt.datetime.now()-dt.timedelta(seconds=1))'a second ago'>>>humanize.naturaltime(dt.datetime.now()-dt.timedelta(seconds=3600))'an hour ago'Precise time delta>>>importhumanize>>>importdatetimeasdt>>>delta=dt.timedelta(seconds=3633,days=2,microseconds=123000)>>>humanize.precisedelta(delta)'2 days, 1 hour and 33.12 seconds'>>>humanize.precisedelta(delta,minimum_unit="microseconds")'2 days, 1 hour, 33 seconds and 123 milliseconds'>>>humanize.precisedelta(delta,suppress=["days"],format="%0.4f")'49 hours and 33.1230 seconds'Smaller unitsIf seconds are too large, setminimum_unitto milliseconds or microseconds:>>>importhumanize>>>importdatetimeasdt>>>humanize.naturaldelta(dt.timedelta(seconds=2))'2 seconds'>>>delta=dt.timedelta(milliseconds=4)>>>humanize.naturaldelta(delta)'a moment'>>>humanize.naturaldelta(delta,minimum_unit="milliseconds")'4 milliseconds'>>>humanize.naturaldelta(delta,minimum_unit="microseconds")'4 milliseconds'>>>humanize.naturaltime(delta)'now'>>>humanize.naturaltime(delta,minimum_unit="milliseconds")'4 milliseconds ago'>>>humanize.naturaltime(delta,minimum_unit="microseconds")'4 milliseconds ago'File size humanization>>>importhumanize>>>humanize.naturalsize(1_000_000)'1.0 MB'>>>humanize.naturalsize(1_000_000,binary=True)'976.6 KiB'>>>humanize.naturalsize(1_000_000,gnu=True)'976.6K'Human-readable floating point numbers>>>importhumanize>>>humanize.fractional(1/3)'1/3'>>>humanize.fractional(1.5)'1 1/2'>>>humanize.fractional(0.3)'3/10'>>>humanize.fractional(0.333)'333/1000'>>>humanize.fractional(1)'1'Scientific notation>>>importhumanize>>>humanize.scientific(0.3)'3.00 x 10⁻¹'>>>humanize.scientific(500)'5.00 x 10²'>>>humanize.scientific("20000")'2.00 x 10⁴'>>>humanize.scientific(1**10)'1.00 x 10⁰'>>>humanize.scientific(1**10,precision=1)'1.0 x 10⁰'>>>humanize.scientific(1**10,precision=0)'1 x 10⁰'LocalizationHow to change locale at runtime:>>>importhumanize>>>importdatetimeasdt>>>humanize.naturaltime(dt.timedelta(seconds=3))'3 seconds ago'>>>_t=humanize.i18n.activate("ru_RU")>>>humanize.naturaltime(dt.timedelta(seconds=3))'3 секунды назад'>>>humanize.i18n.deactivate()>>>humanize.naturaltime(dt.timedelta(seconds=3))'3 seconds ago'You can pass additional parameterpathtoactivateto specify a path to search
locales in.>>>importhumanize>>>humanize.i18n.activate("xx_XX")<...>FileNotFoundError: [Errno 2] No translation file found for domain: 'humanize'>>>humanize.i18n.activate("pt_BR",path="path/to/my/own/translation/")<gettext.GNUTranslations instance ...>How to add new phrases to existing locale files:xgettext--from-code=UTF-8-ohumanize.pot-k'_'-k'N_'-k'P_:1c,2'-k'NS_:1,2'-k'_ngettext:1,2'-lpythonsrc/humanize/*.py# extract new phrasesmsgmerge-Usrc/humanize/locale/ru_RU/LC_MESSAGES/humanize.pohumanize.pot# add them to locale filesHow to add a new locale:msginit-ihumanize.pot-ohumanize/locale/<localename>/LC_MESSAGES/humanize.po--locale<localename>Where<locale name>is a locale abbreviation, eg.en_GB,pt_BRor justru,fretc.List the language at the top of this README.