{"id":15021,"library":"vokativ","title":"Declension of Czech Names into Vocative Case","description":"The `vokativ` Python library, currently at version 1.2.1, provides functionality for declining Czech proper names into the vocative case. It takes a first-case singular name as input and returns its vocative form as a lowercase unicode string. The library is considered stable (Production/Stable) and was last updated in March 2020.","status":"active","version":"1.2.1","language":"en","source_language":"en","source_url":"https://github.com/Mimino666/vokativ","tags":["czech","declension","vocative","nlp","names"],"install":[{"cmd":"pip install vokativ","lang":"bash","label":"Install latest version"}],"dependencies":[],"imports":[{"symbol":"vokativ","correct":"from vokativ import vokativ"}],"quickstart":{"code":"from vokativ import vokativ\n\n# Decline a male name\nmale_name = 'Petr'\nvocative_male = vokativ(male_name)\nprint(f\"'{male_name}' in vocative is '{vocative_male}'\")\n\n# Decline a female name\nfemale_name = 'Adriana'\nvocative_female = vokativ(female_name)\nprint(f\"'{female_name}' in vocative is '{vocative_female}'\")\n\n# Decline a surname\nsurname = 'Novák'\nvocative_surname = vokativ(surname)\nprint(f\"'{surname}' in vocative is '{vocative_surname}'\")","lang":"python","description":"This quickstart demonstrates how to import the `vokativ` function and use it to decline various Czech names and surnames into their vocative case."},"warnings":[{"fix":"Verify results for non-Czech names manually or consider alternative solutions for broader linguistic support.","message":"The library may not function correctly for names of foreign origin. It is primarily designed for standard Czech names.","severity":"gotcha","affected_versions":"All"},{"fix":"Exercise caution, especially for critical applications. Consider vendoring the code or forking the project if modifications or active maintenance are required.","message":"The library's last release was in March 2020, and the associated GitHub repository (as linked on PyPI) appears to be largely inactive since 2014, with only an initial commit. While marked as 'Production/Stable', this indicates a lack of ongoing development and potential for unaddressed issues or lack of updates for newer Python versions or linguistic changes.","severity":"gotcha","affected_versions":"1.2.1 and older"},{"fix":"Always ensure input to `vokativ()` is a standard Python 3 `str` type. Explicitly decode bytes if necessary (e.g., `my_bytes.decode('utf-8')`).","message":"Examples on PyPI use Python 2 unicode literals (e.g., `u'Novák'`). While these work as regular strings in Python 3, users should ensure they are passing actual `str` (which are unicode in Python 3) objects to avoid `UnicodeDecodeError` in mixed encoding environments, especially if processing input from external sources.","severity":"gotcha","affected_versions":"All (when migrating from Python 2 to 3 or handling diverse input)"}],"env_vars":null,"last_verified":"2026-04-16T00:00:00.000Z","next_check":"2026-07-15T00:00:00.000Z","problems":[{"fix":"Use `from vokativ import vokativ` to directly import the function, or if importing the module, call it as `vokativ.vokativ('Name')` (though the former is idiomatic).","cause":"Attempting to call `vokativ.vokativ()` after `import vokativ` instead of `from vokativ import vokativ`.","error":"AttributeError: module 'vokativ' has no attribute 'vokativ'"},{"fix":"Ensure that the input name is a proper unicode string (Python 2 `unicode` or Python 3 `str`). For bytes, decode them explicitly, e.g., `name_bytes.decode('utf-8')`.","cause":"Occurs when attempting to pass a byte string (e.g., from Python 2, or improperly read file in Python 3) containing non-ASCII characters to the `vokativ` function, which expects a unicode string.","error":"UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 0: ordinal not in range(128)"}],"ecosystem":"pypi"}