krcf


Namekrcf JSON
Version 0.3.1 PyPI version JSON
download
home_pageNone
SummaryAWS Random Cut Forest for Python
upload_time2025-10-20 06:17:48
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords random cut forest rcf anomaly detection
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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/fb/71/0c5719efc9cdb2fadbd7a44c1948c965fe0dce414d95120f38d23121e148/krcf-0.3.1.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.1",
    "project_urls": {
        "source": "https://github.com/Bing-su/krcf"
    },
    "split_keywords": [
        "random cut forest",
        " rcf",
        " anomaly detection"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "39c0121b19348e543ecb507410f15ddb22778e87e7260877919ea55573cd3402",
                "md5": "cb55a895e5cd3623025e56e0235c607f",
                "sha256": "c075ac1ce7181c6c9ed010b971435a2338330ccd04b855cda31e76f2f3bf40a3"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp314-cp314t-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cb55a895e5cd3623025e56e0235c607f",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 608791,
            "upload_time": "2025-10-20T06:17:14",
            "upload_time_iso_8601": "2025-10-20T06:17:14.167945Z",
            "url": "https://files.pythonhosted.org/packages/39/c0/121b19348e543ecb507410f15ddb22778e87e7260877919ea55573cd3402/krcf-0.3.1-cp314-cp314t-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2c7f2f33e25689630df35a223adfaeb23f3da5e972bbe96904857fa6dfedfef1",
                "md5": "36b601fc3476fc7a4cbc09f599e0d1de",
                "sha256": "9f522e5ab532b3bb6117e16d0f475b873a500356ee4122275298d064b658760b"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp314-cp314t-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "36b601fc3476fc7a4cbc09f599e0d1de",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 572989,
            "upload_time": "2025-10-20T06:17:15",
            "upload_time_iso_8601": "2025-10-20T06:17:15.839979Z",
            "url": "https://files.pythonhosted.org/packages/2c/7f/2f33e25689630df35a223adfaeb23f3da5e972bbe96904857fa6dfedfef1/krcf-0.3.1-cp314-cp314t-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9e2f5fc55aa99b264ae94b9a0f98b1fb4a6643997d30536cd924c0e260f13a05",
                "md5": "2d1c2796ec88752527c4683ecd4a5a1f",
                "sha256": "94deffb87be22319807b6e6c0659f42125e0286ab8c0ae75e0a0b4bed1658344"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp314-cp314t-manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2d1c2796ec88752527c4683ecd4a5a1f",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 601223,
            "upload_time": "2025-10-20T06:17:17",
            "upload_time_iso_8601": "2025-10-20T06:17:17.498501Z",
            "url": "https://files.pythonhosted.org/packages/9e/2f/5fc55aa99b264ae94b9a0f98b1fb4a6643997d30536cd924c0e260f13a05/krcf-0.3.1-cp314-cp314t-manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3152e71c30860fb2a8f03fcf1c8a56896cbb54cbb69eb4b2954ab984c5eb9751",
                "md5": "7dc56cff7cfd75e3db00bae1778257e9",
                "sha256": "f8c2d0d5ace79a065fd1f7a86e8d253d8bb046049f338eec376b5e64be1b12eb"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp314-cp314t-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7dc56cff7cfd75e3db00bae1778257e9",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 638882,
            "upload_time": "2025-10-20T06:17:18",
            "upload_time_iso_8601": "2025-10-20T06:17:18.950150Z",
            "url": "https://files.pythonhosted.org/packages/31/52/e71c30860fb2a8f03fcf1c8a56896cbb54cbb69eb4b2954ab984c5eb9751/krcf-0.3.1-cp314-cp314t-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c93d66200e9c00b6fd7032decb76f86dc52fc897e61b3a90b1c62ecf8f088f98",
                "md5": "90ae5ac19b9a6f4c247538a915a3ba88",
                "sha256": "ea6041f03eb82c5da166fadd78a47d8ce4966077e456a3f0da1377fc26f5072c"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp314-cp314t-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "90ae5ac19b9a6f4c247538a915a3ba88",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 667858,
            "upload_time": "2025-10-20T06:17:20",
            "upload_time_iso_8601": "2025-10-20T06:17:20.723778Z",
            "url": "https://files.pythonhosted.org/packages/c9/3d/66200e9c00b6fd7032decb76f86dc52fc897e61b3a90b1c62ecf8f088f98/krcf-0.3.1-cp314-cp314t-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "28bc8b9cb903a9b1d00d8b6a3fce473060617eb03d2a0e28b7b65e0a2a86db61",
                "md5": "772932a423911c8004e86a739a86a4d5",
                "sha256": "5e48ae289ff612668c9a7a96690e8a1c68a207c886b817af15232df8f83f9c66"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "772932a423911c8004e86a739a86a4d5",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 719163,
            "upload_time": "2025-10-20T06:17:22",
            "upload_time_iso_8601": "2025-10-20T06:17:22.019667Z",
            "url": "https://files.pythonhosted.org/packages/28/bc/8b9cb903a9b1d00d8b6a3fce473060617eb03d2a0e28b7b65e0a2a86db61/krcf-0.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3915ca7512034c828afb09b66206d6206ec93828dbc44b7617f7c03f14cee907",
                "md5": "c4c36bd0cd478567e046dbf33f530a6d",
                "sha256": "438e02217c65e632807ccbb70f4961be2d199519c534ca4c6f477ffdcedad377"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp314-cp314t-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c4c36bd0cd478567e046dbf33f530a6d",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 561185,
            "upload_time": "2025-10-20T06:17:23",
            "upload_time_iso_8601": "2025-10-20T06:17:23.748835Z",
            "url": "https://files.pythonhosted.org/packages/39/15/ca7512034c828afb09b66206d6206ec93828dbc44b7617f7c03f14cee907/krcf-0.3.1-cp314-cp314t-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "43a7ca7880b4e84eeb81473179da6f85f76e4eabd6725ee4569bbf16ecda242a",
                "md5": "15abf2fe98b60daedf8e90b47c261586",
                "sha256": "0d3cf1204cb71de14489af471d8806f3bd3cc624efc81398b031c3c1f49a52d4"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp314-cp314t-win_arm64.whl",
            "has_sig": false,
            "md5_digest": "15abf2fe98b60daedf8e90b47c261586",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 528813,
            "upload_time": "2025-10-20T06:17:25",
            "upload_time_iso_8601": "2025-10-20T06:17:25.040465Z",
            "url": "https://files.pythonhosted.org/packages/43/a7/ca7880b4e84eeb81473179da6f85f76e4eabd6725ee4569bbf16ecda242a/krcf-0.3.1-cp314-cp314t-win_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "94999110e97c2738ef8e20e6b19a8b1304c77ae2f00febcebec9590e79bc6d3a",
                "md5": "2b79475b80387e9c16cf4451ae377320",
                "sha256": "e3ae5ca5e7645915dca8f9b0a16edc8c3954521fe656e99c03e111baa9a90679"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp39-abi3-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2b79475b80387e9c16cf4451ae377320",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 615692,
            "upload_time": "2025-10-20T06:17:26",
            "upload_time_iso_8601": "2025-10-20T06:17:26.731012Z",
            "url": "https://files.pythonhosted.org/packages/94/99/9110e97c2738ef8e20e6b19a8b1304c77ae2f00febcebec9590e79bc6d3a/krcf-0.3.1-cp39-abi3-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5e43925035d206c5b302c43f7730a993ad1bf2dd79f8827d35cd9bc5f8c7bdbf",
                "md5": "7c2838804cb39f42083435be91cad45b",
                "sha256": "48853ad9dc8ebf7ffcc18e84fd34bbb5a156d0946a0284d86311a36c7332626f"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp39-abi3-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "7c2838804cb39f42083435be91cad45b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 580015,
            "upload_time": "2025-10-20T06:17:28",
            "upload_time_iso_8601": "2025-10-20T06:17:28.527085Z",
            "url": "https://files.pythonhosted.org/packages/5e/43/925035d206c5b302c43f7730a993ad1bf2dd79f8827d35cd9bc5f8c7bdbf/krcf-0.3.1-cp39-abi3-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f6b4954853ff21ad1a10ddf0d6ada859963a5437398e4fd96459ac9d03e36ca9",
                "md5": "18e6696e269ce16ec4ddb9d8ab1fa5ce",
                "sha256": "4205eb5d0522c942549db92b804d31438ee2e2f734eeffacb9f4cdbead2fc1ec"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp39-abi3-manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "18e6696e269ce16ec4ddb9d8ab1fa5ce",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 606584,
            "upload_time": "2025-10-20T06:17:29",
            "upload_time_iso_8601": "2025-10-20T06:17:29.862230Z",
            "url": "https://files.pythonhosted.org/packages/f6/b4/954853ff21ad1a10ddf0d6ada859963a5437398e4fd96459ac9d03e36ca9/krcf-0.3.1-cp39-abi3-manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "86c769308b6afe432207160b414d1c1b75be97ea7362210ddb372e58b8f995fe",
                "md5": "74c9226672da04daa4039a5a622bceeb",
                "sha256": "1efcc3604bf1887905b5e7f7e3424c31f690b653d984b87aeba94d741617789e"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp39-abi3-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "74c9226672da04daa4039a5a622bceeb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 645074,
            "upload_time": "2025-10-20T06:17:31",
            "upload_time_iso_8601": "2025-10-20T06:17:31.192032Z",
            "url": "https://files.pythonhosted.org/packages/86/c7/69308b6afe432207160b414d1c1b75be97ea7362210ddb372e58b8f995fe/krcf-0.3.1-cp39-abi3-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "824dbf40170b328d5418199d9f17b6df701f3efdce3060eddf1622dcfe5032c3",
                "md5": "76488b4a57c1d566d463078884a54cf2",
                "sha256": "a7ac00ae2c75180d24ceabccb0f5db37b8e922e2f004326731b079f1631a9148"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp39-abi3-manylinux_2_31_riscv64.whl",
            "has_sig": false,
            "md5_digest": "76488b4a57c1d566d463078884a54cf2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 659996,
            "upload_time": "2025-10-20T06:17:32",
            "upload_time_iso_8601": "2025-10-20T06:17:32.614069Z",
            "url": "https://files.pythonhosted.org/packages/82/4d/bf40170b328d5418199d9f17b6df701f3efdce3060eddf1622dcfe5032c3/krcf-0.3.1-cp39-abi3-manylinux_2_31_riscv64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0e8d81ec3648fce26871fbe51450f490f8582a4beb8a178a70dbe3e0618f4f6b",
                "md5": "9bea5ac483b02d39399380a83a1300fc",
                "sha256": "d47d32c7caa82dc39310cb799ad19a95a27fcfa575285f41471049f29859a94d"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp39-abi3-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "9bea5ac483b02d39399380a83a1300fc",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 673074,
            "upload_time": "2025-10-20T06:17:33",
            "upload_time_iso_8601": "2025-10-20T06:17:33.970165Z",
            "url": "https://files.pythonhosted.org/packages/0e/8d/81ec3648fce26871fbe51450f490f8582a4beb8a178a70dbe3e0618f4f6b/krcf-0.3.1-cp39-abi3-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1d614c2ab9e9268cec93c3928784beaeba031e090040dbffab0eb29c9c6ba5ca",
                "md5": "063f3a166c038bb88c0cbda7cdf9c3ae",
                "sha256": "43402e42dde59a103a9b014d4c23f4ffdd20625abb0d5513f5f6fd8e0988ef27"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp39-abi3-musllinux_1_2_riscv64.whl",
            "has_sig": false,
            "md5_digest": "063f3a166c038bb88c0cbda7cdf9c3ae",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 671143,
            "upload_time": "2025-10-20T06:17:35",
            "upload_time_iso_8601": "2025-10-20T06:17:35.258747Z",
            "url": "https://files.pythonhosted.org/packages/1d/61/4c2ab9e9268cec93c3928784beaeba031e090040dbffab0eb29c9c6ba5ca/krcf-0.3.1-cp39-abi3-musllinux_1_2_riscv64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b8d866de5ba859c85df36cc1a54dd3440ab96688a57f99d1b79630aa6f37c39b",
                "md5": "f32540b724075d29b2ecd464784b0d60",
                "sha256": "f9eee31dc57ab3e7fe80e574b26c0be8afadba7e375961d8ff96c06cbdbbd2c6"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp39-abi3-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f32540b724075d29b2ecd464784b0d60",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 725194,
            "upload_time": "2025-10-20T06:17:36",
            "upload_time_iso_8601": "2025-10-20T06:17:36.568436Z",
            "url": "https://files.pythonhosted.org/packages/b8/d8/66de5ba859c85df36cc1a54dd3440ab96688a57f99d1b79630aa6f37c39b/krcf-0.3.1-cp39-abi3-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3a348c5f35ba513b74760de1647253df5893659f9289b1f91ac3539ecd84d46f",
                "md5": "dcdc7476992cbb7d25f2e2cb01da0d43",
                "sha256": "6aa9e88cf9a450991940ca41095296a59c2a524627748832c983102a1f05d1da"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp39-abi3-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "dcdc7476992cbb7d25f2e2cb01da0d43",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 570503,
            "upload_time": "2025-10-20T06:17:37",
            "upload_time_iso_8601": "2025-10-20T06:17:37.882611Z",
            "url": "https://files.pythonhosted.org/packages/3a/34/8c5f35ba513b74760de1647253df5893659f9289b1f91ac3539ecd84d46f/krcf-0.3.1-cp39-abi3-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c0004d9718c9e2eca4e0128dd2da3af36e04e587e3946a5b12db6e46f341a2fb",
                "md5": "d558c7930f7ae4db224211708e19ed5c",
                "sha256": "8b9a2c76bb81dca495af323791f9d73107a2997ef31c2452a7f90b45cb123ec8"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-cp39-abi3-win_arm64.whl",
            "has_sig": false,
            "md5_digest": "d558c7930f7ae4db224211708e19ed5c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 537107,
            "upload_time": "2025-10-20T06:17:39",
            "upload_time_iso_8601": "2025-10-20T06:17:39.156615Z",
            "url": "https://files.pythonhosted.org/packages/c0/00/4d9718c9e2eca4e0128dd2da3af36e04e587e3946a5b12db6e46f341a2fb/krcf-0.3.1-cp39-abi3-win_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "926334149a490ddcec51a805ef25e223c4b3374ebc54aae052ef5d9258a30b5a",
                "md5": "589e3b4d95442d815bd95a7366c65619",
                "sha256": "7da9db978b978a6ee141a4bc9a55df73e6738eb8e333883a102bdd01b6bb5e6f"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "589e3b4d95442d815bd95a7366c65619",
            "packagetype": "bdist_wheel",
            "python_version": "pp311",
            "requires_python": ">=3.9",
            "size": 611363,
            "upload_time": "2025-10-20T06:17:40",
            "upload_time_iso_8601": "2025-10-20T06:17:40.473425Z",
            "url": "https://files.pythonhosted.org/packages/92/63/34149a490ddcec51a805ef25e223c4b3374ebc54aae052ef5d9258a30b5a/krcf-0.3.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "74c2a7ac7a879de35b37f21fda29ed8ce5145685726f9fd17ca948d63edff87a",
                "md5": "ef2275025e15fe292333681505a9f2a2",
                "sha256": "bff48bf45ce924e39b6b5fd606bb8493e7f4ae3b353063572c85e5d4c5c08b19"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "ef2275025e15fe292333681505a9f2a2",
            "packagetype": "bdist_wheel",
            "python_version": "pp311",
            "requires_python": ">=3.9",
            "size": 575753,
            "upload_time": "2025-10-20T06:17:42",
            "upload_time_iso_8601": "2025-10-20T06:17:42.227489Z",
            "url": "https://files.pythonhosted.org/packages/74/c2/a7ac7a879de35b37f21fda29ed8ce5145685726f9fd17ca948d63edff87a/krcf-0.3.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3fc1a077e61ccacb65a236d959b4c68eb275c58cc0d58a6a8215b06a45fda9ab",
                "md5": "fe83fccd4db0247df7124dcbdc4ab3c9",
                "sha256": "a74f11015d0b30257d6fa22af94e1f77e146608385120cf55ebd2078a42093e2"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "fe83fccd4db0247df7124dcbdc4ab3c9",
            "packagetype": "bdist_wheel",
            "python_version": "pp311",
            "requires_python": ">=3.9",
            "size": 602706,
            "upload_time": "2025-10-20T06:17:43",
            "upload_time_iso_8601": "2025-10-20T06:17:43.934115Z",
            "url": "https://files.pythonhosted.org/packages/3f/c1/a077e61ccacb65a236d959b4c68eb275c58cc0d58a6a8215b06a45fda9ab/krcf-0.3.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5fcc7a27aec0a9c8427d2e3600315078c89e7184d1cc5090892e7502b761e254",
                "md5": "4b2cea865b6b63619b71c1b0f77b42cc",
                "sha256": "baa37efea4d7499fd9e1cff5ee2cfcd01bf43fb2518e6691645ec981e542cec3"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4b2cea865b6b63619b71c1b0f77b42cc",
            "packagetype": "bdist_wheel",
            "python_version": "pp311",
            "requires_python": ">=3.9",
            "size": 640662,
            "upload_time": "2025-10-20T06:17:45",
            "upload_time_iso_8601": "2025-10-20T06:17:45.725060Z",
            "url": "https://files.pythonhosted.org/packages/5f/cc/7a27aec0a9c8427d2e3600315078c89e7184d1cc5090892e7502b761e254/krcf-0.3.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2f8ff13c1535080f6e02a5f90a335d37a5b5f8918b1da7cf7a766c5895e2de5f",
                "md5": "11d82bbe34952fe1f8a39c55cd89e770",
                "sha256": "d46b73968d8d524520813e0a77ca470bc1df44e73e3524adf2bea55b7e6ca3af"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1-pp311-pypy311_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "11d82bbe34952fe1f8a39c55cd89e770",
            "packagetype": "bdist_wheel",
            "python_version": "pp311",
            "requires_python": ">=3.9",
            "size": 565384,
            "upload_time": "2025-10-20T06:17:46",
            "upload_time_iso_8601": "2025-10-20T06:17:46.975559Z",
            "url": "https://files.pythonhosted.org/packages/2f/8f/f13c1535080f6e02a5f90a335d37a5b5f8918b1da7cf7a766c5895e2de5f/krcf-0.3.1-pp311-pypy311_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fb710c5719efc9cdb2fadbd7a44c1948c965fe0dce414d95120f38d23121e148",
                "md5": "7e3b2fb66a066b6a24d80b53120480f0",
                "sha256": "8049a9fca178bb2510c4315f9ceac768eaafe6afc57f43b6adbe76a83e980b93"
            },
            "downloads": -1,
            "filename": "krcf-0.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "7e3b2fb66a066b6a24d80b53120480f0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 114081,
            "upload_time": "2025-10-20T06:17:48",
            "upload_time_iso_8601": "2025-10-20T06:17:48.260852Z",
            "url": "https://files.pythonhosted.org/packages/fb/71/0c5719efc9cdb2fadbd7a44c1948c965fe0dce414d95120f38d23121e148/krcf-0.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-20 06:17:48",
    "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"
}
        
Elapsed time: 2.49523s