Name | spellcraft JSON |
Version |
0.1.1
JSON |
| download |
home_page | None |
Summary | spellcraft is a helper library containing useful functions and spells, primarily designed for use by Dataclass Wizard. |
upload_time | 2024-11-06 07:22:16 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | MIT |
keywords |
string
case
camel
snake
unicode
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# PySpellCraft
[![PyPI version](https://img.shields.io/pypi/v/spellcraft.svg)](https://pypi.org/project/spellcraft/)
[![Python versions](https://img.shields.io/pypi/pyversions/spellcraft.svg)](https://pypi.org/project/spellcraft/)
[![Docs Status](https://github.com/rnag/spellcraft/actions/workflows/docs.yml/badge.svg)](https://ritviknag.com/spellcraft/)
[![Build Status](https://github.com/rnag/spellcraft/actions/workflows/build-and-release.yml/badge.svg)](https://github.com/rnag/spellcraft/actions/workflows/build-and-release.yml)
[![License](https://img.shields.io/pypi/l/spellcraft.svg)](https://github.com/rnag/spellcraft/blob/main/LICENSE)
<!-- [![Coverage Status](https://coveralls.io/repos/github/rnag/spellcraft/badge.svg?branch=main)](https://coveralls.io/github/rnag/spellcraft?branch=main) -->
<!-- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) -->
**SpellCraft** is a helper library that contains useful functions and "spells", primarily designed for use by [Dataclass Wizard].
[Read the documentation.]
[Read the documentation.]: https://ritviknag.com/spellcraft/
[Dataclass Wizard]: https://dataclass-wizard.readthedocs.io
## Installation
```
pip install spellcraft
```
> [!NOTE]
> Requires Python >= 3.9.
## Example
```python
>>> from spellcraft import snake
>>> snake("We carry a new world here, in our hearts.")
'we_carry_a_new_world_here_in_our_hearts'
```
## Development
### Setup
1. Activate a virtual environment:
```sh
python -m venv .venv
source .venv/bin/activate
```
2. Install dev dependencies:
```
pip install .[dev]
```
### Testing
1. Run `maturin develop` to compile the Rust code.
2. Run `make fmt`, `make lint`, and `make test`.
## License
`spellcraft` is distributed under the terms of the MIT License.
See the LICENSE file for full details.
> Copyright (c) 2015 The Rust Project Developers<br>
> Copyright (c) 2022 Kevin Heavey<br>
> Copyright (c) 2024 Ritvik Nag
Raw data
{
"_id": null,
"home_page": null,
"name": "spellcraft",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "string, case, camel, snake, unicode",
"author": null,
"author_email": "rnag <me@ritviknag.com>",
"download_url": "https://files.pythonhosted.org/packages/0a/8d/3f0e3e389a57a44b8ab8a9499010018271030230a1ed1d53a6766fb4852b/spellcraft-0.1.1.tar.gz",
"platform": null,
"description": "# PySpellCraft\n\n[![PyPI version](https://img.shields.io/pypi/v/spellcraft.svg)](https://pypi.org/project/spellcraft/)\n[![Python versions](https://img.shields.io/pypi/pyversions/spellcraft.svg)](https://pypi.org/project/spellcraft/)\n[![Docs Status](https://github.com/rnag/spellcraft/actions/workflows/docs.yml/badge.svg)](https://ritviknag.com/spellcraft/)\n[![Build Status](https://github.com/rnag/spellcraft/actions/workflows/build-and-release.yml/badge.svg)](https://github.com/rnag/spellcraft/actions/workflows/build-and-release.yml)\n[![License](https://img.shields.io/pypi/l/spellcraft.svg)](https://github.com/rnag/spellcraft/blob/main/LICENSE)\n\n<!-- [![Coverage Status](https://coveralls.io/repos/github/rnag/spellcraft/badge.svg?branch=main)](https://coveralls.io/github/rnag/spellcraft?branch=main) -->\n<!-- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) -->\n\n**SpellCraft** is a helper library that contains useful functions and \"spells\", primarily designed for use by [Dataclass Wizard].\n\n[Read the documentation.]\n\n[Read the documentation.]: https://ritviknag.com/spellcraft/\n[Dataclass Wizard]: https://dataclass-wizard.readthedocs.io\n\n## Installation\n\n```\npip install spellcraft\n```\n\n> [!NOTE]\n> Requires Python >= 3.9.\n\n## Example\n\n```python\n>>> from spellcraft import snake\n>>> snake(\"We carry a new world here, in our hearts.\")\n'we_carry_a_new_world_here_in_our_hearts'\n```\n\n## Development\n\n### Setup\n\n1. Activate a virtual environment:\n\n```sh\npython -m venv .venv\nsource .venv/bin/activate\n```\n\n2. Install dev dependencies:\n\n```\npip install .[dev]\n```\n\n### Testing\n\n1. Run `maturin develop` to compile the Rust code.\n2. Run `make fmt`, `make lint`, and `make test`.\n\n## License\n\n`spellcraft` is distributed under the terms of the MIT License.\n\nSee the LICENSE file for full details.\n\n> Copyright (c) 2015 The Rust Project Developers<br>\n> Copyright (c) 2022 Kevin Heavey<br>\n> Copyright (c) 2024 Ritvik Nag\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "spellcraft is a helper library containing useful functions and spells, primarily designed for use by Dataclass Wizard.",
"version": "0.1.1",
"project_urls": {
"changelog": "https://github.com/rnag/spellcraft/blob/main/CHANGELOG.md",
"documentation": "https://rnag.github.io/spellcraft/",
"homepage": "https://github.com/rnag/spellcraft",
"repository": "https://github.com/rnag/spellcraft"
},
"split_keywords": [
"string",
" case",
" camel",
" snake",
" unicode"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1ca005a2664f668aaf66d1e4f9b0f591b13afbd99e6eeb0498072bb60df1be36",
"md5": "ca60e22db05b66b73a82117e44095647",
"sha256": "09e79903f6df2139a0d2b3a3c3a5b68fba0d45a44b96f1de5e16275347ba555f"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "ca60e22db05b66b73a82117e44095647",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 226742,
"upload_time": "2024-11-06T07:22:06",
"upload_time_iso_8601": "2024-11-06T07:22:06.574593Z",
"url": "https://files.pythonhosted.org/packages/1c/a0/05a2664f668aaf66d1e4f9b0f591b13afbd99e6eeb0498072bb60df1be36/spellcraft-0.1.1-cp39-abi3-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a1d8bc4ed1ee1c8702ad7413f89e1cd1b8597db4fd4edea26ca8fe6701de9c54",
"md5": "382af4cb4275336f3cd18fb4a62753c1",
"sha256": "191fa19febb09b2977d5e00bcaf2376e1a9e72bf4d37a5feb37809950830094c"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "382af4cb4275336f3cd18fb4a62753c1",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 224325,
"upload_time": "2024-11-06T07:22:04",
"upload_time_iso_8601": "2024-11-06T07:22:04.346344Z",
"url": "https://files.pythonhosted.org/packages/a1/d8/bc4ed1ee1c8702ad7413f89e1cd1b8597db4fd4edea26ca8fe6701de9c54/spellcraft-0.1.1-cp39-abi3-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a03fd5bfd922910598e74f8c4d9daf459924604893d60d02176f8d16bff25ee0",
"md5": "0aacd778beb49ffa6b3166063e1edaeb",
"sha256": "264132ee4b807e8313ff9849521aef9f412dea23b1ace0a79d2310d957196473"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "0aacd778beb49ffa6b3166063e1edaeb",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 254089,
"upload_time": "2024-11-06T07:21:50",
"upload_time_iso_8601": "2024-11-06T07:21:50.008903Z",
"url": "https://files.pythonhosted.org/packages/a0/3f/d5bfd922910598e74f8c4d9daf459924604893d60d02176f8d16bff25ee0/spellcraft-0.1.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e8df5bd7de32a0e57a38e0fa53275afe78c6a2ea3fbd63c3b908832caa73700b",
"md5": "60aebf62423f0fbe6518ff61d1596c70",
"sha256": "c1a011633f744fd321f180285fb492df832db47a8005df32e2e1e26fcd6cc1f7"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
"has_sig": false,
"md5_digest": "60aebf62423f0fbe6518ff61d1596c70",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 259720,
"upload_time": "2024-11-06T07:21:55",
"upload_time_iso_8601": "2024-11-06T07:21:55.454858Z",
"url": "https://files.pythonhosted.org/packages/e8/df/5bd7de32a0e57a38e0fa53275afe78c6a2ea3fbd63c3b908832caa73700b/spellcraft-0.1.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5b6caf5335a1b2a8d349dcda9f0eef7a9641ea4d39a10d274a53043548d25dd4",
"md5": "40ed70fd0204efb58633ef22dcff4ac7",
"sha256": "4eb57f4a40c4769b22d8eda6e9158e76b23cba7765f635aa59bd88fe824328e9"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"has_sig": false,
"md5_digest": "40ed70fd0204efb58633ef22dcff4ac7",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 292109,
"upload_time": "2024-11-06T07:21:57",
"upload_time_iso_8601": "2024-11-06T07:21:57.681916Z",
"url": "https://files.pythonhosted.org/packages/5b/6c/af5335a1b2a8d349dcda9f0eef7a9641ea4d39a10d274a53043548d25dd4/spellcraft-0.1.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1c5720f779e03187cfe87e72c62422d899b9b321b06e273adcca46bbd178f456",
"md5": "cd3c7d383f20825c28067b7931b1e8fd",
"sha256": "5a348272775c9edf63e3c3602ad296b105ddc0bf44cec68dd3e34b7831a78f3b"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl",
"has_sig": false,
"md5_digest": "cd3c7d383f20825c28067b7931b1e8fd",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 291757,
"upload_time": "2024-11-06T07:21:59",
"upload_time_iso_8601": "2024-11-06T07:21:59.273389Z",
"url": "https://files.pythonhosted.org/packages/1c/57/20f779e03187cfe87e72c62422d899b9b321b06e273adcca46bbd178f456/spellcraft-0.1.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "474ad0fe02ea89046c2bb50282c522eba95ccb185a3db4d85909bc506b28f7a3",
"md5": "c86d8c165697a739cd685d22f504af37",
"sha256": "63b63f5751f4ab80a38f4a8a21d1e58c2324cc5e42b905a0d7db58a85e61ab0d"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "c86d8c165697a739cd685d22f504af37",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 255294,
"upload_time": "2024-11-06T07:22:02",
"upload_time_iso_8601": "2024-11-06T07:22:02.813764Z",
"url": "https://files.pythonhosted.org/packages/47/4a/d0fe02ea89046c2bb50282c522eba95ccb185a3db4d85909bc506b28f7a3/spellcraft-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4dcb3aba94829d8771adcca3af0e82e71df06f7bc39082d723e142c1973529bf",
"md5": "11b4f3ff2e54421823c777079264fa98",
"sha256": "6875bcf7ae514d181173ada5f07f2311de4925a298d9c24cf8f8c48742163ede"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "11b4f3ff2e54421823c777079264fa98",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 267783,
"upload_time": "2024-11-06T07:22:00",
"upload_time_iso_8601": "2024-11-06T07:22:00.729472Z",
"url": "https://files.pythonhosted.org/packages/4d/cb/3aba94829d8771adcca3af0e82e71df06f7bc39082d723e142c1973529bf/spellcraft-0.1.1-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e54e91e22c7703f0800c06e413d1ab3cf307f8b66c013c521a4b2d80b563429a",
"md5": "1fca5a2441fa2c18089ddb4aa7091849",
"sha256": "7997d16f0ed3b64dd06b89a07123acde22a0c4ae2463fc5da2bb0956ba1d90e1"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "1fca5a2441fa2c18089ddb4aa7091849",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 439789,
"upload_time": "2024-11-06T07:22:08",
"upload_time_iso_8601": "2024-11-06T07:22:08.612398Z",
"url": "https://files.pythonhosted.org/packages/e5/4e/91e22c7703f0800c06e413d1ab3cf307f8b66c013c521a4b2d80b563429a/spellcraft-0.1.1-cp39-abi3-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0b45264fc3dbd8eb7c5194c906e68a7a74b714f85e1918e818ab93f327867128",
"md5": "4d5b1fd28bbef79b3d5c4450307dcf8b",
"sha256": "17119d7c9657282d06f08d2c8b958e86a3a1b2de421b8b799ebc4734098cdb3d"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-musllinux_1_2_armv7l.whl",
"has_sig": false,
"md5_digest": "4d5b1fd28bbef79b3d5c4450307dcf8b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 521435,
"upload_time": "2024-11-06T07:22:10",
"upload_time_iso_8601": "2024-11-06T07:22:10.311631Z",
"url": "https://files.pythonhosted.org/packages/0b/45/264fc3dbd8eb7c5194c906e68a7a74b714f85e1918e818ab93f327867128/spellcraft-0.1.1-cp39-abi3-musllinux_1_2_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "695de59a8ceff6215eaef4ffaf6562e9a034766483bf98c1866103206eaf227d",
"md5": "a1fcf72f772c2890e9eba51c3b1e976b",
"sha256": "ab555236de33852721fe342b7fc2f4577c004b0cf032538f0ff6c1c5e71746e7"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "a1fcf72f772c2890e9eba51c3b1e976b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 442988,
"upload_time": "2024-11-06T07:22:12",
"upload_time_iso_8601": "2024-11-06T07:22:12.380968Z",
"url": "https://files.pythonhosted.org/packages/69/5d/e59a8ceff6215eaef4ffaf6562e9a034766483bf98c1866103206eaf227d/spellcraft-0.1.1-cp39-abi3-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3aeb0a1becb5e5176b5c26e10252834f0b621ae1c9b590c8d023613a6e500afc",
"md5": "193f0d8489fc1ca250ca2368422157a1",
"sha256": "ffd850ed71ac267fd986d3142fb8c18b8f4a9198b248958703c281175af25343"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "193f0d8489fc1ca250ca2368422157a1",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 423716,
"upload_time": "2024-11-06T07:22:14",
"upload_time_iso_8601": "2024-11-06T07:22:14.579187Z",
"url": "https://files.pythonhosted.org/packages/3a/eb/0a1becb5e5176b5c26e10252834f0b621ae1c9b590c8d023613a6e500afc/spellcraft-0.1.1-cp39-abi3-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "87cdc70eeb29d6703c89af05507303794ae9a43508888fee4c29c4cc6affa365",
"md5": "8651fb95b39dffff4035e4598a02a320",
"sha256": "85f43518f67d6ced4d1cfc50604288037b51ca97434fe1dbb51427e3523c15f1"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-win32.whl",
"has_sig": false,
"md5_digest": "8651fb95b39dffff4035e4598a02a320",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 120944,
"upload_time": "2024-11-06T07:22:19",
"upload_time_iso_8601": "2024-11-06T07:22:19.784022Z",
"url": "https://files.pythonhosted.org/packages/87/cd/c70eeb29d6703c89af05507303794ae9a43508888fee4c29c4cc6affa365/spellcraft-0.1.1-cp39-abi3-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9ef48a7e976554edf6417c7d1f58da984d796587f1dcb6fa5639e947690f7c98",
"md5": "a614cc8a8b256be6a62b448da72eab18",
"sha256": "3550d0b6466127e8c34a63288c0094cc04dfdd395ff7c598c89e31912b0bb89a"
},
"downloads": -1,
"filename": "spellcraft-0.1.1-cp39-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "a614cc8a8b256be6a62b448da72eab18",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 127755,
"upload_time": "2024-11-06T07:22:17",
"upload_time_iso_8601": "2024-11-06T07:22:17.776526Z",
"url": "https://files.pythonhosted.org/packages/9e/f4/8a7e976554edf6417c7d1f58da984d796587f1dcb6fa5639e947690f7c98/spellcraft-0.1.1-cp39-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0a8d3f0e3e389a57a44b8ab8a9499010018271030230a1ed1d53a6766fb4852b",
"md5": "f3345ec762d6b9f10996b2b9da698c9f",
"sha256": "c1dc3b3f77fbdf9b1e5279f52bfe8624ebf3218a5387b124090a33ccdd576aee"
},
"downloads": -1,
"filename": "spellcraft-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "f3345ec762d6b9f10996b2b9da698c9f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 11546,
"upload_time": "2024-11-06T07:22:16",
"upload_time_iso_8601": "2024-11-06T07:22:16.250075Z",
"url": "https://files.pythonhosted.org/packages/0a/8d/3f0e3e389a57a44b8ab8a9499010018271030230a1ed1d53a6766fb4852b/spellcraft-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-06 07:22:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rnag",
"github_project": "spellcraft",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "spellcraft"
}