spellcraft


Namespellcraft JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
Summaryspellcraft is a helper library containing useful functions and spells, primarily designed for use by Dataclass Wizard.
upload_time2024-11-06 07:22:16
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT
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"
}
        
Elapsed time: 0.34441s