# pye57
[](https://pypi.org/project/pye57)
[](https://pypi.org/project/pye57)

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
e57_write = pye57.E57("e57_file_write.e57", mode='w')
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/c4/cf/78db49128add0c71d3433283aa36be865df9bdc557067542e9d5a6182dc8/pye57-0.4.16.tar.gz",
"platform": null,
"description": "\n# pye57\n\n[](https://pypi.org/project/pye57)\n[](https://pypi.org/project/pye57)\n\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\ne57_write = pye57.E57(\"e57_file_write.e57\", mode='w')\ne57_write.write_scan_raw(data_raw)\n# you can specify a header to copy information from\ne57_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.16",
"project_urls": {
"Homepage": "https://www.github.com/davidcaron/pye57"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "11a9b1de1cd716af67083a39946811806374978462ce62f7dac04d9ea54baf86",
"md5": "63a2846d0dffccd65ab13eec0f64f0d2",
"sha256": "ef4b476e445bc7213114f02c59ce483f9962bc7ba07f43b2844c6a7902a62ff7"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "63a2846d0dffccd65ab13eec0f64f0d2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 2650337,
"upload_time": "2024-12-02T09:13:40",
"upload_time_iso_8601": "2024-12-02T09:13:40.456100Z",
"url": "https://files.pythonhosted.org/packages/11/a9/b1de1cd716af67083a39946811806374978462ce62f7dac04d9ea54baf86/pye57-0.4.16-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a4a1dbc8209c4bf3e2ebfc4000455cf61fab6ad06142604d4f17559f74ec18dc",
"md5": "0a3ed4754783ae88aca7ad721e101d18",
"sha256": "3bf3cece711868cd5ca831471fc135183eb4b9eed0bbcc2acc6887880b4b2f52"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "0a3ed4754783ae88aca7ad721e101d18",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 17995137,
"upload_time": "2024-12-02T09:13:42",
"upload_time_iso_8601": "2024-12-02T09:13:42.346515Z",
"url": "https://files.pythonhosted.org/packages/a4/a1/dbc8209c4bf3e2ebfc4000455cf61fab6ad06142604d4f17559f74ec18dc/pye57-0.4.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c7b3f9250cb237b394386503276099a1a27fd3c34a354fcb5c0eab6a98d4bd89",
"md5": "ba55e0354380c97ecee7c846a154c937",
"sha256": "1e4a02d9361eef56b4536ec3526df8ef9500e849200179b5abbb23e9a532a8cd"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "ba55e0354380c97ecee7c846a154c937",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 1124878,
"upload_time": "2024-12-02T09:13:45",
"upload_time_iso_8601": "2024-12-02T09:13:45.292927Z",
"url": "https://files.pythonhosted.org/packages/c7/b3/f9250cb237b394386503276099a1a27fd3c34a354fcb5c0eab6a98d4bd89/pye57-0.4.16-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b8c0f8c4dd18a122cdf49b252900d62d2dc0a1b9cc2c69e9d079e90ccabb2556",
"md5": "01c0800528b47e34ad6f2cb96f28322d",
"sha256": "413bca5848f4570e450f0fd458f6321a37855b9a31e1d2b6ed2d21eed810f336"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "01c0800528b47e34ad6f2cb96f28322d",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 2651515,
"upload_time": "2024-12-02T09:13:47",
"upload_time_iso_8601": "2024-12-02T09:13:47.236921Z",
"url": "https://files.pythonhosted.org/packages/b8/c0/f8c4dd18a122cdf49b252900d62d2dc0a1b9cc2c69e9d079e90ccabb2556/pye57-0.4.16-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b15aff0dd34995b9a34f5c81cc23428637fd9055cd288baa880f21927267a6ed",
"md5": "513a239f532f5a0f03ea708ad5ed8464",
"sha256": "d2a59d0a4d763fd3cbd2b8658d4c96eac38648fec1200cb4b63530e4a98ea2bb"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "513a239f532f5a0f03ea708ad5ed8464",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 18019509,
"upload_time": "2024-12-02T09:13:48",
"upload_time_iso_8601": "2024-12-02T09:13:48.747224Z",
"url": "https://files.pythonhosted.org/packages/b1/5a/ff0dd34995b9a34f5c81cc23428637fd9055cd288baa880f21927267a6ed/pye57-0.4.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "91790140c935d486fc70272d5faa477ebf2424830a00ec8c23b389779f3c08b7",
"md5": "b83d1179f92bcd313066eb39fcefa8c3",
"sha256": "b7de7159ab56fac52b6a873cc7b2cc3898565b295b611e7011d26da9012da007"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "b83d1179f92bcd313066eb39fcefa8c3",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 1121915,
"upload_time": "2024-12-02T09:13:53",
"upload_time_iso_8601": "2024-12-02T09:13:53.740951Z",
"url": "https://files.pythonhosted.org/packages/91/79/0140c935d486fc70272d5faa477ebf2424830a00ec8c23b389779f3c08b7/pye57-0.4.16-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "96438201465bc4f8218892733eba6a3d0d437db25282f4d98c0ee7d030590788",
"md5": "c726bc35a718cdc9139032caf201c3ad",
"sha256": "1d91ecc6f9f9303dfd7fa918d40ffb94dae92ffbad7e3b56303af27d851fcf05"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "c726bc35a718cdc9139032caf201c3ad",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2654369,
"upload_time": "2024-12-02T09:13:55",
"upload_time_iso_8601": "2024-12-02T09:13:55.831793Z",
"url": "https://files.pythonhosted.org/packages/96/43/8201465bc4f8218892733eba6a3d0d437db25282f4d98c0ee7d030590788/pye57-0.4.16-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "16e1f778a1a07c590c4c05f3fcbd2aff0d33c1ebbcdb451a6f8771a085c61c37",
"md5": "ceff7dc7c3ca962f92baeba09abc7d6b",
"sha256": "8f1d2b5c3378e2416a2b5b4a713edc91d8a14d7e33658bec4ddd459de66386df"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "ceff7dc7c3ca962f92baeba09abc7d6b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 18019336,
"upload_time": "2024-12-02T09:13:58",
"upload_time_iso_8601": "2024-12-02T09:13:58.033995Z",
"url": "https://files.pythonhosted.org/packages/16/e1/f778a1a07c590c4c05f3fcbd2aff0d33c1ebbcdb451a6f8771a085c61c37/pye57-0.4.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cc24a57bf6e4e1ebe065704b991dbe45de271da0bee7c1b161486d4063f8fc71",
"md5": "79958a0b8b8a9240d57c98a78e0a4501",
"sha256": "7b0f2bc8d6b081eb71ca289adefb35efb28c6b3588a12c46b4add3700341b722"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "79958a0b8b8a9240d57c98a78e0a4501",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 1126989,
"upload_time": "2024-12-02T09:14:00",
"upload_time_iso_8601": "2024-12-02T09:14:00.651120Z",
"url": "https://files.pythonhosted.org/packages/cc/24/a57bf6e4e1ebe065704b991dbe45de271da0bee7c1b161486d4063f8fc71/pye57-0.4.16-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5b03c86b68303b2bd7379660cbe4d4298cdd31a4c5d31bbb7230e3494efb49bb",
"md5": "7abca36f6525737545692e663839cefb",
"sha256": "3f397449daed114e7513fa54a7abe9640f8578973e0f91b6bf6a1166accabf51"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "7abca36f6525737545692e663839cefb",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 2654456,
"upload_time": "2024-12-02T09:14:02",
"upload_time_iso_8601": "2024-12-02T09:14:02.597744Z",
"url": "https://files.pythonhosted.org/packages/5b/03/c86b68303b2bd7379660cbe4d4298cdd31a4c5d31bbb7230e3494efb49bb/pye57-0.4.16-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7dd34d2b5eb76de1a13d7843e35c07ef85efadfab9f3ff50a95c93a1d3a301b0",
"md5": "e39afbcc0c7664cce8c8cd411da2678f",
"sha256": "d4da86954ce4cc31237d6359993e3c77f3ac98a3e5452650be99798f4dc143d2"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "e39afbcc0c7664cce8c8cd411da2678f",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 18019761,
"upload_time": "2024-12-02T09:14:04",
"upload_time_iso_8601": "2024-12-02T09:14:04.750120Z",
"url": "https://files.pythonhosted.org/packages/7d/d3/4d2b5eb76de1a13d7843e35c07ef85efadfab9f3ff50a95c93a1d3a301b0/pye57-0.4.16-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9c0890fbdffb91e89fb286e6c756a4cfc4f801e6ca3ee3ded3ba6977ce6616da",
"md5": "4814c6a4465082ba364faaf1c904bb16",
"sha256": "6d1fa32f643c17c520b370a4051cbdb02602e645c22ee70a07ee125ff0767b22"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "4814c6a4465082ba364faaf1c904bb16",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 1126981,
"upload_time": "2024-12-02T09:14:07",
"upload_time_iso_8601": "2024-12-02T09:14:07.514390Z",
"url": "https://files.pythonhosted.org/packages/9c/08/90fbdffb91e89fb286e6c756a4cfc4f801e6ca3ee3ded3ba6977ce6616da/pye57-0.4.16-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "37c669fd33e49e117646bdbf4fbcd424cb6655885c7b28f697f6e418469970f1",
"md5": "af99e556a4389da7212bf97c801c3472",
"sha256": "de6686687c79e1ac0c82149d3e9aea5639241f7c88b8fc3aa90b89d0508b183c"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "af99e556a4389da7212bf97c801c3472",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 2650301,
"upload_time": "2024-12-02T09:14:09",
"upload_time_iso_8601": "2024-12-02T09:14:09.101046Z",
"url": "https://files.pythonhosted.org/packages/37/c6/69fd33e49e117646bdbf4fbcd424cb6655885c7b28f697f6e418469970f1/pye57-0.4.16-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "28305f9ea646d564382d6e294d2e4e9ed0249372d5b1afbd8832c6c71507dfb3",
"md5": "9e6c94227469c544667d2f47377d8771",
"sha256": "d7010eb52e40c68f2d3a6247e75df52c968e5db65d138dfee29cb5607dd835dd"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "9e6c94227469c544667d2f47377d8771",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 17985202,
"upload_time": "2024-12-02T09:14:10",
"upload_time_iso_8601": "2024-12-02T09:14:10.619343Z",
"url": "https://files.pythonhosted.org/packages/28/30/5f9ea646d564382d6e294d2e4e9ed0249372d5b1afbd8832c6c71507dfb3/pye57-0.4.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "74cb3db210e6fe63c5b98028c6630e687e846a432c435adf24c967191c0ae234",
"md5": "e772995cc37f3ecc05d752d872f5ec7c",
"sha256": "da30cb1889034c51a8e559e3a16bfa8c90aebd17ced625e60fb6136a07b808c1"
},
"downloads": -1,
"filename": "pye57-0.4.16-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "e772995cc37f3ecc05d752d872f5ec7c",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 1112200,
"upload_time": "2024-12-02T09:14:14",
"upload_time_iso_8601": "2024-12-02T09:14:14.004977Z",
"url": "https://files.pythonhosted.org/packages/74/cb/3db210e6fe63c5b98028c6630e687e846a432c435adf24c967191c0ae234/pye57-0.4.16-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c4cf78db49128add0c71d3433283aa36be865df9bdc557067542e9d5a6182dc8",
"md5": "88ec8b0bacd98e1fbf139a528fb82d31",
"sha256": "740e91f37510eb47259d6dd1cae85465a644e8dfd2ba50d3ec59ac63c2ea2757"
},
"downloads": -1,
"filename": "pye57-0.4.16.tar.gz",
"has_sig": false,
"md5_digest": "88ec8b0bacd98e1fbf139a528fb82d31",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 473394,
"upload_time": "2024-12-02T09:14:15",
"upload_time_iso_8601": "2024-12-02T09:14:15.144527Z",
"url": "https://files.pythonhosted.org/packages/c4/cf/78db49128add0c71d3433283aa36be865df9bdc557067542e9d5a6182dc8/pye57-0.4.16.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-02 09:14:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "davidcaron",
"github_project": "pye57",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pye57"
}