openfdcm


Nameopenfdcm JSON
Version 0.10.0 PyPI version JSON
download
home_pagehttps://github.com/Innoptech/OpenFDCM
SummaryA modern C++ open implementation of Fast Directional Chamfer Matching with few improvements
upload_time2024-08-23 08:56:34
maintainerNone
docs_urlNone
authorJean-Christophe Ruel
requires_python>=3.7
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # OpenFDCM

[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg?style=flat-square)](https://conventionalcommits.org)
[![PyPI license](https://img.shields.io/pypi/l/ansicolortags.svg?style=flat-square)](LICENSE)  
[![pypi](https://badge.fury.io/py/openfdcm.svg?style=flat-square)](https://badge.fury.io/py/openfdcm)
[![build](https://github.com/Innoptech/OpenFDCM/actions/workflows/publish-to-test-pypi.yml/badge.svg?style=flat-square)](https://github.com/Innoptech/OpenFDCM/actions/workflows/publish-to-test-pypi.yml)
[![Python](https://img.shields.io/pypi/pyversions/openfdcm.svg)](https://pypi.org/project/openfdcm/)

**A high-performance C++ library for Fast Directional Chamfer Matching, optimized for template matching on untextured objects.**

OpenFDCM is a fast, lightweight implementation of the Fast Directional Chamfer Matching (FDCM) algorithm, built for precise template matching in low-texture scenes. It balances speed and accuracy for real-world computer vision tasks, using only classical computer vision techniques — no AI involved. This ensures a deterministic, repeatable method that adapts quickly to new, unseen objects, making it ideal for manufacturing industries where reliability, ease of diagnosis, and seamless integration are crucial. The library is highly extensible, utilizing modern C++ type erasure techniques to provide flexibility and maintainability.  

Explore the [jupyter notebooks](notebooks) to try it out on Google Colab 🚀.
<a target=_blank href="https://colab.research.google.com/drive/1AtXjSrxsd42BVli3xbOR2b8pRkfyrb0m?usp=sharing"><img src=https://colab.research.google.com/assets/colab-badge.svg alt=Open In Colab></a>

![DT3 FDCM Maps](docs/static/object_pose_estimation_lines.png)
![DT3 FDCM Maps](docs/static/DT3Map.png)

### Beta Milestone Progress:
- ✅ **Removed OpenCV dependency**
- ✅ **Python bindings available**
- ✅ **Usage examples provided**
- ⬜ **GPU acceleration via OpenGL ES or OpenCL for multiple vendor compatibility**
- ⬜ **Build Python wheels for Windows in ci**

---

## Python Usage

### Installation
Get OpenFDCM via PyPI:
```bash
pip install openfdcm
```

Alternatively, install directly from the GitHub repository for the latest updates:
```bash
pip install -U git+https://github.com/Innoptech/OpenFDCM@main
```


### Template matching example
For complete examples in python, see the [jupyter notebooks](notebooks).

```python
import openfdcm

templates = # A list of 4xN array where each array is a template represented as N lines [x1, y1, x2, y2]^T
scene = # A 4xM array representing the M scene lines

# Perform template matching
max_tmpl_lines, max_scene_lines = 4, 4  # Combinatory search parameters.
depth = 30              # The [0, pi] discretization.
coeff = 5.0             # A weighting factor to enhance the angular cost vs distance cost in FDCM algorithm.
scene_padding = 1.5     # A ratio to pad the scene images used in the FDCM algorithm, use if best match may appear on image boundaries.
distance_type = openfdcm.distance.L2 # or openfdcm.distance.L2_SQUARED or openfdcm.distance.L1
#num_threads = 4

threadpool = openfdcm.ThreadPool() # could pass num_threads here, but default is optimal
featuremap_params = openfdcm.Dt3CpuParameters(depth, coeff, scene_padding, distance_type)
search_strategy = openfdcm.DefaultSearch(max_tmpl_lines, max_scene_lines)
optimizer_strategy = openfdcm.BatchOptimize(10, threadpool)
matcher = openfdcm.DefaultMatch()
penalizer = openfdcm.ExponentialPenalty(tau=1.5)

# Build FDCm feature map and search
start_time = time.time()
featuremap = openfdcm.build_cpu_featuremap(scene, featuremap_params, threadpool)
raw_matches = openfdcm.search(matcher, search_strategy, optimizer_strategy, featuremap, templates, scene)
penalized_matches = openfdcm.penalize(penalizer, raw_matches, openfdcm.get_template_lengths(templates))
sorted_matches = openfdcm.sort_matches(penalized_matches)
search_time = time.time() - start_time

print(f"Template matching search completed in {search_time:.4f} seconds.")

best_match = sorted_matches[0]                 # Best match (lower score) is first
best_match_id = best_match.tmpl_idx
best_matched_tmpl = templates[best_match_id]
result_rotation = best_match.transform[0:2, 0:2]
result_translation = best_match.transform[0:2, 2]
```

## 6-DOF estimation
The illustration of the six degrees of freedom of a detected object. The blue arrows represent the degrees of freedom in the image plane. The set of blue and red arrows represents the degrees of freedom in space. In a), the rotation axes in SO(3) are illustrated, and in b), the translation axes in T(3).

![Pose estimation DOF visualization](docs/static/pose_estimation_dof.png)

Template matching on a single view provides 5 Degrees of Freedom (DOF) per detection, with the final missing DOF for full 6-DOF estimation requiring at least two views of the same scene, combined with calibrated extrinsic parameters.

However, in the absence of a multiview camera, it is possible to estimate the 6th DOF if the following hypothesis is assumed: `The objects all touch a plane in at least one point and the plane pose is known`.

Procedure (about 5 - 30ms per scene): 
1. We sample templates of our object using a OpenGL renderer in a 2-DOF space (2 rotation). In the case of low-texture + specular reflections object, a multiflash renderer + depth edge detector is needed (will come in a future open-source library).
2. We perform the scene imagery using a multiview camera (or a single view for 5-DOF + plane hypothesis).
3. We perform template matching using `openfdcm` on each view.
4. We triangulate and filter out the match candidates using a voting-scheme algorithm from the multiview detections (will come in a future Open-Source library).
5. From the filtered matches, we combine the corresponding template information, the triangulated position and the image in-plane rotation (rotation in z) to retreive full 6-DOF pose.

<img src="docs/static/pose_estimation_procedure.png" alt="Pose estimation procedure" width="80%" />


## C++ usage
Require C++20 or higher.

### Integrate to your codebase
Include this repository with CMAKE Fetchcontent and link your executable/library to `openfdcm::matching library`.   
Choose weither you want to fetch a specific branch or tag using `GIT_TAG`. Use the `main` branch to keep updated with the latest improvements.
```cmake
include(FetchContent)
FetchContent_Declare(
    openfdcm
    GIT_REPOSITORY https://github.com/Innoptech/OpenFDCM.git
    GIT_TAG main
    GIT_SHALLOW TRUE
    GIT_PROGRESS TRUE
)
FetchContent_MakeAvailable(openfdcm)
```

### Test
```bash
git clone https://github.com/Innoptech/OpenFDCM
mkdir OpenFDCM/build && cd OpenFDCM/build
cmake -DOPENFDCM_BUILD_TESTS=ON .. && cmake --build .
ctest .
```

## Contributions & Feedback
We welcome contributions! Please submit pull requests or report issues directly through the [GitHub repository](https://github.com/Innoptech/OpenFDCM).

## Citing OpenFDCM
If you use OpenFDCM in your research, please use the following BibTeX entry.
```bibtex
%Bibtex to come
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Innoptech/OpenFDCM",
    "name": "openfdcm",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": null,
    "author": "Jean-Christophe Ruel",
    "author_email": "info@innoptech.com",
    "download_url": null,
    "platform": null,
    "description": "# OpenFDCM\n\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg?style=flat-square)](https://conventionalcommits.org)\n[![PyPI license](https://img.shields.io/pypi/l/ansicolortags.svg?style=flat-square)](LICENSE)  \n[![pypi](https://badge.fury.io/py/openfdcm.svg?style=flat-square)](https://badge.fury.io/py/openfdcm)\n[![build](https://github.com/Innoptech/OpenFDCM/actions/workflows/publish-to-test-pypi.yml/badge.svg?style=flat-square)](https://github.com/Innoptech/OpenFDCM/actions/workflows/publish-to-test-pypi.yml)\n[![Python](https://img.shields.io/pypi/pyversions/openfdcm.svg)](https://pypi.org/project/openfdcm/)\n\n**A high-performance C++ library for Fast Directional Chamfer Matching, optimized for template matching on untextured objects.**\n\nOpenFDCM is a fast, lightweight implementation of the Fast Directional Chamfer Matching (FDCM) algorithm, built for precise template matching in low-texture scenes. It balances speed and accuracy for real-world computer vision tasks, using only classical computer vision techniques \u2014 no AI involved. This ensures a deterministic, repeatable method that adapts quickly to new, unseen objects, making it ideal for manufacturing industries where reliability, ease of diagnosis, and seamless integration are crucial. The library is highly extensible, utilizing modern C++ type erasure techniques to provide flexibility and maintainability.  \n\nExplore the [jupyter notebooks](notebooks) to try it out on Google Colab \ud83d\ude80.\n<a target=_blank href=\"https://colab.research.google.com/drive/1AtXjSrxsd42BVli3xbOR2b8pRkfyrb0m?usp=sharing\"><img src=https://colab.research.google.com/assets/colab-badge.svg alt=Open In Colab></a>\n\n![DT3 FDCM Maps](docs/static/object_pose_estimation_lines.png)\n![DT3 FDCM Maps](docs/static/DT3Map.png)\n\n### Beta Milestone Progress:\n- \u2705 **Removed OpenCV dependency**\n- \u2705 **Python bindings available**\n- \u2705 **Usage examples provided**\n- \u2b1c **GPU acceleration via OpenGL ES or OpenCL for multiple vendor compatibility**\n- \u2b1c **Build Python wheels for Windows in ci**\n\n---\n\n## Python Usage\n\n### Installation\nGet OpenFDCM via PyPI:\n```bash\npip install openfdcm\n```\n\nAlternatively, install directly from the GitHub repository for the latest updates:\n```bash\npip install -U git+https://github.com/Innoptech/OpenFDCM@main\n```\n\n\n### Template matching example\nFor complete examples in python, see the [jupyter notebooks](notebooks).\n\n```python\nimport openfdcm\n\ntemplates = # A list of 4xN array where each array is a template represented as N lines [x1, y1, x2, y2]^T\nscene = # A 4xM array representing the M scene lines\n\n# Perform template matching\nmax_tmpl_lines, max_scene_lines = 4, 4  # Combinatory search parameters.\ndepth = 30              # The [0, pi] discretization.\ncoeff = 5.0             # A weighting factor to enhance the angular cost vs distance cost in FDCM algorithm.\nscene_padding = 1.5     # A ratio to pad the scene images used in the FDCM algorithm, use if best match may appear on image boundaries.\ndistance_type = openfdcm.distance.L2 # or openfdcm.distance.L2_SQUARED or openfdcm.distance.L1\n#num_threads = 4\n\nthreadpool = openfdcm.ThreadPool() # could pass num_threads here, but default is optimal\nfeaturemap_params = openfdcm.Dt3CpuParameters(depth, coeff, scene_padding, distance_type)\nsearch_strategy = openfdcm.DefaultSearch(max_tmpl_lines, max_scene_lines)\noptimizer_strategy = openfdcm.BatchOptimize(10, threadpool)\nmatcher = openfdcm.DefaultMatch()\npenalizer = openfdcm.ExponentialPenalty(tau=1.5)\n\n# Build FDCm feature map and search\nstart_time = time.time()\nfeaturemap = openfdcm.build_cpu_featuremap(scene, featuremap_params, threadpool)\nraw_matches = openfdcm.search(matcher, search_strategy, optimizer_strategy, featuremap, templates, scene)\npenalized_matches = openfdcm.penalize(penalizer, raw_matches, openfdcm.get_template_lengths(templates))\nsorted_matches = openfdcm.sort_matches(penalized_matches)\nsearch_time = time.time() - start_time\n\nprint(f\"Template matching search completed in {search_time:.4f} seconds.\")\n\nbest_match = sorted_matches[0]                 # Best match (lower score) is first\nbest_match_id = best_match.tmpl_idx\nbest_matched_tmpl = templates[best_match_id]\nresult_rotation = best_match.transform[0:2, 0:2]\nresult_translation = best_match.transform[0:2, 2]\n```\n\n## 6-DOF estimation\nThe illustration of the six degrees of freedom of a detected object. The blue arrows represent the degrees of freedom in the image plane. The set of blue and red arrows represents the degrees of freedom in space. In a), the rotation axes in SO(3) are illustrated, and in b), the translation axes in T(3).\n\n![Pose estimation DOF visualization](docs/static/pose_estimation_dof.png)\n\nTemplate matching on a single view provides 5 Degrees of Freedom (DOF) per detection, with the final missing DOF for full 6-DOF estimation requiring at least two views of the same scene, combined with calibrated extrinsic parameters.\n\nHowever, in the absence of a multiview camera, it is possible to estimate the 6th DOF if the following hypothesis is assumed: `The objects all touch a plane in at least one point and the plane pose is known`.\n\nProcedure (about 5 - 30ms per scene): \n1. We sample templates of our object using a OpenGL renderer in a 2-DOF space (2 rotation). In the case of low-texture + specular reflections object, a multiflash renderer + depth edge detector is needed (will come in a future open-source library).\n2. We perform the scene imagery using a multiview camera (or a single view for 5-DOF + plane hypothesis).\n3. We perform template matching using `openfdcm` on each view.\n4. We triangulate and filter out the match candidates using a voting-scheme algorithm from the multiview detections (will come in a future Open-Source library).\n5. From the filtered matches, we combine the corresponding template information, the triangulated position and the image in-plane rotation (rotation in z) to retreive full 6-DOF pose.\n\n<img src=\"docs/static/pose_estimation_procedure.png\" alt=\"Pose estimation procedure\" width=\"80%\" />\n\n\n## C++ usage\nRequire C++20 or higher.\n\n### Integrate to your codebase\nInclude this repository with CMAKE Fetchcontent and link your executable/library to `openfdcm::matching library`.   \nChoose weither you want to fetch a specific branch or tag using `GIT_TAG`. Use the `main` branch to keep updated with the latest improvements.\n```cmake\ninclude(FetchContent)\nFetchContent_Declare(\n    openfdcm\n    GIT_REPOSITORY https://github.com/Innoptech/OpenFDCM.git\n    GIT_TAG main\n    GIT_SHALLOW TRUE\n    GIT_PROGRESS TRUE\n)\nFetchContent_MakeAvailable(openfdcm)\n```\n\n### Test\n```bash\ngit clone https://github.com/Innoptech/OpenFDCM\nmkdir OpenFDCM/build && cd OpenFDCM/build\ncmake -DOPENFDCM_BUILD_TESTS=ON .. && cmake --build .\nctest .\n```\n\n## Contributions & Feedback\nWe welcome contributions! Please submit pull requests or report issues directly through the [GitHub repository](https://github.com/Innoptech/OpenFDCM).\n\n## Citing OpenFDCM\nIf you use OpenFDCM in your research, please use the following BibTeX entry.\n```bibtex\n%Bibtex to come\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A modern C++ open implementation of Fast Directional Chamfer Matching with few improvements",
    "version": "0.10.0",
    "project_urls": {
        "Homepage": "https://github.com/Innoptech/OpenFDCM"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f1642eef57442b00db4f9d9379f720e89c5aa519b32a26d5c18590af69ffd582",
                "md5": "8ac8b71046d2248152e3c2a582acf296",
                "sha256": "380632b0c4376894e89641cb75dafcbb4c8d6fa20c060ea33ce5cb6d6cec5b9f"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8ac8b71046d2248152e3c2a582acf296",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 502420,
            "upload_time": "2024-08-23T08:56:34",
            "upload_time_iso_8601": "2024-08-23T08:56:34.112645Z",
            "url": "https://files.pythonhosted.org/packages/f1/64/2eef57442b00db4f9d9379f720e89c5aa519b32a26d5c18590af69ffd582/openfdcm-0.10.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "14764154b0ceb411097e19157e59630108c34f357c285864b85fb9610f465f3e",
                "md5": "78fd66ec5df24be9c311fef5ff9af754",
                "sha256": "a4987b50f8f9ee19c556513304c9da14afaef6648cc2c5c67e8b44b9e5bff751"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "78fd66ec5df24be9c311fef5ff9af754",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 415622,
            "upload_time": "2024-08-23T08:56:35",
            "upload_time_iso_8601": "2024-08-23T08:56:35.677080Z",
            "url": "https://files.pythonhosted.org/packages/14/76/4154b0ceb411097e19157e59630108c34f357c285864b85fb9610f465f3e/openfdcm-0.10.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b306fbf573a099a686a8131326bb0e49893823fd4a9d28f08a88ef385e646286",
                "md5": "c39b6bcafe03569f12959d0e015429ca",
                "sha256": "3886c5a980cb61a1a30c2ffc85395e8ef9f88675cc99b977f14dbec38fb85c4c"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "c39b6bcafe03569f12959d0e015429ca",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 611544,
            "upload_time": "2024-08-23T08:56:37",
            "upload_time_iso_8601": "2024-08-23T08:56:37.272214Z",
            "url": "https://files.pythonhosted.org/packages/b3/06/fbf573a099a686a8131326bb0e49893823fd4a9d28f08a88ef385e646286/openfdcm-0.10.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fa1bcb25257e849771e41fe296c0f5b7067edf37f22e13a0e916d538fb15f853",
                "md5": "8b09b456584a08560e09a638ccec31f1",
                "sha256": "ac1a16fb0f56c7ddc40376cba430eaea800e16dbd6f25659add209aaae9a6853"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8b09b456584a08560e09a638ccec31f1",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 597053,
            "upload_time": "2024-08-23T08:56:38",
            "upload_time_iso_8601": "2024-08-23T08:56:38.761643Z",
            "url": "https://files.pythonhosted.org/packages/fa/1b/cb25257e849771e41fe296c0f5b7067edf37f22e13a0e916d538fb15f853/openfdcm-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "661a1c5ad5f95871d7115e7e8401565fcdf0525adcc54cdc2ff60957b1fb4f6e",
                "md5": "21c87cdb7b3792379d392f75615aba4b",
                "sha256": "2cdf405371c995092ecd008ceca45cc32e96e5481e25ad5d7866ef7442018833"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp310-cp310-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "21c87cdb7b3792379d392f75615aba4b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 1631902,
            "upload_time": "2024-08-23T08:56:40",
            "upload_time_iso_8601": "2024-08-23T08:56:40.301085Z",
            "url": "https://files.pythonhosted.org/packages/66/1a/1c5ad5f95871d7115e7e8401565fcdf0525adcc54cdc2ff60957b1fb4f6e/openfdcm-0.10.0-cp310-cp310-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "96f428770649b54500d7da9152e6acee521494647a836cfa057672c079f9c830",
                "md5": "e22fd5f595127ff925bff8e649834adc",
                "sha256": "dc6310c97a9b767d3fc3543ac68731a801856f1e0205801cae0362acde61a860"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e22fd5f595127ff925bff8e649834adc",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 1533454,
            "upload_time": "2024-08-23T08:56:42",
            "upload_time_iso_8601": "2024-08-23T08:56:42.068374Z",
            "url": "https://files.pythonhosted.org/packages/96/f4/28770649b54500d7da9152e6acee521494647a836cfa057672c079f9c830/openfdcm-0.10.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8e96b765ff952364d3a65c96567f30bbe1aac559c151a05eab93d6915bb4fde7",
                "md5": "7d4560b96dbdc1da309af5b8c2bc3719",
                "sha256": "913a57b81d3be9f1b2e10ea81242fa61fbfe4ed094081ce72f57371aa847fdc9"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7d4560b96dbdc1da309af5b8c2bc3719",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 503485,
            "upload_time": "2024-08-23T08:56:43",
            "upload_time_iso_8601": "2024-08-23T08:56:43.199795Z",
            "url": "https://files.pythonhosted.org/packages/8e/96/b765ff952364d3a65c96567f30bbe1aac559c151a05eab93d6915bb4fde7/openfdcm-0.10.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ef4a2593a96c7779342c2764067f5485be924b773e94a9902bacf55afe0f1007",
                "md5": "0c4301697062eb986ddc659d5e5d9e61",
                "sha256": "1f38085aceaebd54f5140cfed5b3de1c14336bbb22328deed8b42faa3b577f0f"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "0c4301697062eb986ddc659d5e5d9e61",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 416887,
            "upload_time": "2024-08-23T08:56:44",
            "upload_time_iso_8601": "2024-08-23T08:56:44.711872Z",
            "url": "https://files.pythonhosted.org/packages/ef/4a/2593a96c7779342c2764067f5485be924b773e94a9902bacf55afe0f1007/openfdcm-0.10.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "056bbc5ad8c19f526e3c6bc0059e2adc1b17fef79b319af28d4585b75ea8ee5d",
                "md5": "08f02c4943425bd59843f04bf6b255d7",
                "sha256": "8c80c4ac8b2f3553edbbdfbddcb2f70172855e4c944792fea6d51a4ae6599377"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "08f02c4943425bd59843f04bf6b255d7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 612263,
            "upload_time": "2024-08-23T08:56:45",
            "upload_time_iso_8601": "2024-08-23T08:56:45.947448Z",
            "url": "https://files.pythonhosted.org/packages/05/6b/bc5ad8c19f526e3c6bc0059e2adc1b17fef79b319af28d4585b75ea8ee5d/openfdcm-0.10.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "57d82b7a6cb343fe8d5ffa74fdadda438a71ff4d9a8cfbe2cdcc23307d10eac3",
                "md5": "ccd6a67c584a5bf6fa951403735fd70f",
                "sha256": "37964fc722f94558d7752d87932fa94b1689cdf04a7a6c8a6cfd0782bf105223"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ccd6a67c584a5bf6fa951403735fd70f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 598162,
            "upload_time": "2024-08-23T08:56:47",
            "upload_time_iso_8601": "2024-08-23T08:56:47.104802Z",
            "url": "https://files.pythonhosted.org/packages/57/d8/2b7a6cb343fe8d5ffa74fdadda438a71ff4d9a8cfbe2cdcc23307d10eac3/openfdcm-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "061b6e64e7be67fa670f3bcd7c4fe225d44d4943fcb93e4e363cd606050f2d61",
                "md5": "0f28557efda5fdc1daaeec46a288506c",
                "sha256": "a69476d65bf3c01f5345cdd9fc8ea98511be0e29083ad13253263711a31c14b8"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp311-cp311-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "0f28557efda5fdc1daaeec46a288506c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 1632660,
            "upload_time": "2024-08-23T08:56:48",
            "upload_time_iso_8601": "2024-08-23T08:56:48.593402Z",
            "url": "https://files.pythonhosted.org/packages/06/1b/6e64e7be67fa670f3bcd7c4fe225d44d4943fcb93e4e363cd606050f2d61/openfdcm-0.10.0-cp311-cp311-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3aa0470def2100724411c5306dca6d8ab6d1ababd2edd3712d5180cce8f13eee",
                "md5": "07da394b617e886e2f68ea1b1c2c33dc",
                "sha256": "b46373e7a53610e227a3b65437ed771a8e90527598c2316d82ea75a0a805e828"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "07da394b617e886e2f68ea1b1c2c33dc",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 1534760,
            "upload_time": "2024-08-23T08:56:50",
            "upload_time_iso_8601": "2024-08-23T08:56:50.341257Z",
            "url": "https://files.pythonhosted.org/packages/3a/a0/470def2100724411c5306dca6d8ab6d1ababd2edd3712d5180cce8f13eee/openfdcm-0.10.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "863707fc4d531343c2314aa197dfb0f9bcb3be68529f540e91877b970d3ff2a4",
                "md5": "c913054ef47585e62269363b7fe33f21",
                "sha256": "79e2f5a8caab5fba05668b74ebeb74d7955f9d1120c242cadfefd4785cd5ae00"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c913054ef47585e62269363b7fe33f21",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 504752,
            "upload_time": "2024-08-23T08:56:52",
            "upload_time_iso_8601": "2024-08-23T08:56:52.015688Z",
            "url": "https://files.pythonhosted.org/packages/86/37/07fc4d531343c2314aa197dfb0f9bcb3be68529f540e91877b970d3ff2a4/openfdcm-0.10.0-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "16a680664b1b3370522c523d5a43292a4a77046aac57ec96540eea4ca1cad000",
                "md5": "9e11f92693a96e4a933640662e34ec0c",
                "sha256": "101ba8f07ff7d4a8c50a8e0ebdf052b64b78cb0d8fa4151ad9e88b8046783996"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "9e11f92693a96e4a933640662e34ec0c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 417360,
            "upload_time": "2024-08-23T08:56:53",
            "upload_time_iso_8601": "2024-08-23T08:56:53.574580Z",
            "url": "https://files.pythonhosted.org/packages/16/a6/80664b1b3370522c523d5a43292a4a77046aac57ec96540eea4ca1cad000/openfdcm-0.10.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "771f1f9c5d005bec31883f7a036f0cb8ebc35c51ff84296cd5939b7c53623949",
                "md5": "7af1e207cd2a1c3af099d384cbe673b8",
                "sha256": "fa8bba34566be4fe3add73a972baa5f938c2d78b9810bf78ed46d5fba7bb23b1"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "7af1e207cd2a1c3af099d384cbe673b8",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 611566,
            "upload_time": "2024-08-23T08:56:54",
            "upload_time_iso_8601": "2024-08-23T08:56:54.662892Z",
            "url": "https://files.pythonhosted.org/packages/77/1f/1f9c5d005bec31883f7a036f0cb8ebc35c51ff84296cd5939b7c53623949/openfdcm-0.10.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2ddfc0c45b57cd3cd0157dbe700ec68894c0b71be057c7b59228a4c430c5b90d",
                "md5": "8706547a9c5390c2aaa35c272c5ffd86",
                "sha256": "22be361d23523428e89d830bfbe54d7d228bf7a970723e91ef64f374fe73d7af"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8706547a9c5390c2aaa35c272c5ffd86",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 597554,
            "upload_time": "2024-08-23T08:56:55",
            "upload_time_iso_8601": "2024-08-23T08:56:55.961560Z",
            "url": "https://files.pythonhosted.org/packages/2d/df/c0c45b57cd3cd0157dbe700ec68894c0b71be057c7b59228a4c430c5b90d/openfdcm-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f2fb7941bd3ef87f404d5b023fb9472d82a09bc68768b533df72b890af7da198",
                "md5": "b58c266768ef545d2df84bf4cdf7dd81",
                "sha256": "37e325e671a193e9d13e4e5c58b5686e3aeb4200383ecdd56aadd671ab8506f5"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp312-cp312-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "b58c266768ef545d2df84bf4cdf7dd81",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 1632110,
            "upload_time": "2024-08-23T08:56:57",
            "upload_time_iso_8601": "2024-08-23T08:56:57.482138Z",
            "url": "https://files.pythonhosted.org/packages/f2/fb/7941bd3ef87f404d5b023fb9472d82a09bc68768b533df72b890af7da198/openfdcm-0.10.0-cp312-cp312-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "14b1499a0f403e152d2c7ceb29f0674495220ee2156a0136199671983fff544c",
                "md5": "addd55fdf25d64d764c060cf68ee21a6",
                "sha256": "66808148ee91547e1d9f5f9692dbe5181176efc37aca7e2cc8bb0596f7bcfa42"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "addd55fdf25d64d764c060cf68ee21a6",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 1533161,
            "upload_time": "2024-08-23T08:56:58",
            "upload_time_iso_8601": "2024-08-23T08:56:58.779199Z",
            "url": "https://files.pythonhosted.org/packages/14/b1/499a0f403e152d2c7ceb29f0674495220ee2156a0136199671983fff544c/openfdcm-0.10.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2c6002ae2d33ca31ce7696e022d7b41b7f83da448776941f23ae695946e0d8db",
                "md5": "12349257a7667652c67e2438fb846207",
                "sha256": "f034215d422ee60c11938b2158f15646a093b5aeda19ac7c4dba24733964301a"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "12349257a7667652c67e2438fb846207",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 500123,
            "upload_time": "2024-08-23T08:57:00",
            "upload_time_iso_8601": "2024-08-23T08:57:00.514389Z",
            "url": "https://files.pythonhosted.org/packages/2c/60/02ae2d33ca31ce7696e022d7b41b7f83da448776941f23ae695946e0d8db/openfdcm-0.10.0-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "83cbb1a413da75e95b991cffb1e3e85f07899abd7d3b46dbdc9e8730212b6bab",
                "md5": "f02f01d1184971ca1090bed263b81bd7",
                "sha256": "a659c9fd6a9cf36f1a9bbb91e77f9869a78f0f3d3ddf4ff3fd2a0d0797527450"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "f02f01d1184971ca1090bed263b81bd7",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 417358,
            "upload_time": "2024-08-23T08:57:01",
            "upload_time_iso_8601": "2024-08-23T08:57:01.875190Z",
            "url": "https://files.pythonhosted.org/packages/83/cb/b1a413da75e95b991cffb1e3e85f07899abd7d3b46dbdc9e8730212b6bab/openfdcm-0.10.0-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aa09720f393a3cc315892f745fe73c3581913f0be34e66fde74eb72168598495",
                "md5": "e4ebb152ba1e73a09188112e4ecfa615",
                "sha256": "2ac8dc6404634908cf43ac5cc077a5d11b5d51350a28ed429fabadc753c2bc3f"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "e4ebb152ba1e73a09188112e4ecfa615",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 612563,
            "upload_time": "2024-08-23T08:57:03",
            "upload_time_iso_8601": "2024-08-23T08:57:03.502190Z",
            "url": "https://files.pythonhosted.org/packages/aa/09/720f393a3cc315892f745fe73c3581913f0be34e66fde74eb72168598495/openfdcm-0.10.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d23f573c7c1acd83eaad3eb05acaf22e280bfdd5f466d2ce97620466f80f6d2c",
                "md5": "0bd164606d770b6e2f1b40536ebf3162",
                "sha256": "af67186656812647eca5cea112e458837de89bba0067c13bdd181582cd98a806"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0bd164606d770b6e2f1b40536ebf3162",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 598461,
            "upload_time": "2024-08-23T08:57:04",
            "upload_time_iso_8601": "2024-08-23T08:57:04.704621Z",
            "url": "https://files.pythonhosted.org/packages/d2/3f/573c7c1acd83eaad3eb05acaf22e280bfdd5f466d2ce97620466f80f6d2c/openfdcm-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c0ac6ea626b8d8096a558c037099c0a1936134cf3bb7a36e728580afd9a29a34",
                "md5": "716ef21fca5e9388642d0337b9c0b734",
                "sha256": "1ec75a1c1045c96e260d15df62e712616c4a0f455809e60d3b65882d67a495fb"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp313-cp313-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "716ef21fca5e9388642d0337b9c0b734",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 1633177,
            "upload_time": "2024-08-23T08:57:06",
            "upload_time_iso_8601": "2024-08-23T08:57:06.454122Z",
            "url": "https://files.pythonhosted.org/packages/c0/ac/6ea626b8d8096a558c037099c0a1936134cf3bb7a36e728580afd9a29a34/openfdcm-0.10.0-cp313-cp313-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0e44d5e2fc42ec88c76b9104fca9cafb41bc59ea16a3d98d8fa4012c47a21bbb",
                "md5": "39ae54cc9408e1864355e508159687b7",
                "sha256": "608a49cd9a21565ec580ffbb3a7ce9caab83af14bbb0ed8190953487ea4039cc"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "39ae54cc9408e1864355e508159687b7",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 1533762,
            "upload_time": "2024-08-23T08:57:07",
            "upload_time_iso_8601": "2024-08-23T08:57:07.792353Z",
            "url": "https://files.pythonhosted.org/packages/0e/44/d5e2fc42ec88c76b9104fca9cafb41bc59ea16a3d98d8fa4012c47a21bbb/openfdcm-0.10.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f10383719e76430db0b6d565bc940fbedd5a9d613139fd3403c7824a9c542e6e",
                "md5": "adf5b3f348fe8f88f283010c3b68dc25",
                "sha256": "bbbbb0082dd5bd344e36b6f25b81cdc83531859cdae8c6a955b552b90079d680"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp37-cp37m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "adf5b3f348fe8f88f283010c3b68dc25",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 500981,
            "upload_time": "2024-08-23T08:57:09",
            "upload_time_iso_8601": "2024-08-23T08:57:09.066325Z",
            "url": "https://files.pythonhosted.org/packages/f1/03/83719e76430db0b6d565bc940fbedd5a9d613139fd3403c7824a9c542e6e/openfdcm-0.10.0-cp37-cp37m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0c491d646077502c6b167a9884be0f34c39b023bb861068805de2097fbc1b87b",
                "md5": "0df2c5de0300fc4d3322f6ba5ed0c364",
                "sha256": "1744776ff328819d1ddd36180ef164b0cad66bcdf0f62e04aeabfb234ef1fa85"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "0df2c5de0300fc4d3322f6ba5ed0c364",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 609397,
            "upload_time": "2024-08-23T08:57:10",
            "upload_time_iso_8601": "2024-08-23T08:57:10.653385Z",
            "url": "https://files.pythonhosted.org/packages/0c/49/1d646077502c6b167a9884be0f34c39b023bb861068805de2097fbc1b87b/openfdcm-0.10.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c9cfb0c474669485816708eedbb2a3c8bb1b2076cd5ae7b9d31d15e4081103bc",
                "md5": "53ab693fb6d720310be14ad50e6e4781",
                "sha256": "fbc34e1aa3ac039a9450dadbcf852b8450627c452a758669eb845f1b32bfd43e"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "53ab693fb6d720310be14ad50e6e4781",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 594435,
            "upload_time": "2024-08-23T08:57:11",
            "upload_time_iso_8601": "2024-08-23T08:57:11.756545Z",
            "url": "https://files.pythonhosted.org/packages/c9/cf/b0c474669485816708eedbb2a3c8bb1b2076cd5ae7b9d31d15e4081103bc/openfdcm-0.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3b76373dafbee1691fe9fd441efcaa887445bed1c9c0142d15d1cb493497a7b7",
                "md5": "972f4d32ea2586210ce54a9fc693086e",
                "sha256": "375f3bca660126ad9dba571848950d5b165b0c17fac9c444815afe3ba6e36601"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp37-cp37m-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "972f4d32ea2586210ce54a9fc693086e",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 1632372,
            "upload_time": "2024-08-23T08:57:12",
            "upload_time_iso_8601": "2024-08-23T08:57:12.939276Z",
            "url": "https://files.pythonhosted.org/packages/3b/76/373dafbee1691fe9fd441efcaa887445bed1c9c0142d15d1cb493497a7b7/openfdcm-0.10.0-cp37-cp37m-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c35d742d10aa12cbd9cade8810e2604cd63cb6699a8b21c6212b0ffc31880f26",
                "md5": "947d28b64aeddebfbe3aad143c835e40",
                "sha256": "ae3ee1cbe221a0b66da488ecf442ec8a7647a1d96810ef222eb223edceba4b68"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp37-cp37m-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "947d28b64aeddebfbe3aad143c835e40",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 1533530,
            "upload_time": "2024-08-23T08:57:14",
            "upload_time_iso_8601": "2024-08-23T08:57:14.277374Z",
            "url": "https://files.pythonhosted.org/packages/c3/5d/742d10aa12cbd9cade8810e2604cd63cb6699a8b21c6212b0ffc31880f26/openfdcm-0.10.0-cp37-cp37m-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "38ec72fa23325fdd4253c9e1c70c982b45be5686b07ba4453f232e6e52f88efb",
                "md5": "b435c17c66a6304061cb401c8bf828ad",
                "sha256": "e77515441740be2975a09d9e74f2eaef3f1f240e83852e6008b1d44205028478"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b435c17c66a6304061cb401c8bf828ad",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 502258,
            "upload_time": "2024-08-23T08:57:16",
            "upload_time_iso_8601": "2024-08-23T08:57:16.321962Z",
            "url": "https://files.pythonhosted.org/packages/38/ec/72fa23325fdd4253c9e1c70c982b45be5686b07ba4453f232e6e52f88efb/openfdcm-0.10.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "594dcf114e45060df007c415b729ae5c31009b540fd728dc0fe4ef2cde8b01ba",
                "md5": "e1f5a3002f305d80db17dae87775bdb0",
                "sha256": "b527bd3546e069bb1fe40d81606ff382f60711a209e685906d5f41b7cb469041"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "e1f5a3002f305d80db17dae87775bdb0",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 415482,
            "upload_time": "2024-08-23T08:57:18",
            "upload_time_iso_8601": "2024-08-23T08:57:18.159647Z",
            "url": "https://files.pythonhosted.org/packages/59/4d/cf114e45060df007c415b729ae5c31009b540fd728dc0fe4ef2cde8b01ba/openfdcm-0.10.0-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "860c3e47780c300ab6eae1a7b86f069e0b4f8ef2794e1220706907e131a5c5eb",
                "md5": "4fdc5768489ae992235e853a2496d6b3",
                "sha256": "7f374e6148b89ca00836a8ee928170b646a3bf2d6347ddb321bed67b3714ab6b"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "4fdc5768489ae992235e853a2496d6b3",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 611011,
            "upload_time": "2024-08-23T08:57:19",
            "upload_time_iso_8601": "2024-08-23T08:57:19.222238Z",
            "url": "https://files.pythonhosted.org/packages/86/0c/3e47780c300ab6eae1a7b86f069e0b4f8ef2794e1220706907e131a5c5eb/openfdcm-0.10.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ae2342da1d53fa5432226e4dd49488c0167ba624ed0e752fa9319cce7a9bc1ae",
                "md5": "b5528fadc109ec0945a57064b8013a1f",
                "sha256": "e9d995a6b88dc5cb4f00e6d731c3eea829e5077f8c0ca37e9fc3eb6d1c579156"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b5528fadc109ec0945a57064b8013a1f",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 596943,
            "upload_time": "2024-08-23T08:57:20",
            "upload_time_iso_8601": "2024-08-23T08:57:20.381622Z",
            "url": "https://files.pythonhosted.org/packages/ae/23/42da1d53fa5432226e4dd49488c0167ba624ed0e752fa9319cce7a9bc1ae/openfdcm-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "52e4fa44a3994e92a3726abef58eed7f935f40940b6a1a073616297f4c399369",
                "md5": "bf6c74259a28f3fa0c952c61bd066a9b",
                "sha256": "c63fbb131aafb537676baefa035d33b583f22ddff28e0658c87b02267cfaf943"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp38-cp38-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "bf6c74259a28f3fa0c952c61bd066a9b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 1631881,
            "upload_time": "2024-08-23T08:57:21",
            "upload_time_iso_8601": "2024-08-23T08:57:21.664092Z",
            "url": "https://files.pythonhosted.org/packages/52/e4/fa44a3994e92a3726abef58eed7f935f40940b6a1a073616297f4c399369/openfdcm-0.10.0-cp38-cp38-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "833c2b9222f7572f8b161cc8c3b1fb618ea003cc638a61d124052702073073d3",
                "md5": "b1756a069b3bfa9077424e6634236f00",
                "sha256": "cb1fc5bcff343d95a9c373d71094f6da3046be1cc16ec9efbfdae5471a587a06"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp38-cp38-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b1756a069b3bfa9077424e6634236f00",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 1533162,
            "upload_time": "2024-08-23T08:57:22",
            "upload_time_iso_8601": "2024-08-23T08:57:22.929348Z",
            "url": "https://files.pythonhosted.org/packages/83/3c/2b9222f7572f8b161cc8c3b1fb618ea003cc638a61d124052702073073d3/openfdcm-0.10.0-cp38-cp38-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ab8e09c42bb92f2439338bb5e515c35d21d2fb1dd8e3d3a327b7eedbcd345104",
                "md5": "b7f623e217ac88a12aa810f527b57b34",
                "sha256": "5410c5a0cad6a879bec88e5c358104239c1d4df169b57537fd41ff6b2653130f"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b7f623e217ac88a12aa810f527b57b34",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 502408,
            "upload_time": "2024-08-23T08:57:24",
            "upload_time_iso_8601": "2024-08-23T08:57:24.565201Z",
            "url": "https://files.pythonhosted.org/packages/ab/8e/09c42bb92f2439338bb5e515c35d21d2fb1dd8e3d3a327b7eedbcd345104/openfdcm-0.10.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c4e467aed1fb6ef4f52b8ba6be646e6d9e29c289f6c7c7b70f821cb8fca5fd7d",
                "md5": "684823f77d8a4a3cfdee0e88b343ac7e",
                "sha256": "9c3512bcea410d4d0ad024a77eb52f9b28b36b055aa21b2536f141993fccfa70"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "684823f77d8a4a3cfdee0e88b343ac7e",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 415760,
            "upload_time": "2024-08-23T08:57:25",
            "upload_time_iso_8601": "2024-08-23T08:57:25.694815Z",
            "url": "https://files.pythonhosted.org/packages/c4/e4/67aed1fb6ef4f52b8ba6be646e6d9e29c289f6c7c7b70f821cb8fca5fd7d/openfdcm-0.10.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "527fdbe01dcc1904c85c5c8caff867a062874aeb1d2f09f8280f4f90723f7e01",
                "md5": "f4f113bbfe702d1a8b0ec3f42894be4a",
                "sha256": "8f634fc72a73767a6dc2a784fd67e1b384b205ec9b10554463d46bb57f0371fa"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "f4f113bbfe702d1a8b0ec3f42894be4a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 611528,
            "upload_time": "2024-08-23T08:57:27",
            "upload_time_iso_8601": "2024-08-23T08:57:27.268379Z",
            "url": "https://files.pythonhosted.org/packages/52/7f/dbe01dcc1904c85c5c8caff867a062874aeb1d2f09f8280f4f90723f7e01/openfdcm-0.10.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "17c9ffb90999f7b148d152be0e92c751c80e4243db76f55c06d9878969a6c821",
                "md5": "90ab215c993b45c63e66ea58f6545c66",
                "sha256": "19d4a4a668bebdd29eadb994e236b8dd285f8a16918af29fe69ecdeab21e010e"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "90ab215c993b45c63e66ea58f6545c66",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 597093,
            "upload_time": "2024-08-23T08:57:28",
            "upload_time_iso_8601": "2024-08-23T08:57:28.651158Z",
            "url": "https://files.pythonhosted.org/packages/17/c9/ffb90999f7b148d152be0e92c751c80e4243db76f55c06d9878969a6c821/openfdcm-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "169febe9d0bce62aad4d82774d21d389c3b006f4d736c77e1117bcbff7df55a5",
                "md5": "07424b30cccf57025491605b5a70658e",
                "sha256": "1c5cba4872a2989b5118ce5d03e89184f2e8926c78cbe29ec8bef59e77bbdb26"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp39-cp39-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "07424b30cccf57025491605b5a70658e",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 1632594,
            "upload_time": "2024-08-23T08:57:29",
            "upload_time_iso_8601": "2024-08-23T08:57:29.915950Z",
            "url": "https://files.pythonhosted.org/packages/16/9f/ebe9d0bce62aad4d82774d21d389c3b006f4d736c77e1117bcbff7df55a5/openfdcm-0.10.0-cp39-cp39-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d04089c240e20ca6b21c025d7864b560301a17ea3df84fbd2b8a69c699cab7fd",
                "md5": "8b3cff9ddf83921ddb1b0ce5e73129c8",
                "sha256": "adca6959609bda2c8736073c2124467c1227eb556bb8f133760c92de38754697"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8b3cff9ddf83921ddb1b0ce5e73129c8",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 1533504,
            "upload_time": "2024-08-23T08:57:31",
            "upload_time_iso_8601": "2024-08-23T08:57:31.729351Z",
            "url": "https://files.pythonhosted.org/packages/d0/40/89c240e20ca6b21c025d7864b560301a17ea3df84fbd2b8a69c699cab7fd/openfdcm-0.10.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e427f315a1827372a266acfcd2954259f9eb12f928a53cd2630102b22cf856f4",
                "md5": "6b241e4adea68169c2f873f106ffb537",
                "sha256": "fffbd6779613581cbac07cfe3ca413e460f2038efcf4ec1baccfe5dcf3ae54c3"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6b241e4adea68169c2f873f106ffb537",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 498185,
            "upload_time": "2024-08-23T08:57:32",
            "upload_time_iso_8601": "2024-08-23T08:57:32.999591Z",
            "url": "https://files.pythonhosted.org/packages/e4/27/f315a1827372a266acfcd2954259f9eb12f928a53cd2630102b22cf856f4/openfdcm-0.10.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "034eac8cdb5fd68f97e700e77288c72350960e893586ace3cee3dbb42b400853",
                "md5": "67747484be38fa092526bf47ad18400f",
                "sha256": "eb3c367bb73f2ac6a94ff88982f61138f642f85aff390d008daf5a6768442809"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "67747484be38fa092526bf47ad18400f",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 414779,
            "upload_time": "2024-08-23T08:57:34",
            "upload_time_iso_8601": "2024-08-23T08:57:34.478610Z",
            "url": "https://files.pythonhosted.org/packages/03/4e/ac8cdb5fd68f97e700e77288c72350960e893586ace3cee3dbb42b400853/openfdcm-0.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "94e75fdb9b504ce23917cdcee2600303fef356044b2e9cac9a4ec34221734c08",
                "md5": "40ba05f5eb8900d32eefde9ec18eeb43",
                "sha256": "252d67e5e9f7f104d59dc8410f26f86b667957664062008855f3fdc99a1ceb44"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "40ba05f5eb8900d32eefde9ec18eeb43",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 606036,
            "upload_time": "2024-08-23T08:57:36",
            "upload_time_iso_8601": "2024-08-23T08:57:36.137015Z",
            "url": "https://files.pythonhosted.org/packages/94/e7/5fdb9b504ce23917cdcee2600303fef356044b2e9cac9a4ec34221734c08/openfdcm-0.10.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "54ccb113624ceed451b4102ecd8d673331f0b64f9c96af45e8c0e6a17254ee9d",
                "md5": "87793c6cda4c1a3f9bf652a6edd7abe5",
                "sha256": "93c0d91e30e561e88cfbbf5f78550823557072ee9ad88f503af824a3347d7d84"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "87793c6cda4c1a3f9bf652a6edd7abe5",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 593634,
            "upload_time": "2024-08-23T08:57:37",
            "upload_time_iso_8601": "2024-08-23T08:57:37.580946Z",
            "url": "https://files.pythonhosted.org/packages/54/cc/b113624ceed451b4102ecd8d673331f0b64f9c96af45e8c0e6a17254ee9d/openfdcm-0.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d3c89d797a506948a172fe59cdba6ce0ebb433b43d5a8ff22c0ef92c8dda4761",
                "md5": "866d1699219c443f394795f902a775a0",
                "sha256": "0e4b8eb4350f26f11a14163e68b4b256af7ba030511ea66db7a23fa917893b07"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "866d1699219c443f394795f902a775a0",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.7",
            "size": 501232,
            "upload_time": "2024-08-23T08:57:38",
            "upload_time_iso_8601": "2024-08-23T08:57:38.805335Z",
            "url": "https://files.pythonhosted.org/packages/d3/c8/9d797a506948a172fe59cdba6ce0ebb433b43d5a8ff22c0ef92c8dda4761/openfdcm-0.10.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0621d5a68ece7cb8ab2b0cf0780433ad0035fbf26f1ea78b41285406f5fb8175",
                "md5": "f1199dbc7418827249e9dc4dd87ccb26",
                "sha256": "c075ae2feabcba2882e8bd39576fe9c081cc6240977f34055030ebf48f78778a"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "f1199dbc7418827249e9dc4dd87ccb26",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.7",
            "size": 605595,
            "upload_time": "2024-08-23T08:57:40",
            "upload_time_iso_8601": "2024-08-23T08:57:40.406973Z",
            "url": "https://files.pythonhosted.org/packages/06/21/d5a68ece7cb8ab2b0cf0780433ad0035fbf26f1ea78b41285406f5fb8175/openfdcm-0.10.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4d031fec49f61ac441f17ae25022eeff1408f3cb0085eb349535f9917c53046d",
                "md5": "cef0f5bbc61b927c49570e23dcb3fc86",
                "sha256": "97f8aec9f5be2bc6e57c58faf6518ad8e2c6ac4b96bc82aa41ed964b177311ac"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cef0f5bbc61b927c49570e23dcb3fc86",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.7",
            "size": 593160,
            "upload_time": "2024-08-23T08:57:41",
            "upload_time_iso_8601": "2024-08-23T08:57:41.594623Z",
            "url": "https://files.pythonhosted.org/packages/4d/03/1fec49f61ac441f17ae25022eeff1408f3cb0085eb349535f9917c53046d/openfdcm-0.10.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "62c0caedd56f32defec21a87961727d5d22fcc929d824b441663691dfe6f9e7c",
                "md5": "7d55310e292062e8c3c69fa74a90755c",
                "sha256": "89ddbe035d54891c3557f74091826e67cac597d0cef169a761c4d660bfe6d04c"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7d55310e292062e8c3c69fa74a90755c",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.7",
            "size": 501541,
            "upload_time": "2024-08-23T08:57:42",
            "upload_time_iso_8601": "2024-08-23T08:57:42.818952Z",
            "url": "https://files.pythonhosted.org/packages/62/c0/caedd56f32defec21a87961727d5d22fcc929d824b441663691dfe6f9e7c/openfdcm-0.10.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "98a3a26212643fb3caf37f9e8ce3284d818e19a6bfb88a00584ab01002348bc4",
                "md5": "5dba9e8216831e36b15b1901dc327304",
                "sha256": "fcf85dbc53a45878f0c1ad0d419ef942bea695b53d54399063cefc50de1d40c9"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5dba9e8216831e36b15b1901dc327304",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.7",
            "size": 414656,
            "upload_time": "2024-08-23T08:57:44",
            "upload_time_iso_8601": "2024-08-23T08:57:44.111446Z",
            "url": "https://files.pythonhosted.org/packages/98/a3/a26212643fb3caf37f9e8ce3284d818e19a6bfb88a00584ab01002348bc4/openfdcm-0.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c128d196fd5307121390f818ff8f1e138f8a2d6eed14bef154c1e279e350d43d",
                "md5": "b0e96a0203ddb448b625d610195a6dcc",
                "sha256": "1b1fedbf30d2e54e0cf9bfde98e8a067c4ef560f78602eef331baa4eccbdbe5b"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "b0e96a0203ddb448b625d610195a6dcc",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.7",
            "size": 606530,
            "upload_time": "2024-08-23T08:57:45",
            "upload_time_iso_8601": "2024-08-23T08:57:45.300734Z",
            "url": "https://files.pythonhosted.org/packages/c1/28/d196fd5307121390f818ff8f1e138f8a2d6eed14bef154c1e279e350d43d/openfdcm-0.10.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b79acdc64d086004817631b17aaf28b29fe0ae4efc92d08388f04ffc4d73a5a6",
                "md5": "5d0de0ff737b2f907dbe18fa759e9f3d",
                "sha256": "828e10e4bc5e0a86f65160eff41d1447ddd29e21affa40d28fd7df91c96348ff"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5d0de0ff737b2f907dbe18fa759e9f3d",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.7",
            "size": 593302,
            "upload_time": "2024-08-23T08:57:46",
            "upload_time_iso_8601": "2024-08-23T08:57:46.514290Z",
            "url": "https://files.pythonhosted.org/packages/b7/9a/cdc64d086004817631b17aaf28b29fe0ae4efc92d08388f04ffc4d73a5a6/openfdcm-0.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aff5b98176a8ec2974e9c2f3a0beae32b6a1c9aa9da4fad4a0a462df8fa8c4ad",
                "md5": "ffea4237b0d49dcb7bcb7b9152cf5cb2",
                "sha256": "50ffc6bf7371d97572a4b2f0a7e7acd5013d6a05b5655158285cd122d64bc093"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ffea4237b0d49dcb7bcb7b9152cf5cb2",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.7",
            "size": 498104,
            "upload_time": "2024-08-23T08:57:47",
            "upload_time_iso_8601": "2024-08-23T08:57:47.702779Z",
            "url": "https://files.pythonhosted.org/packages/af/f5/b98176a8ec2974e9c2f3a0beae32b6a1c9aa9da4fad4a0a462df8fa8c4ad/openfdcm-0.10.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7258ae9539321efe3bddfbad6b21b9f34bd376bcabd63fe5da24cb1d11b95b39",
                "md5": "3c16d4d1e8aa3c96238da4c4e97193ce",
                "sha256": "619c9a1721ce77a2ba14bdefe24c1c71ba99f3a440e9d66a8be7ee5dac2bd542"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "3c16d4d1e8aa3c96238da4c4e97193ce",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.7",
            "size": 414784,
            "upload_time": "2024-08-23T08:57:48",
            "upload_time_iso_8601": "2024-08-23T08:57:48.943139Z",
            "url": "https://files.pythonhosted.org/packages/72/58/ae9539321efe3bddfbad6b21b9f34bd376bcabd63fe5da24cb1d11b95b39/openfdcm-0.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "52a4b70c827110b54ba1b9a6bd3af55978bb5200d0ead11e11dfecf88322a359",
                "md5": "04003911b140d29db14899be8c34066c",
                "sha256": "413913e0d2bc84da6ce8ad1302fcf21fdb4c59cad2e65ce84f29805e2ced20be"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "04003911b140d29db14899be8c34066c",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.7",
            "size": 605960,
            "upload_time": "2024-08-23T08:57:50",
            "upload_time_iso_8601": "2024-08-23T08:57:50.134288Z",
            "url": "https://files.pythonhosted.org/packages/52/a4/b70c827110b54ba1b9a6bd3af55978bb5200d0ead11e11dfecf88322a359/openfdcm-0.10.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f720ff31fabd6aefb725e2cfd0b549feb330e498e36815cdf7aaea74aae1664d",
                "md5": "87d6e93c13b46e4a423dfb24c3702983",
                "sha256": "4fc867cf1b6079b3233b150c258db5eb54e78a7d1ee8424e0a8a35ab0f6426e3"
            },
            "downloads": -1,
            "filename": "openfdcm-0.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "87d6e93c13b46e4a423dfb24c3702983",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.7",
            "size": 593530,
            "upload_time": "2024-08-23T08:57:52",
            "upload_time_iso_8601": "2024-08-23T08:57:52.604291Z",
            "url": "https://files.pythonhosted.org/packages/f7/20/ff31fabd6aefb725e2cfd0b549feb330e498e36815cdf7aaea74aae1664d/openfdcm-0.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-23 08:56:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Innoptech",
    "github_project": "OpenFDCM",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "openfdcm"
}
        
Elapsed time: 0.29984s