pyfory


Namepyfory JSON
Version 0.12.2 PyPI version JSON
download
home_pageNone
SummaryApache Fory™ is a blazingly fast multi-language serialization framework powered by jit and zero-copy
upload_time2025-09-08 06:07:36
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
keywords fory serialization multi-language fast row-format jit codegen polymorphic zero-copy
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Apache Fory™ Python

[![Build Status](https://img.shields.io/github/actions/workflow/status/apache/fory/ci.yml?branch=main&style=for-the-badge&label=GITHUB%20ACTIONS&logo=github)](https://github.com/apache/fory/actions/workflows/ci.yml)
[![PyPI](https://img.shields.io/pypi/v/pyfory.svg?logo=PyPI)](https://pypi.org/project/pyfory/)
[![Slack Channel](https://img.shields.io/badge/slack-join-3f0e40?logo=slack&style=for-the-badge)](https://join.slack.com/t/fory-project/shared_invite/zt-36g0qouzm-kcQSvV_dtfbtBKHRwT5gsw)
[![X](https://img.shields.io/badge/@ApacheFory-follow-blue?logo=x&style=for-the-badge)](https://x.com/ApacheFory)

**Apache Fory** (formerly _Fury_) is a blazing fast multi-language serialization framework powered by **JIT** (just-in-time compilation) and **zero-copy**, providing up to 170x performance and ease of use.

This package provides the Python bindings for Apache Fory.

## Installation

You can install `pyfory` using pip:

```bash
pip install pyfory
```

## Quickstart

Here are a few examples of how to use `pyfory` for serialization.

### Basic Serialization

This example shows how to serialize and deserialize a simple Python object.

```python
from typing import Dict
import pyfory

class SomeClass:
    f1: "SomeClass"
    f2: Dict[str, str]
    f3: Dict[str, str]

fory = pyfory.Fory(ref_tracking=True)
fory.register_type(SomeClass, typename="example.SomeClass")
obj = SomeClass()
obj.f2 = {"k1": "v1", "k2": "v2"}
obj.f1, obj.f3 = obj, obj.f2
data = fory.serialize(obj)
# bytes can be data serialized by other languages.
print(fory.deserialize(data))
```

### Cross-language Serialization

Apache Fory excels at cross-language serialization. You can serialize data in Python and deserialize it in another language like Java or Go, and vice-versa.

Here's an example of how to serialize an object in Python and deserialize it in Java:

**Python**

```python
from typing import Dict
import pyfory

class SomeClass:
    f1: "SomeClass"
    f2: Dict[str, str]
    f3: Dict[str, str]

fory = pyfory.Fory(ref_tracking=True)
fory.register_type(SomeClass, typename="example.SomeClass")
obj = SomeClass()
obj.f2 = {"k1": "v1", "k2": "v2"}
obj.f1, obj.f3 = obj, obj.f2
data = fory.serialize(obj)
# `data` can now be sent to a Java application
```

**Java**

```java
import org.apache.fory.*;
import org.apache.fory.config.*;
import java.util.*;

public class ReferenceExample {
  public static class SomeClass {
    SomeClass f1;
    Map<String, String> f2;
    Map<String, String> f3;
  }

  public static void main(String[] args) {
    Fory fory = Fory.builder().withLanguage(Language.XLANG)
      .withRefTracking(true).build();
    fory.register(SomeClass.class, "example.SomeClass");
    // `bytes` would be the data received from the Python application
    byte[] bytes = ...
    System.out.println(fory.deserialize(bytes));
  }
}
```

### Row Format Zero-Copy Partial Serialzation

Apache Fory provide a random-access row format, which supports map a typed nested struct into a binary and read its nested element without deserializing the whole binary. This can be used to minimize teh deserialization overhead for huge objects in the case where you only needs to access part of the data. You can even encode huge objects into binary and write to file, then mmap that file into memory to reduce memory overhead too.

**Python**

```python
@dataclass
class Bar:
    f1: str
    f2: List[pa.int64]
@dataclass
class Foo:
    f1: pa.int32
    f2: List[pa.int32]
    f3: Dict[str, pa.int32]
    f4: List[Bar]

encoder = pyfory.encoder(Foo)
foo = Foo(f1=10, f2=list(range(1000_000)),
         f3={f"k{i}": i for i in range(1000_000)},
         f4=[Bar(f1=f"s{i}", f2=list(range(10))) for i in range(1000_000)])
binary: bytes = encoder.to_row(foo).to_bytes()
foo_row = pyfory.RowData(encoder.schema, binary)
print(foo_row.f2[100000], foo_row.f4[100000].f1, foo_row.f4[200000].f2[5])
```

**Java**

```java
public class Bar {
  String f1;
  List<Long> f2;
}

public class Foo {
  int f1;
  List<Integer> f2;
  Map<String, Integer> f3;
  List<Bar> f4;
}

RowEncoder<Foo> encoder = Encoders.bean(Foo.class);
Foo foo = new Foo();
foo.f1 = 10;
foo.f2 = IntStream.range(0, 1000000).boxed().collect(Collectors.toList());
foo.f3 = IntStream.range(0, 1000000).boxed().collect(Collectors.toMap(i -> "k"+i, i->i));
List<Bar> bars = new ArrayList<>(1000000);
for (int i = 0; i < 1000000; i++) {
  Bar bar = new Bar();
  bar.f1 = "s"+i;
  bar.f2 = LongStream.range(0, 10).boxed().collect(Collectors.toList());
  bars.add(bar);
}
foo.f4 = bars;
// Can be zero-copy read by python
BinaryRow binaryRow = encoder.toRow(foo);
// can be data from python
Foo newFoo = encoder.fromRow(binaryRow);
// zero-copy read List<Integer> f2
BinaryArray binaryArray2 = binaryRow.getArray(1);
// zero-copy read List<Bar> f4
BinaryArray binaryArray4 = binaryRow.getArray(3);
// zero-copy read 11th element of `readList<Bar> f4`
BinaryRow barStruct = binaryArray4.getStruct(10);

// zero-copy read 6th of f2 of 11th element of `readList<Bar> f4`
barStruct.getArray(1).getInt64(5);
RowEncoder<Bar> barEncoder = Encoders.bean(Bar.class);
// deserialize part of data.
Bar newBar = barEncoder.fromRow(barStruct);
Bar newBar2 = barEncoder.fromRow(binaryArray4.getStruct(20));
```

## Useful Links

- **[Project Website](https://fory.apache.org)**
- **[Documentation](https://fory.apache.org/docs/latest/python_guide/)**
- **[GitHub Repository](https://github.com/apache/fory)**
- **[Issue Tracker](https://github.com/apache/fory/issues)**
- **[Slack Channel](https://join.slack.com/t/fory-project/shared_invite/zt-36g0qouzm-kcQSvV_dtfbtBKHRwT5gsw)**

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyfory",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": "\"https://github.com/chaokunyang\" <shawn.ck.yang@gmail.com>",
    "keywords": "fory, serialization, multi-language, fast, row-format, jit, codegen, polymorphic, zero-copy",
    "author": null,
    "author_email": "chaokunyang <shawn.ck.yang@gmail.com>",
    "download_url": null,
    "platform": null,
    "description": "# Apache Fory\u2122 Python\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/apache/fory/ci.yml?branch=main&style=for-the-badge&label=GITHUB%20ACTIONS&logo=github)](https://github.com/apache/fory/actions/workflows/ci.yml)\n[![PyPI](https://img.shields.io/pypi/v/pyfory.svg?logo=PyPI)](https://pypi.org/project/pyfory/)\n[![Slack Channel](https://img.shields.io/badge/slack-join-3f0e40?logo=slack&style=for-the-badge)](https://join.slack.com/t/fory-project/shared_invite/zt-36g0qouzm-kcQSvV_dtfbtBKHRwT5gsw)\n[![X](https://img.shields.io/badge/@ApacheFory-follow-blue?logo=x&style=for-the-badge)](https://x.com/ApacheFory)\n\n**Apache Fory** (formerly _Fury_) is a blazing fast multi-language serialization framework powered by **JIT** (just-in-time compilation) and **zero-copy**, providing up to 170x performance and ease of use.\n\nThis package provides the Python bindings for Apache Fory.\n\n## Installation\n\nYou can install `pyfory` using pip:\n\n```bash\npip install pyfory\n```\n\n## Quickstart\n\nHere are a few examples of how to use `pyfory` for serialization.\n\n### Basic Serialization\n\nThis example shows how to serialize and deserialize a simple Python object.\n\n```python\nfrom typing import Dict\nimport pyfory\n\nclass SomeClass:\n    f1: \"SomeClass\"\n    f2: Dict[str, str]\n    f3: Dict[str, str]\n\nfory = pyfory.Fory(ref_tracking=True)\nfory.register_type(SomeClass, typename=\"example.SomeClass\")\nobj = SomeClass()\nobj.f2 = {\"k1\": \"v1\", \"k2\": \"v2\"}\nobj.f1, obj.f3 = obj, obj.f2\ndata = fory.serialize(obj)\n# bytes can be data serialized by other languages.\nprint(fory.deserialize(data))\n```\n\n### Cross-language Serialization\n\nApache Fory excels at cross-language serialization. You can serialize data in Python and deserialize it in another language like Java or Go, and vice-versa.\n\nHere's an example of how to serialize an object in Python and deserialize it in Java:\n\n**Python**\n\n```python\nfrom typing import Dict\nimport pyfory\n\nclass SomeClass:\n    f1: \"SomeClass\"\n    f2: Dict[str, str]\n    f3: Dict[str, str]\n\nfory = pyfory.Fory(ref_tracking=True)\nfory.register_type(SomeClass, typename=\"example.SomeClass\")\nobj = SomeClass()\nobj.f2 = {\"k1\": \"v1\", \"k2\": \"v2\"}\nobj.f1, obj.f3 = obj, obj.f2\ndata = fory.serialize(obj)\n# `data` can now be sent to a Java application\n```\n\n**Java**\n\n```java\nimport org.apache.fory.*;\nimport org.apache.fory.config.*;\nimport java.util.*;\n\npublic class ReferenceExample {\n  public static class SomeClass {\n    SomeClass f1;\n    Map<String, String> f2;\n    Map<String, String> f3;\n  }\n\n  public static void main(String[] args) {\n    Fory fory = Fory.builder().withLanguage(Language.XLANG)\n      .withRefTracking(true).build();\n    fory.register(SomeClass.class, \"example.SomeClass\");\n    // `bytes` would be the data received from the Python application\n    byte[] bytes = ...\n    System.out.println(fory.deserialize(bytes));\n  }\n}\n```\n\n### Row Format Zero-Copy Partial Serialzation\n\nApache Fory provide a random-access row format, which supports map a typed nested struct into a binary and read its nested element without deserializing the whole binary. This can be used to minimize teh deserialization overhead for huge objects in the case where you only needs to access part of the data. You can even encode huge objects into binary and write to file, then mmap that file into memory to reduce memory overhead too.\n\n**Python**\n\n```python\n@dataclass\nclass Bar:\n    f1: str\n    f2: List[pa.int64]\n@dataclass\nclass Foo:\n    f1: pa.int32\n    f2: List[pa.int32]\n    f3: Dict[str, pa.int32]\n    f4: List[Bar]\n\nencoder = pyfory.encoder(Foo)\nfoo = Foo(f1=10, f2=list(range(1000_000)),\n         f3={f\"k{i}\": i for i in range(1000_000)},\n         f4=[Bar(f1=f\"s{i}\", f2=list(range(10))) for i in range(1000_000)])\nbinary: bytes = encoder.to_row(foo).to_bytes()\nfoo_row = pyfory.RowData(encoder.schema, binary)\nprint(foo_row.f2[100000], foo_row.f4[100000].f1, foo_row.f4[200000].f2[5])\n```\n\n**Java**\n\n```java\npublic class Bar {\n  String f1;\n  List<Long> f2;\n}\n\npublic class Foo {\n  int f1;\n  List<Integer> f2;\n  Map<String, Integer> f3;\n  List<Bar> f4;\n}\n\nRowEncoder<Foo> encoder = Encoders.bean(Foo.class);\nFoo foo = new Foo();\nfoo.f1 = 10;\nfoo.f2 = IntStream.range(0, 1000000).boxed().collect(Collectors.toList());\nfoo.f3 = IntStream.range(0, 1000000).boxed().collect(Collectors.toMap(i -> \"k\"+i, i->i));\nList<Bar> bars = new ArrayList<>(1000000);\nfor (int i = 0; i < 1000000; i++) {\n  Bar bar = new Bar();\n  bar.f1 = \"s\"+i;\n  bar.f2 = LongStream.range(0, 10).boxed().collect(Collectors.toList());\n  bars.add(bar);\n}\nfoo.f4 = bars;\n// Can be zero-copy read by python\nBinaryRow binaryRow = encoder.toRow(foo);\n// can be data from python\nFoo newFoo = encoder.fromRow(binaryRow);\n// zero-copy read List<Integer> f2\nBinaryArray binaryArray2 = binaryRow.getArray(1);\n// zero-copy read List<Bar> f4\nBinaryArray binaryArray4 = binaryRow.getArray(3);\n// zero-copy read 11th element of `readList<Bar> f4`\nBinaryRow barStruct = binaryArray4.getStruct(10);\n\n// zero-copy read 6th of f2 of 11th element of `readList<Bar> f4`\nbarStruct.getArray(1).getInt64(5);\nRowEncoder<Bar> barEncoder = Encoders.bean(Bar.class);\n// deserialize part of data.\nBar newBar = barEncoder.fromRow(barStruct);\nBar newBar2 = barEncoder.fromRow(binaryArray4.getStruct(20));\n```\n\n## Useful Links\n\n- **[Project Website](https://fory.apache.org)**\n- **[Documentation](https://fory.apache.org/docs/latest/python_guide/)**\n- **[GitHub Repository](https://github.com/apache/fory)**\n- **[Issue Tracker](https://github.com/apache/fory/issues)**\n- **[Slack Channel](https://join.slack.com/t/fory-project/shared_invite/zt-36g0qouzm-kcQSvV_dtfbtBKHRwT5gsw)**\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Apache Fory\u2122 is a blazingly fast multi-language serialization framework powered by jit and zero-copy",
    "version": "0.12.2",
    "project_urls": null,
    "split_keywords": [
        "fory",
        " serialization",
        " multi-language",
        " fast",
        " row-format",
        " jit",
        " codegen",
        " polymorphic",
        " zero-copy"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7db659e00434fad591203ad1229e6f97f12fb0aea2cc8e273b240c53d7230e7a",
                "md5": "0d22ea9f781e74e9647fba611f6417d0",
                "sha256": "b142404243e5ca4206f636a50053aebffa4304fd2c2da00a421637eaf59d8cb2"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp310-cp310-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0d22ea9f781e74e9647fba611f6417d0",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 817935,
            "upload_time": "2025-09-08T06:07:36",
            "upload_time_iso_8601": "2025-09-08T06:07:36.501192Z",
            "url": "https://files.pythonhosted.org/packages/7d/b6/59e00434fad591203ad1229e6f97f12fb0aea2cc8e273b240c53d7230e7a/pyfory-0.12.2-cp310-cp310-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "33a5fdc0c420a16a3dffa6ebecd7b113a9cc6d5bd228030ac0e7b51339bba97d",
                "md5": "6e18bbaa715396966cb96cc158fe4e54",
                "sha256": "dff6c192293ffb486e5d78efa353a91fa288da7dbd160dada4a502e813291b7e"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp310-cp310-macosx_15_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "6e18bbaa715396966cb96cc158fe4e54",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 801573,
            "upload_time": "2025-09-08T06:07:38",
            "upload_time_iso_8601": "2025-09-08T06:07:38.489786Z",
            "url": "https://files.pythonhosted.org/packages/33/a5/fdc0c420a16a3dffa6ebecd7b113a9cc6d5bd228030ac0e7b51339bba97d/pyfory-0.12.2-cp310-cp310-macosx_15_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "381e482793ee668ddc0b49990075b231d15ca1606865f6eb9691eb551b977fce",
                "md5": "b5f9610ddba80691fc2822b65fbeef1e",
                "sha256": "df275505fc81601e34c6dc495ea1b417ee3b53481d2145627bc2dab6f1afcc49"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "has_sig": false,
            "md5_digest": "b5f9610ddba80691fc2822b65fbeef1e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1001667,
            "upload_time": "2025-09-08T06:13:48",
            "upload_time_iso_8601": "2025-09-08T06:13:48.882439Z",
            "url": "https://files.pythonhosted.org/packages/38/1e/482793ee668ddc0b49990075b231d15ca1606865f6eb9691eb551b977fce/pyfory-0.12.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d3b744a1d59e1c9e7f0a7e5e36682999502e853678c37af3e53cb031def0180f",
                "md5": "b436ebc8129c0fdfb167a7da9e3d5fbc",
                "sha256": "a5d0498e09444aa49b29a7fbaa644dda22081c73974359e64b56e308246b7190"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b436ebc8129c0fdfb167a7da9e3d5fbc",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1021852,
            "upload_time": "2025-09-08T06:13:50",
            "upload_time_iso_8601": "2025-09-08T06:13:50.520107Z",
            "url": "https://files.pythonhosted.org/packages/d3/b7/44a1d59e1c9e7f0a7e5e36682999502e853678c37af3e53cb031def0180f/pyfory-0.12.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ce9aceeb023e735c4298ff374b66416a0b99f630c3a154ed6fb1bc3cd6c3d219",
                "md5": "039c8682d63b5725c30c8982fefa72f1",
                "sha256": "c5582fe4a85df57fffa6ef9f110f1fe0f6fae37c42252d0b20694f2fa0db16d8"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "039c8682d63b5725c30c8982fefa72f1",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 714726,
            "upload_time": "2025-09-08T06:07:40",
            "upload_time_iso_8601": "2025-09-08T06:07:40.339944Z",
            "url": "https://files.pythonhosted.org/packages/ce/9a/ceeb023e735c4298ff374b66416a0b99f630c3a154ed6fb1bc3cd6c3d219/pyfory-0.12.2-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cd3478ed2441bf57658a7f953fdaf92a76d898a0c8eed6f03ff146de36975013",
                "md5": "7d574b54e2aba0d07bd4e6c214a6fb08",
                "sha256": "380eb347fad2cc8cccbba644992905e9913fc03d5b77268b7be03f8357ef7117"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp311-cp311-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7d574b54e2aba0d07bd4e6c214a6fb08",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 830957,
            "upload_time": "2025-09-08T06:07:41",
            "upload_time_iso_8601": "2025-09-08T06:07:41.873851Z",
            "url": "https://files.pythonhosted.org/packages/cd/34/78ed2441bf57658a7f953fdaf92a76d898a0c8eed6f03ff146de36975013/pyfory-0.12.2-cp311-cp311-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "90d6732bb89f9f48084ccd6a76eefca31c1a93b04e52bc83f55e377cdb0777ec",
                "md5": "264bb77bf47bfe4b093d367dcea15573",
                "sha256": "40b31cbb2f752be5fe6bcb4ea4098287dd21fa86d30600eb884b3c69138516bf"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp311-cp311-macosx_15_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "264bb77bf47bfe4b093d367dcea15573",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 812977,
            "upload_time": "2025-09-08T06:07:43",
            "upload_time_iso_8601": "2025-09-08T06:07:43.580533Z",
            "url": "https://files.pythonhosted.org/packages/90/d6/732bb89f9f48084ccd6a76eefca31c1a93b04e52bc83f55e377cdb0777ec/pyfory-0.12.2-cp311-cp311-macosx_15_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "616089c015d119c0ed3a95cf6ed80af8324ac5065b3c15ca612ea00304a3e716",
                "md5": "c6c763d3920dc243414ebda977f5c236",
                "sha256": "3f3b508442afd66ca4a274101fe10bbaf0f2b22ab0c35ae93ba31d57547835f2"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c6c763d3920dc243414ebda977f5c236",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1015110,
            "upload_time": "2025-09-08T06:13:52",
            "upload_time_iso_8601": "2025-09-08T06:13:52.168010Z",
            "url": "https://files.pythonhosted.org/packages/61/60/89c015d119c0ed3a95cf6ed80af8324ac5065b3c15ca612ea00304a3e716/pyfory-0.12.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "adfc148001b835d30023678aca0089863a04e006acaf080833d3945b73503b57",
                "md5": "482ac7f0e21814b2eadc32ba42ae3b62",
                "sha256": "b1946af1d50f810da1d643efcef68634d2ab589a3fe1c639917cf33bfab4b559"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "482ac7f0e21814b2eadc32ba42ae3b62",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1036912,
            "upload_time": "2025-09-08T06:13:53",
            "upload_time_iso_8601": "2025-09-08T06:13:53.659043Z",
            "url": "https://files.pythonhosted.org/packages/ad/fc/148001b835d30023678aca0089863a04e006acaf080833d3945b73503b57/pyfory-0.12.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "91976a5d7743d539e53c44a422b1f206664fa3f20697840a6a96ce7d1a164f0a",
                "md5": "40f9f651862d44ec0a3fee173b47af7a",
                "sha256": "ac1e4f0d675db2475dfc5c9625b24053b39a477c1bacd0f8da8965d0cd177200"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "40f9f651862d44ec0a3fee173b47af7a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 715100,
            "upload_time": "2025-09-08T06:07:45",
            "upload_time_iso_8601": "2025-09-08T06:07:45.005682Z",
            "url": "https://files.pythonhosted.org/packages/91/97/6a5d7743d539e53c44a422b1f206664fa3f20697840a6a96ce7d1a164f0a/pyfory-0.12.2-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "78d2dd55b32635136a911999682ebbcc3315ceb1dad9e933641a37adbf560c2a",
                "md5": "5b412f39b4e728ac602beac94c2b3d5c",
                "sha256": "e0f88e215953d3d0325d361d092ff4133f2b979a698e6fd9155cd73c8a69045e"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp312-cp312-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5b412f39b4e728ac602beac94c2b3d5c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 831380,
            "upload_time": "2025-09-08T06:07:47",
            "upload_time_iso_8601": "2025-09-08T06:07:47.037864Z",
            "url": "https://files.pythonhosted.org/packages/78/d2/dd55b32635136a911999682ebbcc3315ceb1dad9e933641a37adbf560c2a/pyfory-0.12.2-cp312-cp312-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a5dc17d7ef95baec5a7d7c5549a9f496a251ad9b96bb555260d1b8c2b6cf5f35",
                "md5": "3b9e6c66457ccbe3dd9e10391456f6d9",
                "sha256": "fa6cb67d13db01b90f1f64d9cee349d1c3bbe4d17ef8c89d0526973ecd709661"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp312-cp312-macosx_15_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "3b9e6c66457ccbe3dd9e10391456f6d9",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 811021,
            "upload_time": "2025-09-08T06:07:48",
            "upload_time_iso_8601": "2025-09-08T06:07:48.638082Z",
            "url": "https://files.pythonhosted.org/packages/a5/dc/17d7ef95baec5a7d7c5549a9f496a251ad9b96bb555260d1b8c2b6cf5f35/pyfory-0.12.2-cp312-cp312-macosx_15_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ae70dbc930e3399d28641d5b4f8d2e60cece5177f21028aba7511dec3009ef2d",
                "md5": "5a260c65b041ea81664967d26710eb50",
                "sha256": "323e3a6c395e7e3f00d09f5f0a9ff0f414536467380bd1e2712027c8ead1b3e5"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "has_sig": false,
            "md5_digest": "5a260c65b041ea81664967d26710eb50",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 1013749,
            "upload_time": "2025-09-08T06:13:55",
            "upload_time_iso_8601": "2025-09-08T06:13:55.209776Z",
            "url": "https://files.pythonhosted.org/packages/ae/70/dbc930e3399d28641d5b4f8d2e60cece5177f21028aba7511dec3009ef2d/pyfory-0.12.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e3ff9c70a89f1b328dd68acb322b7d60499c1183fd305c6835f26c6889605b4f",
                "md5": "beb569b92bd6147114460685187fc14f",
                "sha256": "c6fa72493bdfb657069d4ac2d3c9152cbc44143f8619cfe14ac11aebc28e8d0e"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "beb569b92bd6147114460685187fc14f",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 1038814,
            "upload_time": "2025-09-08T06:13:56",
            "upload_time_iso_8601": "2025-09-08T06:13:56.492526Z",
            "url": "https://files.pythonhosted.org/packages/e3/ff/9c70a89f1b328dd68acb322b7d60499c1183fd305c6835f26c6889605b4f/pyfory-0.12.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2505c7147128519e12d375c9f59ff61ad706f93db0f26b002d2acac2f62beae9",
                "md5": "ab7e5b5b1322060c1651ee23d0a2c999",
                "sha256": "335be1614c880e938b9e379d9c3d134117619582f6f0c66876f1466180919504"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ab7e5b5b1322060c1651ee23d0a2c999",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 675374,
            "upload_time": "2025-09-08T06:07:50",
            "upload_time_iso_8601": "2025-09-08T06:07:50.456929Z",
            "url": "https://files.pythonhosted.org/packages/25/05/c7147128519e12d375c9f59ff61ad706f93db0f26b002d2acac2f62beae9/pyfory-0.12.2-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "80166d08721fe40bef41d8a83b0464e39126ae1f8466799ebe64a4b35cefaa4e",
                "md5": "226465771128cf483588e0c79e268c38",
                "sha256": "294020fb42072e590e5b13d72155fb2186ae86cbe097190c81207a95597c5d4f"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "226465771128cf483588e0c79e268c38",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 828145,
            "upload_time": "2025-09-08T06:07:51",
            "upload_time_iso_8601": "2025-09-08T06:07:51.982013Z",
            "url": "https://files.pythonhosted.org/packages/80/16/6d08721fe40bef41d8a83b0464e39126ae1f8466799ebe64a4b35cefaa4e/pyfory-0.12.2-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e0e6534323b6b5caedd78fc023131db81c8063e9c9314c89a97492da14ce3c6b",
                "md5": "fe0505800025e56f9ca5139d36279181",
                "sha256": "cc1fb1844c622fb8215e87d06da171cc3b64675ee8b309caa0cac8732895a522"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp313-cp313-macosx_15_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "fe0505800025e56f9ca5139d36279181",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 808481,
            "upload_time": "2025-09-08T06:07:53",
            "upload_time_iso_8601": "2025-09-08T06:07:53.428500Z",
            "url": "https://files.pythonhosted.org/packages/e0/e6/534323b6b5caedd78fc023131db81c8063e9c9314c89a97492da14ce3c6b/pyfory-0.12.2-cp313-cp313-macosx_15_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5f91f061640363bc2548cab62349e501d2791af22ddda236ed990f1a45ccae39",
                "md5": "262c48479fa6e954c53d193685feb5f2",
                "sha256": "cc76998720197f51e3dbcf73dace1aa9d5ed31e75caa78ac28f8f0264cfbf1cd"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "has_sig": false,
            "md5_digest": "262c48479fa6e954c53d193685feb5f2",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 1013585,
            "upload_time": "2025-09-08T06:13:57",
            "upload_time_iso_8601": "2025-09-08T06:13:57.864072Z",
            "url": "https://files.pythonhosted.org/packages/5f/91/f061640363bc2548cab62349e501d2791af22ddda236ed990f1a45ccae39/pyfory-0.12.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "afa0523f8cd71b7db8b4e41a17119f65f6099d1bc262a5cb5de58f201df7940a",
                "md5": "00abca436eea92e283571592346c818e",
                "sha256": "65a00336a25f96133ac0d8aa4fb53ad785cb8089b1bc96e57aaa379f154c99d4"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "00abca436eea92e283571592346c818e",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 1037492,
            "upload_time": "2025-09-08T06:13:59",
            "upload_time_iso_8601": "2025-09-08T06:13:59.808489Z",
            "url": "https://files.pythonhosted.org/packages/af/a0/523f8cd71b7db8b4e41a17119f65f6099d1bc262a5cb5de58f201df7940a/pyfory-0.12.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5043c1e97e121b89487300ca31d98ea8ff4daa23e39b02389998bc44d7b475f6",
                "md5": "20f383915394c6562238a1bb8e0cddb4",
                "sha256": "639b16f6a81d5acc76d4afbce291675d40b3a7e6766fbad58267938d07687f58"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "20f383915394c6562238a1bb8e0cddb4",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 675557,
            "upload_time": "2025-09-08T06:07:54",
            "upload_time_iso_8601": "2025-09-08T06:07:54.886305Z",
            "url": "https://files.pythonhosted.org/packages/50/43/c1e97e121b89487300ca31d98ea8ff4daa23e39b02389998bc44d7b475f6/pyfory-0.12.2-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a75e6fdcc282a0829bd653dcabaf7a7b7b487be9cc722e159b29f172b388750e",
                "md5": "63bea52156e1fc9fb78b805110052a22",
                "sha256": "19f5c963230914e5b1ad89ce1fbf2732c23e04c73a574bcbd27b3f263ce2073f"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp38-cp38-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "63bea52156e1fc9fb78b805110052a22",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 829937,
            "upload_time": "2025-09-08T06:07:56",
            "upload_time_iso_8601": "2025-09-08T06:07:56.692546Z",
            "url": "https://files.pythonhosted.org/packages/a7/5e/6fdcc282a0829bd653dcabaf7a7b7b487be9cc722e159b29f172b388750e/pyfory-0.12.2-cp38-cp38-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "993c54c34b839038bd8944ac5e5ad469d85cd49b8b3d67edc947b97d8f4b982e",
                "md5": "a662df230e30cadceed2b80f5148656c",
                "sha256": "7ecd62fd3fc74a2b3488f815efa243658e725d1239056e8c60638d177767a90b"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp38-cp38-macosx_15_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "a662df230e30cadceed2b80f5148656c",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 811470,
            "upload_time": "2025-09-08T06:07:58",
            "upload_time_iso_8601": "2025-09-08T06:07:58.664913Z",
            "url": "https://files.pythonhosted.org/packages/99/3c/54c34b839038bd8944ac5e5ad469d85cd49b8b3d67edc947b97d8f4b982e/pyfory-0.12.2-cp38-cp38-macosx_15_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5d6e6bf236af5d2e0250314dc4763854b501b5a2627a859a9c66fbb4d709db23",
                "md5": "1defb53443b0204681da23aafcdb363f",
                "sha256": "f25e1a1dce2f93487c0e2ae94050ab87519dc5c14f52bc9f6b5f0963114bfcca"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "1defb53443b0204681da23aafcdb363f",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 22978515,
            "upload_time": "2025-09-08T06:14:01",
            "upload_time_iso_8601": "2025-09-08T06:14:01.917204Z",
            "url": "https://files.pythonhosted.org/packages/5d/6e/6bf236af5d2e0250314dc4763854b501b5a2627a859a9c66fbb4d709db23/pyfory-0.12.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bd594148f39cc0fd996982094475e5725a0ef2c16fd13ca0818eff80cd987bbe",
                "md5": "0e7030e68f266727e95a0c454b6aace2",
                "sha256": "85e84b2f0c4996c9968302ee447deaff1f67f5c6a90e460902afdd663cf143df"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0e7030e68f266727e95a0c454b6aace2",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 24626406,
            "upload_time": "2025-09-08T06:14:04",
            "upload_time_iso_8601": "2025-09-08T06:14:04.311325Z",
            "url": "https://files.pythonhosted.org/packages/bd/59/4148f39cc0fd996982094475e5725a0ef2c16fd13ca0818eff80cd987bbe/pyfory-0.12.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fd2bd7e869a3dc6ee1c2a8e28ef366ecacc547325625be8369afaadccc4e5e9a",
                "md5": "f74b1fed98666dfdd1d0166e632e2e17",
                "sha256": "0163ec479193ec2ecc09aa5c4b141eecdecfc3e968f78837897aa79b961e49ee"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f74b1fed98666dfdd1d0166e632e2e17",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 717254,
            "upload_time": "2025-09-08T06:07:59",
            "upload_time_iso_8601": "2025-09-08T06:07:59.982680Z",
            "url": "https://files.pythonhosted.org/packages/fd/2b/d7e869a3dc6ee1c2a8e28ef366ecacc547325625be8369afaadccc4e5e9a/pyfory-0.12.2-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "840e55bc266bc96ef9fb5e8c845169527e5b4cbeb079f110640c545c1ab68600",
                "md5": "7bdaa1e33c70a1982ebfbd5f117420be",
                "sha256": "54b649d3d28688e99f803b99b0786f5b649251b3b1bb77cb5d64433897baf46d"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp39-cp39-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7bdaa1e33c70a1982ebfbd5f117420be",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 819928,
            "upload_time": "2025-09-08T06:08:01",
            "upload_time_iso_8601": "2025-09-08T06:08:01.553180Z",
            "url": "https://files.pythonhosted.org/packages/84/0e/55bc266bc96ef9fb5e8c845169527e5b4cbeb079f110640c545c1ab68600/pyfory-0.12.2-cp39-cp39-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "de5398ed6bbca3319717ced588fd6b305a3e9419b7ba25234495359edbdeb741",
                "md5": "b1c8c5a33de71ee4b83365543405dd41",
                "sha256": "8a203ad7aa038ffb2e05257108cbe103b1ea825343af4eebd111a1ab5692a20f"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp39-cp39-macosx_15_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "b1c8c5a33de71ee4b83365543405dd41",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 803771,
            "upload_time": "2025-09-08T06:08:03",
            "upload_time_iso_8601": "2025-09-08T06:08:03.023556Z",
            "url": "https://files.pythonhosted.org/packages/de/53/98ed6bbca3319717ced588fd6b305a3e9419b7ba25234495359edbdeb741/pyfory-0.12.2-cp39-cp39-macosx_15_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "98946d515f5322f782d8634ca90a6fc388b63406c896d1e94009018e1a7b745c",
                "md5": "c32a8ce7cfbe0be72248c39bde386e5a",
                "sha256": "ffb31b719697cdd41e7b68d9742203f3019aa7342f4eb7ebdc8e2964259947f5"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c32a8ce7cfbe0be72248c39bde386e5a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1003535,
            "upload_time": "2025-09-08T06:14:06",
            "upload_time_iso_8601": "2025-09-08T06:14:06.813876Z",
            "url": "https://files.pythonhosted.org/packages/98/94/6d515f5322f782d8634ca90a6fc388b63406c896d1e94009018e1a7b745c/pyfory-0.12.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "831e5db90cfa6049abd0474d57b7be7f2bd4fd53d356589f177e208bf3ed6307",
                "md5": "ec8c86a89e8b49f78597be9f0b6142a7",
                "sha256": "e3114a57f221255d1674be7e73e59f74380a1b40e7d6c48c00c0bdecdcdd5ec4"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ec8c86a89e8b49f78597be9f0b6142a7",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1023914,
            "upload_time": "2025-09-08T06:14:08",
            "upload_time_iso_8601": "2025-09-08T06:14:08.793007Z",
            "url": "https://files.pythonhosted.org/packages/83/1e/5db90cfa6049abd0474d57b7be7f2bd4fd53d356589f177e208bf3ed6307/pyfory-0.12.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d371f83cd84c63e15212c6a0ec20e1937e264657ec3adab992bf3f945204767e",
                "md5": "a06131f86bffc88ad4b66bc2d0155641",
                "sha256": "3261cdf8752311334a52cb13ed15b9cc410d631fdc781037b1aab7efec05aac4"
            },
            "downloads": -1,
            "filename": "pyfory-0.12.2-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a06131f86bffc88ad4b66bc2d0155641",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 716102,
            "upload_time": "2025-09-08T06:08:04",
            "upload_time_iso_8601": "2025-09-08T06:08:04.664289Z",
            "url": "https://files.pythonhosted.org/packages/d3/71/f83cd84c63e15212c6a0ec20e1937e264657ec3adab992bf3f945204767e/pyfory-0.12.2-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-08 06:07:36",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "pyfory"
}
        
Elapsed time: 0.71200s