{ "info": { "author": "RecoDev Team at Microsoft", "author_email": "recodevteam@service.microsoft.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "# SARplus\n\nSimple Algorithm for Recommendation (SAR) is a neighborhood based\nalgorithm for personalized recommendations based on user transaction\nhistory. SAR recommends items that are most **similar** to the ones\nthat the user already has an existing **affinity** for. Two items are\n**similar** if the users that interacted with one item are also likely\nto have interacted with the other. A user has an **affinity** to an\nitem if they have interacted with it in the past.\n\nSARplus is an efficient implementation of this algorithm for Spark.\nMore details can be found at\n[sarplus@microsoft/recommenders](https://github.com/microsoft/recommenders/tree/main/contrib/sarplus).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/microsoft/recommenders/tree/main/contrib/sarplus", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pysarplus", "package_url": "https://pypi.org/project/pysarplus/", "platform": null, "project_url": "https://pypi.org/project/pysarplus/", "project_urls": { "Homepage": "https://github.com/microsoft/recommenders/tree/main/contrib/sarplus" }, "release_url": "https://pypi.org/project/pysarplus/0.6.5/", "requires_dist": [ "numpy", "pandas", "pyarrow (>=1.0.0)", "pybind11 (>=2.2)", "pyspark (>=3.0.0)" ], "requires_python": ">=3.6", "summary": "SAR prediction for use with PySpark", "version": "0.6.5", "yanked": false, "yanked_reason": null }, "last_serial": 13265796, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "122d055501bbd35d1324617a9e072bb7", "sha256": "bf6824f12add036fa2a9ffd685cbadb0834831f537cb9ec0063ab029b242ea92" }, "downloads": -1, "filename": "pysarplus-0.1.tar.gz", "has_sig": false, "md5_digest": "122d055501bbd35d1324617a9e072bb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6219, "upload_time": "2018-10-25T08:09:40", "upload_time_iso_8601": "2018-10-25T08:09:40.973392Z", "url": "https://files.pythonhosted.org/packages/1b/2a/b46e1323b1d6c3e45fd2f6a42984f82c325c1227c06713c1f4b3aeb0f5c9/pysarplus-0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2": [ { "comment_text": "", "digests": { "md5": "72ebea80724d520ef5d2cdc51872ddf4", "sha256": "0b65b23e9d6f0a59a05526caba0578d4cd22a6553977b11e6bd78296ec068daa" }, "downloads": -1, "filename": "pysarplus-0.2.tar.gz", "has_sig": false, "md5_digest": "72ebea80724d520ef5d2cdc51872ddf4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7052, "upload_time": "2018-10-26T00:16:23", "upload_time_iso_8601": "2018-10-26T00:16:23.210659Z", "url": "https://files.pythonhosted.org/packages/23/6e/8b255efa50219ce2e90044f2f32356688093a85a017ea835033a871ac418/pysarplus-0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "204f3a72bd474ccf52385c06682f8f7c", "sha256": "e54fde2fabc68b0991e6988a507cc40378d2fab404c7b8417561f3bd239b5352" }, "downloads": -1, "filename": "pysarplus-0.2.1.tar.gz", "has_sig": false, "md5_digest": "204f3a72bd474ccf52385c06682f8f7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7079, "upload_time": "2018-10-26T09:28:02", "upload_time_iso_8601": "2018-10-26T09:28:02.998653Z", "url": "https://files.pythonhosted.org/packages/d6/46/8afaa29823b08a629331e2d88ef777321006db1c288d2c4e41e5c4679c03/pysarplus-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "3a87ddce6250d8bf9dc5cd622550d11c", "sha256": "4ea7a7c7d686e35bb18a041fa8db71d67ef7de8c4f2b5c5f856134832913bd75" }, "downloads": -1, "filename": "pysarplus-0.2.2.tar.gz", "has_sig": false, "md5_digest": "3a87ddce6250d8bf9dc5cd622550d11c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7259, "upload_time": "2018-10-26T20:54:46", "upload_time_iso_8601": "2018-10-26T20:54:46.639598Z", "url": "https://files.pythonhosted.org/packages/71/02/2dc8843a41a90695e80d91bf667bc0a79b85e07669d76afbc128c461cbfd/pysarplus-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "8e4c48a86e8cd26b9014c8c8243c6997", "sha256": "2b593453139b490a3212d0f6299727e1159f71826e8571da391a5551d5986596" }, "downloads": -1, "filename": "pysarplus-0.2.3.tar.gz", "has_sig": false, "md5_digest": "8e4c48a86e8cd26b9014c8c8243c6997", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7493, "upload_time": "2018-11-19T23:03:20", "upload_time_iso_8601": "2018-11-19T23:03:20.168738Z", "url": "https://files.pythonhosted.org/packages/9a/73/904c22658c0650495b02bdde354349d9c3a5aca53dd49dc32285745d430b/pysarplus-0.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "c6dca7b31a2baaf4b61e61918c4e6595", "sha256": "9f37a11b6c85ab60ed4a40d48ae609b2943d0b080604241a1eafd989515a157b" }, "downloads": -1, "filename": "pysarplus-0.5.0.tar.gz", "has_sig": false, "md5_digest": "c6dca7b31a2baaf4b61e61918c4e6595", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9523, "upload_time": "2021-12-15T02:32:23", "upload_time_iso_8601": "2021-12-15T02:32:23.923209Z", "url": "https://files.pythonhosted.org/packages/e3/ef/bcb9252d65590835dd9188f6cf4e53a074016decb21e998f97652a6c52f9/pysarplus-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "97ea972430a78bc32c42fbdd64c1c4ff", "sha256": "6db06b3327567c691b1106858188ecf4edb9a23c5a98730a25bd80a55de52fb5" }, "downloads": -1, "filename": "pysarplus-0.5.2.tar.gz", "has_sig": false, "md5_digest": "97ea972430a78bc32c42fbdd64c1c4ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9547, "upload_time": "2021-12-22T11:53:15", "upload_time_iso_8601": "2021-12-22T11:53:15.509062Z", "url": "https://files.pythonhosted.org/packages/1e/f3/766a4f298cb6499ccf45c1c95977aaaf18677757c3596f0d84d5c8008e94/pysarplus-0.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "cebb1931d399a67650c01d5c0824da95", "sha256": "a5aa92e2904a14046890553ee176c8a70be7fa247c5fc5c6c0a3ec9b46228c68" }, "downloads": -1, "filename": "pysarplus-0.5.3.tar.gz", "has_sig": false, "md5_digest": "cebb1931d399a67650c01d5c0824da95", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9545, "upload_time": "2022-02-09T10:39:49", "upload_time_iso_8601": "2022-02-09T10:39:49.820836Z", "url": "https://files.pythonhosted.org/packages/c7/43/5f188a1cc8766e227108830802ea09787e9fa33a119ccafe653c3d21a260/pysarplus-0.5.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "8794fd047dcac79d7a8065183df76f12", "sha256": "897d3d9cc7c6083b9bace0b1660d9dffda13cdaf89d4b868834bc17e0f8ade5a" }, "downloads": -1, "filename": "pysarplus-0.5.4.tar.gz", "has_sig": false, "md5_digest": "8794fd047dcac79d7a8065183df76f12", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9583, "upload_time": "2022-02-14T06:22:59", "upload_time_iso_8601": "2022-02-14T06:22:59.234148Z", "url": "https://files.pythonhosted.org/packages/87/44/b69bb6160bb99382abb533e49ccf002aae269d2f4cdd16b56f02a5d4a2f1/pysarplus-0.5.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "057262a81490fe1fe4742adb8b9c7769", "sha256": "c7ed8b6afbaf50b9986183c43d313cb537434d87a2f80cca47afde3295ee55ab" }, "downloads": -1, "filename": "pysarplus-0.6.0.tar.gz", "has_sig": false, "md5_digest": "057262a81490fe1fe4742adb8b9c7769", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9841, "upload_time": "2022-02-15T11:29:23", "upload_time_iso_8601": "2022-02-15T11:29:23.190390Z", "url": "https://files.pythonhosted.org/packages/c8/8f/f2f12c25b0fbac9533cce1e6e40c247cdeafbb4fa5284557e5fcf3501ce2/pysarplus-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "c5016823857a624123798a572f8b0e49", "sha256": "32fb8aad2342d1b776e7ca9473d2585004d19e92a92e5fe397d618e2d17f11be" }, "downloads": -1, "filename": "pysarplus-0.6.4.tar.gz", "has_sig": false, "md5_digest": "c5016823857a624123798a572f8b0e49", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9870, "upload_time": "2022-03-12T05:16:34", "upload_time_iso_8601": "2022-03-12T05:16:34.004046Z", "url": "https://files.pythonhosted.org/packages/5f/82/ea0595553a68f5e09c8436b4dabbb96648c7f7dff7d16e173d2f61d6db5a/pysarplus-0.6.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "e59453ca13516328ab294061c90fbc25", "sha256": "e670490ae01b6285e1262ef0c5d06e7dc873825a7111d6c2bb1e39d14f4f3378" }, "downloads": -1, "filename": "pysarplus-0.6.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "has_sig": false, "md5_digest": "e59453ca13516328ab294061c90fbc25", "packagetype": "bdist_wheel", "python_version": "cp310", "requires_python": ">=3.6", "size": 1046810, "upload_time": "2022-03-23T07:59:37", "upload_time_iso_8601": "2022-03-23T07:59:37.463366Z", "url": "https://files.pythonhosted.org/packages/c1/d2/5535f8055778cfb27318a33a9c03aca9d404e212189e2751b24513050711/pysarplus-0.6.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7ed6b11384a3a6a0c9345565fde22a98", "sha256": "fc15ee9628c178b81b73ad313275a92791f40bb54475c3f9afa1d93579125b53" }, "downloads": -1, "filename": "pysarplus-0.6.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "has_sig": false, "md5_digest": "7ed6b11384a3a6a0c9345565fde22a98", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 1063670, "upload_time": "2022-03-23T07:59:40", "upload_time_iso_8601": "2022-03-23T07:59:40.310423Z", "url": "https://files.pythonhosted.org/packages/3b/b2/9a55c2bbd163f7e73c262661a1b2a4aea0530611081b3cc7f43e0d903a6f/pysarplus-0.6.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e708248b21f4ecb23f5298068a7d9dec", "sha256": "3ba6b9da41263fde518785c55cb899b2ea98c5087cad6924eee6142eb9308b1a" }, "downloads": -1, "filename": "pysarplus-0.6.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "has_sig": false, "md5_digest": "e708248b21f4ecb23f5298068a7d9dec", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": ">=3.6", "size": 1064599, "upload_time": "2022-03-23T07:59:42", "upload_time_iso_8601": "2022-03-23T07:59:42.396954Z", "url": "https://files.pythonhosted.org/packages/32/8e/4989f5bcea92868661da884895cebc6977df27871fc130439274cba1ce38/pysarplus-0.6.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5d29ed7ccc9fd01f3a4844493b93f57d", "sha256": "9388d76043a2c51f8e7f43361265ec28993c711c94c15ee9f7b96c80b7350222" }, "downloads": -1, "filename": "pysarplus-0.6.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "has_sig": false, "md5_digest": "5d29ed7ccc9fd01f3a4844493b93f57d", "packagetype": "bdist_wheel", "python_version": "cp38", "requires_python": ">=3.6", "size": 1046871, "upload_time": "2022-03-23T07:59:44", "upload_time_iso_8601": "2022-03-23T07:59:44.784031Z", "url": "https://files.pythonhosted.org/packages/36/34/d763edcf98135be2721d0434d7c52c6540fa4abc7980b6945bdf50f426b7/pysarplus-0.6.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bd0425c89bd15ca70877e408ff33f929", "sha256": "eb3e2ecc91de6143917a44c486caa79317f7a3720edf2e29e4fd74a4c191583f" }, "downloads": -1, "filename": "pysarplus-0.6.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "has_sig": false, "md5_digest": "bd0425c89bd15ca70877e408ff33f929", "packagetype": "bdist_wheel", "python_version": "cp39", "requires_python": ">=3.6", "size": 1045851, "upload_time": "2022-03-23T07:59:47", "upload_time_iso_8601": "2022-03-23T07:59:47.098919Z", "url": "https://files.pythonhosted.org/packages/e8/8f/2c73c0c6ee45f70b68f3fec3788c7a52b5b679db1300ac5c0bd0ab66b09b/pysarplus-0.6.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d397c78447bcf064247d230c361587bc", "sha256": "508bdaa47d93d9ed6adf1dcc7e12b810123ffbe063ed193ac17e9958d9423d33" }, "downloads": -1, "filename": "pysarplus-0.6.5.tar.gz", "has_sig": false, "md5_digest": "d397c78447bcf064247d230c361587bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9900, "upload_time": "2022-03-23T07:59:48", "upload_time_iso_8601": "2022-03-23T07:59:48.711207Z", "url": "https://files.pythonhosted.org/packages/a4/63/25c6bc0d0edd635f781ab8e59f77a289d0d8461693ad2eb671d05ec33f29/pysarplus-0.6.5.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e59453ca13516328ab294061c90fbc25", "sha256": "e670490ae01b6285e1262ef0c5d06e7dc873825a7111d6c2bb1e39d14f4f3378" }, "downloads": -1, "filename": "pysarplus-0.6.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "has_sig": false, "md5_digest": "e59453ca13516328ab294061c90fbc25", "packagetype": "bdist_wheel", "python_version": "cp310", "requires_python": ">=3.6", "size": 1046810, "upload_time": "2022-03-23T07:59:37", "upload_time_iso_8601": "2022-03-23T07:59:37.463366Z", "url": "https://files.pythonhosted.org/packages/c1/d2/5535f8055778cfb27318a33a9c03aca9d404e212189e2751b24513050711/pysarplus-0.6.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7ed6b11384a3a6a0c9345565fde22a98", "sha256": "fc15ee9628c178b81b73ad313275a92791f40bb54475c3f9afa1d93579125b53" }, "downloads": -1, "filename": "pysarplus-0.6.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "has_sig": false, "md5_digest": "7ed6b11384a3a6a0c9345565fde22a98", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 1063670, "upload_time": "2022-03-23T07:59:40", "upload_time_iso_8601": "2022-03-23T07:59:40.310423Z", "url": "https://files.pythonhosted.org/packages/3b/b2/9a55c2bbd163f7e73c262661a1b2a4aea0530611081b3cc7f43e0d903a6f/pysarplus-0.6.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e708248b21f4ecb23f5298068a7d9dec", "sha256": "3ba6b9da41263fde518785c55cb899b2ea98c5087cad6924eee6142eb9308b1a" }, "downloads": -1, "filename": "pysarplus-0.6.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "has_sig": false, "md5_digest": "e708248b21f4ecb23f5298068a7d9dec", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": ">=3.6", "size": 1064599, "upload_time": "2022-03-23T07:59:42", "upload_time_iso_8601": "2022-03-23T07:59:42.396954Z", "url": "https://files.pythonhosted.org/packages/32/8e/4989f5bcea92868661da884895cebc6977df27871fc130439274cba1ce38/pysarplus-0.6.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5d29ed7ccc9fd01f3a4844493b93f57d", "sha256": "9388d76043a2c51f8e7f43361265ec28993c711c94c15ee9f7b96c80b7350222" }, "downloads": -1, "filename": "pysarplus-0.6.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "has_sig": false, "md5_digest": "5d29ed7ccc9fd01f3a4844493b93f57d", "packagetype": "bdist_wheel", "python_version": "cp38", "requires_python": ">=3.6", "size": 1046871, "upload_time": "2022-03-23T07:59:44", "upload_time_iso_8601": "2022-03-23T07:59:44.784031Z", "url": "https://files.pythonhosted.org/packages/36/34/d763edcf98135be2721d0434d7c52c6540fa4abc7980b6945bdf50f426b7/pysarplus-0.6.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bd0425c89bd15ca70877e408ff33f929", "sha256": "eb3e2ecc91de6143917a44c486caa79317f7a3720edf2e29e4fd74a4c191583f" }, "downloads": -1, "filename": "pysarplus-0.6.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "has_sig": false, "md5_digest": "bd0425c89bd15ca70877e408ff33f929", "packagetype": "bdist_wheel", "python_version": "cp39", "requires_python": ">=3.6", "size": 1045851, "upload_time": "2022-03-23T07:59:47", "upload_time_iso_8601": "2022-03-23T07:59:47.098919Z", "url": "https://files.pythonhosted.org/packages/e8/8f/2c73c0c6ee45f70b68f3fec3788c7a52b5b679db1300ac5c0bd0ab66b09b/pysarplus-0.6.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d397c78447bcf064247d230c361587bc", "sha256": "508bdaa47d93d9ed6adf1dcc7e12b810123ffbe063ed193ac17e9958d9423d33" }, "downloads": -1, "filename": "pysarplus-0.6.5.tar.gz", "has_sig": false, "md5_digest": "d397c78447bcf064247d230c361587bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9900, "upload_time": "2022-03-23T07:59:48", "upload_time_iso_8601": "2022-03-23T07:59:48.711207Z", "url": "https://files.pythonhosted.org/packages/a4/63/25c6bc0d0edd635f781ab8e59f77a289d0d8461693ad2eb671d05ec33f29/pysarplus-0.6.5.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }