{"library":"pynini","title":"Pynini","description":"Pynini is a Python library providing efficient Python bindings for the OpenFst C++ library, enabling the construction, manipulation, and compilation of finite-state transducers (FSTs) and finite-state acceptors (FSAs). It's widely used for tasks in natural language processing (NLP) such as text normalization, phonology, and speech recognition. The current version is 2.1.7, with active development and regular releases.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install pynini"],"cli":null},"imports":["import pynini","import pynini","import pynini","import pynini","import pynini"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import pynini as pn\n\n# Create a simple acceptor for 'hello'\nhello_fst = pn.accep(\"hello\")\n\n# Create an acceptor for 'world'\nworld_fst = pn.accep(\"world\")\n\n# Concatenate them with a space acceptor using the overloaded '+' operator\nhello_world_fst = hello_fst + pn.accep(\" \") + world_fst\n\nprint(f\"Hello World FST: {hello_world_fst}\")\nprint(f\"Shortest path for Hello World: {pn.shortestpath(hello_world_fst).string()}\")\n\n# Create a simple transducer mapping 'a' to 'b'\na_to_b_map = pn.string_map([(\"a\", \"b\"), (\"c\", \"d\")])\n\n# Input string as an acceptor\ninput_string_fst = pn.accep(\"apple_cake\")\n\n# Compose the input with the transducer\noutput_fst = pn.compose(input_string_fst, a_to_b_map)\n\n# Get the shortest path (result string)\nif not output_fst.empty():\n    print(f\"'apple_cake' -> '{pn.shortestpath(output_fst).string()}'\")\nelse:\n    print(\"No valid output path found.\")","lang":"python","description":"This quickstart demonstrates creating basic finite-state acceptors and transducers, concatenating FSTs, and composing an input string with a mapping transducer to transform text.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"2.1.7","pypi_latest":"2.1.7","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":40,"avg_install_s":8.4,"avg_import_s":0.07,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pynini","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pynini","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.8,"import_time_s":0.04,"mem_mb":1.9,"disk_size":"725M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pynini","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pynini","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.8,"import_time_s":0.08,"mem_mb":2.4,"disk_size":"727M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pynini","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pynini","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.7,"import_time_s":0.08,"mem_mb":2.3,"disk_size":"719M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pynini","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pynini","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":12.3,"import_time_s":0.07,"mem_mb":2.2,"disk_size":"719M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pynini","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pynini","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":34.8,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}