# krcf
## Project Description
Python bindings for the [aws/random-cut-forest-by-aws](https://github.com/aws/random-cut-forest-by-aws) library, providing a fast and efficient implementation of Random Cut Forests for anomaly detection.
Key features:
- Fast anomaly detection using Random Cut Forests
- Attribution and scoring for detected anomalies
- Support for shingling and advanced configuration
## API Usage
### Basic Example
```python
from krcf import RandomCutForest, RandomCutForestOptions
# Define forest options
options: RandomCutForestOptions = {
"dimensions": 3, # Number of features in each data point
"shingle_size": 2, # Shingle size for time series
"output_after": 1, # Number of points before output is ready
}
forest = RandomCutForest(options)
# Update the forest with new data points
forest.update([1.0, 2.0, 3.0])
forest.update([2.0, 3.0, 4.0])
# Compute anomaly score
score = forest.score([2.0, 3.0, 4.0])
print("Anomaly score:", score)
# >>> Anomaly score: 1.0
# Get attribution vector
attr = forest.attribution([2.0, 3.0, 4.0])
print("Attribution:", attr)
# >>> Attribution: {'high': [0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.0, 0.0, 0.0], 'low': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}
```
### API Reference
#### RandomCutForest(options)
Create a new Random Cut Forest instance.
- `options`: A dictionary or `RandomCutForestOptions` specifying configuration (see below).
#### Methods
- `update(point: Sequence[float]) -> None`: Update the forest with a new data point.
- `score(point: Sequence[float]) -> float`: Compute the anomaly score for a data point.
- `displacement_score(point: Sequence[float]) -> float`: Compute the displacement score.
- `attribution(point: Sequence[float]) -> dict`: Get the attribution vector for a data point.
- `density(point: Sequence[float]) -> float`: Compute the density estimate for a data point.
- `near_neighbor(point: Sequence[float], percentile: int) -> list`: Find near neighbors for a data point.
- `is_output_ready() -> bool`: Check if the forest is ready to output scores.
#### RandomCutForestOptions
Options for configuring the forest (all except `dimensions` and `shingle_size` are optional):
- `dimensions` (int): Number of features in each data point (required)
- `shingle_size` (int): Shingle size for time series (required)
- `num_trees` (int): Number of trees in the forest
- `sample_size` (int): Sample size for each tree
- `output_after` (int): Number of points before output is ready
- `random_seed` (int): Random seed for reproducibility
- ...and more advanced options
For more details, see the docstrings in the code or the API reference.
Raw data
{
"_id": null,
"home_page": null,
"name": "krcf",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "random cut forest, rcf, anomaly detection",
"author": null,
"author_email": "Dowon <ks2515@naver.com>",
"download_url": "https://files.pythonhosted.org/packages/b5/0d/3e33a9e9617b4e4cb4d24ac3dc02350de914272c318ca15b6a2c4f96f051/krcf-0.3.0.tar.gz",
"platform": null,
"description": "# krcf\n\n## Project Description\n\nPython bindings for the [aws/random-cut-forest-by-aws](https://github.com/aws/random-cut-forest-by-aws) library, providing a fast and efficient implementation of Random Cut Forests for anomaly detection.\n\nKey features:\n\n- Fast anomaly detection using Random Cut Forests\n- Attribution and scoring for detected anomalies\n- Support for shingling and advanced configuration\n\n## API Usage\n\n### Basic Example\n\n```python\nfrom krcf import RandomCutForest, RandomCutForestOptions\n\n# Define forest options\noptions: RandomCutForestOptions = {\n \"dimensions\": 3, # Number of features in each data point\n \"shingle_size\": 2, # Shingle size for time series\n \"output_after\": 1, # Number of points before output is ready\n}\nforest = RandomCutForest(options)\n\n# Update the forest with new data points\nforest.update([1.0, 2.0, 3.0])\nforest.update([2.0, 3.0, 4.0])\n\n# Compute anomaly score\nscore = forest.score([2.0, 3.0, 4.0])\nprint(\"Anomaly score:\", score)\n# >>> Anomaly score: 1.0\n\n# Get attribution vector\nattr = forest.attribution([2.0, 3.0, 4.0])\nprint(\"Attribution:\", attr)\n# >>> Attribution: {'high': [0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.0, 0.0, 0.0], 'low': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}\n```\n\n### API Reference\n\n#### RandomCutForest(options)\n\nCreate a new Random Cut Forest instance.\n\n- `options`: A dictionary or `RandomCutForestOptions` specifying configuration (see below).\n\n#### Methods\n\n- `update(point: Sequence[float]) -> None`: Update the forest with a new data point.\n- `score(point: Sequence[float]) -> float`: Compute the anomaly score for a data point.\n- `displacement_score(point: Sequence[float]) -> float`: Compute the displacement score.\n- `attribution(point: Sequence[float]) -> dict`: Get the attribution vector for a data point.\n- `density(point: Sequence[float]) -> float`: Compute the density estimate for a data point.\n- `near_neighbor(point: Sequence[float], percentile: int) -> list`: Find near neighbors for a data point.\n- `is_output_ready() -> bool`: Check if the forest is ready to output scores.\n\n#### RandomCutForestOptions\n\nOptions for configuring the forest (all except `dimensions` and `shingle_size` are optional):\n\n- `dimensions` (int): Number of features in each data point (required)\n- `shingle_size` (int): Shingle size for time series (required)\n- `num_trees` (int): Number of trees in the forest\n- `sample_size` (int): Sample size for each tree\n- `output_after` (int): Number of points before output is ready\n- `random_seed` (int): Random seed for reproducibility\n- ...and more advanced options\n\nFor more details, see the docstrings in the code or the API reference.\n\n",
"bugtrack_url": null,
"license": null,
"summary": "AWS Random Cut Forest for Python",
"version": "0.3.0",
"project_urls": {
"source": "https://github.com/Bing-su/krcf"
},
"split_keywords": [
"random cut forest",
" rcf",
" anomaly detection"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "91570db906be4d4ab399b876a3b696870a151837b2c04dd2fd4cac1adf6bec07",
"md5": "1b4d3042676f2bd75270f2471cb97f7d",
"sha256": "4bbb8a2e53c56d0f7f2604d71c9163b03a1a74db3470025f3f343bab47e9a888"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp313-cp313t-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "1b4d3042676f2bd75270f2471cb97f7d",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 603357,
"upload_time": "2025-09-01T16:52:55",
"upload_time_iso_8601": "2025-09-01T16:52:55.343498Z",
"url": "https://files.pythonhosted.org/packages/91/57/0db906be4d4ab399b876a3b696870a151837b2c04dd2fd4cac1adf6bec07/krcf-0.3.0-cp313-cp313t-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e104d2f2c26e2b999edbfea3bb68b8a5db1637375ac68e6c63084e61338abf78",
"md5": "e210206534007cc92b1773ed088ef897",
"sha256": "26fb1d7b2e7316d9d7bca297774f5c7628481bef385ae59184cf974363792386"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp313-cp313t-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "e210206534007cc92b1773ed088ef897",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 567405,
"upload_time": "2025-09-01T16:52:57",
"upload_time_iso_8601": "2025-09-01T16:52:57.457526Z",
"url": "https://files.pythonhosted.org/packages/e1/04/d2f2c26e2b999edbfea3bb68b8a5db1637375ac68e6c63084e61338abf78/krcf-0.3.0-cp313-cp313t-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e14d0acbf19443dcf2684e380378d1887ca0a20c415d89c49e3fe30df1ff06c7",
"md5": "f66c340dcc5fa7fd744b3c89fc7d56e6",
"sha256": "02f883c3d1a960622a87a15beedcee64659b893f53b13a51d1d0ecaee4b6855d"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "f66c340dcc5fa7fd744b3c89fc7d56e6",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 597494,
"upload_time": "2025-09-01T16:52:59",
"upload_time_iso_8601": "2025-09-01T16:52:59.196771Z",
"url": "https://files.pythonhosted.org/packages/e1/4d/0acbf19443dcf2684e380378d1887ca0a20c415d89c49e3fe30df1ff06c7/krcf-0.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c636f989711c840a4c81af6b86cebd9c76e2bc79b3960d091a614fb8c6bc9ff8",
"md5": "bc6ea2dbd754a5dbc1fa7c8db522620b",
"sha256": "8310ec4c9632c3de01ca7b037fb5ff592af9f2abc6feb29f8e53f30c642fccb2"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "bc6ea2dbd754a5dbc1fa7c8db522620b",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 635854,
"upload_time": "2025-09-01T16:53:00",
"upload_time_iso_8601": "2025-09-01T16:53:00.608709Z",
"url": "https://files.pythonhosted.org/packages/c6/36/f989711c840a4c81af6b86cebd9c76e2bc79b3960d091a614fb8c6bc9ff8/krcf-0.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bf26d5a22dc7328fd8da35f13070c57a6881311cb317929bcfa0b9559ec2c102",
"md5": "44386810171f093c3827aaa1a8c68058",
"sha256": "77d7772824af672bf9ad08969718658e8d3ebdd4e421f4ab7cb0647f8198e375"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "44386810171f093c3827aaa1a8c68058",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 660604,
"upload_time": "2025-09-01T16:53:02",
"upload_time_iso_8601": "2025-09-01T16:53:02.434123Z",
"url": "https://files.pythonhosted.org/packages/bf/26/d5a22dc7328fd8da35f13070c57a6881311cb317929bcfa0b9559ec2c102/krcf-0.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b65bb5c87c80ad5f19e6c77b23d33a61affb22e97cb2a044337c0b3ca5314d9e",
"md5": "4049320b0535a97a8e49a507f4878570",
"sha256": "2ab8d94a4e3438be7d28a3386722f9e7c899bedb95b5e18d4250a9fdd4fa88aa"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "4049320b0535a97a8e49a507f4878570",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 715417,
"upload_time": "2025-09-01T16:53:03",
"upload_time_iso_8601": "2025-09-01T16:53:03.988878Z",
"url": "https://files.pythonhosted.org/packages/b6/5b/b5c87c80ad5f19e6c77b23d33a61affb22e97cb2a044337c0b3ca5314d9e/krcf-0.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e233545b4e7d1eda94aac925e87ef0b4517c8d3546aac9e5f6cecfe80e34a6f9",
"md5": "130f62dd0e53206f58806367e78a2272",
"sha256": "1ab572a4e109d4d7f4c70dff8db2ed36bf9811bb2738bbcaac290816d4bc1761"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp313-cp313t-win_amd64.whl",
"has_sig": false,
"md5_digest": "130f62dd0e53206f58806367e78a2272",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 561799,
"upload_time": "2025-09-01T16:53:05",
"upload_time_iso_8601": "2025-09-01T16:53:05.511576Z",
"url": "https://files.pythonhosted.org/packages/e2/33/545b4e7d1eda94aac925e87ef0b4517c8d3546aac9e5f6cecfe80e34a6f9/krcf-0.3.0-cp313-cp313t-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "876d0f76b95e3584715c2b1d127e8fc7ed1ab4483be6c12624956b32af1eac8e",
"md5": "2f48e122c900f279284a790cb5dab187",
"sha256": "83f683babd8da49f21fa77b7124dc689a83f051598c921cc036213ea3b4c26c1"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp313-cp313t-win_arm64.whl",
"has_sig": false,
"md5_digest": "2f48e122c900f279284a790cb5dab187",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 527887,
"upload_time": "2025-09-01T16:53:07",
"upload_time_iso_8601": "2025-09-01T16:53:07.086472Z",
"url": "https://files.pythonhosted.org/packages/87/6d/0f76b95e3584715c2b1d127e8fc7ed1ab4483be6c12624956b32af1eac8e/krcf-0.3.0-cp313-cp313t-win_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "548afb01bbafccc8532fa9dedce47e7c685e541bb1418b986a9c957a3bf57fe1",
"md5": "0ea29695bac290af5a4a0ceff3025b2d",
"sha256": "8e40f17a8fb8d43dfdfbf9a929b497c525c7e2dad200302a91bfb98405ce93e2"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp314-cp314t-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "0ea29695bac290af5a4a0ceff3025b2d",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 603431,
"upload_time": "2025-09-01T16:53:08",
"upload_time_iso_8601": "2025-09-01T16:53:08.532092Z",
"url": "https://files.pythonhosted.org/packages/54/8a/fb01bbafccc8532fa9dedce47e7c685e541bb1418b986a9c957a3bf57fe1/krcf-0.3.0-cp314-cp314t-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "298cb37f05109c99092b766fe393376831635c83681887e23a6f1bdd80f9cb2c",
"md5": "7a343ee8ec0d357c59e349fd216bffd7",
"sha256": "513f9c3f303ddd28d742a02fbbca126eb78f1e514427e75282ba81497c312d56"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "7a343ee8ec0d357c59e349fd216bffd7",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 567432,
"upload_time": "2025-09-01T16:53:10",
"upload_time_iso_8601": "2025-09-01T16:53:10.191162Z",
"url": "https://files.pythonhosted.org/packages/29/8c/b37f05109c99092b766fe393376831635c83681887e23a6f1bdd80f9cb2c/krcf-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8d42a0b43a3c762df7e78af56535105baacd7daa277df1953ccac3678d7769e5",
"md5": "314eebf3c99d96b959f6b7b3a6623ce9",
"sha256": "19b8c837645e6c59f500da4ef69c46d77813761147aac9d2ac7f64de4f2a6796"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp314-cp314t-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "314eebf3c99d96b959f6b7b3a6623ce9",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 597385,
"upload_time": "2025-09-01T16:53:11",
"upload_time_iso_8601": "2025-09-01T16:53:11.567681Z",
"url": "https://files.pythonhosted.org/packages/8d/42/a0b43a3c762df7e78af56535105baacd7daa277df1953ccac3678d7769e5/krcf-0.3.0-cp314-cp314t-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5b4085b97d604ffdf4963af8b3c7c55ee500c466dfb0bfe59ced910ef18f108e",
"md5": "ec86b39670e76bd1f5edde147a399c48",
"sha256": "486b954aa901365f43ebf946525ee8f0d42e99c82232672ba174fafa54a6f056"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp314-cp314t-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "ec86b39670e76bd1f5edde147a399c48",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 635846,
"upload_time": "2025-09-01T16:53:12",
"upload_time_iso_8601": "2025-09-01T16:53:12.917202Z",
"url": "https://files.pythonhosted.org/packages/5b/40/85b97d604ffdf4963af8b3c7c55ee500c466dfb0bfe59ced910ef18f108e/krcf-0.3.0-cp314-cp314t-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a16fe8a836a396be0b5aed3ac72e3a89595f46ee217e7793972b9611a2566f8a",
"md5": "589bcc9f6cf3b435e304be6453a70fed",
"sha256": "e84c13015a50df0c9f750ed6884306e3648c66e263d974c24901c97ab76a4211"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "589bcc9f6cf3b435e304be6453a70fed",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 660413,
"upload_time": "2025-09-01T16:53:14",
"upload_time_iso_8601": "2025-09-01T16:53:14.272491Z",
"url": "https://files.pythonhosted.org/packages/a1/6f/e8a836a396be0b5aed3ac72e3a89595f46ee217e7793972b9611a2566f8a/krcf-0.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d1e910514c457033e4b0d457c24eb6ed7636bb0b5ab6c7af475eb8f1aad699fc",
"md5": "c1cf376b12011a92e1e5d37a736ac3f3",
"sha256": "6a76e64a8d7cf8e763b8584c50931344c9ddd9ac8c1601eff98ffcff4a4751d7"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "c1cf376b12011a92e1e5d37a736ac3f3",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 715431,
"upload_time": "2025-09-01T16:53:16",
"upload_time_iso_8601": "2025-09-01T16:53:16.243225Z",
"url": "https://files.pythonhosted.org/packages/d1/e9/10514c457033e4b0d457c24eb6ed7636bb0b5ab6c7af475eb8f1aad699fc/krcf-0.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0c46b121b1f9bf74e35ebe1477282a4fbd0572e7475073e5a286f0543c3b5103",
"md5": "2d987191dc53e9d02a2ad8d36e31cdc8",
"sha256": "0f2a54987d0c2c0cf445e2aa2bd6f8a69e98710f0f77507e298d8c3ef8d598ad"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp314-cp314t-win_amd64.whl",
"has_sig": false,
"md5_digest": "2d987191dc53e9d02a2ad8d36e31cdc8",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 561502,
"upload_time": "2025-09-01T16:53:17",
"upload_time_iso_8601": "2025-09-01T16:53:17.609782Z",
"url": "https://files.pythonhosted.org/packages/0c/46/b121b1f9bf74e35ebe1477282a4fbd0572e7475073e5a286f0543c3b5103/krcf-0.3.0-cp314-cp314t-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ff6e810f0590d3839247eb4fef0fe4151ba1b6985cc25bfc25522dde750bebfa",
"md5": "3604adf79186c46127794fbd8344de5b",
"sha256": "3dbd4c8c11ec7b57f44cc86e2b0337f5da1ea815965330df1db638a374ec46d1"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp314-cp314t-win_arm64.whl",
"has_sig": false,
"md5_digest": "3604adf79186c46127794fbd8344de5b",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 528087,
"upload_time": "2025-09-01T16:53:19",
"upload_time_iso_8601": "2025-09-01T16:53:19.478228Z",
"url": "https://files.pythonhosted.org/packages/ff/6e/810f0590d3839247eb4fef0fe4151ba1b6985cc25bfc25522dde750bebfa/krcf-0.3.0-cp314-cp314t-win_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "df9a84690ef895b74f5933bcfc09ee78bc4915ea342b757f61c1064078f40d93",
"md5": "056e00978af3f81ad267441154cef526",
"sha256": "91a34d9fe2a5c9777c6878ab7fba6ddb45feaf18aa716f6a8d5ba9d8d64d533a"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp39-abi3-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "056e00978af3f81ad267441154cef526",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 612212,
"upload_time": "2025-09-01T16:53:20",
"upload_time_iso_8601": "2025-09-01T16:53:20.821800Z",
"url": "https://files.pythonhosted.org/packages/df/9a/84690ef895b74f5933bcfc09ee78bc4915ea342b757f61c1064078f40d93/krcf-0.3.0-cp39-abi3-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "44433cb573cf48578be206fc29f4447f025489892d96aa88f71a6553c419851d",
"md5": "b69f36be9e4f499252f600aeb8d4f671",
"sha256": "62c1499d0970c055808724d5428f930aed473691654566815548794dad9cf5b1"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp39-abi3-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "b69f36be9e4f499252f600aeb8d4f671",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 574478,
"upload_time": "2025-09-01T16:53:22",
"upload_time_iso_8601": "2025-09-01T16:53:22.170855Z",
"url": "https://files.pythonhosted.org/packages/44/43/3cb573cf48578be206fc29f4447f025489892d96aa88f71a6553c419851d/krcf-0.3.0-cp39-abi3-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "21d2ef05a107d369f7fdeab2c93add190f6b71db6db99fd82727c891006f3ea6",
"md5": "691178880f173e0290b6e78aba8fc052",
"sha256": "58ca4137ffc9afbb2dccf5c9eeda9b6d2975f700d5ffe71a4a009f315f584aa7"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp39-abi3-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "691178880f173e0290b6e78aba8fc052",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 602860,
"upload_time": "2025-09-01T16:53:23",
"upload_time_iso_8601": "2025-09-01T16:53:23.547413Z",
"url": "https://files.pythonhosted.org/packages/21/d2/ef05a107d369f7fdeab2c93add190f6b71db6db99fd82727c891006f3ea6/krcf-0.3.0-cp39-abi3-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f9452d5c253015f68ad1888f81ad445ceead06200fea1710f850c87ee6a3c565",
"md5": "44b8079fcb362b76795de50385d4b9fa",
"sha256": "06a889d18782a3479bb3f22c6e789328b4dddab26c2743db378edc3b8ddb6feb"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp39-abi3-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "44b8079fcb362b76795de50385d4b9fa",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 641890,
"upload_time": "2025-09-01T16:53:24",
"upload_time_iso_8601": "2025-09-01T16:53:24.960439Z",
"url": "https://files.pythonhosted.org/packages/f9/45/2d5c253015f68ad1888f81ad445ceead06200fea1710f850c87ee6a3c565/krcf-0.3.0-cp39-abi3-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "04360b105234ace13747cdad2101e71dee0aa3edb9f6503ae4995f7b94229bcc",
"md5": "5c11e8048f8ded83a1eb673c6b38680b",
"sha256": "62a90d5ffe509dfdbe5a98eb7e4fef2dc7047c217de878af6c8fef02fa197fd1"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp39-abi3-manylinux_2_31_riscv64.whl",
"has_sig": false,
"md5_digest": "5c11e8048f8ded83a1eb673c6b38680b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 652882,
"upload_time": "2025-09-01T16:53:26",
"upload_time_iso_8601": "2025-09-01T16:53:26.800776Z",
"url": "https://files.pythonhosted.org/packages/04/36/0b105234ace13747cdad2101e71dee0aa3edb9f6503ae4995f7b94229bcc/krcf-0.3.0-cp39-abi3-manylinux_2_31_riscv64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "97e86a007f89c256b243be4fb4b149c50c02ce18727cd4ed7b2b2d545016accd",
"md5": "10d7e2cf3c4ab79155075eb8da948302",
"sha256": "2f477651b665d2561193861f1430132e3382a97a677212c6d59c1561e4ccf40c"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp39-abi3-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "10d7e2cf3c4ab79155075eb8da948302",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 666261,
"upload_time": "2025-09-01T16:53:28",
"upload_time_iso_8601": "2025-09-01T16:53:28.515252Z",
"url": "https://files.pythonhosted.org/packages/97/e8/6a007f89c256b243be4fb4b149c50c02ce18727cd4ed7b2b2d545016accd/krcf-0.3.0-cp39-abi3-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "92f328104c77adc4c2b3e0858a02e6ae8b88c4630c97b321cccbd409ae788968",
"md5": "b491d09ad2525a78d8be22dc8935e6e3",
"sha256": "c13b4992c78c1f62de232f77ff42fe5f0218fe30bce14e2a9028a34d2b8b849d"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp39-abi3-musllinux_1_2_riscv64.whl",
"has_sig": false,
"md5_digest": "b491d09ad2525a78d8be22dc8935e6e3",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 667485,
"upload_time": "2025-09-01T16:53:30",
"upload_time_iso_8601": "2025-09-01T16:53:30.090348Z",
"url": "https://files.pythonhosted.org/packages/92/f3/28104c77adc4c2b3e0858a02e6ae8b88c4630c97b321cccbd409ae788968/krcf-0.3.0-cp39-abi3-musllinux_1_2_riscv64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "851f4f9a2972d4323202dad8d88a60e58e5a515d179de876c03eb06f50bfbc83",
"md5": "fb74d651d21918c2f6725e6f0e39d9b0",
"sha256": "2e60442bdad3c049e800078fcb49de810d1fbbd1174d814f1e085ee47389b429"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp39-abi3-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "fb74d651d21918c2f6725e6f0e39d9b0",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 721292,
"upload_time": "2025-09-01T16:53:31",
"upload_time_iso_8601": "2025-09-01T16:53:31.472934Z",
"url": "https://files.pythonhosted.org/packages/85/1f/4f9a2972d4323202dad8d88a60e58e5a515d179de876c03eb06f50bfbc83/krcf-0.3.0-cp39-abi3-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "64c069acb2e252e99c7586f3597763d3d426542859d219535daa11f06b39b8ed",
"md5": "7f1b4214e9fa389417f2d60db9b7d84e",
"sha256": "15a7455ad1a5d773201834488fda551fa684637a995ce54f25910d163d41a420"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp39-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "7f1b4214e9fa389417f2d60db9b7d84e",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 565129,
"upload_time": "2025-09-01T16:53:33",
"upload_time_iso_8601": "2025-09-01T16:53:33.313348Z",
"url": "https://files.pythonhosted.org/packages/64/c0/69acb2e252e99c7586f3597763d3d426542859d219535daa11f06b39b8ed/krcf-0.3.0-cp39-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "92513725a6e33d2bb7d2526770c02c8c23d59d26455ed4b52837b7d2eb831934",
"md5": "d9054ebefebd82f284f810c0439f15c4",
"sha256": "19eaaa22bb0f3b289838d2ca9df4ecd01741cbc6a98058d31329c5123ac1e102"
},
"downloads": -1,
"filename": "krcf-0.3.0-cp39-abi3-win_arm64.whl",
"has_sig": false,
"md5_digest": "d9054ebefebd82f284f810c0439f15c4",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 531355,
"upload_time": "2025-09-01T16:53:34",
"upload_time_iso_8601": "2025-09-01T16:53:34.667366Z",
"url": "https://files.pythonhosted.org/packages/92/51/3725a6e33d2bb7d2526770c02c8c23d59d26455ed4b52837b7d2eb831934/krcf-0.3.0-cp39-abi3-win_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8a32dcc928b0af3285b0c40acf7d6f92de3df2e39cdef147d86f42ac65b6c1a1",
"md5": "e9ef98b158236ae09910b3d1c4288ba0",
"sha256": "977f4323f7f0a3b6fb30ffaabfcc7d857434ff1539406201b0d0757d01e98337"
},
"downloads": -1,
"filename": "krcf-0.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "e9ef98b158236ae09910b3d1c4288ba0",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.9",
"size": 611402,
"upload_time": "2025-09-01T16:53:36",
"upload_time_iso_8601": "2025-09-01T16:53:36.316414Z",
"url": "https://files.pythonhosted.org/packages/8a/32/dcc928b0af3285b0c40acf7d6f92de3df2e39cdef147d86f42ac65b6c1a1/krcf-0.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5398dd91bcf64741c552ba9bc487cf18b16c4c930081f59df0eddbe9aebf5482",
"md5": "b95b5d258aa8669af2f1154854183d89",
"sha256": "32bfeb1ae60da75741fe0de659d6a18501dbe5a14b7969a9fca8bb394d0ae941"
},
"downloads": -1,
"filename": "krcf-0.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "b95b5d258aa8669af2f1154854183d89",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.9",
"size": 573921,
"upload_time": "2025-09-01T16:53:37",
"upload_time_iso_8601": "2025-09-01T16:53:37.667130Z",
"url": "https://files.pythonhosted.org/packages/53/98/dd91bcf64741c552ba9bc487cf18b16c4c930081f59df0eddbe9aebf5482/krcf-0.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "92db198ebbd12f2a87d24d0a2364d23a0d8e93bc5206a14c3dca735ae63d190f",
"md5": "784fdec6a359abe2395f13ce4c0675a8",
"sha256": "a228bbe5e1fd5e82470e20ffe1b2aedfe26a85cc5ede5e594e9f6936fc3c21fa"
},
"downloads": -1,
"filename": "krcf-0.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "784fdec6a359abe2395f13ce4c0675a8",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.9",
"size": 602324,
"upload_time": "2025-09-01T16:53:39",
"upload_time_iso_8601": "2025-09-01T16:53:39.037831Z",
"url": "https://files.pythonhosted.org/packages/92/db/198ebbd12f2a87d24d0a2364d23a0d8e93bc5206a14c3dca735ae63d190f/krcf-0.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "831cf326c2df972506428444c5bc5926a3a24b18e09d2148e31ecc08b7022dc0",
"md5": "e3c90292c40a10bc355f802746bfeff5",
"sha256": "418df149e05559b98971f9b9a5094ecf2797f70cf89e369602820b0a923eb278"
},
"downloads": -1,
"filename": "krcf-0.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "e3c90292c40a10bc355f802746bfeff5",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.9",
"size": 641708,
"upload_time": "2025-09-01T16:53:40",
"upload_time_iso_8601": "2025-09-01T16:53:40.446171Z",
"url": "https://files.pythonhosted.org/packages/83/1c/f326c2df972506428444c5bc5926a3a24b18e09d2148e31ecc08b7022dc0/krcf-0.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "67cf23a48410da7040413fbe34994eaffe0fe249d288b68ddc8b6b858b0f2481",
"md5": "5176077d8e36bd93880c2229f26b8092",
"sha256": "054abfc1ca1a517c274b32b5aec4ef11f8199f6f9936e2b42a90c7aa8724186c"
},
"downloads": -1,
"filename": "krcf-0.3.0-pp310-pypy310_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "5176077d8e36bd93880c2229f26b8092",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.9",
"size": 563742,
"upload_time": "2025-09-01T16:53:41",
"upload_time_iso_8601": "2025-09-01T16:53:41.717130Z",
"url": "https://files.pythonhosted.org/packages/67/cf/23a48410da7040413fbe34994eaffe0fe249d288b68ddc8b6b858b0f2481/krcf-0.3.0-pp310-pypy310_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a69edf4e048f84ce686de2105e1e8dd0734a4b359b3c52fbfd12f9521f862515",
"md5": "66c14a33d076ba88c3b8e7dea9240d05",
"sha256": "9d6c3711aa3e3e51f7d029ac94a4ddb63fc6a23eba4a3ce5030e2c27e03f1b90"
},
"downloads": -1,
"filename": "krcf-0.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "66c14a33d076ba88c3b8e7dea9240d05",
"packagetype": "bdist_wheel",
"python_version": "pp311",
"requires_python": ">=3.9",
"size": 607918,
"upload_time": "2025-09-01T16:53:43",
"upload_time_iso_8601": "2025-09-01T16:53:43.113707Z",
"url": "https://files.pythonhosted.org/packages/a6/9e/df4e048f84ce686de2105e1e8dd0734a4b359b3c52fbfd12f9521f862515/krcf-0.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b49b374313d2d2542a29d61c77d76d4250cb41837d196670404233057c73ff53",
"md5": "f55f6e3978b9420caca070b391284477",
"sha256": "509e6f58f6e01ee27955a3b883c49b254761ab57058bafd47ff337177cc4e43b"
},
"downloads": -1,
"filename": "krcf-0.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "f55f6e3978b9420caca070b391284477",
"packagetype": "bdist_wheel",
"python_version": "pp311",
"requires_python": ">=3.9",
"size": 570770,
"upload_time": "2025-09-01T16:53:44",
"upload_time_iso_8601": "2025-09-01T16:53:44.396730Z",
"url": "https://files.pythonhosted.org/packages/b4/9b/374313d2d2542a29d61c77d76d4250cb41837d196670404233057c73ff53/krcf-0.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e9aa1c8184e1660a330ae2e2235ec97c245b54aebac1adab8ab53754aa58779b",
"md5": "0f324ca77d2feeadd4e9601f81e2cf33",
"sha256": "f29a0feb975d42ccf19c2b3c84078b83db088859c6e597205060bc30966e23cc"
},
"downloads": -1,
"filename": "krcf-0.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "0f324ca77d2feeadd4e9601f81e2cf33",
"packagetype": "bdist_wheel",
"python_version": "pp311",
"requires_python": ">=3.9",
"size": 599005,
"upload_time": "2025-09-01T16:53:45",
"upload_time_iso_8601": "2025-09-01T16:53:45.832375Z",
"url": "https://files.pythonhosted.org/packages/e9/aa/1c8184e1660a330ae2e2235ec97c245b54aebac1adab8ab53754aa58779b/krcf-0.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "dcb80a2f4fbb0bfddd1166a33d64cfa0d8257bd93fdd387f79cde2cc8c9beb1a",
"md5": "99034977e247875387f02f8efde3ea2b",
"sha256": "b403ca7bc5d9071ee26d41e2482848588343549b44fbe28f08ef8c380c05bb3c"
},
"downloads": -1,
"filename": "krcf-0.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "99034977e247875387f02f8efde3ea2b",
"packagetype": "bdist_wheel",
"python_version": "pp311",
"requires_python": ">=3.9",
"size": 638072,
"upload_time": "2025-09-01T16:53:47",
"upload_time_iso_8601": "2025-09-01T16:53:47.362818Z",
"url": "https://files.pythonhosted.org/packages/dc/b8/0a2f4fbb0bfddd1166a33d64cfa0d8257bd93fdd387f79cde2cc8c9beb1a/krcf-0.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3772b99022697b050c27e58422e58de2f955572b8bb1665f60a35f593d1bfd93",
"md5": "296ce04ceb5074e4af1d25c4b242c69a",
"sha256": "f7d0f69358b6c3e57b56b8ec0cba84c2cccf1cad831d0f8e26deb58450ffba6f"
},
"downloads": -1,
"filename": "krcf-0.3.0-pp311-pypy311_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "296ce04ceb5074e4af1d25c4b242c69a",
"packagetype": "bdist_wheel",
"python_version": "pp311",
"requires_python": ">=3.9",
"size": 559807,
"upload_time": "2025-09-01T16:53:48",
"upload_time_iso_8601": "2025-09-01T16:53:48.751918Z",
"url": "https://files.pythonhosted.org/packages/37/72/b99022697b050c27e58422e58de2f955572b8bb1665f60a35f593d1bfd93/krcf-0.3.0-pp311-pypy311_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b50d3e33a9e9617b4e4cb4d24ac3dc02350de914272c318ca15b6a2c4f96f051",
"md5": "b1cd8ef35357af111303531a5a0fc279",
"sha256": "2c8c9cd7a195ada372efb26172ea021f47fbf98c2f96d269836675d693b7b415"
},
"downloads": -1,
"filename": "krcf-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "b1cd8ef35357af111303531a5a0fc279",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 113955,
"upload_time": "2025-09-01T16:53:49",
"upload_time_iso_8601": "2025-09-01T16:53:49.978299Z",
"url": "https://files.pythonhosted.org/packages/b5/0d/3e33a9e9617b4e4cb4d24ac3dc02350de914272c318ca15b6a2c4f96f051/krcf-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-01 16:53:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Bing-su",
"github_project": "krcf",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "krcf"
}