pye57


Namepye57 JSON
Version 0.4.18 PyPI version JSON
download
home_pagehttps://www.github.com/davidcaron/pye57
SummaryPython .e57 files reader/writer
upload_time2025-07-13 14:28:56
maintainerGraham Knapp
docs_urlNone
authorDavid Caron
requires_python>=3.9
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# pye57

[![PyPI](https://img.shields.io/pypi/v/pye57.svg)](https://pypi.org/project/pye57)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pye57.svg)](https://pypi.org/project/pye57)
![GitHub](https://img.shields.io/github/actions/workflow/status/davidcaron/pye57/build.yml?branch=master)

Python wrapper of [LibE57Format](https://github.com/asmaloney/libE57Format) to read and write .e57 point cloud files

## Example usage

```python
import numpy as np
import pye57

e57 = pye57.E57("e57_file.e57")

# read scan at index 0
data = e57.read_scan(0)

# 'data' is a dictionary with the point types as keys
assert isinstance(data["cartesianX"], np.ndarray)
assert isinstance(data["cartesianY"], np.ndarray)
assert isinstance(data["cartesianZ"], np.ndarray)

# other attributes can be read using:
data = e57.read_scan(0, intensity=True, colors=True, row_column=True)
assert isinstance(data["cartesianX"], np.ndarray)
assert isinstance(data["cartesianY"], np.ndarray)
assert isinstance(data["cartesianZ"], np.ndarray)
assert isinstance(data["intensity"], np.ndarray)
assert isinstance(data["colorRed"], np.ndarray)
assert isinstance(data["colorGreen"], np.ndarray)
assert isinstance(data["colorBlue"], np.ndarray)
assert isinstance(data["rowIndex"], np.ndarray)
assert isinstance(data["columnIndex"], np.ndarray)

# the 'read_scan' method filters points using the 'cartesianInvalidState' field
# if you want to get everything as raw, untransformed data, use:
data_raw = e57.read_scan_raw(0)

# writing is also possible, but only using raw data for now
with pye57.E57("e57_file_write.e57", mode='w') as e57_write:
    e57_write.write_scan_raw(data_raw)
    # you can specify a header to copy information from
    e57_write.write_scan_raw(data_raw, scan_header=e57.get_header(0))

# the ScanHeader object wraps most of the scan information:
header = e57.get_header(0)
print(header.point_count)
print(header.rotation_matrix)
print(header.translation)

# all the header information can be printed using:
for line in header.pretty_print():
    print(line)

# the scan position can be accessed with:
position_scan_0 = e57.scan_position(0)

# the binding is very close to the E57Foundation API
# you can modify the nodes easily from python
imf = e57.image_file
root = imf.root()
data3d = root["data3D"]
scan_0 = data3d[0]
translation_x = scan_0["pose"]["translation"]["x"]
```

## Installation

On linux, Windows or Apple Silicon:

`python -m pip install pye57`

On macOS with Intel CPU you can try to build from source (advanced users):

## Building from source (for developers)

### Cloning the repository with required submodule

Clone a new repository along with the libe57Format submodule

`git clone https://github.com/davidcaron/pye57.git --recursive`

If the repository has already been previously cloned, but without the --recursive flag

```Bash
cd pye57 # go to the cloned repository
git submodule init # this will initialise the submodules in the repository
git submodule update # this will update the submodules in the repository
```

### Dependencies on Linux

Install libxerces-c-dev first.

`sudo apt install libxerces-c-dev`

### Dependencies on Windows

To get xerces-c, you can either build from source or if you're using conda:

`conda install -y xerces-c`

### Dependencies on MacOS

To get xerces-c, run:

`bash ./scripts/install_xerces_c.sh`

### Run `pip install` from the repo source

```Bash
cd pye57
python -m pip install .
```

### Uninstalling

Use pip again

```Bash
python -m pip uninstall pye57
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://www.github.com/davidcaron/pye57",
    "name": "pye57",
    "maintainer": "Graham Knapp",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "graham.knapp@gmail.com",
    "keywords": null,
    "author": "David Caron",
    "author_email": "dcaron05@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/77/9f/e49ab6ca2c5b785baf92656d8e61ee1ec7153597e4e03dd79aad92df4fda/pye57-0.4.18.tar.gz",
    "platform": null,
    "description": "\n# pye57\n\n[![PyPI](https://img.shields.io/pypi/v/pye57.svg)](https://pypi.org/project/pye57)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pye57.svg)](https://pypi.org/project/pye57)\n![GitHub](https://img.shields.io/github/actions/workflow/status/davidcaron/pye57/build.yml?branch=master)\n\nPython wrapper of [LibE57Format](https://github.com/asmaloney/libE57Format) to read and write .e57 point cloud files\n\n## Example usage\n\n```python\nimport numpy as np\nimport pye57\n\ne57 = pye57.E57(\"e57_file.e57\")\n\n# read scan at index 0\ndata = e57.read_scan(0)\n\n# 'data' is a dictionary with the point types as keys\nassert isinstance(data[\"cartesianX\"], np.ndarray)\nassert isinstance(data[\"cartesianY\"], np.ndarray)\nassert isinstance(data[\"cartesianZ\"], np.ndarray)\n\n# other attributes can be read using:\ndata = e57.read_scan(0, intensity=True, colors=True, row_column=True)\nassert isinstance(data[\"cartesianX\"], np.ndarray)\nassert isinstance(data[\"cartesianY\"], np.ndarray)\nassert isinstance(data[\"cartesianZ\"], np.ndarray)\nassert isinstance(data[\"intensity\"], np.ndarray)\nassert isinstance(data[\"colorRed\"], np.ndarray)\nassert isinstance(data[\"colorGreen\"], np.ndarray)\nassert isinstance(data[\"colorBlue\"], np.ndarray)\nassert isinstance(data[\"rowIndex\"], np.ndarray)\nassert isinstance(data[\"columnIndex\"], np.ndarray)\n\n# the 'read_scan' method filters points using the 'cartesianInvalidState' field\n# if you want to get everything as raw, untransformed data, use:\ndata_raw = e57.read_scan_raw(0)\n\n# writing is also possible, but only using raw data for now\nwith pye57.E57(\"e57_file_write.e57\", mode='w') as e57_write:\n    e57_write.write_scan_raw(data_raw)\n    # you can specify a header to copy information from\n    e57_write.write_scan_raw(data_raw, scan_header=e57.get_header(0))\n\n# the ScanHeader object wraps most of the scan information:\nheader = e57.get_header(0)\nprint(header.point_count)\nprint(header.rotation_matrix)\nprint(header.translation)\n\n# all the header information can be printed using:\nfor line in header.pretty_print():\n    print(line)\n\n# the scan position can be accessed with:\nposition_scan_0 = e57.scan_position(0)\n\n# the binding is very close to the E57Foundation API\n# you can modify the nodes easily from python\nimf = e57.image_file\nroot = imf.root()\ndata3d = root[\"data3D\"]\nscan_0 = data3d[0]\ntranslation_x = scan_0[\"pose\"][\"translation\"][\"x\"]\n```\n\n## Installation\n\nOn linux, Windows or Apple Silicon:\n\n`python -m pip install pye57`\n\nOn macOS with Intel CPU you can try to build from source (advanced users):\n\n## Building from source (for developers)\n\n### Cloning the repository with required submodule\n\nClone a new repository along with the libe57Format submodule\n\n`git clone https://github.com/davidcaron/pye57.git --recursive`\n\nIf the repository has already been previously cloned, but without the --recursive flag\n\n```Bash\ncd pye57 # go to the cloned repository\ngit submodule init # this will initialise the submodules in the repository\ngit submodule update # this will update the submodules in the repository\n```\n\n### Dependencies on Linux\n\nInstall libxerces-c-dev first.\n\n`sudo apt install libxerces-c-dev`\n\n### Dependencies on Windows\n\nTo get xerces-c, you can either build from source or if you're using conda:\n\n`conda install -y xerces-c`\n\n### Dependencies on MacOS\n\nTo get xerces-c, run:\n\n`bash ./scripts/install_xerces_c.sh`\n\n### Run `pip install` from the repo source\n\n```Bash\ncd pye57\npython -m pip install .\n```\n\n### Uninstalling\n\nUse pip again\n\n```Bash\npython -m pip uninstall pye57\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python .e57 files reader/writer",
    "version": "0.4.18",
    "project_urls": {
        "Homepage": "https://www.github.com/davidcaron/pye57"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "75e4d1da66f8796f41109de5b593aaffee7646dd5bf3158ac19edd879beb1bd2",
                "md5": "33f1a2a447e2fac2a7a8b6c5a676b290",
                "sha256": "8cdaea9ef06125cb371336544cb971d08e2b2e453d2895d626afad06d86a501f"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "33f1a2a447e2fac2a7a8b6c5a676b290",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 2665481,
            "upload_time": "2025-07-13T14:28:31",
            "upload_time_iso_8601": "2025-07-13T14:28:31.244893Z",
            "url": "https://files.pythonhosted.org/packages/75/e4/d1da66f8796f41109de5b593aaffee7646dd5bf3158ac19edd879beb1bd2/pye57-0.4.18-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c4fb00c42b35d3ddc7f69e8d32539bb77f248a4c647d7010604fb19cac52f637",
                "md5": "e600fed3886b13036f90b3021b3edfe4",
                "sha256": "b53b85f8c2b8bf6099464659a075ed145ff31669f5a73a4f6900fcda7b1c442a"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e600fed3886b13036f90b3021b3edfe4",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 17170443,
            "upload_time": "2025-07-13T14:28:33",
            "upload_time_iso_8601": "2025-07-13T14:28:33.137772Z",
            "url": "https://files.pythonhosted.org/packages/c4/fb/00c42b35d3ddc7f69e8d32539bb77f248a4c647d7010604fb19cac52f637/pye57-0.4.18-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0b77b6c558f34a4942ce4e81a62689a8b1f28180475814b45b26aadb0a18ca38",
                "md5": "248fa49732fbf0a50b2fd553b6e8be20",
                "sha256": "d5d48e14792d94f07706ad60ef04357532a36ae165737fd3504cf26ee145f8e6"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "248fa49732fbf0a50b2fd553b6e8be20",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 1127331,
            "upload_time": "2025-07-13T14:28:35",
            "upload_time_iso_8601": "2025-07-13T14:28:35.295185Z",
            "url": "https://files.pythonhosted.org/packages/0b/77/b6c558f34a4942ce4e81a62689a8b1f28180475814b45b26aadb0a18ca38/pye57-0.4.18-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5d176e50c2f79ef8b57c94d48eaf30ef2f97facec3ab9408c87b82b4660f80bb",
                "md5": "3188a9ce814a60743cb5d7393ef2fa50",
                "sha256": "512ce1d71342184448a01a50f298376c57e6aa001dafe1f562f072be0cd529db"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "3188a9ce814a60743cb5d7393ef2fa50",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 2666342,
            "upload_time": "2025-07-13T14:28:36",
            "upload_time_iso_8601": "2025-07-13T14:28:36.628804Z",
            "url": "https://files.pythonhosted.org/packages/5d/17/6e50c2f79ef8b57c94d48eaf30ef2f97facec3ab9408c87b82b4660f80bb/pye57-0.4.18-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "73494db6ea87d037b0925bf8d591b2eb5b1034f7e8eca18082697232025ddc6a",
                "md5": "b0a3727aee0f6e5bc07cc83fbf6b3f7d",
                "sha256": "241726d62189c41f58aebb27d93b7c1769663befce30ec01df24bb114989abbe"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b0a3727aee0f6e5bc07cc83fbf6b3f7d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 17194117,
            "upload_time": "2025-07-13T14:28:38",
            "upload_time_iso_8601": "2025-07-13T14:28:38.369761Z",
            "url": "https://files.pythonhosted.org/packages/73/49/4db6ea87d037b0925bf8d591b2eb5b1034f7e8eca18082697232025ddc6a/pye57-0.4.18-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ff385756c929c6da80a8d5fabd0cc933dabeebfa2187d23e2fadb9940b2c55a7",
                "md5": "6a6249436accfe149c5a15ad4e743c65",
                "sha256": "30fb09e18dc6ad59edf7298113bb6b53ecc01a99860f2dcd33e9901643814ce8"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6a6249436accfe149c5a15ad4e743c65",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 1127678,
            "upload_time": "2025-07-13T14:28:40",
            "upload_time_iso_8601": "2025-07-13T14:28:40.442081Z",
            "url": "https://files.pythonhosted.org/packages/ff/38/5756c929c6da80a8d5fabd0cc933dabeebfa2187d23e2fadb9940b2c55a7/pye57-0.4.18-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f1a412ca5adb18468bd81f7faa2e68b451dd892b18c6c767f8209e24a58b33bd",
                "md5": "6aee33507257ab4194900dc6a1d4a714",
                "sha256": "17a069828d39b121f79e7bd086c05b69e38235ac7245db2198ea252f6fc6f884"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "6aee33507257ab4194900dc6a1d4a714",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 2672858,
            "upload_time": "2025-07-13T14:28:41",
            "upload_time_iso_8601": "2025-07-13T14:28:41.868756Z",
            "url": "https://files.pythonhosted.org/packages/f1/a4/12ca5adb18468bd81f7faa2e68b451dd892b18c6c767f8209e24a58b33bd/pye57-0.4.18-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cfb652647fa92c3c1328d37c904015d6170d55928b2fa881e2f523527826c390",
                "md5": "82b5137f1f05ccc735b91b4ec6225534",
                "sha256": "20756d32bd2d9a91c51786c3820ad85d8142f99bf19fd608b47d9f752775800e"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "82b5137f1f05ccc735b91b4ec6225534",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 17256856,
            "upload_time": "2025-07-13T14:28:43",
            "upload_time_iso_8601": "2025-07-13T14:28:43.628677Z",
            "url": "https://files.pythonhosted.org/packages/cf/b6/52647fa92c3c1328d37c904015d6170d55928b2fa881e2f523527826c390/pye57-0.4.18-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2a6e51a478d766c686d3bf81bcfb1097bc0b6e642e2e710aa330d0de8e8bcb04",
                "md5": "ea756cb319f9c7d040f447f4897684bb",
                "sha256": "6f46aa9d370d9904fda416a7183404d1c19fb48fbd59fa14a6cc35d0edc7e096"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ea756cb319f9c7d040f447f4897684bb",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 1129200,
            "upload_time": "2025-07-13T14:28:45",
            "upload_time_iso_8601": "2025-07-13T14:28:45.384030Z",
            "url": "https://files.pythonhosted.org/packages/2a/6e/51a478d766c686d3bf81bcfb1097bc0b6e642e2e710aa330d0de8e8bcb04/pye57-0.4.18-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cd7c001e51a557e8821218ed6040e3b10c35b3deac4cb0d6e5039f887b5125fe",
                "md5": "150d0c0bc40fb804cd49a5ac14cb5b3f",
                "sha256": "6ce44ab07095c7728a8488c8422f529d384a1aadc1aed96f5786e085a9019899"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "150d0c0bc40fb804cd49a5ac14cb5b3f",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 2673008,
            "upload_time": "2025-07-13T14:28:46",
            "upload_time_iso_8601": "2025-07-13T14:28:46.878853Z",
            "url": "https://files.pythonhosted.org/packages/cd/7c/001e51a557e8821218ed6040e3b10c35b3deac4cb0d6e5039f887b5125fe/pye57-0.4.18-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6f85bc0a4684c85b63861716f78c919f72cf48dd0d41b3ade2192e114a81418b",
                "md5": "5cb9c6ebd604a1a6f9ed82fe03ef0e45",
                "sha256": "2a4a42871b457e4958a5727ff2ad28e486948510a4430bed11ce9f5eb2127661"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5cb9c6ebd604a1a6f9ed82fe03ef0e45",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 17261892,
            "upload_time": "2025-07-13T14:28:48",
            "upload_time_iso_8601": "2025-07-13T14:28:48.668277Z",
            "url": "https://files.pythonhosted.org/packages/6f/85/bc0a4684c85b63861716f78c919f72cf48dd0d41b3ade2192e114a81418b/pye57-0.4.18-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "173e7ddffde52d5064f36fc920b0988be767f44a39da502218988ad68750af01",
                "md5": "1e0a92a06266dca0752f4db84bde5b16",
                "sha256": "4cc771c75e883fe3f607b419dcb1add1f5f94ca6baed09489dd289c8b1bff07b"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1e0a92a06266dca0752f4db84bde5b16",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 1129252,
            "upload_time": "2025-07-13T14:28:50",
            "upload_time_iso_8601": "2025-07-13T14:28:50.713295Z",
            "url": "https://files.pythonhosted.org/packages/17/3e/7ddffde52d5064f36fc920b0988be767f44a39da502218988ad68750af01/pye57-0.4.18-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "42f77d1f688de3e4304ab0f41c129e2a8fc020e2a905a0abc42735eaa0a95199",
                "md5": "41afbc914315a16e6716cf245a15febf",
                "sha256": "85fa9d70e595712bd5b2dd1dd644c688085986fbd50da497fd4deb749f68b34c"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "41afbc914315a16e6716cf245a15febf",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 2665685,
            "upload_time": "2025-07-13T14:28:51",
            "upload_time_iso_8601": "2025-07-13T14:28:51.868828Z",
            "url": "https://files.pythonhosted.org/packages/42/f7/7d1f688de3e4304ab0f41c129e2a8fc020e2a905a0abc42735eaa0a95199/pye57-0.4.18-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "19ce66028f969afc73d231be5b210462291aeb6aaec486187eb7cb02b18ee21f",
                "md5": "01b9f77e9dc5a959f8d1e5c2e2d0d77d",
                "sha256": "62efdf8a0d625fc701d172da7823d1571884dc5154fd3ebcdf492395e335ec42"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "01b9f77e9dc5a959f8d1e5c2e2d0d77d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 17169491,
            "upload_time": "2025-07-13T14:28:53",
            "upload_time_iso_8601": "2025-07-13T14:28:53.663557Z",
            "url": "https://files.pythonhosted.org/packages/19/ce/66028f969afc73d231be5b210462291aeb6aaec486187eb7cb02b18ee21f/pye57-0.4.18-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "26691ccfaba9c09ca4feb3cb74d59ce91186dfe3eedcb3c5037531e80bee0732",
                "md5": "716577849f881591672b39fcf69479d9",
                "sha256": "4d2dea9b1ec6123237b406f284887a692197bbf720e203629b462f6f3ebdaea2"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "716577849f881591672b39fcf69479d9",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 1145433,
            "upload_time": "2025-07-13T14:28:55",
            "upload_time_iso_8601": "2025-07-13T14:28:55.319840Z",
            "url": "https://files.pythonhosted.org/packages/26/69/1ccfaba9c09ca4feb3cb74d59ce91186dfe3eedcb3c5037531e80bee0732/pye57-0.4.18-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "779fe49ab6ca2c5b785baf92656d8e61ee1ec7153597e4e03dd79aad92df4fda",
                "md5": "e4cdcd68cfce8f0a9b5bc1d20560e011",
                "sha256": "981d01aa83408abe0ddb36cf05cee7a5ed20b2d7f211cba0952fe95f8bc97bda"
            },
            "downloads": -1,
            "filename": "pye57-0.4.18.tar.gz",
            "has_sig": false,
            "md5_digest": "e4cdcd68cfce8f0a9b5bc1d20560e011",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 474355,
            "upload_time": "2025-07-13T14:28:56",
            "upload_time_iso_8601": "2025-07-13T14:28:56.674143Z",
            "url": "https://files.pythonhosted.org/packages/77/9f/e49ab6ca2c5b785baf92656d8e61ee1ec7153597e4e03dd79aad92df4fda/pye57-0.4.18.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-13 14:28:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "davidcaron",
    "github_project": "pye57",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pye57"
}
        
Elapsed time: 1.65413s