cachebox


Namecachebox JSON
Version 2.2.3 PyPI version JSON
download
home_pageNone
SummaryThe fastest memoizing and caching Python library written in Rust
upload_time2024-04-26 13:10:15
maintainerNone
docs_urlNone
authorawolverp
requires_python>=3.8
licenseNone
keywords caching cached cachetools cachebox cache in-memory-caching memoizing
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Cachebox
![Downloads](https://static.pepy.tech/badge/cachebox) ![Downloads](https://static.pepy.tech/badge/cachebox/week)

[**v2 Changelog**](https://github.com/awolverp/cachebox/blob/main/CHANGELOG.md#200---2024-03-09) | [**Releases**](https://github.com/awolverp/cachebox/releases)

The fastest caching library with different implementations, written in Rust.

- ๐Ÿš€ 3-21x faster than other libraries (like cachetools and cacheout)
- ๐Ÿ“Š Very very low memory usage (1/3 of dictionary)
- **(R)** written in Rust
- ๐Ÿค Support Python 3.8 and above
- ๐Ÿ“ฆ Over 7 cache algorithms are supported
- ๐Ÿงถ Completely thread-safe

**(@)** decorator example:
```python
from cachebox import cached, cachedmethod, TTLCache, LRUCache

# Keep coin price for no longer than a minute
@cached(TTLCache(maxsize=126, ttl=60))
def get_coin_price(coin_name):
    return web3_client.get_price(coin_name)

# Async functions are supported
@cached(LRUCache(maxsize=126))
async def get_coin_price(coin_name):
    return await async_web3_client.get_price(coin_name)

# You can pass `capacity` parameter.
# If `capacity` specified, the cache will be able to hold at
# least capacity elements without reallocating.
@cached(LRUCache(maxsize=126, capacity=100))
def fib(n):
    return n if n < 2 else fib(n - 1) + fib(n - 2)

# methods are supported
class APIResource:
    @cachedmethod(
        TTLCache(126, ttl=10),
        # You can detemine how caching is done using `key_maker` parameter.
        key_maker=lambda args, kwds: args[0].client_ip
    )
    def get_information(self, request):
        ...
```

## Page Contents
- โ‰๏ธ [When i need caching?](#when-i-need-caching)
- ๐Ÿคทโ€โ™‚๏ธ [Why `cachebox`?](#why-cachebox)
- ๐ŸŽฏ [Features](#features)
- ๐Ÿ› ๏ธ [Installation](#installation)
- ๐ŸŽ“ [Usage](#API)
- ๐Ÿš€ [Performance table](#performance-table)
- โ‰๏ธ [Frequently Asked Questions](#frequently-asked-questions)
- ๐Ÿ†• [*CHANGELOG*](CHANGELOG.md)
- โฑ๏ธ [*BENCHMARK*](https://github.com/awolverp/cachebox-benchmark)

## When i need caching?
1. **Sometimes you have functions that take a long time to execute, and you need to call them each time.**

```python
@cached(LRUCache(260))
def function(np_array):
    # big operations
    ...
```

2. **Sometimes you need to temporarily store data in memory for a short period.**

3. **When dealing with remote APIs, Instead of making frequent API calls, store the responses in a cache.**

```python
@cached(TTLCache(0, ttl=10))
def api_call(key):
    return api.call(key)
```

4. **Caching query results from databases can enhance performance.**

```python
@cached(TTLCache(0, ttl=1))
def select_user(id):
    return db.execute("SELECT * FROM users WHERE id=?", (id,))
```

and ...

## Why `cachebox`?
**`cachebox`** library uses *Rust* language to has high-performance.

**Low memory usage** - It uses very low memory usage; let's have a simple compare to dictionary:
```python
>>> import sys, cachebox
>>> sys.getsizeof(cachebox.Cache(0, {i:i for i in range(100000)}))
1835032
>>> sys.getsizeof({i:i for i in range(100000)})
5242960
```

**High-speed** - Is speed important for you? It's is here for you; see [**here**](https://github.com/awolverp/cachebox-benchmark).

**Zero-dependecy** - As we said, `cachebox` written in Rust so you have not to install any other dependecies.

**Thread-safe** - It's completely thread-safe and uses read-writer locks to prevent problems.

## Installation
You can install **cachebox** from PyPi:
```sh
pip3 install -U cachebox
```

To verify that the library is installed correctly, run the following command:
```sh
python -c "import cachebox; print(cachebox.__version__)"
```

## API
All the implementations are support **mutable-mapping** methods (e.g `__setitem__`, `get`, `popitem`),
and there are some new methods for each implemetation.

These methods are available for all classes:
- `insert(key, value)`: an aliases for `__setitem__`

```python
>>> cache.insert(1, 1) # it equals to cache[1] = 1
```

- `capacity()`: Returns the number of elements the cache can hold without reallocating.

```python
>>> cache.update((i, i) for i in range(1000))
>>> cache.capacity()
1432
```

- `drain(n)`: According to cache algorithm, deletes and returns how many items removed from cache.

```python
>>> cache = LFUCache(10, {i:i for i in range(10)})
>>> cache.drain(8)
8
>>> len(cache)
2
>>> cache.drain(10)
2
>>> len(cache)
0
```

- `shrink_to_fit()`: Shrinks the capacity of the cache as much as possible.

```python
>>> cache = LRUCache(0, {i:i for i in range(10)})
>>> cache.capacity()
27
>>> cache.shrink_to_fit()
>>> cache.capacity()
11
```

### Cache
Fixed-size (or can be not) cache implementation without any policy,
So only can be fixed-size, or unlimited size cache.

```python
>>> from cachebox import Cache
>>> cache = Cache(100) # fixed-size cache
>>> cache = Cache(0) # unlimited-size cache
>>> cache = Cache(100, {"key1": "value1", "key2": "value2"}) # initialize from dict or any iterable object
>>> cache = Cache(2, {i:i for i in range(10)})
...
OverflowError: maximum size limit reached
```

**There're no new methods for this class.**

### FIFOCache
FIFO Cache implementation (First-In First-Out policy, very useful).

In simple terms, the FIFO cache will remove the element that has been in the cache the longest;
It behaves like a Python dictionary.

```python
>>> from cachebox import FIFOCache
>>> cache = FIFOCache(100) # fixed-size cache
>>> cache = FIFOCache(0) # unlimited-size cache
>>> cache = FIFOCache(100, {"key1": "value1", "key2": "value2"}) # initialize from dict or any iterable object
```

**There're new methods:**
- `first`: returns the first inserted key (the oldest)
- `last`: returns the last inserted key (the newest)


### LFUCache
LFU Cache implementation (Least frequantly used policy).

In simple terms, the LFU cache will remove the element in the cache that has been accessed the least,
regardless of time.

```python
>>> from cachebox import LFUCache
>>> cache = LFUCache(100) # fixed-size cache
>>> cache = LFUCache(0) # unlimited-size cache
>>> cache = LFUCache(100, {"key1": "value1", "key2": "value2"}) # initialize from dict or any iterable object
```

**There's a new method:**
- `least_frequently_used`: returns the key that has been accessed the least.


### RRCache
RRCache implementation (Random Replacement policy).

In simple terms, the RR cache will choice randomly element to remove it to make space when necessary.

```python
>>> from cachebox import RRCache
>>> cache = RRCache(100) # fixed-size cache
>>> cache = RRCache(0) # unlimited-size cache
>>> cache = RRCache(100, {"key1": "value1", "key2": "value2"}) # initialize from dict or any iterable object
```

**There're no new methods for this class.**


### LRUCache
LRU Cache implementation (Least recently used policy).

In simple terms, the LRU cache will remove the element in the cache that has not been accessed in the longest time.

```python
>>> from cachebox import LRUCache
>>> cache = LRUCache(100) # fixed-size cache
>>> cache = LRUCache(0) # unlimited-size cache
>>> cache = LRUCache(100, {"key1": "value1", "key2": "value2"}) # initialize from dict or any iterable object
```

**There're new methods:**
- `least_recently_used`: returns the key that has not been accessed in the longest time.
- `most_recently_used`: returns the key that has been accessed in the longest time.


### TTLCache
TTL Cache implementation (Time-to-live policy).

In simple terms, The TTL cache is one that evicts items that are older than a time-to-live.

```python
>>> from cachebox import TTLCache
>>> cache = TTLCache(100, 2) # fixed-size cache, 2 ttl value
>>> cache = TTLCache(0, 10) # unlimited-size cache, 10 ttl value
>>> cache = TTLCache(100, 5, {"key1": "value1", "key2": "value2"}) # initialize from dict or any iterable object
```
**There're new methods:**
- `get_with_expire`: Works like `.get()`, but also returns the remaining expiration.

```python
>>> cache.update({1: 1, 2: 2})
>>> cache.get_with_expire(1)
(1, 1.23445675)
>>> cache.get_with_expire("no-exists")
(None, 0.0)
```

- `pop_with_expire`: Works like `.pop()`, but also returns the remaining expiration.

```python
>>> cache.update({1: 1, 2: 2})
>>> cache.pop_with_expire(1)
(1, 1.23445675)
>>> cache.pop_with_expire(1)
(None, 0.0)
```

- `popitem_with_expire`: Works like `.popitem()`, but also returns the remaining expiration.

```python
>>> cache.update({1: 1, 2: 2})
>>> cache.popitem_with_expire()
(1, 1, 1.23445675)
>>> cache.popitem_with_expire()
(2, 2, 1.94389545)
>>> cache.popitem_with_expire()
...
KeyError
```

### VTTLCache
VTTL Cache implementation (Time-to-live per-key policy)

Works like TTLCache, with this different that each key has own time-to-live value.

```python
>>> cache = VTTLCache(100) # fixed-size cache
>>> cache = VTTLCache(0) # unlimited-size cache

# initialize from dict or any iterable object;
# also these items will expire after 5 seconds
>>> cache = VTTLCache(100, {"key1": "value1", "key2": "value2"}, 5)

# initialize from dict or any iterable object;
# but these items never expire, because we pass None as them ttl value
>>> cache = VTTLCache(100, {"key1": "value1", "key2": "value2"}, None)
```

**There're new methods:**
- `insert(key, value, ttl)`: is different here. if you use `cache[key] = value` way, you cannot set ttl value for those item, but here you can.

```python
>>> cache.insert("key", "value", 10) # this item will expire after 10 seconds
>>> cache.insert("key", "value", None) # but this item never expire.
```

- `setdefault(key, default, ttl)`: Returns the value of the specified key.
If the key does not exist, insert the key, with the specified value.

- `update(iterable, ttl)`: inserts the specified items to the cache. The `iterable` can be a dictionary,
or an iterable object with key-value pairs.

```python
>>> cache = VTTLCache(20)
>>> cache.insert("key", "value", 10)
>>> cache.update({i:i for i in range(12)}, 2)
>>> len(cache)
13
>>> time.sleep(2)
>>> len(cache)
1
```

- `get_with_expire`: Works like `.get()`, but also returns the remaining expiration.

```python
>>> cache.update({1: 1, 2: 2}, 2)
>>> cache.get_with_expire(1)
(1, 1.9934)
>>> cache.get_with_expire("no-exists")
(None, 0.0)
```

- `pop_with_expire`: Works like `.pop()`, but also returns the remaining expiration.

```python
>>> cache.update({1: 1, 2: 2}, 2)
>>> cache.pop_with_expire(1)
(1, 1.99954)
>>> cache.pop_with_expire(1)
(None, 0.0)
```

- `popitem_with_expire`: Works like `.popitem()`, but also returns the remaining expiration.

```python
>>> cache.update({1: 1, 2: 2}, 2)
>>> cache.popitem_with_expire()
(1, 1, 1.9786564)
>>> cache.popitem_with_expire()
(2, 2, 1.97389545)
>>> cache.popitem_with_expire()
...
KeyError
```

## Performance table

> [!NOTE]\
> Operations which have an amortized cost are suffixed with a `*`. Operations with an expected cost are suffixed with a `~`.

|              | get(i) | insert(i)       | delete(i)      | update(m)        | popitem |
| ------------ | ------ | --------------- | -------------- | ---------------- | ------- |
| Cache        | O(1)~  | O(1)~*          | O(1)~          | O(m)~            | N/A     |
| FIFOCache    | O(1)~  | O(min(i, n-i))* | O(min(i, n-i)) | O(m*min(i, n-i)) | O(1)    |
| LFUCache     | O(1)~  | O(n)~*          | O(1)~          | O(m*n)~          | O(n)~*  |
| RRCache      | O(1)~  | O(1)~*          | O(1)~          | O(m)~            | O(1)~   |
| LRUCache     | O(1)~  | ?               | O(1)~          | ?                | O(1)    |
| TTLCache     | O(1)~  | O(min(i, n-i))* | O(min(i, n-i)) | O(m*min(i, n-i)) | O(1)    |
| VTTLCache    | O(1)~  | ?               | O(1)~          | ?                | O(1)~   |

## Frequently asked questions
#### What is the difference between TTLCache and VTTLCache?
In `TTLCache`, you set an expiration time for all items, but in `VTTLCache`,
you can set a unique expiration time for each item.

|              | TTL         | Speed   |
| ------------ | ----------- | ------- |
| TTLCache     | One ttl for all items       | TTLCache is very faster than VTTLCache |
| VTTLCache    | Each item has unique expiration time | VTTLCache is slow in inserting |


#### Can we set maxsize to zero?
Yes, if you pass zero to maxsize, means there's no limit for items.

#### Migrate from cachetools to cachebox
*cachebox* syntax is very similar to *cachetools*.
Just change these:
```python
# If you pass infinity to a cache implementation, change it to zero.
cachetools.Cache(math.inf) -> cachebox.Cache(0)
# If you use `isinstance` for cachetools classes, change those.
isinstance(cache, cachetools.Cache) -> isinstance(cache, cachebox.BaseCacheImpl)
```

## License
Copyright (c) 2024 aWolverP - **MIT License**


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "cachebox",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "caching, cached, cachetools, cachebox, cache, in-memory-caching, memoizing",
    "author": "awolverp",
    "author_email": "awolverp@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/aa/7d/e8799fc9888bc498739b57526a6bdb9ced7da46a97a677972ac86c1b6f4e/cachebox-2.2.3.tar.gz",
    "platform": null,
    "description": "# Cachebox\n![Downloads](https://static.pepy.tech/badge/cachebox) ![Downloads](https://static.pepy.tech/badge/cachebox/week)\n\n[**v2 Changelog**](https://github.com/awolverp/cachebox/blob/main/CHANGELOG.md#200---2024-03-09) | [**Releases**](https://github.com/awolverp/cachebox/releases)\n\nThe fastest caching library with different implementations, written in Rust.\n\n- \ud83d\ude80 3-21x faster than other libraries (like cachetools and cacheout)\n- \ud83d\udcca Very very low memory usage (1/3 of dictionary)\n- **(R)** written in Rust\n- \ud83e\udd1d Support Python 3.8 and above\n- \ud83d\udce6 Over 7 cache algorithms are supported\n- \ud83e\uddf6 Completely thread-safe\n\n**(@)** decorator example:\n```python\nfrom cachebox import cached, cachedmethod, TTLCache, LRUCache\n\n# Keep coin price for no longer than a minute\n@cached(TTLCache(maxsize=126, ttl=60))\ndef get_coin_price(coin_name):\n    return web3_client.get_price(coin_name)\n\n# Async functions are supported\n@cached(LRUCache(maxsize=126))\nasync def get_coin_price(coin_name):\n    return await async_web3_client.get_price(coin_name)\n\n# You can pass `capacity` parameter.\n# If `capacity` specified, the cache will be able to hold at\n# least capacity elements without reallocating.\n@cached(LRUCache(maxsize=126, capacity=100))\ndef fib(n):\n    return n if n < 2 else fib(n - 1) + fib(n - 2)\n\n# methods are supported\nclass APIResource:\n    @cachedmethod(\n        TTLCache(126, ttl=10),\n        # You can detemine how caching is done using `key_maker` parameter.\n        key_maker=lambda args, kwds: args[0].client_ip\n    )\n    def get_information(self, request):\n        ...\n```\n\n## Page Contents\n- \u2049\ufe0f [When i need caching?](#when-i-need-caching)\n- \ud83e\udd37\u200d\u2642\ufe0f [Why `cachebox`?](#why-cachebox)\n- \ud83c\udfaf [Features](#features)\n- \ud83d\udee0\ufe0f [Installation](#installation)\n- \ud83c\udf93 [Usage](#API)\n- \ud83d\ude80 [Performance table](#performance-table)\n- \u2049\ufe0f [Frequently Asked Questions](#frequently-asked-questions)\n- \ud83c\udd95 [*CHANGELOG*](CHANGELOG.md)\n- \u23f1\ufe0f [*BENCHMARK*](https://github.com/awolverp/cachebox-benchmark)\n\n## When i need caching?\n1. **Sometimes you have functions that take a long time to execute, and you need to call them each time.**\n\n```python\n@cached(LRUCache(260))\ndef function(np_array):\n    # big operations\n    ...\n```\n\n2. **Sometimes you need to temporarily store data in memory for a short period.**\n\n3. **When dealing with remote APIs, Instead of making frequent API calls, store the responses in a cache.**\n\n```python\n@cached(TTLCache(0, ttl=10))\ndef api_call(key):\n    return api.call(key)\n```\n\n4. **Caching query results from databases can enhance performance.**\n\n```python\n@cached(TTLCache(0, ttl=1))\ndef select_user(id):\n    return db.execute(\"SELECT * FROM users WHERE id=?\", (id,))\n```\n\nand ...\n\n## Why `cachebox`?\n**`cachebox`** library uses *Rust* language to has high-performance.\n\n**Low memory usage** - It uses very low memory usage; let's have a simple compare to dictionary:\n```python\n>>> import sys, cachebox\n>>> sys.getsizeof(cachebox.Cache(0, {i:i for i in range(100000)}))\n1835032\n>>> sys.getsizeof({i:i for i in range(100000)})\n5242960\n```\n\n**High-speed** - Is speed important for you? It's is here for you; see [**here**](https://github.com/awolverp/cachebox-benchmark).\n\n**Zero-dependecy** - As we said, `cachebox` written in Rust so you have not to install any other dependecies.\n\n**Thread-safe** - It's completely thread-safe and uses read-writer locks to prevent problems.\n\n## Installation\nYou can install **cachebox** from PyPi:\n```sh\npip3 install -U cachebox\n```\n\nTo verify that the library is installed correctly, run the following command:\n```sh\npython -c \"import cachebox; print(cachebox.__version__)\"\n```\n\n## API\nAll the implementations are support **mutable-mapping** methods (e.g `__setitem__`, `get`, `popitem`),\nand there are some new methods for each implemetation.\n\nThese methods are available for all classes:\n- `insert(key, value)`: an aliases for `__setitem__`\n\n```python\n>>> cache.insert(1, 1) # it equals to cache[1] = 1\n```\n\n- `capacity()`: Returns the number of elements the cache can hold without reallocating.\n\n```python\n>>> cache.update((i, i) for i in range(1000))\n>>> cache.capacity()\n1432\n```\n\n- `drain(n)`: According to cache algorithm, deletes and returns how many items removed from cache.\n\n```python\n>>> cache = LFUCache(10, {i:i for i in range(10)})\n>>> cache.drain(8)\n8\n>>> len(cache)\n2\n>>> cache.drain(10)\n2\n>>> len(cache)\n0\n```\n\n- `shrink_to_fit()`: Shrinks the capacity of the cache as much as possible.\n\n```python\n>>> cache = LRUCache(0, {i:i for i in range(10)})\n>>> cache.capacity()\n27\n>>> cache.shrink_to_fit()\n>>> cache.capacity()\n11\n```\n\n### Cache\nFixed-size (or can be not) cache implementation without any policy,\nSo only can be fixed-size, or unlimited size cache.\n\n```python\n>>> from cachebox import Cache\n>>> cache = Cache(100) # fixed-size cache\n>>> cache = Cache(0) # unlimited-size cache\n>>> cache = Cache(100, {\"key1\": \"value1\", \"key2\": \"value2\"}) # initialize from dict or any iterable object\n>>> cache = Cache(2, {i:i for i in range(10)})\n...\nOverflowError: maximum size limit reached\n```\n\n**There're no new methods for this class.**\n\n### FIFOCache\nFIFO Cache implementation (First-In First-Out policy, very useful).\n\nIn simple terms, the FIFO cache will remove the element that has been in the cache the longest;\nIt behaves like a Python dictionary.\n\n```python\n>>> from cachebox import FIFOCache\n>>> cache = FIFOCache(100) # fixed-size cache\n>>> cache = FIFOCache(0) # unlimited-size cache\n>>> cache = FIFOCache(100, {\"key1\": \"value1\", \"key2\": \"value2\"}) # initialize from dict or any iterable object\n```\n\n**There're new methods:**\n- `first`: returns the first inserted key (the oldest)\n- `last`: returns the last inserted key (the newest)\n\n\n### LFUCache\nLFU Cache implementation (Least frequantly used policy).\n\nIn simple terms, the LFU cache will remove the element in the cache that has been accessed the least,\nregardless of time.\n\n```python\n>>> from cachebox import LFUCache\n>>> cache = LFUCache(100) # fixed-size cache\n>>> cache = LFUCache(0) # unlimited-size cache\n>>> cache = LFUCache(100, {\"key1\": \"value1\", \"key2\": \"value2\"}) # initialize from dict or any iterable object\n```\n\n**There's a new method:**\n- `least_frequently_used`: returns the key that has been accessed the least.\n\n\n### RRCache\nRRCache implementation (Random Replacement policy).\n\nIn simple terms, the RR cache will choice randomly element to remove it to make space when necessary.\n\n```python\n>>> from cachebox import RRCache\n>>> cache = RRCache(100) # fixed-size cache\n>>> cache = RRCache(0) # unlimited-size cache\n>>> cache = RRCache(100, {\"key1\": \"value1\", \"key2\": \"value2\"}) # initialize from dict or any iterable object\n```\n\n**There're no new methods for this class.**\n\n\n### LRUCache\nLRU Cache implementation (Least recently used policy).\n\nIn simple terms, the LRU cache will remove the element in the cache that has not been accessed in the longest time.\n\n```python\n>>> from cachebox import LRUCache\n>>> cache = LRUCache(100) # fixed-size cache\n>>> cache = LRUCache(0) # unlimited-size cache\n>>> cache = LRUCache(100, {\"key1\": \"value1\", \"key2\": \"value2\"}) # initialize from dict or any iterable object\n```\n\n**There're new methods:**\n- `least_recently_used`: returns the key that has not been accessed in the longest time.\n- `most_recently_used`: returns the key that has been accessed in the longest time.\n\n\n### TTLCache\nTTL Cache implementation (Time-to-live policy).\n\nIn simple terms, The TTL cache is one that evicts items that are older than a time-to-live.\n\n```python\n>>> from cachebox import TTLCache\n>>> cache = TTLCache(100, 2) # fixed-size cache, 2 ttl value\n>>> cache = TTLCache(0, 10) # unlimited-size cache, 10 ttl value\n>>> cache = TTLCache(100, 5, {\"key1\": \"value1\", \"key2\": \"value2\"}) # initialize from dict or any iterable object\n```\n**There're new methods:**\n- `get_with_expire`: Works like `.get()`, but also returns the remaining expiration.\n\n```python\n>>> cache.update({1: 1, 2: 2})\n>>> cache.get_with_expire(1)\n(1, 1.23445675)\n>>> cache.get_with_expire(\"no-exists\")\n(None, 0.0)\n```\n\n- `pop_with_expire`: Works like `.pop()`, but also returns the remaining expiration.\n\n```python\n>>> cache.update({1: 1, 2: 2})\n>>> cache.pop_with_expire(1)\n(1, 1.23445675)\n>>> cache.pop_with_expire(1)\n(None, 0.0)\n```\n\n- `popitem_with_expire`: Works like `.popitem()`, but also returns the remaining expiration.\n\n```python\n>>> cache.update({1: 1, 2: 2})\n>>> cache.popitem_with_expire()\n(1, 1, 1.23445675)\n>>> cache.popitem_with_expire()\n(2, 2, 1.94389545)\n>>> cache.popitem_with_expire()\n...\nKeyError\n```\n\n### VTTLCache\nVTTL Cache implementation (Time-to-live per-key policy)\n\nWorks like TTLCache, with this different that each key has own time-to-live value.\n\n```python\n>>> cache = VTTLCache(100) # fixed-size cache\n>>> cache = VTTLCache(0) # unlimited-size cache\n\n# initialize from dict or any iterable object;\n# also these items will expire after 5 seconds\n>>> cache = VTTLCache(100, {\"key1\": \"value1\", \"key2\": \"value2\"}, 5)\n\n# initialize from dict or any iterable object;\n# but these items never expire, because we pass None as them ttl value\n>>> cache = VTTLCache(100, {\"key1\": \"value1\", \"key2\": \"value2\"}, None)\n```\n\n**There're new methods:**\n- `insert(key, value, ttl)`: is different here. if you use `cache[key] = value` way, you cannot set ttl value for those item, but here you can.\n\n```python\n>>> cache.insert(\"key\", \"value\", 10) # this item will expire after 10 seconds\n>>> cache.insert(\"key\", \"value\", None) # but this item never expire.\n```\n\n- `setdefault(key, default, ttl)`: Returns the value of the specified key.\nIf the key does not exist, insert the key, with the specified value.\n\n- `update(iterable, ttl)`: inserts the specified items to the cache. The `iterable` can be a dictionary,\nor an iterable object with key-value pairs.\n\n```python\n>>> cache = VTTLCache(20)\n>>> cache.insert(\"key\", \"value\", 10)\n>>> cache.update({i:i for i in range(12)}, 2)\n>>> len(cache)\n13\n>>> time.sleep(2)\n>>> len(cache)\n1\n```\n\n- `get_with_expire`: Works like `.get()`, but also returns the remaining expiration.\n\n```python\n>>> cache.update({1: 1, 2: 2}, 2)\n>>> cache.get_with_expire(1)\n(1, 1.9934)\n>>> cache.get_with_expire(\"no-exists\")\n(None, 0.0)\n```\n\n- `pop_with_expire`: Works like `.pop()`, but also returns the remaining expiration.\n\n```python\n>>> cache.update({1: 1, 2: 2}, 2)\n>>> cache.pop_with_expire(1)\n(1, 1.99954)\n>>> cache.pop_with_expire(1)\n(None, 0.0)\n```\n\n- `popitem_with_expire`: Works like `.popitem()`, but also returns the remaining expiration.\n\n```python\n>>> cache.update({1: 1, 2: 2}, 2)\n>>> cache.popitem_with_expire()\n(1, 1, 1.9786564)\n>>> cache.popitem_with_expire()\n(2, 2, 1.97389545)\n>>> cache.popitem_with_expire()\n...\nKeyError\n```\n\n## Performance table\n\n> [!NOTE]\\\n> Operations which have an amortized cost are suffixed with a `*`. Operations with an expected cost are suffixed with a `~`.\n\n|              | get(i) | insert(i)       | delete(i)      | update(m)        | popitem |\n| ------------ | ------ | --------------- | -------------- | ---------------- | ------- |\n| Cache        | O(1)~  | O(1)~*          | O(1)~          | O(m)~            | N/A     |\n| FIFOCache    | O(1)~  | O(min(i, n-i))* | O(min(i, n-i)) | O(m*min(i, n-i)) | O(1)    |\n| LFUCache     | O(1)~  | O(n)~*          | O(1)~          | O(m*n)~          | O(n)~*  |\n| RRCache      | O(1)~  | O(1)~*          | O(1)~          | O(m)~            | O(1)~   |\n| LRUCache     | O(1)~  | ?               | O(1)~          | ?                | O(1)    |\n| TTLCache     | O(1)~  | O(min(i, n-i))* | O(min(i, n-i)) | O(m*min(i, n-i)) | O(1)    |\n| VTTLCache    | O(1)~  | ?               | O(1)~          | ?                | O(1)~   |\n\n## Frequently asked questions\n#### What is the difference between TTLCache and VTTLCache?\nIn `TTLCache`, you set an expiration time for all items, but in `VTTLCache`,\nyou can set a unique expiration time for each item.\n\n|              | TTL         | Speed   |\n| ------------ | ----------- | ------- |\n| TTLCache     | One ttl for all items       | TTLCache is very faster than VTTLCache |\n| VTTLCache    | Each item has unique expiration time | VTTLCache is slow in inserting |\n\n\n#### Can we set maxsize to zero?\nYes, if you pass zero to maxsize, means there's no limit for items.\n\n#### Migrate from cachetools to cachebox\n*cachebox* syntax is very similar to *cachetools*.\nJust change these:\n```python\n# If you pass infinity to a cache implementation, change it to zero.\ncachetools.Cache(math.inf) -> cachebox.Cache(0)\n# If you use `isinstance` for cachetools classes, change those.\nisinstance(cache, cachetools.Cache) -> isinstance(cache, cachebox.BaseCacheImpl)\n```\n\n## License\nCopyright (c) 2024 aWolverP - **MIT License**\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "The fastest memoizing and caching Python library written in Rust",
    "version": "2.2.3",
    "project_urls": {
        "Homepage": "https://github.com/awolverp/cachebox"
    },
    "split_keywords": [
        "caching",
        " cached",
        " cachetools",
        " cachebox",
        " cache",
        " in-memory-caching",
        " memoizing"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5ffc422646de9e88174f8bebb25b8a87295846cc1f71df97792016959f3c144a",
                "md5": "4ce3e1c6e9672a8491fb474abf4a622d",
                "sha256": "615b352b52a7ac541c24ba01d83e0ebf895dd6f5555215a24b043a87ca2ade92"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp310-cp310-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4ce3e1c6e9672a8491fb474abf4a622d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 324354,
            "upload_time": "2024-04-26T13:08:33",
            "upload_time_iso_8601": "2024-04-26T13:08:33.470155Z",
            "url": "https://files.pythonhosted.org/packages/5f/fc/422646de9e88174f8bebb25b8a87295846cc1f71df97792016959f3c144a/cachebox-2.2.3-cp310-cp310-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4f25b2ea088ffc24270de934ea2222b744ceddc08423849f28243b1a26939f44",
                "md5": "4ef9fded5631d32c15b066fe3a21e023",
                "sha256": "6742ba80122a5c1a7faf58ca285025c37716a24ad29f02b3692c71c5de13472e"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "4ef9fded5631d32c15b066fe3a21e023",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 310892,
            "upload_time": "2024-04-26T13:08:40",
            "upload_time_iso_8601": "2024-04-26T13:08:40.487462Z",
            "url": "https://files.pythonhosted.org/packages/4f/25/b2ea088ffc24270de934ea2222b744ceddc08423849f28243b1a26939f44/cachebox-2.2.3-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "077aada33dc7ef48b84014351d6d93a1f58b9e4ec855eabe9c81778b6efeb799",
                "md5": "8eefed658e7a7eaf783469ea8fbd4e04",
                "sha256": "6099a7470cff005a4e684d6c0e33ca687ea2562fd78c22bc2aa2608f8901661d"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "8eefed658e7a7eaf783469ea8fbd4e04",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 336796,
            "upload_time": "2024-04-26T13:08:41",
            "upload_time_iso_8601": "2024-04-26T13:08:41.934709Z",
            "url": "https://files.pythonhosted.org/packages/07/7a/ada33dc7ef48b84014351d6d93a1f58b9e4ec855eabe9c81778b6efeb799/cachebox-2.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e4159df7f54c6c726498266bec30b5a2ce605c0d293aafef9ef1b05d4b567c9a",
                "md5": "9e68c1dee91a509b721b5b8553e62e08",
                "sha256": "c23c87eaafe3e8e26c2a19de2eeac6a6076a42caf9fcdf265bc41851a1fe8e73"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "9e68c1dee91a509b721b5b8553e62e08",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 357162,
            "upload_time": "2024-04-26T13:08:43",
            "upload_time_iso_8601": "2024-04-26T13:08:43.453436Z",
            "url": "https://files.pythonhosted.org/packages/e4/15/9df7f54c6c726498266bec30b5a2ce605c0d293aafef9ef1b05d4b567c9a/cachebox-2.2.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "62b39fddcd3ef4b6b68013230a612ee575d139b6ec3b2ae1a2bfb37d4274cc7d",
                "md5": "3187607eda61ae7f89f90fcf7250fb50",
                "sha256": "db3372f917a85fc8a157c423c9cf8702d1c2df07714502b115a52d721746a945"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "3187607eda61ae7f89f90fcf7250fb50",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 371478,
            "upload_time": "2024-04-26T13:08:45",
            "upload_time_iso_8601": "2024-04-26T13:08:45.256110Z",
            "url": "https://files.pythonhosted.org/packages/62/b3/9fddcd3ef4b6b68013230a612ee575d139b6ec3b2ae1a2bfb37d4274cc7d/cachebox-2.2.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "234f5583412db0068c950ae696b9bf4f2f86924f762f8f0c9a673f4822b4f938",
                "md5": "7ba95ead3ebcb7fc615a50885d6bde8b",
                "sha256": "538ffc7a4dff256a329057bf8d21a5b65e561aedbc036e910130d770880356bd"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "7ba95ead3ebcb7fc615a50885d6bde8b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 639898,
            "upload_time": "2024-04-26T13:08:46",
            "upload_time_iso_8601": "2024-04-26T13:08:46.562463Z",
            "url": "https://files.pythonhosted.org/packages/23/4f/5583412db0068c950ae696b9bf4f2f86924f762f8f0c9a673f4822b4f938/cachebox-2.2.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "da9c818a190face3c83d11cb302a458bd8781e966143a82f8c0a1e60542d315c",
                "md5": "f5108a0bdc17df59589c859d601fb8b2",
                "sha256": "450f7d43414b8322df1ab9d6d3dd404f62ca81b238673543ea130178feca4ee8"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f5108a0bdc17df59589c859d601fb8b2",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 347241,
            "upload_time": "2024-04-26T13:08:48",
            "upload_time_iso_8601": "2024-04-26T13:08:48.849473Z",
            "url": "https://files.pythonhosted.org/packages/da/9c/818a190face3c83d11cb302a458bd8781e966143a82f8c0a1e60542d315c/cachebox-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "33aea2c9ab5480d9f2208d9c6b2e7d9cb59d5fb14795734c48388fa9c52a51dd",
                "md5": "c8bde381340c91ac364c5d62d8d05035",
                "sha256": "ee1266f38a9eefc5ac43ca0b2dbd4e5084399d1d570f316d3db5e9fa574c6362"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "c8bde381340c91ac364c5d62d8d05035",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 364188,
            "upload_time": "2024-04-26T13:08:50",
            "upload_time_iso_8601": "2024-04-26T13:08:50.091703Z",
            "url": "https://files.pythonhosted.org/packages/33/ae/a2c9ab5480d9f2208d9c6b2e7d9cb59d5fb14795734c48388fa9c52a51dd/cachebox-2.2.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "882fa549c3e88437a7a91eff390fd0679b1645200e8e4d2378fd01043420c6bc",
                "md5": "8a1fe556a08706ae1d81281e1da8ef46",
                "sha256": "478d2926196c16b9b03b604a22eb445fe71bbb9929f2b462eac6349fec2208ca"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp310-none-win32.whl",
            "has_sig": false,
            "md5_digest": "8a1fe556a08706ae1d81281e1da8ef46",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 239067,
            "upload_time": "2024-04-26T13:08:51",
            "upload_time_iso_8601": "2024-04-26T13:08:51.610046Z",
            "url": "https://files.pythonhosted.org/packages/88/2f/a549c3e88437a7a91eff390fd0679b1645200e8e4d2378fd01043420c6bc/cachebox-2.2.3-cp310-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9507b2fc1e837c9b84c68ca670bed2efc40a6c2c2a2452ae2e3b7d719af9057b",
                "md5": "af537479c5dbdbc1299938b7523489de",
                "sha256": "5f918191a1cb68aae80a6fa95f0b1b34b0cc0ac555a92796b0b0d4e5dee02685"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp310-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "af537479c5dbdbc1299938b7523489de",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 264352,
            "upload_time": "2024-04-26T13:08:52",
            "upload_time_iso_8601": "2024-04-26T13:08:52.850918Z",
            "url": "https://files.pythonhosted.org/packages/95/07/b2fc1e837c9b84c68ca670bed2efc40a6c2c2a2452ae2e3b7d719af9057b/cachebox-2.2.3-cp310-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c46ff860e99e91461533387bd9d6f094997cbb3ff3694bb3cc083e7354b1b070",
                "md5": "15bed16486646a9b51e005bda38633a4",
                "sha256": "580fb43be13b30eab8104ccdad77758e2dce5e12c2d398c366340bff1292eb3d"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp311-cp311-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "15bed16486646a9b51e005bda38633a4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 324310,
            "upload_time": "2024-04-26T13:08:54",
            "upload_time_iso_8601": "2024-04-26T13:08:54.786902Z",
            "url": "https://files.pythonhosted.org/packages/c4/6f/f860e99e91461533387bd9d6f094997cbb3ff3694bb3cc083e7354b1b070/cachebox-2.2.3-cp311-cp311-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "827311e086786765f28469aeca14de1412992bb67a35c9cc28026a4e76a4d345",
                "md5": "29defdabc2add8c2b5e39a3070818d0c",
                "sha256": "05cca0c6a842e223fb4e2bc0934b77ebb92f152d32311a44d35f1e967006a3e2"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "29defdabc2add8c2b5e39a3070818d0c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 310884,
            "upload_time": "2024-04-26T13:08:56",
            "upload_time_iso_8601": "2024-04-26T13:08:56.769127Z",
            "url": "https://files.pythonhosted.org/packages/82/73/11e086786765f28469aeca14de1412992bb67a35c9cc28026a4e76a4d345/cachebox-2.2.3-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7e60ed76bb8812fa8c08f6b380bbcc862359a530d734482d7bafe5da2f4f0d78",
                "md5": "88743d83b0a50e677c00c0b7cd7858ad",
                "sha256": "066a2d20a8893bd29ba4a4ad2c3c66f9a20a5d44bc5387c071a52ed4c40a6932"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "88743d83b0a50e677c00c0b7cd7858ad",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 336760,
            "upload_time": "2024-04-26T13:08:58",
            "upload_time_iso_8601": "2024-04-26T13:08:58.005336Z",
            "url": "https://files.pythonhosted.org/packages/7e/60/ed76bb8812fa8c08f6b380bbcc862359a530d734482d7bafe5da2f4f0d78/cachebox-2.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4a28a50f9db359e044bbe97bf0fc4ac529851f293a12e7bbbac56dbbbe3a70f1",
                "md5": "cda0512954a9bc61109f79868e50ab27",
                "sha256": "54395de74a6a51131ea9709c96937f443c67cbde90ae974414f1b9ec8559274a"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "cda0512954a9bc61109f79868e50ab27",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 357288,
            "upload_time": "2024-04-26T13:08:59",
            "upload_time_iso_8601": "2024-04-26T13:08:59.803570Z",
            "url": "https://files.pythonhosted.org/packages/4a/28/a50f9db359e044bbe97bf0fc4ac529851f293a12e7bbbac56dbbbe3a70f1/cachebox-2.2.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "de9eb61197df9767437b9605a99701baee09a24c0939e63aadcc423c32cc7d66",
                "md5": "0b36b92db16697828e74a564c085fef6",
                "sha256": "8d5c8af09cc0e035b3346022b1905b946c933ee4a3f6cfe628040e1648209b66"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "0b36b92db16697828e74a564c085fef6",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 371438,
            "upload_time": "2024-04-26T13:09:01",
            "upload_time_iso_8601": "2024-04-26T13:09:01.141847Z",
            "url": "https://files.pythonhosted.org/packages/de/9e/b61197df9767437b9605a99701baee09a24c0939e63aadcc423c32cc7d66/cachebox-2.2.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "884741426cf21c779ff3c093d9bb1ae053fd69f9350c43eb49385f19c02fe033",
                "md5": "3f3df4377b36de03b9801bd7a19583f8",
                "sha256": "e57f0575b2de9723e1e6e3628e055303e0dec695bce83def05255d9cf4dd1c72"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "3f3df4377b36de03b9801bd7a19583f8",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 639672,
            "upload_time": "2024-04-26T13:09:03",
            "upload_time_iso_8601": "2024-04-26T13:09:03.032957Z",
            "url": "https://files.pythonhosted.org/packages/88/47/41426cf21c779ff3c093d9bb1ae053fd69f9350c43eb49385f19c02fe033/cachebox-2.2.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "803a7f6b7ded90605ee616b3fa9597c9589f73cb9d8a0f8f2a55e725e4099ed1",
                "md5": "be810655ec03179822f7867d1336f2ce",
                "sha256": "be7b16ee350be1595c2067dfc50e7de03caec4d8341229a6a93c35bdb1c95d4d"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "be810655ec03179822f7867d1336f2ce",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 347230,
            "upload_time": "2024-04-26T13:09:04",
            "upload_time_iso_8601": "2024-04-26T13:09:04.943465Z",
            "url": "https://files.pythonhosted.org/packages/80/3a/7f6b7ded90605ee616b3fa9597c9589f73cb9d8a0f8f2a55e725e4099ed1/cachebox-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3c82d7c1017f2f4f5be72cc5f4e2a2ea5bfdf5b3683e3ca94069d25e08e0b528",
                "md5": "88ae8b9d0011d7726d29c2b7142609a6",
                "sha256": "c0c56c397b702606a8dcca0c9216b215ba19e48d242f70a0441c9037877d14d0"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "88ae8b9d0011d7726d29c2b7142609a6",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 364149,
            "upload_time": "2024-04-26T13:09:06",
            "upload_time_iso_8601": "2024-04-26T13:09:06.147480Z",
            "url": "https://files.pythonhosted.org/packages/3c/82/d7c1017f2f4f5be72cc5f4e2a2ea5bfdf5b3683e3ca94069d25e08e0b528/cachebox-2.2.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5c1fe40e27796361476c2674ca7d38d91b8f08232350a94b569b23d1f176f616",
                "md5": "8b81e79f9081b03029149bbf6e5f9ba7",
                "sha256": "e5064a9d1c447fc224b38907044278f7ff145d8ae72e9a42e0cd0007f365cd55"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp311-none-win32.whl",
            "has_sig": false,
            "md5_digest": "8b81e79f9081b03029149bbf6e5f9ba7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 239012,
            "upload_time": "2024-04-26T13:09:07",
            "upload_time_iso_8601": "2024-04-26T13:09:07.553782Z",
            "url": "https://files.pythonhosted.org/packages/5c/1f/e40e27796361476c2674ca7d38d91b8f08232350a94b569b23d1f176f616/cachebox-2.2.3-cp311-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0db6c0d851d9a11921155979dd4e70aa4ff7f58c3f1175c4352f5511a8eed6c6",
                "md5": "fa991b87dd570245dee6fd3b8e81a31f",
                "sha256": "6bc6e39952e474573936c0bf306bf3c7dca6e29c93ce21097ccee333a494981f"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp311-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "fa991b87dd570245dee6fd3b8e81a31f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 264357,
            "upload_time": "2024-04-26T13:09:08",
            "upload_time_iso_8601": "2024-04-26T13:09:08.713078Z",
            "url": "https://files.pythonhosted.org/packages/0d/b6/c0d851d9a11921155979dd4e70aa4ff7f58c3f1175c4352f5511a8eed6c6/cachebox-2.2.3-cp311-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d014a7d8aa5265f7de753b594f92abc0c191f66d3fec1494c9d398de928fcd10",
                "md5": "c2e4a6886975ffd9ec5059d1d1761c73",
                "sha256": "429c8ab5165752f1fb96bd38fafbc3f3ff2e2f264148ae64feeaf7fee4090879"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp312-cp312-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c2e4a6886975ffd9ec5059d1d1761c73",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 317304,
            "upload_time": "2024-04-26T13:09:10",
            "upload_time_iso_8601": "2024-04-26T13:09:10.551476Z",
            "url": "https://files.pythonhosted.org/packages/d0/14/a7d8aa5265f7de753b594f92abc0c191f66d3fec1494c9d398de928fcd10/cachebox-2.2.3-cp312-cp312-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "749e1e5923a72a2f16c992372c86a1be2162fbecebfb091665d440f2e743aa8d",
                "md5": "2e64e1fd3ec52c0c4e9d92b0d4f36bf3",
                "sha256": "55ce3865bdd6601754843fa0ce28e2f9ac9b4c868f67db5c5ca2630833e1100a"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "2e64e1fd3ec52c0c4e9d92b0d4f36bf3",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 305398,
            "upload_time": "2024-04-26T13:09:11",
            "upload_time_iso_8601": "2024-04-26T13:09:11.788613Z",
            "url": "https://files.pythonhosted.org/packages/74/9e/1e5923a72a2f16c992372c86a1be2162fbecebfb091665d440f2e743aa8d/cachebox-2.2.3-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "501e47883588a1f013eee867a4f37acd026fc942ef191ed188dd92704921eb06",
                "md5": "7bba96e97f7ae4573bd9137a878ee503",
                "sha256": "d95be1183ef90b89e0e6e8be519851f6d114fb572b1df01b892a795775652451"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "7bba96e97f7ae4573bd9137a878ee503",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 328924,
            "upload_time": "2024-04-26T13:09:13",
            "upload_time_iso_8601": "2024-04-26T13:09:13.016971Z",
            "url": "https://files.pythonhosted.org/packages/50/1e/47883588a1f013eee867a4f37acd026fc942ef191ed188dd92704921eb06/cachebox-2.2.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c82a6a80b5c0684ae5f82f1e9ac9e34d1c369821f5ce977010e7a31a7fcb4b5c",
                "md5": "d86c2fdd6d727b847d3177a1c4a34191",
                "sha256": "c834eb17190656043dcff2bdbcc55cddd8eea835d21f066c80f95cab048c5069"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "d86c2fdd6d727b847d3177a1c4a34191",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 344421,
            "upload_time": "2024-04-26T13:09:14",
            "upload_time_iso_8601": "2024-04-26T13:09:14.227460Z",
            "url": "https://files.pythonhosted.org/packages/c8/2a/6a80b5c0684ae5f82f1e9ac9e34d1c369821f5ce977010e7a31a7fcb4b5c/cachebox-2.2.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0333a31a85780e3575f2172d8a8ac43760b4555038e38d880a452fc146409849",
                "md5": "4a0b17b00fb874cc248a0e36958b006f",
                "sha256": "ff22e02fa82fe0fa728a8cc72eef017c2cdf819dda576f4c6fee3ee990a67d5f"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "4a0b17b00fb874cc248a0e36958b006f",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 373567,
            "upload_time": "2024-04-26T13:09:15",
            "upload_time_iso_8601": "2024-04-26T13:09:15.527354Z",
            "url": "https://files.pythonhosted.org/packages/03/33/a31a85780e3575f2172d8a8ac43760b4555038e38d880a452fc146409849/cachebox-2.2.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "45073462a239c550d39ce42eee207bbfd34e6941f2e956f863ab47b368698fe8",
                "md5": "14feefcf9b46251e28eaab0d40638dbc",
                "sha256": "b340ed97021e05d0a1263632776d777924ac1e0305531b22bc42a7e94b504be8"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "14feefcf9b46251e28eaab0d40638dbc",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 683850,
            "upload_time": "2024-04-26T13:09:17",
            "upload_time_iso_8601": "2024-04-26T13:09:17.389104Z",
            "url": "https://files.pythonhosted.org/packages/45/07/3462a239c550d39ce42eee207bbfd34e6941f2e956f863ab47b368698fe8/cachebox-2.2.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d6e6fbb3227c67e33f7e0d8b93979fbadbc83834e6ba90c494f3debcfa6c28d8",
                "md5": "6d6a0348d5f9c650b4a8464107a38400",
                "sha256": "285b226e8cff373313bc4f23033b7b39441ef9c855b3857596f62ab5dbd647a8"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6d6a0348d5f9c650b4a8464107a38400",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 341358,
            "upload_time": "2024-04-26T13:09:18",
            "upload_time_iso_8601": "2024-04-26T13:09:18.945425Z",
            "url": "https://files.pythonhosted.org/packages/d6/e6/fbb3227c67e33f7e0d8b93979fbadbc83834e6ba90c494f3debcfa6c28d8/cachebox-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c48e98f56fa6e6e035517dce098ec6a8642f2122159b8888fda1e4a2d2b02ba0",
                "md5": "17fa00398740ba089d814ee1f2cda5b2",
                "sha256": "988726f108fb28f24da4d530189227b7de06eeffe1ead01559fcb686fe1c5376"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "17fa00398740ba089d814ee1f2cda5b2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 357913,
            "upload_time": "2024-04-26T13:09:20",
            "upload_time_iso_8601": "2024-04-26T13:09:20.412238Z",
            "url": "https://files.pythonhosted.org/packages/c4/8e/98f56fa6e6e035517dce098ec6a8642f2122159b8888fda1e4a2d2b02ba0/cachebox-2.2.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "09babc27ac223612d161d0912d19a8516b6e07088077c6f5bac8a316f2b23aab",
                "md5": "858ee268de59d1e89de4c4d5eb4c2fbd",
                "sha256": "f91c3b46de5e29a5609ea31c21efc9e57f9d9591682ed78d0f3b39a3d332ea8b"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp312-none-win32.whl",
            "has_sig": false,
            "md5_digest": "858ee268de59d1e89de4c4d5eb4c2fbd",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 246365,
            "upload_time": "2024-04-26T13:09:21",
            "upload_time_iso_8601": "2024-04-26T13:09:21.563536Z",
            "url": "https://files.pythonhosted.org/packages/09/ba/bc27ac223612d161d0912d19a8516b6e07088077c6f5bac8a316f2b23aab/cachebox-2.2.3-cp312-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1313a68f5625c51661372f349f0551c0c0da36a3a028bb17a05a7a3432393788",
                "md5": "55c056447c8a09f0926f487d8a589a13",
                "sha256": "3fa72d012801f94ab5dbef520bce4c0c0b7806f605551c15c4385bb400001d1a"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp312-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "55c056447c8a09f0926f487d8a589a13",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 286838,
            "upload_time": "2024-04-26T13:09:23",
            "upload_time_iso_8601": "2024-04-26T13:09:23.309863Z",
            "url": "https://files.pythonhosted.org/packages/13/13/a68f5625c51661372f349f0551c0c0da36a3a028bb17a05a7a3432393788/cachebox-2.2.3-cp312-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0faba2d140f268514bfc965ccdceb4bad26d0b7df76b85222285106cf7336aa8",
                "md5": "5a1576130e7371912e5410042bf4b72a",
                "sha256": "e4b699dd2908b507940d50bfa9ba80568491b6f24c058440f89fefd774f78b19"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "5a1576130e7371912e5410042bf4b72a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 337222,
            "upload_time": "2024-04-26T13:09:24",
            "upload_time_iso_8601": "2024-04-26T13:09:24.479751Z",
            "url": "https://files.pythonhosted.org/packages/0f/ab/a2d140f268514bfc965ccdceb4bad26d0b7df76b85222285106cf7336aa8/cachebox-2.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "807350e37b5ac9f14d176d78fcb131088131506f96fbaaa361441df0d610bffb",
                "md5": "987d4c0caaa9f4bf0e9f0c18c81ae0de",
                "sha256": "d20e1a4eb84577aac59d93b911faf87fa74a2a894ff237bc74e8d319e69426cb"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "987d4c0caaa9f4bf0e9f0c18c81ae0de",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 357952,
            "upload_time": "2024-04-26T13:09:25",
            "upload_time_iso_8601": "2024-04-26T13:09:25.703369Z",
            "url": "https://files.pythonhosted.org/packages/80/73/50e37b5ac9f14d176d78fcb131088131506f96fbaaa361441df0d610bffb/cachebox-2.2.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c4ef79f268c6083fc92d04fdc12ac03ee50920da75005e11ba2cf1cb454e8005",
                "md5": "b6fd678472f2aebab16ccb53552aa73f",
                "sha256": "5e09a818859cf3f30fc427f2e881980a2ad7d9f4f6a220d242d2183301abf997"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "b6fd678472f2aebab16ccb53552aa73f",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 371958,
            "upload_time": "2024-04-26T13:09:27",
            "upload_time_iso_8601": "2024-04-26T13:09:27.283762Z",
            "url": "https://files.pythonhosted.org/packages/c4/ef/79f268c6083fc92d04fdc12ac03ee50920da75005e11ba2cf1cb454e8005/cachebox-2.2.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2613cf0bb3b9646de635f6624dbe93af43227923ff4ae8eb3a77585ce8ff1e09",
                "md5": "b21796f05e4818a7a698eb8c81a09e4a",
                "sha256": "00f9e2d8cd26101dc626ec1a5c269f7a3ace226f9acea0ef7b4419303ac3346f"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "b21796f05e4818a7a698eb8c81a09e4a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 640116,
            "upload_time": "2024-04-26T13:09:28",
            "upload_time_iso_8601": "2024-04-26T13:09:28.575597Z",
            "url": "https://files.pythonhosted.org/packages/26/13/cf0bb3b9646de635f6624dbe93af43227923ff4ae8eb3a77585ce8ff1e09/cachebox-2.2.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "637a5c7086c73e874f2913c6fbabb6aebe3aea4634c653941ef29e8e905321d1",
                "md5": "0dea920a28016fe08e8afa82d50bd436",
                "sha256": "1e6d0e8ebea45d4798c76d0887274abfaf28ab0773d4e46a212ff550a46963d4"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0dea920a28016fe08e8afa82d50bd436",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 347641,
            "upload_time": "2024-04-26T13:09:30",
            "upload_time_iso_8601": "2024-04-26T13:09:30.100063Z",
            "url": "https://files.pythonhosted.org/packages/63/7a/5c7086c73e874f2913c6fbabb6aebe3aea4634c653941ef29e8e905321d1/cachebox-2.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "94328be310452d65a0fe900f5d0027424089392ca5d3fe8216c2e5f4e844a88e",
                "md5": "a5b2bef1c89e22775a7bfcd57fb1dc55",
                "sha256": "58fa80f18a4ed616f4fc0bf16ce55169ad1fa113155b071413fe42a6862a912d"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "a5b2bef1c89e22775a7bfcd57fb1dc55",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 364765,
            "upload_time": "2024-04-26T13:09:31",
            "upload_time_iso_8601": "2024-04-26T13:09:31.467954Z",
            "url": "https://files.pythonhosted.org/packages/94/32/8be310452d65a0fe900f5d0027424089392ca5d3fe8216c2e5f4e844a88e/cachebox-2.2.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f61e46ec1d207d4f8e56ea014ab4ae0c228a762bbdfc9b46d682550454a0f07d",
                "md5": "8bf3ad2de406c1f371675aff9fcdad9b",
                "sha256": "2c5560b9301c9c75087120d43b23d4cac737039e8d75e22234855827fd7c53d1"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp38-none-win32.whl",
            "has_sig": false,
            "md5_digest": "8bf3ad2de406c1f371675aff9fcdad9b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 239298,
            "upload_time": "2024-04-26T13:09:32",
            "upload_time_iso_8601": "2024-04-26T13:09:32.679475Z",
            "url": "https://files.pythonhosted.org/packages/f6/1e/46ec1d207d4f8e56ea014ab4ae0c228a762bbdfc9b46d682550454a0f07d/cachebox-2.2.3-cp38-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3c3d8f9d4e3ae5a0517c62e82cce505fff73e89d107d714d40f2f7e01c2a5ccf",
                "md5": "a6c7777786933bc9f6913917d70ef63d",
                "sha256": "077c06d4d43f03d85b4183361a90b74f2c6c20d5e8dea2b9b87718b31fe56fe9"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp38-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a6c7777786933bc9f6913917d70ef63d",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 264656,
            "upload_time": "2024-04-26T13:09:33",
            "upload_time_iso_8601": "2024-04-26T13:09:33.819140Z",
            "url": "https://files.pythonhosted.org/packages/3c/3d/8f9d4e3ae5a0517c62e82cce505fff73e89d107d714d40f2f7e01c2a5ccf/cachebox-2.2.3-cp38-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "97e3605975dc9fb7a981ee09cfa2d0492ec09d7286f45e35141fec9ffe934b59",
                "md5": "bc4a5047c75a559a2a6576789b18df9b",
                "sha256": "59d963620661c2af6bc738de0f3eb7b866799d86cc295c8da78ea9dfeb26cf6e"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "bc4a5047c75a559a2a6576789b18df9b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 337111,
            "upload_time": "2024-04-26T13:09:35",
            "upload_time_iso_8601": "2024-04-26T13:09:35.059105Z",
            "url": "https://files.pythonhosted.org/packages/97/e3/605975dc9fb7a981ee09cfa2d0492ec09d7286f45e35141fec9ffe934b59/cachebox-2.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a2ba18e3c9a24c4c6a04d69f29a9f89c0ce17982ff646d3e0558d33f458a92d7",
                "md5": "9e95b3611b12b77862f26f7bb216b3b0",
                "sha256": "6c4dc17452f72cad46da583df237cf4820833a8fbeacbbc86219581eb0214a82"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "9e95b3611b12b77862f26f7bb216b3b0",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 357377,
            "upload_time": "2024-04-26T13:09:36",
            "upload_time_iso_8601": "2024-04-26T13:09:36.615815Z",
            "url": "https://files.pythonhosted.org/packages/a2/ba/18e3c9a24c4c6a04d69f29a9f89c0ce17982ff646d3e0558d33f458a92d7/cachebox-2.2.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "80f6fe865376d13c5e3372a3828fc1be6e0815ddc8cda4c47851f93ecd6e85bc",
                "md5": "0a929b9482d8646f5464ffc0ef3c4823",
                "sha256": "82b1bd89a16af3cb8d07df6f41719d59e0e096c2df75cdb0ff3ca99dd03a69fb"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "0a929b9482d8646f5464ffc0ef3c4823",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 371876,
            "upload_time": "2024-04-26T13:09:37",
            "upload_time_iso_8601": "2024-04-26T13:09:37.974054Z",
            "url": "https://files.pythonhosted.org/packages/80/f6/fe865376d13c5e3372a3828fc1be6e0815ddc8cda4c47851f93ecd6e85bc/cachebox-2.2.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "157842f4b0b4ef60ac9f6e8f23f70cc63bf230c7f042a1dacee29682b551aa71",
                "md5": "b03e1a86079131c184e24c5e19c73266",
                "sha256": "6eaf5022a4c7b08a82282097bb6c0d1f840ca968e9f38c56da30741d1393dbc0"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "b03e1a86079131c184e24c5e19c73266",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 640096,
            "upload_time": "2024-04-26T13:09:39",
            "upload_time_iso_8601": "2024-04-26T13:09:39.534629Z",
            "url": "https://files.pythonhosted.org/packages/15/78/42f4b0b4ef60ac9f6e8f23f70cc63bf230c7f042a1dacee29682b551aa71/cachebox-2.2.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4890f05685cb9109afdbd481cfd8c40532b36a27163aeb24846571499c3d01c1",
                "md5": "58602832fc32ea7af951667534c2e27b",
                "sha256": "c40e0b0e2b8aeff71ac8d0e02964382431e26a65a442897d1ae6e7defb83c74f"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "58602832fc32ea7af951667534c2e27b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 347509,
            "upload_time": "2024-04-26T13:09:40",
            "upload_time_iso_8601": "2024-04-26T13:09:40.773518Z",
            "url": "https://files.pythonhosted.org/packages/48/90/f05685cb9109afdbd481cfd8c40532b36a27163aeb24846571499c3d01c1/cachebox-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "529da8f671349ae3a7bdafdec1e76abf7827ed921851552cf01c9706dc988d3b",
                "md5": "782bdf11494240da10a89c3216fe8b1c",
                "sha256": "54d3b02127221e1a4181fe384c7d6f76b1976ff8a48d5b1be99874f9f51c42ef"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "782bdf11494240da10a89c3216fe8b1c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 364654,
            "upload_time": "2024-04-26T13:09:42",
            "upload_time_iso_8601": "2024-04-26T13:09:42.177679Z",
            "url": "https://files.pythonhosted.org/packages/52/9d/a8f671349ae3a7bdafdec1e76abf7827ed921851552cf01c9706dc988d3b/cachebox-2.2.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a1fdddda2a0ac2ed95df3275d70d489efa4785ceea9c8e284eace9695e8b8e77",
                "md5": "7870008c2c8fb7dee6106a528fb33754",
                "sha256": "5783ad402d3b2ea961f3d610bb498c52a1ff40633bcc99a8df86ed9cefec1d98"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp39-none-win32.whl",
            "has_sig": false,
            "md5_digest": "7870008c2c8fb7dee6106a528fb33754",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 239259,
            "upload_time": "2024-04-26T13:09:43",
            "upload_time_iso_8601": "2024-04-26T13:09:43.356981Z",
            "url": "https://files.pythonhosted.org/packages/a1/fd/ddda2a0ac2ed95df3275d70d489efa4785ceea9c8e284eace9695e8b8e77/cachebox-2.2.3-cp39-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "63e42aa8ef672ca28c6bd5da53b1bb99b3afa3a21a9ed0b73da5cb78a1399d94",
                "md5": "f6bc6ddc3479250c8e02823f7408446c",
                "sha256": "cdd53b8a983686e6c295befdd26500be6386a3ceac19b31703921f412fee8c08"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-cp39-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f6bc6ddc3479250c8e02823f7408446c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 264626,
            "upload_time": "2024-04-26T13:09:44",
            "upload_time_iso_8601": "2024-04-26T13:09:44.917917Z",
            "url": "https://files.pythonhosted.org/packages/63/e4/2aa8ef672ca28c6bd5da53b1bb99b3afa3a21a9ed0b73da5cb78a1399d94/cachebox-2.2.3-cp39-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4691f6480e67e2afcae022d86abbaeffd81a7f3a460652a900d29a67d109a782",
                "md5": "b7b69502b9417411913f0026e764b482",
                "sha256": "4eb0a7916ef744507d0c83a462d8d22325011dec9b830548080806f1cfa97c5f"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "b7b69502b9417411913f0026e764b482",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 336706,
            "upload_time": "2024-04-26T13:09:46",
            "upload_time_iso_8601": "2024-04-26T13:09:46.276263Z",
            "url": "https://files.pythonhosted.org/packages/46/91/f6480e67e2afcae022d86abbaeffd81a7f3a460652a900d29a67d109a782/cachebox-2.2.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0a6b27b8f7121a4f57586016242d7da34a8fc95a30656ddd628c898c6a7cb123",
                "md5": "1da2d640d450bdf42334acc83e84ede9",
                "sha256": "d06d352fdece31068b62b9918fd9e9f93add9c3607db16b3a85b6be71114c948"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "1da2d640d450bdf42334acc83e84ede9",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 356814,
            "upload_time": "2024-04-26T13:09:47",
            "upload_time_iso_8601": "2024-04-26T13:09:47.734799Z",
            "url": "https://files.pythonhosted.org/packages/0a/6b/27b8f7121a4f57586016242d7da34a8fc95a30656ddd628c898c6a7cb123/cachebox-2.2.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "528ccb228fc71e2be8bc797b1c5031b77bcafca413947c32bad67f6bb5b959c9",
                "md5": "d8a24bd87513581e92bbff95fd6e1301",
                "sha256": "b4da29cab5ae90e91df206e77797bb147f05bce53a3104a082a20dcd904e75da"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "d8a24bd87513581e92bbff95fd6e1301",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 370357,
            "upload_time": "2024-04-26T13:09:49",
            "upload_time_iso_8601": "2024-04-26T13:09:49.488490Z",
            "url": "https://files.pythonhosted.org/packages/52/8c/cb228fc71e2be8bc797b1c5031b77bcafca413947c32bad67f6bb5b959c9/cachebox-2.2.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8f978dcad784d16f2a3184906efc2e6574c80af7ab63eda69251439f57c3d109",
                "md5": "49df948d5391405f359abb0b5c0e0247",
                "sha256": "de27c4e78501bc322c255863c2019eb26e74b02bcc118bafa7fb52682a5c1377"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "49df948d5391405f359abb0b5c0e0247",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 639026,
            "upload_time": "2024-04-26T13:09:50",
            "upload_time_iso_8601": "2024-04-26T13:09:50.933715Z",
            "url": "https://files.pythonhosted.org/packages/8f/97/8dcad784d16f2a3184906efc2e6574c80af7ab63eda69251439f57c3d109/cachebox-2.2.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d197065247965f9ea7e2267064569e9fbf92a6d2c1500b5655265fb7308a9ddc",
                "md5": "97b5eded8b4d8375de08128200156cae",
                "sha256": "9db37a60098016ccfc93578acadb6b7ff4b55d0afac9514370bb073c9773a23c"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "97b5eded8b4d8375de08128200156cae",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 347233,
            "upload_time": "2024-04-26T13:09:52",
            "upload_time_iso_8601": "2024-04-26T13:09:52.289703Z",
            "url": "https://files.pythonhosted.org/packages/d1/97/065247965f9ea7e2267064569e9fbf92a6d2c1500b5655265fb7308a9ddc/cachebox-2.2.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "267f74f4fdcaf14559a1a2b7846bcaeb609e634d9d945b2a53e330c691b6f7ab",
                "md5": "dcc4299d2d1752b7ca10f2d8ec213a4f",
                "sha256": "25e7c9e66c4dbc335915cc1e61c9b06435e836053dea111458fe0083341ee05c"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "dcc4299d2d1752b7ca10f2d8ec213a4f",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 363584,
            "upload_time": "2024-04-26T13:09:54",
            "upload_time_iso_8601": "2024-04-26T13:09:54.156540Z",
            "url": "https://files.pythonhosted.org/packages/26/7f/74f4fdcaf14559a1a2b7846bcaeb609e634d9d945b2a53e330c691b6f7ab/cachebox-2.2.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d5ea462ffc55622253fbe42e583d3ee5699092e7105d897c2c52eb5eb8d5926f",
                "md5": "7c34593a1927bfa52524595ba5143532",
                "sha256": "522443b7b52ac43df0d140020139841d3de0b4f9bd1acfe69e7bc9a26bafbc26"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "7c34593a1927bfa52524595ba5143532",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 337387,
            "upload_time": "2024-04-26T13:09:55",
            "upload_time_iso_8601": "2024-04-26T13:09:55.495099Z",
            "url": "https://files.pythonhosted.org/packages/d5/ea/462ffc55622253fbe42e583d3ee5699092e7105d897c2c52eb5eb8d5926f/cachebox-2.2.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3a6a1856a3e660174a96ca0450b0456ef899efd1b1da4399a7535ca70c589782",
                "md5": "5e3aeacb98b42d466714ab3b0521a0fe",
                "sha256": "c0bb9a02078dabcc83911fb3134fdea821fe76511515275927014b95693517e3"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "5e3aeacb98b42d466714ab3b0521a0fe",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 358177,
            "upload_time": "2024-04-26T13:09:56",
            "upload_time_iso_8601": "2024-04-26T13:09:56.915209Z",
            "url": "https://files.pythonhosted.org/packages/3a/6a/1856a3e660174a96ca0450b0456ef899efd1b1da4399a7535ca70c589782/cachebox-2.2.3-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f065ba48fe98232a882af842c2e5347ca1a7664526384105c4459bc20f5395c8",
                "md5": "f8b6ae1e4612f2d282260edd42ef6db3",
                "sha256": "7b4aad9e99fbe569d0f73d999f9282fccb318830b6a9e4831423fa6479040fad"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "f8b6ae1e4612f2d282260edd42ef6db3",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 371333,
            "upload_time": "2024-04-26T13:09:58",
            "upload_time_iso_8601": "2024-04-26T13:09:58.615463Z",
            "url": "https://files.pythonhosted.org/packages/f0/65/ba48fe98232a882af842c2e5347ca1a7664526384105c4459bc20f5395c8/cachebox-2.2.3-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "81b9650e34fa04368c95096d4e92e91926aedee93a004a3f1aee5264e571311e",
                "md5": "9ed290305546e9e58b541b809c91c8a8",
                "sha256": "bb4116b518a94f4bb7c8d0a0a958192f0be285546c9f13bec86b1bc1279e8772"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "9ed290305546e9e58b541b809c91c8a8",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 640813,
            "upload_time": "2024-04-26T13:10:00",
            "upload_time_iso_8601": "2024-04-26T13:10:00.185963Z",
            "url": "https://files.pythonhosted.org/packages/81/b9/650e34fa04368c95096d4e92e91926aedee93a004a3f1aee5264e571311e/cachebox-2.2.3-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "925cc3d3467cb2bc586383ce1906e680e5fb0fd891108b16b1174a240b349684",
                "md5": "ecd99a079068b2a41414a85dd30cbd0c",
                "sha256": "af15261ede8b6fd8dd804ea124c65c554d9bb35610ae98f90fe07e78ac51bfe9"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ecd99a079068b2a41414a85dd30cbd0c",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 348112,
            "upload_time": "2024-04-26T13:10:02",
            "upload_time_iso_8601": "2024-04-26T13:10:02.055519Z",
            "url": "https://files.pythonhosted.org/packages/92/5c/c3d3467cb2bc586383ce1906e680e5fb0fd891108b16b1174a240b349684/cachebox-2.2.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9e4b341e7a926ec12204d5db932d90b62a979fb8555668ad1fed0d0e1d12a9d6",
                "md5": "dca3dd7bb2a4ec53fcfaf29202b9df2d",
                "sha256": "68a545a42f7177b1824fe2711b49cd338efbf564d2d26dad8e9165c1b67e9aa6"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "dca3dd7bb2a4ec53fcfaf29202b9df2d",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 364476,
            "upload_time": "2024-04-26T13:10:03",
            "upload_time_iso_8601": "2024-04-26T13:10:03.698073Z",
            "url": "https://files.pythonhosted.org/packages/9e/4b/341e7a926ec12204d5db932d90b62a979fb8555668ad1fed0d0e1d12a9d6/cachebox-2.2.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5c054f446989001715803ff244ba99bbc4aeef8f3fcb6a4ce6ca90d701394010",
                "md5": "caa8a31fd4aa35a4bc4f2bf0ba30932a",
                "sha256": "6d3e5340a4b332896b623bc9d5cee71a8ae4ac1b20b560387daf84c170b25be2"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "caa8a31fd4aa35a4bc4f2bf0ba30932a",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 337139,
            "upload_time": "2024-04-26T13:10:05",
            "upload_time_iso_8601": "2024-04-26T13:10:05.017734Z",
            "url": "https://files.pythonhosted.org/packages/5c/05/4f446989001715803ff244ba99bbc4aeef8f3fcb6a4ce6ca90d701394010/cachebox-2.2.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "44c195473370e53626dde76acad099071696d2021c328ebed646c2249ef27695",
                "md5": "a475428430ad8c48fa7b80904a793cc3",
                "sha256": "7edb029a3f6d26000590dd41c5409940589eeb19f675a70dd1c7b1686f4d1d4e"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "a475428430ad8c48fa7b80904a793cc3",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 357378,
            "upload_time": "2024-04-26T13:10:06",
            "upload_time_iso_8601": "2024-04-26T13:10:06.903949Z",
            "url": "https://files.pythonhosted.org/packages/44/c1/95473370e53626dde76acad099071696d2021c328ebed646c2249ef27695/cachebox-2.2.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "15768fc968659f6fcaa79249940000876d929c97e79e06e47ec7afc94c36a79b",
                "md5": "ec50d16edac218bb6696f1537eac13f8",
                "sha256": "0b7721620f5b34a3db9c18015e01797ce60e3e4dac7924546babcb8dedf364ac"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "ec50d16edac218bb6696f1537eac13f8",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 371052,
            "upload_time": "2024-04-26T13:10:08",
            "upload_time_iso_8601": "2024-04-26T13:10:08.249778Z",
            "url": "https://files.pythonhosted.org/packages/15/76/8fc968659f6fcaa79249940000876d929c97e79e06e47ec7afc94c36a79b/cachebox-2.2.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9b95292c410e9870a36072b9f0ae4389f95effecda082c6eac46ff12436e34da",
                "md5": "86dbf6e1feeda5fb7d5055c37177b618",
                "sha256": "efde64328ea30aac475783d8d456215817f32b28866d14fb4bf27c42df68a0c4"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "86dbf6e1feeda5fb7d5055c37177b618",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 640699,
            "upload_time": "2024-04-26T13:10:09",
            "upload_time_iso_8601": "2024-04-26T13:10:09.974197Z",
            "url": "https://files.pythonhosted.org/packages/9b/95/292c410e9870a36072b9f0ae4389f95effecda082c6eac46ff12436e34da/cachebox-2.2.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c7b2456b95bac46f419721833f18866b1484523c539fbc51982dd472f7946f59",
                "md5": "fd0506a7804965f84fccd1df6a373a28",
                "sha256": "5036c1a1428622aa860ed6142d14a7ad564e3342339c408bfac2356aaa057b06"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fd0506a7804965f84fccd1df6a373a28",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 347789,
            "upload_time": "2024-04-26T13:10:11",
            "upload_time_iso_8601": "2024-04-26T13:10:11.415465Z",
            "url": "https://files.pythonhosted.org/packages/c7/b2/456b95bac46f419721833f18866b1484523c539fbc51982dd472f7946f59/cachebox-2.2.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3d236580d061b5e5f2efac47d831d04d7d190a023fa240f55df9d04fc766cb37",
                "md5": "3ec07355afb3bcc8554d61b32ffe572d",
                "sha256": "a306f4d62a6da972905dd67dd096d17b0594eed5f6e278aed73120b9d1963ab5"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "3ec07355afb3bcc8554d61b32ffe572d",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 363975,
            "upload_time": "2024-04-26T13:10:13",
            "upload_time_iso_8601": "2024-04-26T13:10:13.482690Z",
            "url": "https://files.pythonhosted.org/packages/3d/23/6580d061b5e5f2efac47d831d04d7d190a023fa240f55df9d04fc766cb37/cachebox-2.2.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "aa7de8799fc9888bc498739b57526a6bdb9ced7da46a97a677972ac86c1b6f4e",
                "md5": "104490142eabbf6842d01270b4822822",
                "sha256": "fcadb0c385497c8efb4c709fad5bdc7f671d86c23ba8fb9bbb1d5b4b8835ff86"
            },
            "downloads": -1,
            "filename": "cachebox-2.2.3.tar.gz",
            "has_sig": false,
            "md5_digest": "104490142eabbf6842d01270b4822822",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 28126,
            "upload_time": "2024-04-26T13:10:15",
            "upload_time_iso_8601": "2024-04-26T13:10:15.276954Z",
            "url": "https://files.pythonhosted.org/packages/aa/7d/e8799fc9888bc498739b57526a6bdb9ced7da46a97a677972ac86c1b6f4e/cachebox-2.2.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-26 13:10:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "awolverp",
    "github_project": "cachebox",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "cachebox"
}
        
Elapsed time: 0.34253s