{ "info": { "author": "Tomer Filiba", "author_email": "tomerfiliba@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: Public Domain", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.0", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Topic :: Communications", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "Reed Solomon\n============\n\nA pure-python `Reed Solomon `_\nencoder/decoder, based on the wonderful tutorial at \n`wikiversity `_,\nwritten by \"Bobmath\".\n\nI only consolidated the code a little and added exceptions and a simple API. \nTo my understanding, the algorithm can correct up to ``nsym/2`` of the errors in \nthe message, where ``nsym`` is the number of bytes in the error correction code (ECC).\nThe code should work on pretty much any reasonable version of python (2.4-3.2), \nbut I'm only testing on 2.6-3.2.\n\n.. note::\n I claim no authorship of the code, and take no responsibility for the correctness \n of the algorithm. It's way too much finite-field algebra for me :)\n \n I've released this package as I needed an ECC codec for another project I'm working on, \n and I couldn't find anything on the web (that still works).\n \n The algorithm itself can handle messages up to 255 bytes, including the ECC bytes. The\n ``RSCodec`` class will split longer messages into chunks and encode/decode them separately;\n it shouldn't make a difference from an API perspective.\n\n::\n\n >>> rs = RSCodec(10)\n >>> rs.encode([1,2,3,4])\n b'\\x01\\x02\\x03\\x04,\\x9d\\x1c+=\\xf8h\\xfa\\x98M'\n >>> rs.encode(b'hello world')\n b'hello world\\xed%T\\xc4\\xfd\\xfd\\x89\\xf3\\xa8\\xaa'\n >>> rs.decode(b'hello world\\xed%T\\xc4\\xfd\\xfd\\x89\\xf3\\xa8\\xaa')\n b'hello world'\n >>> rs.decode(b'heXlo worXd\\xed%T\\xc4\\xfdX\\x89\\xf3\\xa8\\xaa') # 3 errors\n b'hello world'\n >>> rs.decode(b'hXXXo worXd\\xed%T\\xc4\\xfdX\\x89\\xf3\\xa8\\xaa') # 5 errors\n b'hello world'\n >>> rs.decode(b'hXXXo worXd\\xed%T\\xc4\\xfdXX\\xf3\\xa8\\xaa') # 6 errors - fail\n Traceback (most recent call last):\n ...\n ReedSolomonError: Could not locate error\n\n >>> rs = RSCodec(12)\n >>> rs.encode(b'hello world')\n b'hello world?Ay\\xb2\\xbc\\xdc\\x01q\\xb9\\xe3\\xe2='\n >>> rs.decode(b'hello worXXXXy\\xb2XX\\x01q\\xb9\\xe3\\xe2=') # 6 errors - ok\n b'hello world'", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tomerfiliba/reedsolomon", "keywords": null, "license": "Public Domain", "maintainer": null, "maintainer_email": null, "name": "reedsolo", "package_url": "https://pypi.org/project/reedsolo/", "platform": "POSIX,Windows", "project_url": "https://pypi.org/project/reedsolo/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/tomerfiliba/reedsolomon" }, "release_url": "https://pypi.org/project/reedsolo/0.3/", "requires_dist": null, "requires_python": null, "summary": "Pure-Python Reed Solomon encoder/decoder", "version": "0.3" }, "last_serial": 749092, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "12a842aed5a11d1c9712a179cd2e464b", "sha256": "c32e9570d996e975cd8b02f4a1044517aba120b8ff7f74dcbf8d106e3a6ddeb2" }, "downloads": -1, "filename": "reedsolo-0.1.tar.gz", "has_sig": false, "md5_digest": "12a842aed5a11d1c9712a179cd2e464b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4041, "upload_time": "2012-06-07T22:27:16", "url": "https://files.pythonhosted.org/packages/c8/19/9572e3e2604111c80b2ae79b4e9ff3967395d9d60fe9d5b5e55a649532f3/reedsolo-0.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "fb1a12b49fe476877c27a85ccd40dbe2", "sha256": "e7b21bf5ae156cb1941f99786d947632731e482a27c15400be9340736c10e1c4" }, "downloads": -1, "filename": "reedsolo-0.1.zip", "has_sig": false, "md5_digest": "fb1a12b49fe476877c27a85ccd40dbe2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8057, "upload_time": "2012-06-07T22:27:17", "url": "https://files.pythonhosted.org/packages/12/66/c3680807e02ac92722d91e3c34e27b0411d183014e207a770a2f637e5967/reedsolo-0.1.zip" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "14e3ec86c2534713729f09f6e509a93f", "sha256": "397c28491f28cd31317c77e223df743846231e6d8c4c89240a01bcade328a645" }, "downloads": -1, "filename": "reedsolo-0.2.tar.gz", "has_sig": false, "md5_digest": "14e3ec86c2534713729f09f6e509a93f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4299, "upload_time": "2012-06-08T13:25:04", "url": "https://files.pythonhosted.org/packages/6e/15/ab1133de62ccd0e67bcf54545a03964f26c8280f47290bcc87ac6c99bb29/reedsolo-0.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "8d1d0df3e7a99978ba001b3a79b7923f", "sha256": "cef7eb63533ca3553523c35897d1e61a8d8b2a0e8c9735bc52b2116b2a65f8e1" }, "downloads": -1, "filename": "reedsolo-0.2.zip", "has_sig": false, "md5_digest": "8d1d0df3e7a99978ba001b3a79b7923f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8585, "upload_time": "2012-06-08T13:25:05", "url": "https://files.pythonhosted.org/packages/ad/c3/fefaa8e91e6d470bc2f2133a96c0aac5ff8c54f545b5de8eb31808e8e825/reedsolo-0.2.zip" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "eda400a679236abe3a78c5cc682ff1bc", "sha256": "c11f074c1dc3eee86a7c976a7626e92e933e0b15cc0272654ad3760af0685d7f" }, "downloads": -1, "filename": "reedsolo-0.3.tar.gz", "has_sig": false, "md5_digest": "eda400a679236abe3a78c5cc682ff1bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4168, "upload_time": "2012-08-09T10:20:05", "url": "https://files.pythonhosted.org/packages/b7/fc/9a92265c7e8d556d3af1fc023727707385645fa05714bb25817448d6df76/reedsolo-0.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "b9f072c982059150bbc007e823bcd08f", "sha256": "a0ea07f90aa5b944c2e67805d6f6bcdc2a77f05d81714a40332edbe2fb26a0c0" }, "downloads": -1, "filename": "reedsolo-0.3.win32.exe", "has_sig": false, "md5_digest": "b9f072c982059150bbc007e823bcd08f", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 69061, "upload_time": "2012-08-09T10:20:09", "url": "https://files.pythonhosted.org/packages/32/97/c570762cf5285c3102c60ea8c56e6a4c9afb26d711841dc7e52f75b27d35/reedsolo-0.3.win32.exe" }, { "comment_text": "", "digests": { "md5": "bfad5a13d5539746638808c927ea6f10", "sha256": "fc0795b16a729fb43d452bcdadda82ff90699bdc296b1cb49443570379a8222b" }, "downloads": -1, "filename": "reedsolo-0.3.zip", "has_sig": false, "md5_digest": "bfad5a13d5539746638808c927ea6f10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8502, "upload_time": "2012-08-09T10:20:06", "url": "https://files.pythonhosted.org/packages/88/1a/abcf86fe9bb1ae7147ca66645e070bde4e1f380022f301a05b7c1473293a/reedsolo-0.3.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "eda400a679236abe3a78c5cc682ff1bc", "sha256": "c11f074c1dc3eee86a7c976a7626e92e933e0b15cc0272654ad3760af0685d7f" }, "downloads": -1, "filename": "reedsolo-0.3.tar.gz", "has_sig": false, "md5_digest": "eda400a679236abe3a78c5cc682ff1bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4168, "upload_time": "2012-08-09T10:20:05", "url": "https://files.pythonhosted.org/packages/b7/fc/9a92265c7e8d556d3af1fc023727707385645fa05714bb25817448d6df76/reedsolo-0.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "b9f072c982059150bbc007e823bcd08f", "sha256": "a0ea07f90aa5b944c2e67805d6f6bcdc2a77f05d81714a40332edbe2fb26a0c0" }, "downloads": -1, "filename": "reedsolo-0.3.win32.exe", "has_sig": false, "md5_digest": "b9f072c982059150bbc007e823bcd08f", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 69061, "upload_time": "2012-08-09T10:20:09", "url": "https://files.pythonhosted.org/packages/32/97/c570762cf5285c3102c60ea8c56e6a4c9afb26d711841dc7e52f75b27d35/reedsolo-0.3.win32.exe" }, { "comment_text": "", "digests": { "md5": "bfad5a13d5539746638808c927ea6f10", "sha256": "fc0795b16a729fb43d452bcdadda82ff90699bdc296b1cb49443570379a8222b" }, "downloads": -1, "filename": "reedsolo-0.3.zip", "has_sig": false, "md5_digest": "bfad5a13d5539746638808c927ea6f10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8502, "upload_time": "2012-08-09T10:20:06", "url": "https://files.pythonhosted.org/packages/88/1a/abcf86fe9bb1ae7147ca66645e070bde4e1f380022f301a05b7c1473293a/reedsolo-0.3.zip" } ] }