{"id":515,"library":"inflection","title":"Inflection","description":"Inflection is a Python library that provides string transformation utilities, porting the functionality of Ruby on Rails' inflector. It handles pluralization, singularization, and various case conversions like CamelCase to snake_case. The current version is 0.5.1, released in August 2020, indicating an irregular release cadence and a maintenance status.","status":"maintenance","version":"0.5.1","language":"python","source_language":"en","source_url":"https://github.com/jpvanhal/inflection","tags":["string-manipulation","text-processing","linguistic","rails-inflector","case-conversion"],"install":[{"cmd":"pip install inflection","lang":"bash","label":"Install stable version"}],"dependencies":[],"imports":[{"symbol":"camelize","correct":"import inflection\ninflection.camelize('device_type')"},{"symbol":"underscore","correct":"import inflection\ninflection.underscore('DeviceType')"},{"symbol":"pluralize","correct":"import inflection\ninflection.pluralize('cat')"},{"symbol":"singularize","correct":"import inflection\ninflection.singularize('cats')"},{"symbol":"dasherize","correct":"import inflection\ninflection.dasherize('puni_puni')"},{"symbol":"humanize","correct":"import inflection\ninflection.humanize('employee_salary')"},{"symbol":"ordinalize","correct":"import inflection\ninflection.ordinalize(1)"},{"symbol":"tableize","correct":"import inflection\ninflection.tableize('fancy_category')"},{"symbol":"titleize","correct":"import inflection\ninflection.titleize('man from the boondocks')"},{"symbol":"transliterate","correct":"import inflection\ninflection.transliterate('你好')"}],"quickstart":{"code":"import inflection\n\n# Convert a snake_case string to CamelCase\nresult_camel = inflection.camelize(\"my_variable_name\")\nprint(f\"CamelCase: {result_camel}\")\n\n# Pluralize a word\nresult_plural = inflection.pluralize(\"mouse\")\nprint(f\"Plural: {result_plural}\")\n\n# Singularize a word\nresult_singular = inflection.singularize(\"data\")\nprint(f\"Singular: {result_singular}\")\n","lang":"python","description":"The quickstart demonstrates basic string transformations: `camelize` for case conversion, `pluralize` for converting singular words to their plural form, and `singularize` for converting plurals to singulars."},"warnings":[{"fix":"Upgrade to Python 3.5+ or pin the `inflection` version to <0.4.0 for older Python environments.","message":"Version 0.4.0 dropped support for Python 2.x (2.6, 2.7) and older Python 3.x versions (3.3, 3.4), as well as PyPy. The library now requires Python 3.5 or newer. Ensure your environment meets this requirement before upgrading or using.","severity":"breaking","affected_versions":"0.4.0 and later"},{"fix":"Use a dedicated internationalization (i18n) library for pluralization and singularization in non-English languages.","message":"The `pluralize` and `singularize` functions are specifically designed for English words and may not produce correct results for other languages. The library is a direct port of Ruby on Rails' inflector, which primarily targets English.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Specify `uppercase_first_letter=False` in `camelize()` calls if `lowerCamelCase` is intended.","message":"The `camelize()` function defaults to `uppercase_first_letter=True`, resulting in `UpperCamelCase`. If `lowerCamelCase` is desired, you must explicitly set this parameter to `False`. For example, `inflection.camelize('foo_bar', False)` returns 'fooBar'.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-05-12T14:32:54.364Z","next_check":"2026-06-26T00:00:00.000Z","problems":[{"fix":"Install the library using pip: `pip install inflection`","cause":"The 'inflection' library is not installed in your Python environment or the Python interpreter cannot find it.","error":"ModuleNotFoundError: No module named 'inflection'"},{"fix":"Correct the method name to the accurate spelling, e.g., `inflection.pluralize('word')`","cause":"You are trying to call a method that does not exist or is misspelled. The library uses 'pluralize' (American English spelling), not 'pluralise'.","error":"AttributeError: module 'inflection' has no attribute 'pluralise'"},{"fix":"Either import the entire module (`import inflection`) or call the function directly without the module prefix (`pluralize('word')` after `from inflection import pluralize`).","cause":"This typically occurs when you've imported specific functions from the 'inflection' module (e.g., `from inflection import pluralize`) but then try to access them via the module name as if the entire module was imported (e.g., `inflection.pluralize`).","error":"NameError: name 'inflection' is not defined"},{"fix":"Ensure that the input provided to the 'inflection' function is a string, converting it if necessary: `inflection.pluralize(str(123))`","cause":"An 'inflection' function was called with an argument of an incorrect type, such as an integer or a list, when it expected a string.","error":"TypeError: expected string or bytes-like object"}],"ecosystem":"pypi","meta_description":null,"install_score":80,"install_tag":"verified","quickstart_score":80,"quickstart_tag":"verified","pypi_latest":null,"install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"17.8M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"18M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"19.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"20M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"11.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.3,"disk_size":"11.2M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"17.3M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"18M"}]},"quickstart_checks":{"last_tested":"2026-04-23","tag":"verified","tag_description":"quickstart runs on critical runtimes, recently tested","results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":0},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":0},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":0},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":0},{"runtime":"python:3.9-slim","exit_code":0}]}}