PYKAKASI(1)

๐Ÿ“ฆ
version 2.3.0 ยท 2 versions
, in fedora 43

๐Ÿ’– PYKAKASI ๐Ÿ’–

okay bestie, welcome to pykakasi(1) โ€” section 1 of the manual, and no I'm not kidding, this thing has lore. Pull up a chair, we're doing this properly.


โœจ NAME โœจ

pykakasi โ€” pykakasi Documentation

This is the documentation for the Pykakasi library and utility. pykakasi is a library and a utility that implements KAKASI functionality in Python. KAKASI was originally built to convert Japanese text to roman form.

pykakasi is a free software, and available on GitHub project. ๐Ÿซถ

wakati is an implementation of kakasi's wakati gaki option.

Here's the lil map of everything in the docs, so you know where you're going:

  • Command Line Options โ€” command line options
  • Programming Interface โ€” application programming interface and options
  • Pykakasi authors โ€” PyKAKASI authors and credits
  • Copyright and License โ€” copyright and license
  • Table of contents โ€” access to all of document contents
  • Glossary โ€” glossary of Japanese linguistic terms

๐Ÿ SUPPORTED PYTHON VERSIONS ๐Ÿ

Pykakasi supports python 2.7, python 3.5, 3.6, 3.7, 3.8 and PyPy.

It may work with python 2.6, 3.3, 3.4 and pypy3 but these are not tested now. read: don't come crying to us ๐Ÿ’€


๐Ÿ“ฆ DEPENDENCY ๐Ÿ“ฆ

It depends on klepto for providing a mapping database.


๐ŸŒธ ABOUT KAKASI ๐ŸŒธ

KAKASI is the language processing filter to convert Kanji characters to Hiragana, Katakana or Romaji [2] and may be helpful to read Japanese documents.

The name "KAKASI" is the abbreviation of "kanji kana simple inverter" and the inverse of SKK "simple kana kanji converter" which is developed by Masahiko Sato at Tohoku University. The most entries of the kakasi dictionary is derived form the SKK dictionaries. If you have some interests in the naming of "KAKASI", please consult to Japanese-English dictionary. :-)

not the :-) in a manpage, I'm deceased, that's iconic ๐Ÿ˜ญ


Copyright 2010-2019 Hiroshi Miura <miurahr@linux.com>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.


๐Ÿ’ป PROGRAMMING INTERFACE ๐Ÿ’ป

Conversion Usage

convert method

convert returns result as dictionary. There are keys: 'orig', 'kana', 'hira', 'hepburn', 'kunrei', 'passport' โœจ

Example:

kks = pykakasi.kakasi()
text = 'ใ‹ใชๆผขๅญ—'
result = kks.convert(text)
for item in result:
    print("{}: kana '{}', hiragana '{}', romaji: '{}'".format(item['orig'], item['kana'], item['hira'], item['hepburn']))
ใ‹ใช: kana 'ใ‚ซใƒŠ', hiragana: 'ใ‹ใช', romaji: 'kana'
ๆผขๅญ—: kana 'ใ‚ซใƒณใ‚ธ', hiragana: 'ใ‹ใ‚“ใ˜', romaji: 'kanji'

Old API (v1.2)

โš ๏ธ WARNING: The OLD v1.2 API, wakati class, and setMode(), getConverter() and do() functions, will be deprecated when v3.0 released. Please consider to use convert() method.

like bestie, it's giving legacy. move on. ๐Ÿ’…

Conversion Options

These switch alphabets are derived from original Kakasi. Now it support following options:

  • K โ€” Katakana conversion โ€” values: a,H,None โ€” note: roman, Hiragana or non conversion
  • H โ€” Hiragana conversion โ€” values: a,K,None โ€” note: roman, Katakana or non conversion
  • J โ€” Kanji conversion โ€” values: a,H,K,None โ€” note: roman or Hiragana, Katakana or noconv
  • a โ€” Roman conversion โ€” values: E,None โ€” note: JIS ROMAN or non conversion
  • E โ€” JIS ROMAN conversion โ€” values: a,None โ€” note: ascii roman or non conversion

Each character means character sets as follows:

Character Sets
   a: ascii  j: jisroman  g: graphic  k: kana
   (j,k     defined in jisx0201)
   E: kigou  K: katakana  H: hiragana J: kanji
   (E,K,H,J defined in jisx0208)

API usage example

How to Install:

pip install pykakasi

Building library, setup script build dictionary db file and generate pickled db files. Without dictionary files, a library fails to run. no dict, no vibes. ๐Ÿซ 

Sample source code:

from pykakasi import kakasi,wakati

text = u"ใ‹ใชๆผขๅญ—ไบคใ˜ใ‚Šๆ–‡"
kakasi = kakasi()
kakasi.setMode("H","a") # Hiragana to ascii, default: no conversion
kakasi.setMode("K","a") # Katakana to ascii, default: no conversion
kakasi.setMode("J","a") # Japanese to ascii, default: no conversion
kakasi.setMode("r","Hepburn") # default: use Hepburn Roman table
kakasi.setMode("s", True) # add space, default: no separator
kakasi.setMode("C", True) # capitalize, default: no capitalize
conv = kakasi.getConverter()
result = conv.do(text)
print(result)

wakati = wakati()
conv = wakati.getConverter()
result = conv.do(text)
print(result)

You can use output Mode values from "H", "K", "a" which is each means "Hiragana", "Katakana" and "Alphabet". For input, you can use "J" that means "Japanese" that is mixture of Kanji, Katakana and Hiragana. Also there is values of "H", "K" that means "Hiragana", and "Katakana". You can use "Hepburn", "Kunrei" or "Passport" as mode "r", Roman table switch. Also "s" used for separator switch, "C" for capitalize switch. "S" for separator storing option.

Transliterate Japanese text to rลmaji:

>>> import pykakasi
>>>
>>> text = u"ใ‹ใชๆผขๅญ—ไบคใ˜ใ‚Šๆ–‡"
>>> kakasi = pykakasi.kakasi()
>>> kakasi.setMode("H","a") # Hiragana to ascii, default: no conversion
>>> kakasi.setMode("K","a") # Katakana to ascii, default: no conversion
>>> kakasi.setMode("J","a") # Japanese to ascii, default: no conversion
>>> kakasi.setMode("r","Hepburn") # default: use Hepburn Roman table
>>> kakasi.setMode("s", True) # add space, default: no separator
>>> kakasi.setMode("C", True) # capitalize, default: no capitalize
>>> conv = kakasi.getConverter()
>>> result = conv.do(text)
>>> print(result)
kana Kanji Majiri Bun

Tokenize Japanese text (split by word boundaries), equivalent to kakasi's wakati gaki option:

>>> wakati = pykakasi.wakati()
>>> conv = wakati.getConverter()
>>> result = conv.do(text)
>>> print(result)
ใ‹ใช ๆผขๅญ— ไบคใ˜ใ‚Š ๆ–‡

Add furigana (pronounciation aid) in rลmaji to text:

>>> kakasi = pykakasi.kakasi()
>>> kakasi.setMode("J","aF") # Japanese to furigana
>>> kakasi.setMode("H","aF") # Japanese to furigana
>>> conv = kakasi.getConverter()
>>> result = conv.do(text)
>>> print(result)
ใ‹ใช[kana] ๆผขๅญ—[Kanji] ไบคใ˜ใ‚Š[Majiri] ๆ–‡[Bun]

Input mode values: "J" (Japanese: kanji, hiragana and katakana), "H" (hiragana), "K" (katakana).

Output mode values: "H" (hiragana), "K" (katakana), "a" (alphabet / rลmaji), "aF" (furigana in rลmaji).

There are other setMode switches which control output:

  • "r": Romanisation table: Hepburn (default), Kunrei or Passport
  • "s": Separator: False adds no spaces between words (default), True adds spaces between words
  • "C": Capitalize: False adds no capital letters (default), True makes each word start with a capital letter

โŒจ๏ธ COMMAND LINE OPTIONS โŒจ๏ธ

The CLI uses getopt to parse the command line options so the short or long versions may be used and the long options may be truncated to the shortest unambiguous abbreviation. so fancy, so forgiving, we love her โœจ

Executable Options

  • --version, -v โ€” Display version
  • --help, -h โ€” Display help text
  • --input, -i <filename> โ€” input file name
  • --output, -o <filename> โ€” output file name

Command line executable return codes:

  • 0 โ€” convert successful

Mode Options

  • --wakati, -w โ€” wakati gaki mode
  • -f โ€” furigana mode

Conversion Options

These switch alphabets are derived from original Kakasi.

  • -K โ€” How convert Katakana to: a,H,None
  • -H โ€” How convert Hiragana to: a,K,None
  • -J โ€” How convert Kanji to: a,H,K,None
  • -a โ€” How convert ASCII Roman to: E,None
  • -E โ€” How convert JIS Roman to: a,None

Each character means character sets as follows:

Character Sets
   a: ascii  j: jisroman  g: graphic  k: kana
   (j,k     defined in jisx0201)
   E: kigou  K: katakana  H: hiragana J: kanji
   (E,K,H,J defined in jisx0208)

Behavior Options

  • -U โ€” Output characters in uppercase
  • -C โ€” Capitalize first roman character of each words
  • --space, -s โ€” Insert space character between words
  • --roman, -r <h|k|p> โ€” Roman word conversion rule it takes following keywords:
    • h: hepburn
    • k: kunrei
    • p: passport
  • --separator, -S <character> โ€” Specify separator character for inserting between words

okay that's part 1, bestie, we're not done yet โ€” keep scrolling, the rest is coming ๐Ÿ’œ

โœจ PYKAKASI AUTHORS โœจ

Bestie, meet the people who made this whole thing happen ๐Ÿ’– Pykakasi is written and maintained by Hiroshi Miura <miurahr@linux.com>

And now, the contributors, listed alphabetically (because that's just how we do it โœจ):

  • Ben โ€” Fix convert() function to handle correctly in various cases. ๐Ÿ’…
  • @FGtatsuro โ€” porting to python 3.x, introduce tox testing. ๐Ÿ
  • Jan Malakhovski โ€” word split and furigana mode ๐ŸŒธ
  • Michael Farrell โ€” README document ๐Ÿ“„
  • @Northernbird โ€” Implement function to handle long symbols
  • Takuya Iwasa โ€” Same as above ๐Ÿ‘€
  • @mohno007 โ€” Add conversions: kya, kyu, kyo โœจ
  • Victor Neo โ€” Hiragana for age counter ๐ŸŽ‚

OK so the KKASI dictionary was originally developed by following authors (yes, it's spelled "KKASI" here, we're keeping it exactly as-is, no cap):

Copyright (C) 1992 1993 1994

Hironobu Takahashi (takahasi@tiny.or.jp), Masahiko Sato (โ€
masahiko@sato.riec.tohoku.ac.jp),

Yukiyoshi Kameyama, Miki Inooka, Akihiko Sasaki, Dai Ando, Junichi
Okukawa, Katsushi Sato and Nobuhiro Yamagishi

The KAKASI dictionary had been made from the large size dictionary of
SKK system version 7 of May, 1994 and the special dictionary for
KAKASI version 1 of May 1, 1992.

Unidic is developed and distributed by The UniDic Consortium. Periodt. ๐Ÿ‘‘


๐Ÿซถ CONTRIBUTION GUIDE ๐Ÿซถ

So this is the contribution guide for the pykakasi project, and fr fr you are welcome to send a Pull-Request, report bugs, and ask questions. We want you here ๐Ÿ’œ

๐ŸŒˆ Resources

  • Project owner: Hiroshi Miura ๐Ÿ‘‘
  • Slack chat: Join to https://pykakasi.slack.com/ ๐Ÿ’ฌ
  • Bug Tracker: Github issue Tracker ๐Ÿ›
  • Status: alpha ๐Ÿผ
  • Activity: low ๐Ÿ˜ด

๐Ÿ” Bug triage

Every single report to the github issue tracker should be triaged โ€” like, we gotta figure out whether it's a bug, a question, or invalid. Gotta sort 'em all, bestie.

๐Ÿงš Send patch

Here's the small amount rule when you want to send a patch to the project (iykyk):

  1. every proposal for modification should send as 'Pull Request' ๐Ÿ’Œ
  2. each pull request can consist of multiple commits.
  3. you are encourage to split modifications to individual commits that are logical subpart.

โš™๏ธ CI tests

Pykakasi project configured to use AppVeyor, Travis-CI and CoverAlls for regression test. You can see test results on badge and see details in a web page linked from badge. The results are also notified in gitter channel. โœจ

๐Ÿ–ฅ๏ธ Local test

To run test, you can do it as ordinary:

python setup.py test

or:

pytest

You can also run test using pyenv/tox with versions:

pyenv install 2.7.13
pyenv install 3.5.5
pyenv install 3.6.4
pyenv local 2.7.13, 3.5.5, 3.6.4
tox

๐Ÿ“œ PYKAKASI CHANGELOG ๐Ÿ“œ

All notable changes to this project will be documented in this file. No skipping, we're listing every single one ๐Ÿ’…

Unreleased

Added

Changed

Fixed

Deprecated

Removed

Security

v2.3.0 (24, June 2024)

Added

  • backtrack matching mechanism(#132) ๐Ÿ”ฅ

Changed

  • Support Latin-1 characters (#150,#152) ๐ŸŒˆ
  • Bump pytest>7
  • Depend importlib_resources only for 3.8.*

Fixed

  • Add Zenkaku-Question(uFF1F) and other Zenkaku marks as endmark (#146) โ“
  • Configure pytest to recognize "src" project structure
  • Compatibility from python 3.8 - 3.18 with importlib_resources
  • Properly handle punctuation to separate it from previous string (#163, #168) โœ‚๏ธ

v2.2.0 (22, June 2021)

Added

  • dictionary: add noun and adjectives from UniDic(#140) ๐Ÿ“š

Changed

  • Refactoring main loop logics for convert()(#144) ๐Ÿ”ง

Fixed

  • Fix segmentation (wakati) when combination with Katakana and Hiragana(#142)

v2.1.1 (16, May 2021)

Added

  • Provide Kakasi.normalize(text) class method โœจ
  • Add unidic data into data (not used yet), and add parse utility.

Fixed

  • Put type hint stub into package
  • Copyright notifications

Changed

  • Expand all cletter into dictionary (#139)
  • Change primary kanwadict index from str to int
  • test: gather all legacy test into test_pykakasi_legacy.py file.

v2.1.0 (6, May 2021)

Added

  • Deprecation warning when using old api(#124) โš ๏ธ
  • Add type hint file(pyi) (#124)
  • Benchmark test codes(#122) โฑ๏ธ

Changed

  • Cache internal results and improve performance about 30-40 times.(#128) ๐Ÿš€
  • Use standard pickle for database file(#128)
  • Exceptions module is now pykakasi, not pykakasi.exceptions

Removed

  • Dependency for klepto(#128) ๐Ÿ—‘๏ธ

v2.0.8 (4, May 2021)

Added

  • test: Benchmark and profiling (#122) ๐Ÿ“Š

Changed

  • Performance: avoid ord() when checking long-mark, speed up about 6% โšก
  • Reformat code by black(#121)

v2.0.7 (26, Feb. 2021)

Fixed

  • Infinite loop after running for a while, handle independent HW VOICED SOUND MARK (#115, #118) ๐Ÿ’€

v2.0.6 (7, Feb. 2021)

Fixed

  • Hiragana for Age countersa(#116,#117) ๐ŸŽ‚

v2.0.5 (5, Feb. 2021)

Changed

  • CLI: use argparse for option parse(#113) ๐Ÿ”ง

Fixed

  • Handle ๆ€ใฃใŸใ€่จ€ใฃใŸใ€่กŒใฃใŸ properly.(#114) โœจ
  • CI: fix coveralls error

Deprecated

  • CI: drop travis-ci test and badge ๐Ÿ‘‹

v2.0.4 (26, Nov. 2020)

Fixed

  • CLI: Fix -v and -h option crash on python 3.7 and before (#108). ๐Ÿ› ๏ธ

v2.0.3 (25, Nov. 2020)

Fixed

  • CLI: Fix -v and -h option crash (#108). ๐Ÿ› ๏ธ

v2.0.2 (23, Jul. 2020)

Fixed

  • Fix convert() to handle Katakana correctly.(#103) ๐ŸŒธ

v2.0.1 (23, Jul. 2020)

Changed

  • Update setup.py, setup.cfg, tox.ini(#102) ๐Ÿ“

Fixed

  • Fix convert() misses last part of a text (#99, #100) ๐Ÿ˜ญ
  • Fix CI, coverage, and coveralls configurations(#101)

v2.0.0 (31, May. 2020)

โœจ PYKAKASI CHANGELOG BEFORE V1.0 โœจ

Like, every single notable glow-up this project ever had is documented in this file, bestie. Enjoy the lore ๐Ÿ’–


๐ŸŒธ v2.0.0 (31, May. 2020) ๐ŸŒธ

๐Ÿ’… Changed

  • Update test formatting.

๐ŸŒธ v2.0.0b1 (9, May. 2020) ๐ŸŒธ

๐Ÿ’… Changed

  • Update test.

๐ŸŒธ v2.0.0a6 (30, Mar. 2020) ๐ŸŒธ

โœจ Added

  • Understand more kanji variations.

๐Ÿ”ง Fixed

  • Fix IVS handling to return correct word length to consume.

๐ŸŒธ v2.0.0a5 (23, Mar. 2020) ๐ŸŒธ

๐Ÿ’… Changed

  • Recognize UNICODE standard Ideographic Variation Selector(IVS) and transiliterate when used.(#97)

๐ŸŒธ v2.0.0a4 (20, Mar. 2020) ๐ŸŒธ

โœจ Added

  • Add type hinting.

๐Ÿ’… Changed

  • Refactoring dictionary generation classes.
  • call super() from wakati.__init__()
  • test: detection whether tox or raw pytest by TOX_ENV environment variable. When raw pytest, generate dictionaries as fixture. Previous versions uses --runenv option for pytest.

๐Ÿ”ง Fixed

  • NewAPI: fix return value when empty input string.

๐ŸŒธ v2.0.0a3 (18, Mar. 2020) ๐ŸŒธ

๐Ÿ’… Changed

  • Update test cases.

๐Ÿ”ง Fixed

  • Add guard for unknown symbol code point which lead NoneType error.

๐ŸŒธ v2.0.0a2 (16, Mar. 2020) ๐ŸŒธ

โœจ Added

  • NewAPI: support kunrei and passport roman conversion rule.

๐Ÿ’… Changed

  • CI: test by github actions

๐Ÿ”ง Fixed

  • Support an extended kana(#77) (U0001b150-U0001b152, U0001b164-U0001b167)

๐ŸŒธ v2.0.0a1 (14, Mar. 2020) ๐ŸŒธ

โœจ Added

  • Structured interface of Kakasi class.(#21)

๐Ÿ’… Changed

  • Github workflows for packaging and release.(#91)

๐Ÿ”ง Fixed

  • fix data kakasidict.utf8: โ€œๆœฌ่“ฎๆฒผโ€

๐Ÿฅฒ Deprecated

  • Drop python 2.7 support.

๐ŸŒธ v1.2 (26, Sep, 2019) ๐ŸŒธ

๐Ÿ”ง Fixed

  • Fix out-of-index error when kana-dash is placed on first of same character group.(#85)

๐ŸŒธ v1.1 (16, Sep, 2019) ๐ŸŒธ

๐ŸŒธ v1.1b2 (14, Sep, 2019) ๐ŸŒธ

๐Ÿ”ง Fixed

  • Fix Long symble issue(#58) (thanks @northernbird and @ta9ya)

๐ŸŒธ v1.1b1 (6, Sep, 2019) ๐ŸŒธ

โœจ Added

  • Add conversions: kya, kyu, kyo

๐Ÿ’… Changed

  • Rewording README document

๐ŸŒธ v1.1a1 (8, Jul, 2019) ๐ŸŒธ

๐Ÿ’… Changed

  • pytest: now run on project root without tox, by generating dictionary as a test fixture.
  • tox: run tox test with installed dictionary instead of a generated fixture.
  • Optimize kana conversion function.
  • Move kakasidict.py to src and conftest.py to tests

๐Ÿ”ง Fixed

  • Version naming follows PEP386.
  • Sometimes fails to insert space after punctuation(#79).
  • Special case in kana-roman passport conversion such as 'etchu' etc.

๐ŸŒธ v1.0-rc1 (29, June, 2019) ๐ŸŒธ

โœจ Added

  • Threading test.
  • Test with Chinese kanji.
  • Test with extended kana which is out of Unicode BSC.
  • t flag to specify not to change unkouwn characters to ???.

๐Ÿ’… Changed

  • Refactoring itaiji and kanwa class as a thread-safe borg class.

๐Ÿ”ง Fixed

  • Fix test case issue68_2 for missing characters

๐ŸŒธ v0.96 (12, June, 2019) ๐ŸŒธ

โœจ Added

  • Add few words(#66).

๐Ÿ”ง Fixed

  • KeyError when input unknown kanji.(#68)

๐ŸŒธ v0.95 (8, June, 2019) ๐ŸŒธ

โœจ Added

  • Add manual document holder.
  • Test on Azure-Pipelines.
  • Tox has a check test pipeline
  • Add classifier to setup.py

๐Ÿ’… Changed

  • Drop support for python 3.4 that is end-of-line in March, 2019.
  • Add suppot for pypy and tested on Travis-CI.
  • Version information on __init__.py
  • Use 'tox' and 'pytest' for test runner instead of 'unittest'.

๐Ÿ”ง Fixed

  • Fix keyerror for some characters(#68).
  • Fix coveralls source code reference.

๐Ÿ—‘๏ธ Removed

  • Test on AppVeyor

๐ŸŒธ v0.94 (16, Feb, 2019) ๐ŸŒธ

โœจ Add

  • Implement word split feature by @oxij (#58).

๐Ÿ’… Changed

  • Improve setup.py build script generating pickled files when build bdist.
  • Use pytest and pytest-cov for unittest.
  • Use tox for CI/CD in travis-CI and appveyor.

๐Ÿ”ง Fixed

  • Kanwadict: remove entry for ๅธ‚็ซ‹ as ichiritsu
  • Issue #59: fix 0x30f7-30fc katakana convertion to be as same as in Hiragana.
  • Appveyor: twine upload credential environment variable name.

๐Ÿฅฒ Deprecated

  • Drop python2.6 and python 3.3 from test target.

๐ŸŒธ v0.93 (3, May, 2018) ๐ŸŒธ

โœจ Added

  • Add test for two type of exceptions
  • Add test for Upper case flags
  • Add Upper case flag with E2a mode.

๐Ÿ’… Changed

  • Release source distribution from appveyor.
  • Refactoring how to import six

๐Ÿ”ง Fixed

  • Exception when converting Fullwidth collon uFF1A (#51)
  • Fixed unworking Upper case flag ("U") which causes exception

๐Ÿ—‘๏ธ Removed

  • Drop canConvert method from itaiji.

๐ŸŒธ v0.92 (30, Apr., 2018) ๐ŸŒธ

๐Ÿ’… Changed

  • Release wheel binary packages for each python versions.(#50)

๐ŸŒธ v0.91 (29, Apr., 2018) ๐ŸŒธ

โœจ Added

  • Test case convert from Full-width Alphabet/symbols to Half-width (E2a).
  • Convert logic from Full-width alphabet/symbols to Half-width (E2a).
  • Add more words with repeat mark from SKK-JISYO.L (#46)

๐Ÿ’… Changed

  • Not distribute binary wheel package, because of dictionary data depends on python version.

๐Ÿ”ง Fixed

  • Conversion from โ—‹ใ€… become 'TypeError: must be str, not NoneType' (#46)
  • Appveyor: update deployment script.

๐ŸŒธ v0.90 (29, Mar., 2018) ๐ŸŒธ

๐Ÿ’… Changed

  • Update release script
  • Update version number for kakasi script

๐ŸŒธ v0.83 (29, Mar., 2018) ๐ŸŒธ

๐Ÿ”ง Fixed

  • Appveyor: fix twine not found error in deploy script
  • setup: clean old dictionary when building

๐ŸŒธ v0.82 (29, Mar., 2018) ๐ŸŒธ

โœจ Added

  • Russian characters defined in JIS X0208(#13)

๐Ÿ’… Changed

  • README: fix typo and add description for Kigou conversion.
  • README: update sample code to working one.
  • Appveyor: generate wheel artifacts

๐Ÿ”ง Fixed

  • MANIFEST: update to specify kanwadict3.db explicitly.
  • setup.py: allow reading README.rst written in UTF-8.

๐ŸŒธ v0.80 (28, Mar., 2018) ๐ŸŒธ

Here is a release candicate for v1.0

โœจ Added

  • Readme: add dependency description.

๐Ÿ’… Changed

  • Bump up version number.
  • Readme: recommend 'pip install pykakasi'
  • Replace anydbm with semidbm that is a pure dbm implementation with performance.

๐Ÿ”ง Fixed

  • Reduce test warnings.
  • No platform dependency now.
  • Fix dependency in wheel package that depend on gdbm in previous release.

๐Ÿ—‘๏ธ Removed

  • Binary release for windows and linux.

๐ŸŒธ v0.28 (26, Mar., 2018) ๐ŸŒธ

๐Ÿ”ง Fixed

  • wheel platform tag for linux is now manylinux1_i686 or _x86_64

๐ŸŒธ v0.26 (26, Mar., 2018) ๐ŸŒธ

๐Ÿ’… Changed

  • Use six for python 2 and 3 compatility code.

๐Ÿ”ง Fixed

  • Build wheel with platform names.

๐ŸŒธ v0.25 (25, Mar., 2018) ๐ŸŒธ

โœจ Added

  • Test on Python 3.5 and Python 3.6
  • Test on Windows using AppVeyor
  • Mesure test coverage and monitor on coveralls.io

๐Ÿ’… Changed

  • Move dictionary data to pykakasi/data
  • Build dictionary when setup.py build
  • Recoomend installation from github source not pypi. (#17)
  • Converter configuration become per instance not class wide.

๐Ÿ”ง Fixed

  • kakasi.py: Fix exception class name typo of InvalidFlagValueException
  • kakasi.py, h2a.py, k2a.py: Do not import all exception class.
  • test_genkanwadict.py: Multi platform support for temp directory(#27).
  • setup.py: change _pre_build() to pre_build() (#17).

๐ŸŒธ v0.23 (25, May., 2014) ๐ŸŒธ

  • Support following options in kakasi command.
    • same as original kakasi:
-J{aKH} -K{aH} -H{aK} -E{a}
-rk -rh
-w -s -S -C
  • additional options:
-v --version -h --help
-O --output: output file
-I --input: input file
  • Change default behavior as almost same as original kakasi
  • Zenkaku numbers conversion
  • Passport roman conversion table

๐ŸŒธ v0.22 (3, May., 2014) ๐ŸŒธ

  • Introduced kakasi command
  • Symbols support

๐ŸŒธ v0.21 (27, April., 2014) ๐ŸŒธ

  • Wakati conversion support

๐ŸŒธ v0.20 (27, April., 2014) ๐ŸŒธ

  • Pickled roman tables

๐ŸŒธ Version 0.10 (25, April, 2014) ๐ŸŒธ

  • Work on python 2.6, 2.7, 3.3, 3.4 (Thanks @FGtatsuro)
  • Kunrei and Hepburn roman table

๐Ÿฆ‹ GLOSSARY ๐Ÿฆ‹

wakati gaki โ€” separating a sentence into words -- ordinary japanese text does not use space for separating words, instead readers are expected to use heuristics to understand do so themselves.

Romaji โ€” alphabetical description of Japanese pronunciation.

  • Glossary

๐ŸŽ€ FOOTNOTES ๐ŸŽ€

[2] "Romaji" is alphabetical description of Japanese pronunciation.


๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

Hiroshi Miura


2011-2020, Hiroshi Miura


And that's the whole thing, bestie โ€” you read the entire changelog, the glossary, the footnote, the author and the copyright, no skips, and you ate every crumb ๐Ÿ’…โœจ This little beauty is PYKAKASI(1), version 2.0, dated Sep 19, 2025 โ€” yes that's the source and the date, sitting right there in the footer like a signature on a love letter ๐Ÿซถ Go forth and transliterate, you absolute icon ๐ŸŒˆโญ๐Ÿ’–

๐Ÿ“ฆ where this page comes from