# CFKV
[![Deploy > PYPI > Test ](https://github.com/mooncitizen/python-cfkv/actions/workflows/testpypi.yaml/badge.svg)](https://github.com/mooncitizen/python-cfkv/actions/workflows/testpypi.yaml)
[![Release](https://github.com/mooncitizen/python-cfkv/actions/workflows/pypi.yaml/badge.svg)](https://github.com/mooncitizen/python-cfkv/actions/workflows/pypi.yaml)
A simple wrapper to communicate with [Cloudflare KV Store ](https://developers.cloudflare.com/kv/). It can be used as a cache and features will be implemented to be used in frameworks such as ```FastAPI```
- [x] Set and Get
- [ ] Fastapi Middleware
- [ ] Flask integration
- [x] Options to include string instead of dict entry
### Simple Usage
```python
import datetime
from cfkv import KVStore
store = KVStore(namespace_id="YOUR_NAMESPACE_ID", account_id="ACCOUNT_ID", api_key="API_KEY")
# Usage Example
key = "sample_key"
get = store.get(key)
if get is None:
data = {"test": True, "date": str(datetime.datetime.now())}
store.set(key)
data['stored'] = False
get = data
else:
data['stored'] = True
print(get)
```
### Setup
You will need to know your namespace id which is generated when you create a KV namespace and Account ID. To generate the KV api key follow the instructions below
1. Navigate to [Cloudflare API Tokens](https://dash.cloudflare.com/profile/api-tokens)
2. Create API Token
3. Scroll down to create custom token
4. Create a token with **Workers KV Storage** and select **Edit**
![Example Token](github/image.png)
You can use environment variables to store these the following are monitored
```python
KV_NAMESPACE_ID="YOUR_NAMESPACE_ID"
CF_ACCOUNT_ID="YOUR_ACCOUNT_ID"
CF_API_KEY="YOUR_API_KEY"
```
Raw data
{
"_id": null,
"home_page": "",
"name": "cfkv",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "cloudflare,kv,cache,api,cloudflare workers",
"author": "Paul Gardiner",
"author_email": "franticstone@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/bc/c4/e81ca5554c6b6d1d96b6dde6148c522be8e75fb91c400fa7fc693edd0aad/cfkv-1.1.1.tar.gz",
"platform": null,
"description": "# CFKV\n\n[![Deploy > PYPI > Test ](https://github.com/mooncitizen/python-cfkv/actions/workflows/testpypi.yaml/badge.svg)](https://github.com/mooncitizen/python-cfkv/actions/workflows/testpypi.yaml)\n\n[![Release](https://github.com/mooncitizen/python-cfkv/actions/workflows/pypi.yaml/badge.svg)](https://github.com/mooncitizen/python-cfkv/actions/workflows/pypi.yaml)\n\nA simple wrapper to communicate with [Cloudflare KV Store ](https://developers.cloudflare.com/kv/). It can be used as a cache and features will be implemented to be used in frameworks such as ```FastAPI```\n\n- [x] Set and Get\n- [ ] Fastapi Middleware\n- [ ] Flask integration\n- [x] Options to include string instead of dict entry\n\n### Simple Usage\n\n```python\nimport datetime\nfrom cfkv import KVStore\n\nstore = KVStore(namespace_id=\"YOUR_NAMESPACE_ID\", account_id=\"ACCOUNT_ID\", api_key=\"API_KEY\")\n\n# Usage Example\nkey = \"sample_key\"\nget = store.get(key)\n\nif get is None:\n data = {\"test\": True, \"date\": str(datetime.datetime.now())}\n store.set(key)\n data['stored'] = False\n get = data\nelse:\n data['stored'] = True\n\nprint(get)\n```\n\n### Setup\n\nYou will need to know your namespace id which is generated when you create a KV namespace and Account ID. To generate the KV api key follow the instructions below\n\n1. Navigate to [Cloudflare API Tokens](https://dash.cloudflare.com/profile/api-tokens)\n2. Create API Token\n3. Scroll down to create custom token\n4. Create a token with **Workers KV Storage** and select **Edit**\n\n![Example Token](github/image.png)\n\nYou can use environment variables to store these the following are monitored\n```python\nKV_NAMESPACE_ID=\"YOUR_NAMESPACE_ID\"\nCF_ACCOUNT_ID=\"YOUR_ACCOUNT_ID\"\nCF_API_KEY=\"YOUR_API_KEY\"\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Python wrapper for the Cloudflare KV Cache API",
"version": "1.1.1",
"project_urls": null,
"split_keywords": [
"cloudflare",
"kv",
"cache",
"api",
"cloudflare workers"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bcc4e81ca5554c6b6d1d96b6dde6148c522be8e75fb91c400fa7fc693edd0aad",
"md5": "493d39da6c54d054a23c2645957e27ed",
"sha256": "2c3651ba1b19d183a17717b431c97e2985b05867f6c42d36247dc65773d1e0c7"
},
"downloads": -1,
"filename": "cfkv-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "493d39da6c54d054a23c2645957e27ed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3179,
"upload_time": "2023-10-24T13:42:48",
"upload_time_iso_8601": "2023-10-24T13:42:48.051890Z",
"url": "https://files.pythonhosted.org/packages/bc/c4/e81ca5554c6b6d1d96b6dde6148c522be8e75fb91c400fa7fc693edd0aad/cfkv-1.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-24 13:42:48",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "cfkv"
}