# temporal-codec
Encode and decode your Temporal data with Python
<!-- toc -->
* [Temporal SDK example](#temporal-sdk-example)
* [Installation](#installation)
* [Example](#example)
<!-- Regenerate with "pre-commit run -a markdown-toc" -->
<!-- tocstop -->
## Temporal SDK example
> See [keys.example.yaml](https://github.com/mrsimonemms/temporal-codec-server/blob/e11e08a51b0cc0673363e6df3d4d4280319bce2b/keys.example.yaml)
> for an example key file.
>
> For best results, use an environment variable rather than hardcoding the file
> path.
### Installation
```sh
pip install temporalcodec
```
### Example
```python
from dataclasses import dataclass_replace
from temporalio.client import Client
import temporalio.converter
from temporalcodec.encryption import EncryptionCodec
async def main():
client = await Client.connect(
"localhost:7233",
data_converter=dataclass_replace(
# Create the EncryptionCodec with keys loaded to memory
temporalio.converter.default(), payload_codec=await EncryptionCodec.create(keypath="/path/to/keyfile")
),
)
if __name__ == "__main__":
asyncio.run(main())
```
Raw data
{
"_id": null,
"home_page": null,
"name": "temporalcodec",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "codec, decoding, decryption, encoding, encryption, temporal, workflow",
"author": null,
"author_email": "Simon Emms <simon@simonemms.com>",
"download_url": "https://files.pythonhosted.org/packages/02/f5/7aa25f9bc6b916b8024ac52a2616103fae46b1f93466ccda0120a83bd9b6/temporalcodec-0.4.2.tar.gz",
"platform": null,
"description": "# temporal-codec\n\nEncode and decode your Temporal data with Python\n\n<!-- toc -->\n\n* [Temporal SDK example](#temporal-sdk-example)\n * [Installation](#installation)\n * [Example](#example)\n\n<!-- Regenerate with \"pre-commit run -a markdown-toc\" -->\n\n<!-- tocstop -->\n\n## Temporal SDK example\n\n> See [keys.example.yaml](https://github.com/mrsimonemms/temporal-codec-server/blob/e11e08a51b0cc0673363e6df3d4d4280319bce2b/keys.example.yaml)\n> for an example key file.\n>\n> For best results, use an environment variable rather than hardcoding the file\n> path.\n\n### Installation\n\n```sh\npip install temporalcodec\n```\n\n### Example\n\n```python\nfrom dataclasses import dataclass_replace\nfrom temporalio.client import Client\nimport temporalio.converter\n\nfrom temporalcodec.encryption import EncryptionCodec\n\n\nasync def main():\n client = await Client.connect(\n \"localhost:7233\",\n data_converter=dataclass_replace(\n # Create the EncryptionCodec with keys loaded to memory\n temporalio.converter.default(), payload_codec=await EncryptionCodec.create(keypath=\"/path/to/keyfile\")\n ),\n )\n\nif __name__ == \"__main__\":\n asyncio.run(main())\n```\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Encode and decode your Temporal data",
"version": "0.4.2",
"project_urls": {
"Bug Tracker": "https://github.com/mrsimonemms/temporal-codec-server/issues",
"Documentation": "https://github.com/mrsimonemms/temporal-codec-server",
"Homepage": "https://github.com/mrsimonemms/temporal-codec-server",
"Repository": "https://github.com/mrsimonemms/temporal-codec-server"
},
"split_keywords": [
"codec",
" decoding",
" decryption",
" encoding",
" encryption",
" temporal",
" workflow"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "907d7a6e58f00e2cd9931ffdcbc0aa223b17d002df63b990a00d0be3fd478f00",
"md5": "91e742e62911284c02302c3d436a89cd",
"sha256": "1e7de24f16d28cda394ceb4cc1b83ac4b02352eefb8b4b37b0d36e266a53d881"
},
"downloads": -1,
"filename": "temporalcodec-0.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "91e742e62911284c02302c3d436a89cd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 6286,
"upload_time": "2025-07-12T16:56:52",
"upload_time_iso_8601": "2025-07-12T16:56:52.222644Z",
"url": "https://files.pythonhosted.org/packages/90/7d/7a6e58f00e2cd9931ffdcbc0aa223b17d002df63b990a00d0be3fd478f00/temporalcodec-0.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "02f57aa25f9bc6b916b8024ac52a2616103fae46b1f93466ccda0120a83bd9b6",
"md5": "0f2c0c3dad0b00f7a049c14e381db28d",
"sha256": "379046807c589066da2365f06433fc737aef5ec04205951a65524885663dc4d2"
},
"downloads": -1,
"filename": "temporalcodec-0.4.2.tar.gz",
"has_sig": false,
"md5_digest": "0f2c0c3dad0b00f7a049c14e381db28d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 2739,
"upload_time": "2025-07-12T16:56:53",
"upload_time_iso_8601": "2025-07-12T16:56:53.381138Z",
"url": "https://files.pythonhosted.org/packages/02/f5/7aa25f9bc6b916b8024ac52a2616103fae46b1f93466ccda0120a83bd9b6/temporalcodec-0.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-12 16:56:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mrsimonemms",
"github_project": "temporal-codec-server",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "temporalcodec"
}