{"id":26844861,"url":"https://github.com/dmlls/python-casefy","last_synced_at":"2025-10-18T14:20:12.712Z","repository":{"id":43074057,"uuid":"458778813","full_name":"dmlls/python-casefy","owner":"dmlls","description":"Easily convert between string cases.","archived":false,"fork":false,"pushed_at":"2025-03-07T14:41:03.000Z","size":2995,"stargazers_count":30,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T19:36:53.342Z","etag":null,"topics":["camelcase","case","converter","kebab-case","python","snake-case","string"],"latest_commit_sha":null,"homepage":"https://dmlls.github.io/python-casefy/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmlls.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-13T10:40:54.000Z","updated_at":"2025-03-26T04:15:56.000Z","dependencies_parsed_at":"2024-06-19T05:32:23.325Z","dependency_job_id":"5e21457b-26b4-4d8c-a9d2-b852afb4f52b","html_url":"https://github.com/dmlls/python-casefy","commit_stats":{"total_commits":29,"total_committers":3,"mean_commits":9.666666666666666,"dds":0.3793103448275862,"last_synced_commit":"ecbb08083ece76dc52f7b266c15597d8469df975"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmlls%2Fpython-casefy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmlls%2Fpython-casefy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmlls%2Fpython-casefy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmlls%2Fpython-casefy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmlls","download_url":"https://codeload.github.com/dmlls/python-casefy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247543589,"owners_count":20955865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["camelcase","case","converter","kebab-case","python","snake-case","string"],"created_at":"2025-03-30T19:32:50.131Z","updated_at":"2025-10-18T14:20:07.666Z","avatar_url":"https://github.com/dmlls.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg width=\"400\" src=\"https://github.com/dmlls/python-casefy/blob/main/docs/source/_static/images/cover.png\" alt=\"Casefy\"/\u003e\u003c/p\u003e\n\u003cp align=\"center\" display=\"inline-block\"\u003e\n  \u003ca href=\"https://docs.jizt.it\"\u003e\n    \u003ca href=\"https://pypi.org/project/casefy/\"\u003e\n      \u003cimg src=\"https://img.shields.io/pypi/v/casefy\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://deepsource.io/gh/dmlls/python-casefy/?ref=repository-badge}\" target=\"_blank\"\u003e\n      \u003cimg alt=\"Active Issues\" title=\"DeepSource\" src=\"https://deepsource.io/gh/dmlls/python-casefy.svg/?label=active+issues\u0026token=dbO3UyrUPWvJp6K_PVZpTcnU\"/\u003e\n    \u003c/a\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Introduction\n\nCasefy (/keɪsfaɪ/) is a lightweight Python package to convert the casing of\nstrings. It has no third-party dependencies and supports Unicode.\n\n\u003cbr\u003e\n\n## Installation\n\nThe latest release can be installed using\n[pip](https://pypi.org/project/casefy/):\n\n```shell\npip install -U casefy\n```\n\nCasefy is also [available](https://aur.archlinux.org/packages/python-casefy) as\nan Arch Linux AUR package.\n\n\u003cbr\u003e\n\n## Examples\n\nNote: for more details, you can check the [API\nReference](https://dmlls.github.io/python-casefy/api.html).\n\n```python\nimport casefy\n\n# Alphanum3ric case (removes non-alphanumeric chars)\nstring = casefy.alphanumcase(\"foo - 123 ; bar!\")\nprint(string)  # foo123bar\n\n# camelCase\nstring = casefy.camelcase(\"foo_bar\")\nprint(string)  # fooBar\n\nstring = casefy.camelcase(\"FooBar\")\nprint(string)  # fooBar\n\nstring = casefy.camelcase(\"FOO BAR\")\nprint(string)  # fooBar\n\n# Capital Case\nstring = casefy.capitalcase(\"fooBar\")\nprint(string)  # FooBar\n\n# CONST_CASE\nstring = casefy.constcase(\"fooBar\")\nprint(string)  # FOO_BAR\n\n# kebab-case\nstring = casefy.kebabcase(\"fooBar\")\nprint(string)  # foo-bar\n\n# lowercase\nstring = casefy.lowercase(\"fooBar\")\nprint(string)  # foobar\n\n# PascalCase\nstring = casefy.pascalcase(\"foo_bar\")\nprint(string)  # FooBar\n\nstring = casefy.pascalcase(\"fooBar\")\nprint(string)  # FooBar\n\n# Sentence case\nstring = casefy.sentencecase(\"fooBar\")\nprint(string)  # Foo bar\n\n# Separator case\nstring = casefy.separatorcase(\"fooBar\", separator=\"/\")\nprint(string)  # foo/bar\n\nstring = casefy.separatorcase(\"fooBARbaz\", separator=\"%\", keep_together=[\"BAR\"])\nprint(string)  # foo%bar%baz\n\n# snake_case\nstring = casefy.snakecase(\"fooBar\")\nprint(string)  # foo_bar\n\nstring = casefy.snakecase(\"fooBARbaz\", keep_together=[\"BAR\"])\nprint(string)  # foo_bar_baz\n\nstring = casefy.snakecase(\"FOO BAR\")\nprint(string)  # foo_bar\n\n# Title Case\nstring = casefy.titlecase(\"fooBarBaz\")\nprint(string)  # Foo Bar Baz\n\n# UPPERCASE\nstring = casefy.uppercase(\"fooBar\")\nprint(string)  # FOOBAR\n\n# UPPER-KEBAB-CASE\nstring = casefy.upperkebabcase(\"fooBar\")\nprint(string)  # FOO-BAR\n```\n\n\u003cbr\u003e\n\n## Contribute\nIf you find a bug, please open an issue. Pull Requests are also welcome!\n\n\u003cbr\u003e\n\n## Acknowledgements\n\nThis project started when I saw that the package\n[`python-stringcase`](https://aur.archlinux.org/pkgbase/python-stringcase) was\nflagged-out-of-date in the Arch AUR Repository. The project\n[stringcase](https://github.com/okunishinishi/python-stringcase) seems not to be\nactively maintained anymore, so I decided to address its issues and pull\nrequests and solve them in this new package. I kept the API as similar as\npossible, in order to facilitate any possible migration. I thank [Taka\nOkunishi](https://github.com/okunishinishi) (author of stringcase) and its\ncontributors for their work.\n\n\u003cbr\u003e\n\n## Related projects\n\n- [`case-conversion`](https://github.com/AlejandroFrias/case-conversion) offers\n  a very similar functionality as this project. I probably wouldn't have written\n  this package if I had known of it before. However, the code of Casefy is more\n  lightweight and just enough for most cases. If you need more functionality,\n  e.g., detecting the case of a string, go with `case-conversion`.\n\n- [Inflection](https://github.com/jpvanhal/inflection) presents some overlap\n  with this project as well, allowing the transformation of strings from\n  CamelCase to underscored_string, but also singularizing and pluralizing\n  English words.\n\n\u003cbr\u003e\n\n## License\nCasefy is distributed under the\n[MIT](https://github.com/dmlls/python-casefy/blob/main/LICENSE) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmlls%2Fpython-casefy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmlls%2Fpython-casefy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmlls%2Fpython-casefy/lists"}