A package for caching downloads of specially formatted files.
Project description
USTDownloadCache
About
The USTDownloadCache is used by the Ubuntu Security Team to improve the runtime of other packages by caching certain JSON files.
Using USTDownloadCache
Example:
import logging
from ust_download_cache import USTDownloadCache
logger = logging.getLogger("")
download_cache = USTDownloadCache(logger)
url = "URL_GOES_HERE"
contents = download_cache.get_from_url(url)
metadata = contents["metadata"] # used by USTDownloadCache
data = contents["data"]
Metadata
The USTDownloadCache relies on metadata contained within the file it is
downloading/caching. The JSON must supply a "metadata" key, which provides a
timestamp (seconds since the Unix epoch) and time to live (ttl) in seconds. The
cached version of the file is considered to be expired when timestamp + ttl > now
{
"metadata": {
"timestamp": 1591887905,
"ttl": 3600,
"version": "1.0"
},
"data": {
"name1": "value1",
"name2": "value2"
}
}
Installation
From Source
To install from source, you can clone this repository and install USTDownloadCache:
$> git clone https://github.com/canonical/ust-download-cache
$> pip3 install --user ./ust-download-cache/
As a dependency
As USTDownloadCache is not in PyPI at the moment, you must use the github tarball in your setup.py:
install_requires = [
"ust-download-cache @ https://github.com/canonical/ust-download-cache/archive/v1.0.1.tar.gz",
]
Development
Installing precommit hooks
To install the precommit hooks, run
pip3 install --user pre-commit
~/.local/bin/pre-commit install
Running the test suite
You can run the automated test suite by running
$> python3 -m pytest
An HTML code coverage report will be generated at ./htmlcov
. You can view
this with any web browser (e.g. firefox ./htmlcov/index.html
).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file UST Download Cache-1.1.0.tar.gz
.
File metadata
- Download URL: UST Download Cache-1.1.0.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 954d4d161dc46ecd76d6188767635cfd71e2bd2c597698fc23b6ae767006423c |
|
MD5 | 09c076a0023907d2dad4b395f7a1455b |
|
BLAKE2b-256 | 14ae4c2dcc6972eac893f1b26152a74e9703727c5bf23b560f07e2ede67df553 |
File details
Details for the file UST_Download_Cache-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: UST_Download_Cache-1.1.0-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1471a32bbac5454f53e4c3bc9d5b979abe14c51f9dfc605d6880694e41f2a7ee |
|
MD5 | cb237e4535c03b1335ded09b4b8dcaaa |
|
BLAKE2b-256 | c8b4ae4c9c8ba291f8cc3dd200f7a5f79f67ebb61443df166326d2c117327190 |