migratron / src /data /evalData.ts
amrithanandini's picture
updated UI
6d6193f
export const evalData = [
{
"repo_name": "chanedwin/pydistinct",
"repo_url": "https://github.com/chanedwin/pydistinct",
"commit_hash": "afecd6c9226a9eee3bad3e2610c34f32026db6f7",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,4 +1,4 @@\n scipy\n statsmodels\n numpy\n-m2r\n+m2r\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,38 +1,2 @@\n-import setuptools\r\n-\r\n-setuptools.setup(\r\n- name=\"pydistinct\",\r\n- version=\"0.6.4\",\r\n- author=\"Edwin Chan\",\r\n- author_email=\"edwinchan@u.nus.edu\",\r\n- description=\"Package for estimating distinct values in a population\",\r\n- long_description=\"\"\" This package provides statistical estimators to predict a population's total number of distinct values from a sample sequence - given a sample sequence of n values with only d distinct values, predict the total number of distinct values D that exists in the population N.\r\n-\r\n- Sample use cases :\r\n- \r\n- estimating the number of unique insects in a population from a field sample\r\n- estimating the number of unique words in a document given a sentence or a paragraph\r\n- estimating the number of unique items in a database from a few sample rows\r\n- Please send all bugs reports/issues/queries to chanedwin91@gmail.com for fastest response!\r\n- \r\n- See https://github.com/chanedwin/pydistinct for more information \r\n- \"\"\",\r\n- long_description_content_type=\"text/markdown\",\r\n- url=\"https://github.com/chanedwin/pydistinct/\",\r\n- download_url='https://github.com/chanedwin/pydistinct/archive/0.5.tar.gz',\r\n- keywords=['distinct', 'value', 'estimators', 'sample', 'sequences'],\r\n- install_requires=[\r\n- 'scipy',\r\n- 'statsmodels',\r\n- 'xgboost',\r\n- 'numpy',\r\n- 'm2r'\r\n- ],\r\n-\r\n- packages=setuptools.find_packages(),\r\n- classifiers=[\r\n- \"Programming Language :: Python :: 3\",\r\n- \"License :: OSI Approved :: MIT License\",\r\n- \"Operating System :: OS Independent\",\r\n- ],\r\n-)\r\n+import setuptools\n+setuptools.setup(name='pydistinct', version='0.6.4', author='Edwin Chan', author_email='edwinchan@u.nus.edu', description='Package for estimating distinct values in a population', long_description=\" This package provides statistical estimators to predict a population's total number of distinct values from a sample sequence - given a sample sequence of n values with only d distinct values, predict the total number of distinct values D that exists in the population N.\\n\\n Sample use cases :\\n \\n estimating the number of unique insects in a population from a field sample\\n estimating the number of unique words in a document given a sentence or a paragraph\\n estimating the number of unique items in a database from a few sample rows\\n Please send all bugs reports/issues/queries to chanedwin91@gmail.com for fastest response!\\n \\n See https://github.com/chanedwin/pydistinct for more information \\n \", long_description_content_type='text/markdown', url='https://github.com/chanedwin/pydistinct/', download_url='https://github.com/chanedwin/pydistinct/archive/0.5.tar.gz', keywords=['distinct', 'value', 'estimators', 'sample', 'sequences'], install_requires=['scipy', 'statsmodels', 'xgboost', 'numpy', 'm2r'], packages=setuptools.find_packages(), classifiers=['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent'])\n\\ No newline at end of file\n--- setup_chanedwin__pydistinct.sh\n+++ setup_chanedwin__pydistinct.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install -r docs/requirements.txt\n--- test_chanedwin__pydistinct.sh\n+++ test_chanedwin__pydistinct.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest pydistinct.test\n",
"test_patch": "",
"gold_patch": "--- pydistinct/stats_estimators.py\n+++ pydistinct/stats_estimators.py\n@@ -44,7 +44,7 @@\n \r\n def memo_fact(x, memo_dict): # memoize factorial function to make it faster\r\n if x not in memo_dict:\r\n- memo_dict[x] = np.math.factorial(x)\r\n+ memo_dict[x] = math.factorial(x)\r\n return memo_dict[x], memo_dict\r\n \r\n sum_goodman = 0\r\n",
"reproduction_target_date": "2020-03-25",
"reproduction_target_version": "3.7.7",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY chanedwin__pydistinct .\n\nRUN bash /work/setup_chanedwin__pydistinct.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_chanedwin__pydistinct.sh\"]\n",
"version_source": "default",
"script_source": "requirements.txt",
"dependency_versions": "docutils==0.22\nm2r==0.3.1\nmistune==0.8.4\nnumpy==2.3.2\npackaging==25.0\npandas==2.3.1\npatsy==1.0.1\npython-dateutil==2.9.0.post0\npytz==2025.2\nscipy==1.16.1\nsix==1.17.0\nstatsmodels==0.14.5\ntzdata==2025.2\n",
"test_type": "unittest",
"test_files": "pydistinct/test.py",
"test_count": 19,
"related_modules": "numpy",
"py_file_count": 9,
"total_loc_python": 1829,
"difficulty": "Easy",
"license": "MIT"
},
{
"repo_name": "Shokr/orderingSystem",
"repo_url": "https://github.com/Shokr/orderingSystem",
"commit_hash": "20afc2e7344ad49fb1ff35bd62541c1560fdf490",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,67 +1,67 @@\n-argon2-cffi==20.1.0\n-asgiref==3.3.1\n-attrs==20.3.0\n-certifi==2020.12.5\n-cffi==1.14.5\n-chardet==4.0.0\n-click==7.1.2\n-coreapi==2.3.3\n-coreschema==0.0.4\n-coverage==5.5\n-cryptography==3.4.6\n-defusedxml==0.7.1\n-Django==3.1.7\n-django-cors-headers==3.7.0\n-django-debug-toolbar==3.2\n-django-extensions==3.1.1\n-django-filter==2.4.0\n-django-model-utils==4.1.1\n-django-money==1.3.1\n-django-simpleui==2021.4\n-django-templated-mail==1.1.1\n-djangorestframework==3.12.2\n-djangorestframework-simplejwt==4.6.0\n-djoser==2.1.0\n-drf-yasg==1.20.0\n-factory-boy==3.2.0\n-Faker==6.6.2\n-gunicorn==20.0.4\n-h11==0.12.0\n-idna==2.10\n-inflection==0.5.1\n-iniconfig==1.1.1\n-itypes==1.2.0\n-Jinja2==2.11.3\n-lxml==4.6.2\n-Markdown==3.3.4\n-MarkupSafe==1.1.1\n-mock==4.0.3\n-model-bakery==1.1.1\n-oauthlib==3.1.0\n-packaging==20.9\n-pluggy==0.13.1\n-py==1.10.0\n-py-moneyed==0.8.0\n-pycparser==2.20\n-PyJWT==2.0.1\n-pyparsing==2.4.7\n-pytest==6.2.2\n-pytest-django==4.1.0\n-pytest-factoryboy==2.1.0\n-python-dateutil==2.8.1\n-python3-openid==3.2.0\n-pytz==2021.1\n-requests==2.25.1\n-requests-oauthlib==1.3.0\n-ruamel.yaml==0.16.13\n-ruamel.yaml.clib==0.2.2\n-six==1.15.0\n-social-auth-app-django==4.0.0\n-social-auth-core==4.1.0\n-sqlparse==0.4.1\n-text-unidecode==1.3\n-toml==0.10.2\n-uritemplate==3.0.1\n-urllib3==1.26.4\n-uvicorn==0.13.4\n-whitenoise==5.2.0\n+argon2-cffi\n+asgiref\n+attrs\n+certifi\n+cffi\n+chardet\n+click\n+coreapi\n+coreschema\n+coverage\n+cryptography\n+defusedxml\n+Django\n+django-cors-headers\n+django-debug-toolbar\n+django-extensions\n+django-filter\n+django-model-utils\n+django-money\n+django-simpleui\n+django-templated-mail\n+djangorestframework\n+djangorestframework-simplejwt\n+djoser\n+drf-yasg\n+factory-boy\n+Faker\n+gunicorn\n+h11\n+idna\n+inflection\n+iniconfig\n+itypes\n+Jinja2\n+lxml\n+Markdown\n+MarkupSafe\n+mock\n+model-bakery\n+oauthlib\n+packaging\n+pluggy\n+py\n+py-moneyed\n+pycparser\n+PyJWT\n+pyparsing\n+pytest\n+pytest-django\n+pytest-factoryboy\n+python-dateutil\n+python3-openid\n+pytz\n+requests\n+requests-oauthlib\n+ruamel.yaml\n+ruamel.yaml.clib\n+six\n+social-auth-app-django\n+social-auth-core\n+sqlparse\n+text-unidecode\n+toml\n+uritemplate\n+urllib3\n+uvicorn\n+whitenoise\n\\ No newline at end of file\n--- setup_Shokr__orderingSystem.sh\n+++ setup_Shokr__orderingSystem.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install pytest\n--- test_Shokr__orderingSystem.sh\n+++ test_Shokr__orderingSystem.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n",
"test_patch": "",
"gold_patch": "--- config/urls.py\n+++ config/urls.py\n@@ -3,7 +3,7 @@\n \"\"\"\n \n from django.conf import settings\n-from django.conf.urls import url\n+from django.urls import re_path\n from django.conf.urls.static import static\n \n from django.contrib import admin\n@@ -32,10 +32,10 @@\n \n # OpenApi URLS\n urlpatterns += [\n- url(r'^swagger(?P<format>\\.json|\\.yaml)$', schema_view.without_ui(cache_timeout=0),\n+ re_path(r'^swagger(?P<format>\\.json|\\.yaml)$', schema_view.without_ui(cache_timeout=0),\n name='schema-json'),\n- url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),\n- url(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),\n+ re_path(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),\n+ re_path(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),\n ]\n \n # API URLS\n--- users/api/serializers.py\n+++ users/api/serializers.py\n@@ -1,6 +1,6 @@\n from django.contrib.auth import authenticate\n from django.contrib.auth.hashers import make_password\n-from django.utils.translation import ugettext_lazy as _\n+from django.utils.translation import gettext_lazy as _\n \n from rest_framework.authtoken.models import Token\n \n",
"reproduction_target_date": "2021-03-21",
"reproduction_target_version": "3.8.8",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY Shokr__orderingSystem .\n\nRUN bash /work/setup_Shokr__orderingSystem.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_Shokr__orderingSystem.sh\"]\n",
"version_source": "default",
"script_source": "requirements.txt",
"dependency_versions": "argon2-cffi==25.1.0\nargon2-cffi-bindings==25.1.0\nasgiref==3.9.1\nattrs==25.3.0\nbabel==2.17.0\ncertifi==2025.7.14\ncffi==1.17.1\nchardet==5.2.0\ncharset-normalizer==3.4.2\nclick==8.2.1\ncoreapi==2.3.3\ncoreschema==0.0.4\ncoverage==7.10.1\ncryptography==45.0.5\ndefusedxml==0.7.1\nDjango==5.2.4\ndjango-cors-headers==4.7.0\ndjango-debug-toolbar==6.0.0\ndjango-extensions==4.1\ndjango-filter==25.1\ndjango-model-utils==5.0.0\ndjango-money==3.5.4\ndjango-simpleui==2025.6.24\ndjango-templated-mail==1.1.1\ndjangorestframework==3.16.0\ndjangorestframework_simplejwt==5.5.1\ndjoser==2.3.3\ndrf-yasg==1.21.10\nfactory_boy==3.3.3\nFaker==37.5.3\ngunicorn==23.0.0\nh11==0.16.0\nidna==3.10\ninflection==0.5.1\niniconfig==2.1.0\nitypes==1.2.0\nJinja2==3.1.6\nlxml==6.0.0\nMarkdown==3.8.2\nMarkupSafe==3.0.2\nmock==5.2.0\nmodel-bakery==1.20.5\noauthlib==3.3.1\npackaging==25.0\npluggy==1.6.0\npy==1.11.0\npy-moneyed==3.0\npycparser==2.22\nPygments==2.19.2\nPyJWT==2.10.1\npyparsing==3.2.3\npytest==8.4.1\npytest-django==4.11.1\npytest-factoryboy==2.8.1\npython-dateutil==2.9.0.post0\npython3-openid==3.2.0\npytz==2025.2\nPyYAML==6.0.2\nrequests==2.32.4\nrequests-oauthlib==2.0.0\nruamel.yaml==0.18.14\nruamel.yaml.clib==0.2.12\nsetuptools==80.9.0\nsix==1.17.0\nsocial-auth-app-django==5.5.1\nsocial-auth-core==4.7.0\nsqlparse==0.5.3\ntext-unidecode==1.3\ntoml==0.10.2\ntyping_extensions==4.14.1\ntzdata==2025.2\nuritemplate==4.2.0\nurllib3==2.5.0\nuvicorn==0.35.0\nwhitenoise==6.9.0\n",
"test_type": "pytest",
"test_files": "conftest.py",
"test_count": 18,
"related_modules": "Django",
"py_file_count": 55,
"total_loc_python": 1663,
"difficulty": "Medium",
"license": ""
},
{
"repo_name": "angulito/the-real-devops-challenge",
"repo_url": "https://github.com/angulito/the-real-devops-challenge",
"commit_hash": "06dda29b045b57659cc64fb4f2ed47865acfee51",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,11 +1,11 @@\n-Click==7.0\n-Flask==1.0.2\n-Flask-API==1.0\n-Flask-PyMongo==2.2.0\n-isodate==0.6.0\n-itsdangerous==1.1.0\n-Jinja2==2.10\n-MarkupSafe==1.1.0\n-pymongo==3.7.2\n-six==1.11.0\n-Werkzeug==0.14.1\n\\ No newline at end of file\n+Click\n+Flask\n+Flask-API\n+Flask-PyMongo\n+isodate\n+itsdangerous\n+Jinja2\n+MarkupSafe\n+pymongo\n+six\n+Werkzeug\n\\ No newline at end of file\n--- setup_angulito__the-real-devops-challenge.sh\n+++ setup_angulito__the-real-devops-challenge.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install -r requirements_dev.txt\n--- test_angulito__the-real-devops-challenge.sh\n+++ test_angulito__the-real-devops-challenge.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_restaurant\n",
"test_patch": "",
"gold_patch": "--- src/mongoflask.py\n+++ src/mongoflask.py\n@@ -2,11 +2,11 @@\n \n import isodate as iso\n from bson import ObjectId\n-from flask.json import JSONEncoder\n+from flask.json.provider import DefaultJSONProvider\n from werkzeug.routing import BaseConverter\n \n \n-class MongoJSONEncoder(JSONEncoder):\n+class MongoJSONEncoder(DefaultJSONProvider):\n def default(self, o):\n if isinstance(o, (datetime, date)):\n return iso.datetime_isoformat(o)\n",
"reproduction_target_date": "2018-11-25",
"reproduction_target_version": "3.6.7",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY angulito__the-real-devops-challenge .\n\nRUN bash /work/setup_angulito__the-real-devops-challenge.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_angulito__the-real-devops-challenge.sh\"]\n",
"version_source": "default",
"script_source": "requirements.txt",
"dependency_versions": "blinker==1.9.0\nclick==8.2.1\ndnspython==2.7.0\nFlask==3.1.1\nFlask-API==3.1\nFlask-PyMongo==3.0.1\niniconfig==2.1.0\nisodate==0.7.2\nitsdangerous==2.2.0\nJinja2==3.1.6\nMarkupSafe==3.0.2\nmock==5.2.0\npackaging==25.0\npluggy==1.6.0\nPygments==2.19.2\npymongo==4.13.2\npytest==8.4.1\nsix==1.17.0\nWerkzeug==3.1.3\n",
"test_type": "unittest",
"test_files": "tests/test_restaurant.py",
"test_count": 3,
"related_modules": "flask",
"py_file_count": 5,
"total_loc_python": 108,
"difficulty": "Easy",
"license": "Apache-2.0"
},
{
"repo_name": "polyatail/aiosocketpool",
"repo_url": "https://github.com/polyatail/aiosocketpool",
"commit_hash": "5ad53a005e88baafc608db5678e51497b3c5f07d",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -4,194 +4,70 @@\n #\n # pip-compile --generate-hashes\n #\n-appdirs==1.4.4 \\\n- --hash=sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41 \\\n- --hash=sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128\n- # via black\n-async-timeout==3.0.1 \\\n- --hash=sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f \\\n- --hash=sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3\n- # via -r requirements.in\n-attrs==20.3.0 \\\n- --hash=sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6 \\\n- --hash=sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700\n- # via pytest\n-black==21.4b2 \\\n- --hash=sha256:bff7067d8bc25eb21dcfdbc8c72f2baafd9ec6de4663241a52fb904b304d391f \\\n- --hash=sha256:fc9bcf3b482b05c1f35f6a882c079dc01b9c7795827532f4cc43c0ec88067bbc\n- # via -r requirements.in\n-click==7.1.2 \\\n- --hash=sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a \\\n- --hash=sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc\n- # via\n- # black\n- # pip-tools\n-flake8==3.9.1 \\\n- --hash=sha256:1aa8990be1e689d96c745c5682b687ea49f2e05a443aff1f8251092b0014e378 \\\n- --hash=sha256:3b9f848952dddccf635be78098ca75010f073bfe14d2c6bda867154bea728d2a\n- # via -r requirements.in\n-importlib-metadata==4.0.1 \\\n- --hash=sha256:8c501196e49fb9df5df43833bdb1e4328f64847763ec8a50703148b73784d581 \\\n- --hash=sha256:d7eb1dea6d6a6086f8be21784cc9e3bcfa55872b52309bc5fad53a8ea444465d\n- # via -r requirements.in\n-iniconfig==1.1.1 \\\n- --hash=sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3 \\\n- --hash=sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32\n- # via pytest\n-mccabe==0.6.1 \\\n- --hash=sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42 \\\n- --hash=sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f\n- # via flake8\n-mypy-extensions==0.4.3 \\\n- --hash=sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d \\\n- --hash=sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8\n- # via black\n-packaging==20.9 \\\n- --hash=sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5 \\\n- --hash=sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a\n- # via pytest\n-pathspec==0.8.1 \\\n- --hash=sha256:86379d6b86d75816baba717e64b1a3a3469deb93bb76d613c9ce79edc5cb68fd \\\n- --hash=sha256:aa0cb481c4041bf52ffa7b0d8fa6cd3e88a2ca4879c533c9153882ee2556790d\n- # via black\n-pep517==0.10.0 \\\n- --hash=sha256:ac59f3f6b9726a49e15a649474539442cf76e0697e39df4869d25e68e880931b \\\n- --hash=sha256:eba39d201ef937584ad3343df3581069085bacc95454c80188291d5b3ac7a249\n- # via pip-tools\n-pip-tools==6.1.0 \\\n- --hash=sha256:197e3f8839095ccec3ad1ef410e0804c07d9f17dff1c340fb417ca2b63feacc9 \\\n- --hash=sha256:400bf77e29cca48c31abc210042932bb52dcc138ef4ea4d52c5db429aa8ae6ee\n- # via -r requirements.in\n-pluggy==0.13.1 \\\n- --hash=sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0 \\\n- --hash=sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d\n- # via pytest\n-py==1.10.0 \\\n- --hash=sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3 \\\n- --hash=sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a\n- # via pytest\n-pycodestyle==2.7.0 \\\n- --hash=sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068 \\\n- --hash=sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef\n- # via flake8\n-pydocstyle==6.0.0 \\\n- --hash=sha256:164befb520d851dbcf0e029681b91f4f599c62c5cd8933fd54b1bfbd50e89e1f \\\n- --hash=sha256:d4449cf16d7e6709f63192146706933c7a334af7c0f083904799ccb851c50f6d\n- # via -r requirements.in\n-pyflakes==2.3.1 \\\n- --hash=sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3 \\\n- --hash=sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db\n- # via flake8\n-pyparsing==2.4.7 \\\n- --hash=sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1 \\\n- --hash=sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b\n- # via packaging\n-pytest-asyncio==0.15.1 \\\n- --hash=sha256:2564ceb9612bbd560d19ca4b41347b54e7835c2f792c504f698e05395ed63f6f \\\n- --hash=sha256:3042bcdf1c5d978f6b74d96a151c4cfb9dcece65006198389ccd7e6c60eb1eea\n- # via -r requirements.in\n-pytest==6.2.3 \\\n- --hash=sha256:671238a46e4df0f3498d1c3270e5deb9b32d25134c99b7d75370a68cfbe9b634 \\\n- --hash=sha256:6ad9c7bdf517a808242b998ac20063c41532a570d088d77eec1ee12b0b5574bc\n- # via\n- # -r requirements.in\n- # pytest-asyncio\n-regex==2021.4.4 \\\n- --hash=sha256:01afaf2ec48e196ba91b37451aa353cb7eda77efe518e481707e0515025f0cd5 \\\n- --hash=sha256:11d773d75fa650cd36f68d7ca936e3c7afaae41b863b8c387a22aaa78d3c5c79 \\\n- --hash=sha256:18c071c3eb09c30a264879f0d310d37fe5d3a3111662438889ae2eb6fc570c31 \\\n- --hash=sha256:1e1c20e29358165242928c2de1482fb2cf4ea54a6a6dea2bd7a0e0d8ee321500 \\\n- --hash=sha256:281d2fd05555079448537fe108d79eb031b403dac622621c78944c235f3fcf11 \\\n- --hash=sha256:314d66636c494ed9c148a42731b3834496cc9a2c4251b1661e40936814542b14 \\\n- --hash=sha256:32e65442138b7b76dd8173ffa2cf67356b7bc1768851dded39a7a13bf9223da3 \\\n- --hash=sha256:339456e7d8c06dd36a22e451d58ef72cef293112b559010db3d054d5560ef439 \\\n- --hash=sha256:3916d08be28a1149fb97f7728fca1f7c15d309a9f9682d89d79db75d5e52091c \\\n- --hash=sha256:3a9cd17e6e5c7eb328517969e0cb0c3d31fd329298dd0c04af99ebf42e904f82 \\\n- --hash=sha256:47bf5bf60cf04d72bf6055ae5927a0bd9016096bf3d742fa50d9bf9f45aa0711 \\\n- --hash=sha256:4c46e22a0933dd783467cf32b3516299fb98cfebd895817d685130cc50cd1093 \\\n- --hash=sha256:4c557a7b470908b1712fe27fb1ef20772b78079808c87d20a90d051660b1d69a \\\n- --hash=sha256:52ba3d3f9b942c49d7e4bc105bb28551c44065f139a65062ab7912bef10c9afb \\\n- --hash=sha256:563085e55b0d4fb8f746f6a335893bda5c2cef43b2f0258fe1020ab1dd874df8 \\\n- --hash=sha256:598585c9f0af8374c28edd609eb291b5726d7cbce16be6a8b95aa074d252ee17 \\\n- --hash=sha256:619d71c59a78b84d7f18891fe914446d07edd48dc8328c8e149cbe0929b4e000 \\\n- --hash=sha256:67bdb9702427ceddc6ef3dc382455e90f785af4c13d495f9626861763ee13f9d \\\n- --hash=sha256:6d1b01031dedf2503631d0903cb563743f397ccaf6607a5e3b19a3d76fc10480 \\\n- --hash=sha256:741a9647fcf2e45f3a1cf0e24f5e17febf3efe8d4ba1281dcc3aa0459ef424dc \\\n- --hash=sha256:7c2a1af393fcc09e898beba5dd59196edaa3116191cc7257f9224beaed3e1aa0 \\\n- --hash=sha256:7d9884d86dd4dd489e981d94a65cd30d6f07203d90e98f6f657f05170f6324c9 \\\n- --hash=sha256:90f11ff637fe8798933fb29f5ae1148c978cccb0452005bf4c69e13db951e765 \\\n- --hash=sha256:919859aa909429fb5aa9cf8807f6045592c85ef56fdd30a9a3747e513db2536e \\\n- --hash=sha256:96fcd1888ab4d03adfc9303a7b3c0bd78c5412b2bfbe76db5b56d9eae004907a \\\n- --hash=sha256:97f29f57d5b84e73fbaf99ab3e26134e6687348e95ef6b48cfd2c06807005a07 \\\n- --hash=sha256:980d7be47c84979d9136328d882f67ec5e50008681d94ecc8afa8a65ed1f4a6f \\\n- --hash=sha256:a91aa8619b23b79bcbeb37abe286f2f408d2f2d6f29a17237afda55bb54e7aac \\\n- --hash=sha256:ade17eb5d643b7fead300a1641e9f45401c98eee23763e9ed66a43f92f20b4a7 \\\n- --hash=sha256:b9c3db21af35e3b3c05764461b262d6f05bbca08a71a7849fd79d47ba7bc33ed \\\n- --hash=sha256:bd28bc2e3a772acbb07787c6308e00d9626ff89e3bfcdebe87fa5afbfdedf968 \\\n- --hash=sha256:bf5824bfac591ddb2c1f0a5f4ab72da28994548c708d2191e3b87dd207eb3ad7 \\\n- --hash=sha256:c0502c0fadef0d23b128605d69b58edb2c681c25d44574fc673b0e52dce71ee2 \\\n- --hash=sha256:c38c71df845e2aabb7fb0b920d11a1b5ac8526005e533a8920aea97efb8ec6a4 \\\n- --hash=sha256:ce15b6d103daff8e9fee13cf7f0add05245a05d866e73926c358e871221eae87 \\\n- --hash=sha256:d3029c340cfbb3ac0a71798100ccc13b97dddf373a4ae56b6a72cf70dfd53bc8 \\\n- --hash=sha256:e512d8ef5ad7b898cdb2d8ee1cb09a8339e4f8be706d27eaa180c2f177248a10 \\\n- --hash=sha256:e8e5b509d5c2ff12f8418006d5a90e9436766133b564db0abaec92fd27fcee29 \\\n- --hash=sha256:ee54ff27bf0afaf4c3b3a62bcd016c12c3fdb4ec4f413391a90bd38bc3624605 \\\n- --hash=sha256:fa4537fb4a98fe8fde99626e4681cc644bdcf2a795038533f9f711513a862ae6 \\\n- --hash=sha256:fd45ff9293d9274c5008a2054ecef86a9bfe819a67c7be1afb65e69b405b3042\n- # via black\n-snowballstemmer==2.1.0 \\\n- --hash=sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2 \\\n- --hash=sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914\n- # via pydocstyle\n-toml==0.10.2 \\\n- --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \\\n- --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f\n- # via\n- # black\n- # pep517\n- # pytest\n-typed-ast==1.4.3 \\\n- --hash=sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace \\\n- --hash=sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff \\\n- --hash=sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266 \\\n- --hash=sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528 \\\n- --hash=sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6 \\\n- --hash=sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808 \\\n- --hash=sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4 \\\n- --hash=sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363 \\\n- --hash=sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341 \\\n- --hash=sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04 \\\n- --hash=sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41 \\\n- --hash=sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e \\\n- --hash=sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3 \\\n- --hash=sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899 \\\n- --hash=sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805 \\\n- --hash=sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c \\\n- --hash=sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c \\\n- --hash=sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39 \\\n- --hash=sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a \\\n- --hash=sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3 \\\n- --hash=sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7 \\\n- --hash=sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f \\\n- --hash=sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075 \\\n- --hash=sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0 \\\n- --hash=sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40 \\\n- --hash=sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428 \\\n- --hash=sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927 \\\n- --hash=sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3 \\\n- --hash=sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f \\\n- --hash=sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65\n- # via -r requirements.in\n-typing-extensions==3.7.4.3 \\\n- --hash=sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918 \\\n- --hash=sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c \\\n- --hash=sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f\n- # via -r requirements.in\n-zipp==3.4.1 \\\n- --hash=sha256:3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76 \\\n- --hash=sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea5a63edc3e03098\n- # via importlib-metadata\n+appdirs\n+# via black\n+async-timeout\n+# via -r requirements.in\n+attrs\n+# via pytest\n+black\n+# via -r requirements.in\n+click\n+# via\n+# black\n+# pip-tools\n+flake8\n+# via -r requirements.in\n+importlib-metadata\n+# via -r requirements.in\n+iniconfig\n+# via pytest\n+mccabe\n+# via flake8\n+mypy-extensions\n+# via black\n+packaging\n+# via pytest\n+pathspec\n+# via black\n+pep517\n+# via pip-tools\n+pip-tools\n+# via -r requirements.in\n+pluggy\n+# via pytest\n+py\n+# via pytest\n+pycodestyle\n+# via flake8\n+pydocstyle\n+# via -r requirements.in\n+pyflakes\n+# via flake8\n+pyparsing\n+# via packaging\n+pytest-asyncio\n+# via -r requirements.in\n+pytest\n+# via\n+# -r requirements.in\n+# pytest-asyncio\n+regex\n+# via black\n+snowballstemmer\n+# via pydocstyle\n+toml\n+# via\n+# black\n+# pep517\n+# pytest\n+typed-ast\n+# via -r requirements.in\n+typing-extensions\n+# via -r requirements.in\n+zipp\n+# via importlib-metadata\n \n # WARNING: The following packages were not pinned, but pip requires them to be\n # pinned when the requirements file includes hashes. Consider using the --allow-unsafe flag.\n-# pip\n+# pip\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,33 +1,6 @@\n from setuptools import setup, find_packages\n-\n-with open(\"aiosocketpool/version.py\") as version_file:\n+with open('aiosocketpool/version.py') as version_file:\n exec(version_file.read())\n-\n-with open(\"README.md\") as readme:\n+with open('README.md') as readme:\n README = readme.read()\n-\n-setup(\n- name=\"aiosocketpool\",\n- version=__version__,\n- packages=find_packages(exclude=[\"*test*\"]),\n- install_requires=[\"async_timeout>=3.0.1\"],\n- extras_require={\n- \"testing\": [\n- \"black>=19.3b0\",\n- \"flake8>=3.7.8\",\n- \"pip-tools>=4.2.0\",\n- \"pydocstyle>=4.0.0\",\n- \"pytest>=5.1.0\",\n- \"pytest-asyncio>=0.10.0\",\n- ]\n- },\n- author=\"Roo Sczesnak\",\n- author_email=\"andrewscz@gmail.com\",\n- description=\"An asyncio-compatible socket pool\",\n- long_description=README,\n- long_description_content_type=\"text/markdown\",\n- license=\"MIT License\",\n- keyword=\"asyncio socketpool aiosocketpool\",\n- url=\"https://github.com/polyatail/aiosocketpool\",\n- test_suite=\"tests\",\n-)\n+setup(name='aiosocketpool', version=__version__, packages=find_packages(exclude=['*test*']), install_requires=['async_timeout'], extras_require={'testing': ['black', 'flake8', 'pip-tools', 'pydocstyle', 'pytest', 'pytest-asyncio']}, author='Roo Sczesnak', author_email='andrewscz@gmail.com', description='An asyncio-compatible socket pool', long_description=README, long_description_content_type='text/markdown', license='MIT License', keyword='asyncio socketpool aiosocketpool', url='https://github.com/polyatail/aiosocketpool', test_suite='tests')\n\\ No newline at end of file\n--- setup_polyatail__aiosocketpool.sh\n+++ setup_polyatail__aiosocketpool.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install pytest\n--- test_polyatail__aiosocketpool.sh\n+++ test_polyatail__aiosocketpool.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n",
"test_patch": "",
"gold_patch": "--- aiosocketpool/__init__.py\n+++ aiosocketpool/__init__.py\n@@ -9,8 +9,6 @@\n from typing import Optional\n import weakref\n \n-import async_timeout\n-\n \n def can_use_kqueue():\n # kqueue doesn't work on OS X 10.6 and below\n@@ -171,7 +169,7 @@\n \n loop = asyncio.get_event_loop()\n \n- with async_timeout.timeout(self.timeout):\n+ async with asyncio.timeout(self.timeout):\n await loop.sock_connect(self._socket, (self.host, self.port))\n \n if not is_connected(self._socket):\n@@ -228,7 +226,7 @@\n \"\"\"\n loop = asyncio.get_event_loop()\n \n- with async_timeout.timeout(self.timeout):\n+ async with asyncio.timeout(self.timeout):\n return await loop.sock_sendall(self._socket, data)\n \n async def recv(self, size: Optional[int] = 1024) -> bytes:\n@@ -247,7 +245,7 @@\n \"\"\"\n loop = asyncio.get_event_loop()\n \n- with async_timeout.timeout(self.timeout):\n+ async with asyncio.timeout(self.timeout):\n return await loop.sock_recv(self._socket, size)\n \n async def recv_exactly(self, size: int) -> bytes:\n",
"reproduction_target_date": "2021-05-01",
"reproduction_target_version": "3.8.9",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY polyatail__aiosocketpool .\n\nRUN bash /work/setup_polyatail__aiosocketpool.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_polyatail__aiosocketpool.sh\"]\n",
"version_source": "default",
"script_source": "requirements.txt",
"dependency_versions": "appdirs==1.4.4\nasync-timeout==5.0.1\nattrs==25.3.0\nblack==25.1.0\nbuild==1.2.2.post1\nclick==8.2.1\nflake8==7.3.0\nimportlib_metadata==8.7.0\niniconfig==2.1.0\nmccabe==0.7.0\nmypy_extensions==1.1.0\npackaging==25.0\npathspec==0.12.1\npep517==0.13.1\npip-tools==7.4.1\nplatformdirs==4.3.8\npluggy==1.6.0\npy==1.11.0\npycodestyle==2.14.0\npydocstyle==6.3.0\npyflakes==3.4.0\nPygments==2.19.2\npyparsing==3.2.3\npyproject_hooks==1.2.0\npytest==8.4.1\npytest-asyncio==1.1.0\nregex==2025.7.33\nsetuptools==80.9.0\nsnowballstemmer==3.0.1\ntoml==0.10.2\ntyped_ast==1.5.5\ntyping_extensions==4.14.1\nwheel==0.45.1\nzipp==3.23.0\n",
"test_type": "pytest",
"test_files": "tests/test_socketpool.py",
"test_count": 3,
"related_modules": "async-timeout",
"py_file_count": 5,
"total_loc_python": 710,
"difficulty": "Medium",
"license": "MIT"
},
{
"repo_name": "uichathurika/laptimize",
"repo_url": "https://github.com/uichathurika/laptimize",
"commit_hash": "973a25468d5a9bac96467391595d04dcac780e7a",
"patch": "--- setup.py\n+++ setup.py\n@@ -1,40 +1,12 @@\n from setuptools import setup, find_packages\n-\n try:\n import pypandoc\n-\n long_description = pypandoc.convert('README.md', 'rst')\n-except(IOError, ImportError):\n+except (IOError, ImportError):\n long_description = open('README.md').read()\n-\n VERSION = '1.0.0'\n DESCRIPTION = 'package to solve separable non linear optimization problems'\n URL = 'https://github.com/uichathurika/laptimize'\n-INSTALL_REQUIRES = [\n- 'numpy',\n- 'pandas',\n- 'pulp'\n-]\n+INSTALL_REQUIRES = ['numpy', 'pandas', 'pulp']\n LICENSE = 'MIT'\n-\n-setup(\n- name=\"laptimize\",\n- version=VERSION,\n- author=\"Ishanga Udatiyawala\",\n- author_email=\"uichathurika@gmail.com\",\n- description=DESCRIPTION,\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- packages=find_packages(),\n- install_requires=INSTALL_REQUIRES,\n-\n- keywords=['python', 'non linear optimization', 'separable programming', 'branch and bound', 'global solution'],\n- classifiers=[\n- \"Development Status :: 3 - Alpha\",\n- \"Intended Audience :: Education\",\n- \"Programming Language :: Python :: 3.6\",\n- \"Operating System :: Microsoft :: Windows\",\n- \"Natural Language :: English\",\n- \"Topic :: Scientific/Engineering :: Mathematics\"\n- ]\n-)\n+setup(name='laptimize', version=VERSION, author='Ishanga Udatiyawala', author_email='uichathurika@gmail.com', description=DESCRIPTION, long_description=long_description, long_description_content_type='text/markdown', packages=find_packages(), install_requires=INSTALL_REQUIRES, keywords=['python', 'non linear optimization', 'separable programming', 'branch and bound', 'global solution'], classifiers=['Development Status :: 3 - Alpha', 'Intended Audience :: Education', 'Programming Language :: Python :: 3.6', 'Operating System :: Microsoft :: Windows', 'Natural Language :: English', 'Topic :: Scientific/Engineering :: Mathematics'])\n\\ No newline at end of file\n--- setup_uichathurika__laptimize.sh\n+++ setup_uichathurika__laptimize.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n+pip install pytest\n--- test_uichathurika__laptimize.sh\n+++ test_uichathurika__laptimize.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n",
"test_patch": "",
"gold_patch": "--- laptimize/branch_and_bound_solver.py\n+++ laptimize/branch_and_bound_solver.py\n@@ -11,7 +11,7 @@\n '''Initialising the parameters'''\n self.error = error\n self._lower_bound = 0\n- self._upper_bound = np.Infinity\n+ self._upper_bound = np.inf\n self._constraint = dict()\n self._constraint_status = []\n self._objective_initial = []\n--- laptimize/solver.py\n+++ laptimize/solver.py\n@@ -45,10 +45,12 @@\n combine_segment_curve = pd.concat([segment, curve], axis=1)\n lb0, ub0, k, k_lower, k_upper, segment_key = BranchAndBoundSolver(self.error).create_subproblems(\n piecewise_lp, combine_segment_curve, self.constraints)\n- solution_df = solution_df.append({'iteration_no': 0, 'sub_problem_no': 0, 'piecewise_lp': piecewise_lp,\n- 'segment': segment, 'curve': curve,\n- 'lb': lb0, 'ub': ub0, 'k': k, 'k_lower': k_lower, 'k_upper': k_upper,\n- 'branching_node': segment_key}, ignore_index=True)\n+ solution_df = pd.concat([solution_df, pd.DataFrame([\n+ {'iteration_no': 0, 'sub_problem_no': 0, 'piecewise_lp': piecewise_lp,\n+ 'segment': segment, 'curve': curve,\n+ 'lb': lb0, 'ub': ub0, 'k': k, 'k_lower': k_lower, 'k_upper': k_upper,\n+ 'branching_node': segment_key}\n+ ])], ignore_index=True)\n global_df = pd.DataFrame()\n while (len(solution_df)) > 0 and (len(solution_df) <= 100):\n solution_df, global_df = self.sub_problem_solve(solution_df, combine_segment_curve, global_df)\n@@ -109,16 +111,17 @@\n ub1 = min(node.ub, ub1)\n lb1 = max(node.lb, lb1)\n \n- solution_df = solution_df.append(\n+ solution_df = pd.concat([solution_df, pd.DataFrame([\n {'iteration_no': iteration_no, 'sub_problem_no': sub_problem_no,\n- 'piecewise_lp': piecewise_lp1,\n- 'segment': segment1, 'curve': curve1,\n- 'lb': lb1, 'ub': ub1, 'k': k1, 'k_lower': k_lower1, 'k_upper': k_upper1,\n- 'branching_node': segment_key1}, ignore_index=True)\n+ 'piecewise_lp': piecewise_lp1,\n+ 'segment': segment1, 'curve': curve1,\n+ 'lb': lb1, 'ub': ub1, 'k': k1, 'k_lower': k_lower1, 'k_upper': k_upper1,\n+ 'branching_node': segment_key1}\n+ ])], ignore_index=True)\n sub_problem_no += 1\n iteration_no += 1\n else:\n- global_df = global_df.append(node, ignore_index=True)\n+ global_df = pd.concat([global_df, pd.DataFrame([node])], ignore_index=True)\n solution_df.drop([index], inplace=True)\n solution_df = solution_df.reset_index(drop=True)\n return solution_df, global_df\n",
"reproduction_target_date": "2021-03-29",
"reproduction_target_version": "3.6.13",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY uichathurika__laptimize .\n\nRUN bash /work/setup_uichathurika__laptimize.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_uichathurika__laptimize.sh\"]\n",
"version_source": "setup.py",
"script_source": "setup.py",
"dependency_versions": "iniconfig==2.1.0\nlaptimize @ file:///work\nnumpy==2.3.2\npackaging==25.0\npandas==2.3.1\npluggy==1.6.0\nPuLP==3.2.2\nPygments==2.19.2\npytest==8.4.1\npython-dateutil==2.9.0.post0\npytz==2025.2\nsix==1.17.0\ntzdata==2025.2\n",
"test_type": "pytest",
"test_files": "laptimize/test/test_solver.py, laptimize/test/test_curve_approximation.py, laptimize/test/test_branch_and_bound_solver.py, laptimize/test/test_lap_model.py",
"test_count": 12,
"related_modules": "numpy, pandas",
"py_file_count": 16,
"total_loc_python": 1302,
"difficulty": "Hard",
"license": "MIT"
},
{
"repo_name": "ronikobrosly/causal-curve",
"repo_url": "https://github.com/ronikobrosly/causal-curve",
"commit_hash": "a06fd687a5f746d1cdc5cdef18a65e73230a57d3",
"patch": "--- docs/requirements.txt\n+++ docs/requirements.txt\n@@ -16,4 +16,4 @@\n scipy\n six\n sphinx_rtd_theme\n-statsmodels\n+statsmodels\n\\ No newline at end of file\n--- requirements.txt\n+++ requirements.txt\n@@ -16,4 +16,4 @@\n scipy\n six\n sphinx_rtd_theme\n-statsmodels\n+statsmodels\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,44 +1,4 @@\n import setuptools\n-\n-with open(\"README.md\", \"r\") as fh:\n+with open('README.md', 'r') as fh:\n long_description = fh.read()\n-\n-setuptools.setup(\n- name=\"causal-curve\",\n- version=\"1.0.6\",\n- author=\"Roni Kobrosly\",\n- author_email=\"roni.kobrosly@gmail.com\",\n- description=\"A python library with tools to perform causal inference using \\\n- observational data when the treatment of interest is continuous.\",\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- url=\"https://github.com/ronikobrosly/causal-curve\",\n- packages=setuptools.find_packages(include=['causal_curve']),\n- classifiers=[\n- \"Programming Language :: Python :: 3\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Operating System :: OS Independent\",\n- ],\n- python_requires='>=3.6',\n- install_requires=[\n- 'black',\n- 'coverage',\n- 'future',\n- 'joblib',\n- 'numpy',\n- 'numpydoc',\n- 'pandas',\n- 'patsy',\n- 'progressbar2',\n- 'pygam',\n- 'pytest',\n- 'python-dateutil',\n- 'python-utils',\n- 'pytz',\n- 'scikit-learn',\n- 'scipy',\n- 'six',\n- 'sphinx_rtd_theme',\n- 'statsmodels'\n- ]\n-)\n+setuptools.setup(name='causal-curve', version='1.0.6', author='Roni Kobrosly', author_email='roni.kobrosly@gmail.com', description='A python library with tools to perform causal inference using observational data when the treatment of interest is continuous.', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/ronikobrosly/causal-curve', packages=setuptools.find_packages(include=['causal_curve']), classifiers=['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent'], python_requires='>=3.6', install_requires=['black', 'coverage', 'future', 'joblib', 'numpy', 'numpydoc', 'pandas', 'patsy', 'progressbar2', 'pygam', 'pytest', 'python-dateutil', 'python-utils', 'pytz', 'scikit-learn', 'scipy', 'six', 'sphinx_rtd_theme', 'statsmodels'])\n\\ No newline at end of file\n--- setup_ronikobrosly__causal-curve.sh\n+++ setup_ronikobrosly__causal-curve.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install -r docs/requirements.txt\n+pip install pytest\n--- test_ronikobrosly__causal-curve.sh\n+++ test_ronikobrosly__causal-curve.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n",
"test_patch": "",
"gold_patch": "--- causal_curve/gps_classifier.py\n+++ causal_curve/gps_classifier.py\n@@ -121,6 +121,6 @@\n \"\"\"\n return logit(\n self.gam_results.predict_proba(\n- np.array([T, self.gps_function(T).mean()]).reshape(1, -1)\n+ np.array([T, self.gps_function(T).mean()], dtype=\"object\").reshape(1, -1)\n )\n )\n--- causal_curve/gps_regressor.py\n+++ causal_curve/gps_regressor.py\n@@ -117,7 +117,7 @@\n in the case of a continuous outcome.\n \"\"\"\n return self.gam_results.predict(\n- np.array([T, self.gps_function(T).mean()]).reshape(1, -1)\n+ np.array([T, self.gps_function(T).mean()], dtype=\"object\").reshape(1, -1)\n )\n \n def point_estimate_interval(self, T, ci=0.95):\n@@ -154,5 +154,5 @@\n associated with a point estimate in the case of a continuous outcome.\n \"\"\"\n return self.gam_results.prediction_intervals(\n- np.array([T, self.gps_function(T).mean()]).reshape(1, -1), width=width\n+ np.array([T, self.gps_function(T).mean()], dtype=\"object\").reshape(1, -1), width=width\n )\n",
"reproduction_target_date": "2022-04-20",
"reproduction_target_version": "3.10.4",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY ronikobrosly__causal-curve .\n\nRUN bash /work/setup_ronikobrosly__causal-curve.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_ronikobrosly__causal-curve.sh\"]\n",
"version_source": "setup.py",
"script_source": "requirements.txt",
"dependency_versions": "alabaster==1.0.0\nbabel==2.17.0\nblack==25.1.0\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\nclick==8.2.1\ncoverage==7.10.1\ndocutils==0.21.2\nfuture==1.0.0\nidna==3.10\nimagesize==1.4.1\niniconfig==2.1.0\nJinja2==3.1.6\njoblib==1.5.1\nMarkupSafe==3.0.2\nmypy_extensions==1.1.0\nnumpy==2.3.2\nnumpydoc==1.9.0\npackaging==25.0\npandas==2.3.1\npathspec==0.12.1\npatsy==1.0.1\nplatformdirs==4.3.8\npluggy==1.6.0\nprogressbar2==4.5.0\npygam==0.10.1\nPygments==2.19.2\npytest==8.4.1\npython-dateutil==2.9.0.post0\npython-utils==3.9.1\npytz==2025.2\nrequests==2.32.4\nroman-numerals-py==3.1.0\nscikit-learn==1.7.1\nscipy==1.16.1\nsix==1.17.0\nsnowballstemmer==3.0.1\nSphinx==8.2.3\nsphinx-rtd-theme==3.0.2\nsphinxcontrib-applehelp==2.0.0\nsphinxcontrib-devhelp==2.0.0\nsphinxcontrib-htmlhelp==2.1.0\nsphinxcontrib-jquery==4.1\nsphinxcontrib-jsmath==1.0.1\nsphinxcontrib-qthelp==2.0.0\nsphinxcontrib-serializinghtml==2.0.0\nstatsmodels==0.14.5\nthreadpoolctl==3.6.0\ntyping_extensions==4.14.1\ntzdata==2025.2\nurllib3==2.5.0\n",
"test_type": "pytest",
"test_files": "tests/unit/test_core.py, tests/integration/test_tmle.py, tests/unit/test_gps_core.py, tests/integration/test_mediation.py, tests/integration/test_gps.py, tests/unit/test_gps_regressor.py, tests/unit/test_tmle_core.py, tests/unit/test_tmle_regressor.py, tests/unit/test_mediation.py, tests/unit/test_gps_classifier.py",
"test_count": 122,
"related_modules": "numpy",
"py_file_count": 25,
"total_loc_python": 3620,
"difficulty": "Medium",
"license": "MIT"
},
{
"repo_name": "lockepatton/sonipy",
"repo_url": "https://github.com/lockepatton/sonipy",
"commit_hash": "edc9015cad24a5598a06ccfffa5b42c061811c13",
"patch": "--- setup.py\n+++ setup.py\n@@ -1,24 +1,4 @@\n import setuptools\n-\n with open('README.md', 'r') as fh:\n long_description = fh.read()\n-\n-setuptools.setup(\n- name='sonipy',\n- version='1.1',\n- author='Locke Patton',\n- author_email='locke.patton@cfa.harvard.edu',\n- description='Sonification of 2D plots',\n- long_description=long_description,\n- long_description_content_type='text/markdown',\n- url='https://github.com/lockepatton/sonipy',\n- packages=setuptools.find_packages(),\n- classifiers=[\n- 'Programming Language :: Python :: 3.6',\n- 'Programming Language :: Python :: 3.7',\n- 'Programming Language :: Python :: 3.8',\n- 'Programming Language :: Python :: 3.9',\n- 'License :: OSI Approved :: MIT License',\n- 'Operating System :: OS Independent',\n- ],\n- install_requires=['numpy>=1.16.5', 'matplotlib', 'seaborn', 'pandas', 'scipy', 'pydub','IPython'])\n+setuptools.setup(name='sonipy', version='1.1', author='Locke Patton', author_email='locke.patton@cfa.harvard.edu', description='Sonification of 2D plots', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/lockepatton/sonipy', packages=setuptools.find_packages(), classifiers=['Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent'], install_requires=['numpy', 'matplotlib', 'seaborn', 'pandas', 'scipy', 'pydub', 'IPython'])\n\\ No newline at end of file\n--- setup_lockepatton__sonipy.sh\n+++ setup_lockepatton__sonipy.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n+pip install pytest\n--- test_lockepatton__sonipy.sh\n+++ test_lockepatton__sonipy.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n",
"test_patch": "",
"gold_patch": "--- sonipy/thinkdsp.py\n+++ sonipy/thinkdsp.py\n@@ -79,7 +79,7 @@\n wave: Wave\n \"\"\"\n zs = wave.quantize(self.bound, self.dtype)\n- self.fp.writeframes(zs.tostring())\n+ self.fp.writeframes(zs.tobytes())\n \n def close(self, duration=0):\n \"\"\"Closes the file.\n",
"reproduction_target_date": "2021-06-21",
"reproduction_target_version": "3.9.5",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY lockepatton__sonipy .\n\nRUN bash /work/setup_lockepatton__sonipy.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_lockepatton__sonipy.sh\"]\n",
"version_source": "setup.py",
"script_source": "setup.py",
"dependency_versions": "asttokens==3.0.0\ncontourpy==1.3.3\ncycler==0.12.1\ndecorator==5.2.1\nexecuting==2.2.0\nfonttools==4.59.0\niniconfig==2.1.0\nipython==9.4.0\nipython_pygments_lexers==1.1.1\njedi==0.19.2\nkiwisolver==1.4.8\nmatplotlib==3.10.3\nmatplotlib-inline==0.1.7\nnumpy==2.3.2\npackaging==25.0\npandas==2.3.1\nparso==0.8.4\npexpect==4.9.0\npillow==11.3.0\npluggy==1.6.0\nprompt_toolkit==3.0.51\nptyprocess==0.7.0\npure_eval==0.2.3\npydub==0.25.1\nPygments==2.19.2\npyparsing==3.2.3\npytest==8.4.1\npython-dateutil==2.9.0.post0\npytz==2025.2\nscipy==1.16.1\nseaborn==0.13.2\nsix==1.17.0\nsonipy @ file:///work\nstack-data==0.6.3\ntraitlets==5.14.3\ntzdata==2025.2\nwcwidth==0.2.13\n",
"test_type": "pytest",
"test_files": "tests/test_visualisation.py, tests/test_frequency.py, tests/test_durations.py, tests/test_sonify.py, tests/test_thinkdsp.py",
"test_count": 47,
"related_modules": "numpy",
"py_file_count": 15,
"total_loc_python": 2162,
"difficulty": "Easy",
"license": "MIT"
},
{
"repo_name": "mscroggs/CEEFAX",
"repo_url": "https://github.com/mscroggs/CEEFAX",
"commit_hash": "8e7a075de1809064b77360da24ebbbaa409c3bf2",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1 +1 @@\n-numpy\n+numpy\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,30 +1,8 @@\n import os\n from setuptools import setup\n-\n-os.system(\"cp VERSION LICENSE.txt contributors.txt ceefax/\")\n-\n-with open(\"README.md\") as f:\n+os.system('cp VERSION LICENSE.txt contributors.txt ceefax/')\n+with open('README.md') as f:\n long_description = f.read()\n-\n-with open(\"VERSION\") as f:\n+with open('VERSION') as f:\n v = f.read()\n-\n-setup(\n- name='ceefax',\n- version=v,\n- description='CEEFAX core',\n- license=\"MIT\",\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- author='Matthew Scroggs',\n- author_email='ceefax@mscroggs.co.uk',\n- url=\"http://www.github.com/mscroggs/CEEFAX\",\n- packages=['ceefax', 'ceefax.ceefax', 'ceefax.ceegraph', 'ceefax.cupt',\n- 'ceefax.error', 'ceefax.fonts', 'ceefax.functions', 'ceefax.helpers',\n- 'ceefax.page', 'ceefax.pages',\n- 'ceefax.fonts.size4bold', 'ceefax.fonts.size7',\n- 'ceefax.fonts.size7extracondensed', 'ceefax.fonts.size4',\n- 'ceefax.fonts.size4mono', 'ceefax.fonts.size7condensed'],\n- package_data={'': ['VERSION', 'LICENSE.txt', 'contributors.txt']},\n- include_package_data=True,\n-)\n+setup(name='ceefax', version=v, description='CEEFAX core', license='MIT', long_description=long_description, long_description_content_type='text/markdown', author='Matthew Scroggs', author_email='ceefax@mscroggs.co.uk', url='http://www.github.com/mscroggs/CEEFAX', packages=['ceefax', 'ceefax.ceefax', 'ceefax.ceegraph', 'ceefax.cupt', 'ceefax.error', 'ceefax.fonts', 'ceefax.functions', 'ceefax.helpers', 'ceefax.page', 'ceefax.pages', 'ceefax.fonts.size4bold', 'ceefax.fonts.size7', 'ceefax.fonts.size7extracondensed', 'ceefax.fonts.size4', 'ceefax.fonts.size4mono', 'ceefax.fonts.size7condensed'], package_data={'': ['VERSION', 'LICENSE.txt', 'contributors.txt']}, include_package_data=True)\n\\ No newline at end of file\n--- setup_mscroggs__CEEFAX.sh\n+++ setup_mscroggs__CEEFAX.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install pytest\n--- test_mscroggs__CEEFAX.sh\n+++ test_mscroggs__CEEFAX.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n",
"test_patch": "",
"gold_patch": "--- ceefax/page/PageManager.py\n+++ ceefax/page/PageManager.py\n@@ -8,10 +8,7 @@\n from ceefax.error.exceptions import ConfigError, PageError, TimeUp\n import traceback\n \n-try:\n- from imp import reload\n-except:\n- pass\n+from importlib import reload\n \n \n def alarm(signum, frame):\n",
"reproduction_target_date": "2021-02-16",
"reproduction_target_version": "3.8.7",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY mscroggs__CEEFAX .\n\nRUN bash /work/setup_mscroggs__CEEFAX.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_mscroggs__CEEFAX.sh\"]\n",
"version_source": "default",
"script_source": "requirements.txt",
"dependency_versions": "iniconfig==2.1.0\nnumpy==2.3.2\npackaging==25.0\npluggy==1.6.0\nPygments==2.19.2\npytest==8.4.1\n",
"test_type": "pytest",
"test_files": "test/test_pages.py, test/test_time.py, test/test_fonts.py",
"test_count": 14,
"related_modules": "builtin",
"py_file_count": 52,
"total_loc_python": 5566,
"difficulty": "Medium",
"license": "MIT"
},
{
"repo_name": "brmc/shortbus",
"repo_url": "https://github.com/brmc/shortbus",
"commit_hash": "965dbfbc30bc2d8685e8ca42e7ded9cd11f3fdbb",
"patch": "--- requirements_dev.txt\n+++ requirements_dev.txt\n@@ -1,10 +1,9 @@\n-pip==9.0.1\n-bumpversion==0.5.3\n-wheel==0.29.0\n-watchdog==0.8.3\n-flake8==2.6.0\n-tox==2.3.1\n-coverage==4.1\n-Sphinx==1.5.2\n-\n+pip\n+bumpversion\n+wheel\n+watchdog\n+flake8\n+tox\n+coverage\n+Sphinx\n \n--- setup.py\n+++ setup.py\n@@ -1,46 +1,8 @@\n-#!/usr/bin/env python\n-# -*- coding: utf-8 -*-\n-\n from setuptools import setup\n-\n with open('README.rst') as readme_file:\n readme = readme_file.read()\n-\n with open('HISTORY.rst') as history_file:\n history = history_file.read()\n-\n-requirements = [\n- 'pyyaml',\n- 'lxml'\n-]\n-\n+requirements = ['pyyaml', 'lxml']\n test_requirements = []\n-\n-setup(\n- name='shortbus',\n- version='0.2.2',\n- description=\"Tools to convert Sublime Text snippets into Jetbrains live templates and vice versa\",\n- long_description=readme + '\\n\\n' + history,\n- author=\"Brian McClure\",\n- author_email='brian@mcclure.pw',\n- url='https://github.com/brmc/shortbus',\n- packages=[\n- 'shortbus',\n- ],\n- package_dir={'shortbus':\n- 'shortbus'},\n- include_package_data=True,\n- install_requires=requirements,\n- license=\"MIT license\",\n- zip_safe=False,\n- keywords='shortbus',\n- classifiers=[\n- 'Development Status :: 2 - Pre-Alpha',\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: MIT License',\n- 'Natural Language :: English',\n- 'Programming Language :: Python :: 3.6',\n- ],\n- test_suite='tests',\n- tests_require=test_requirements\n-)\n+setup(name='shortbus', version='0.2.2', description='Tools to convert Sublime Text snippets into Jetbrains live templates and vice versa', long_description=readme + '\\n\\n' + history, author='Brian McClure', author_email='brian@mcclure.pw', url='https://github.com/brmc/shortbus', packages=['shortbus'], package_dir={'shortbus': 'shortbus'}, include_package_data=True, install_requires=requirements, license='MIT license', zip_safe=False, keywords='shortbus', classifiers=['Development Status :: 2 - Pre-Alpha', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Natural Language :: English', 'Programming Language :: Python :: 3.6'], test_suite='tests', tests_require=test_requirements)\n\\ No newline at end of file\n--- setup_brmc__shortbus.sh\n+++ setup_brmc__shortbus.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install -r requirements_dev.txt\n--- test_brmc__shortbus.sh\n+++ test_brmc__shortbus.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_transpiler\n",
"test_patch": "",
"gold_patch": "--- shortbus/components.py\n+++ shortbus/components.py\n@@ -2,7 +2,8 @@\n # -*- coding: utf-8 -*-\n import re\n import warnings\n-from collections import OrderedDict, Callable\n+from collections import OrderedDict\n+from collections.abc import Callable\n from functools import wraps\n from typing import Tuple, List\n from xml import etree\n",
"reproduction_target_date": "2018-01-04",
"reproduction_target_version": "3.6.4",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY brmc__shortbus .\n\nRUN bash /work/setup_brmc__shortbus.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_brmc__shortbus.sh\"]\n",
"version_source": "setup.py",
"script_source": "requirements.txt",
"dependency_versions": "alabaster==1.0.0\nbabel==2.17.0\nbump2version==1.0.1\nbumpversion==0.6.0\ncachetools==6.1.0\ncertifi==2025.7.14\nchardet==5.2.0\ncharset-normalizer==3.4.2\ncolorama==0.4.6\ncoverage==7.10.1\ndistlib==0.4.0\ndocutils==0.21.2\nfilelock==3.18.0\nflake8==7.3.0\nidna==3.10\nimagesize==1.4.1\nJinja2==3.1.6\nlxml==6.0.0\nMarkupSafe==3.0.2\nmccabe==0.7.0\npackaging==25.0\nplatformdirs==4.3.8\npluggy==1.6.0\npycodestyle==2.14.0\npyflakes==3.4.0\nPygments==2.19.2\npyproject-api==1.9.1\nPyYAML==6.0.2\nrequests==2.32.4\nroman-numerals-py==3.1.0\nsnowballstemmer==3.0.1\nSphinx==8.2.3\nsphinxcontrib-applehelp==2.0.0\nsphinxcontrib-devhelp==2.0.0\nsphinxcontrib-htmlhelp==2.1.0\nsphinxcontrib-jsmath==1.0.1\nsphinxcontrib-qthelp==2.0.0\nsphinxcontrib-serializinghtml==2.0.0\ntox==4.28.3\nurllib3==2.5.0\nvirtualenv==20.32.0\nwatchdog==6.0.0\nwheel==0.45.1\n",
"test_type": "unittest",
"test_files": "tests/test_transpiler.py",
"test_count": 7,
"related_modules": "builtin",
"py_file_count": 9,
"total_loc_python": 1028,
"difficulty": "Easy",
"license": "MIT"
},
{
"repo_name": "clbarnes/h5py_like",
"repo_url": "https://github.com/clbarnes/h5py_like",
"commit_hash": "6a1e23ce7337882de2dff16558e3640af305d790",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,11 +1,11 @@\n-numpy==1.20.3\n-pytest==6.2.4\n-h5py==3.2.1\n-setuptools==57.0.0\n-wheel==0.36.2\n-twine==3.4.1\n-pre-commit==2.13.0\n-flake8==3.9.2\n-bump2version==1.0.1\n-black==21.5b2\n-tox==3.23.1\n+numpy\n+pytest\n+h5py\n+setuptools\n+wheel\n+twine\n+pre-commit\n+flake8\n+bump2version\n+black\n+tox\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,33 +1,5 @@\n from setuptools import find_packages, setup\n-\n-\n-with open(\"README.md\") as f:\n+with open('README.md') as f:\n readme = f.read()\n-\n-extras = {\"test\": [\"pytest>=4.6.3\"]}\n-\n-setup(\n- author=\"Chris Lloyd Barnes\",\n- author_email=\"barnesc@janelia.hhmi.org\",\n- classifiers=[\n- \"Development Status :: 2 - Pre-Alpha\",\n- \"Intended Audience :: Developers\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Natural Language :: English\",\n- \"Programming Language :: Python :: 3.8\",\n- \"Programming Language :: Python :: 3.7\",\n- ],\n- description=\"Abstract base classes for making h5py-like objects.\",\n- install_requires=[\"numpy\"],\n- license=\"MIT license\",\n- long_description=readme,\n- long_description_content_type=\"text/markdown\",\n- include_package_data=True,\n- extras_require=extras,\n- keywords=\"h5py\",\n- name=\"h5py_like\",\n- packages=find_packages(exclude=[\"tests\"]),\n- url=\"https://github.com/clbarnes/h5py_like\",\n- version=\"0.6.0\",\n- zip_safe=False,\n-)\n+extras = {'test': ['pytest>=4.6.3']}\n+setup(author='Chris Lloyd Barnes', author_email='barnesc@janelia.hhmi.org', classifiers=['Development Status :: 2 - Pre-Alpha', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Natural Language :: English', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.7'], description='Abstract base classes for making h5py-like objects.', install_requires=['numpy'], license='MIT license', long_description=readme, long_description_content_type='text/markdown', include_package_data=True, extras_require=extras, keywords='h5py', name='h5py_like', packages=find_packages(exclude=['tests']), url='https://github.com/clbarnes/h5py_like', version='0.6.0', zip_safe=False)\n\\ No newline at end of file\n--- setup_clbarnes__h5py_like.sh\n+++ setup_clbarnes__h5py_like.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install pytest\n--- test_clbarnes__h5py_like.sh\n+++ test_clbarnes__h5py_like.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n",
"test_patch": "--- tests/test_shape_utils.py\n+++ tests/test_shape_utils.py\n@@ -168,7 +168,7 @@\n assert isinstance(chunks, tuple)\n assert len(chunks) == len(shape)\n assert all([0 < c <= max(s, 1) for c, s in zip(chunks, shape)])\n- bytes_per_chunk = typesize * np.product(chunks)\n+ bytes_per_chunk = typesize * np.prod(chunks)\n assert bytes_per_chunk < CHUNK_MAX\n \n \n",
"gold_patch": "--- h5py_like/shape_utils.py\n+++ h5py_like/shape_utils.py\n@@ -332,7 +332,7 @@\n \n # Determine the optimal chunk size in bytes using a PyTables expression.\n # This is kept as a float.\n- dset_size = np.product(chunks) * typesize\n+ dset_size = np.prod(chunks) * typesize\n target_size = CHUNK_BASE * (2 ** np.log10(dset_size / (1024.0 * 1024)))\n \n if target_size > CHUNK_MAX:\n@@ -347,7 +347,7 @@\n # 1b. We're within 50% of the target chunk size, AND\n # 2. The chunk is smaller than the maximum chunk size\n \n- chunk_bytes = np.product(chunks) * typesize\n+ chunk_bytes = np.prod(chunks) * typesize\n \n if (\n chunk_bytes < target_size\n@@ -355,7 +355,7 @@\n ) and chunk_bytes < CHUNK_MAX:\n break\n \n- if np.product(chunks) == 1:\n+ if np.prod(chunks) == 1:\n break # Element size larger than CHUNK_MAX\n \n chunks[idx % ndims] = np.ceil(chunks[idx % ndims] / 2.0)\n--- h5py_like/test_utils/dataset.py\n+++ h5py_like/test_utils/dataset.py\n@@ -112,7 +112,7 @@\n def test_threaded_read(self, file_, threads):\n shape = (20, 20)\n chunks = (10, 10)\n- data = np.arange(np.product(shape), dtype=int).reshape(shape)\n+ data = np.arange(np.prod(shape), dtype=int).reshape(shape)\n ds = self.dataset(file_, data, chunks=chunks)\n ds.threads = threads\n \n",
"reproduction_target_date": "2021-06-07",
"reproduction_target_version": "3.8.10",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY clbarnes__h5py_like .\n\nRUN bash /work/setup_clbarnes__h5py_like.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_clbarnes__h5py_like.sh\"]\n",
"version_source": "setup.py",
"script_source": "requirements.txt",
"dependency_versions": "black==25.1.0\nbump2version==1.0.1\ncachetools==6.1.0\ncertifi==2025.7.14\ncffi==1.17.1\ncfgv==3.4.0\nchardet==5.2.0\ncharset-normalizer==3.4.2\nclick==8.2.1\ncolorama==0.4.6\ncryptography==45.0.5\ndistlib==0.4.0\ndocutils==0.22\nfilelock==3.18.0\nflake8==7.3.0\nh5py==3.14.0\nid==1.5.0\nidentify==2.6.12\nidna==3.10\niniconfig==2.1.0\njaraco.classes==3.4.0\njaraco.context==6.0.1\njaraco.functools==4.2.1\njeepney==0.9.0\nkeyring==25.6.0\nmarkdown-it-py==3.0.0\nmccabe==0.7.0\nmdurl==0.1.2\nmore-itertools==10.7.0\nmypy_extensions==1.1.0\nnh3==0.3.0\nnodeenv==1.9.1\nnumpy==2.3.2\npackaging==25.0\npathspec==0.12.1\nplatformdirs==4.3.8\npluggy==1.6.0\npre_commit==4.2.0\npycodestyle==2.14.0\npycparser==2.22\npyflakes==3.4.0\nPygments==2.19.2\npyproject-api==1.9.1\npytest==8.4.1\nPyYAML==6.0.2\nreadme_renderer==44.0\nrequests==2.32.4\nrequests-toolbelt==1.0.0\nrfc3986==2.0.0\nrich==14.1.0\nSecretStorage==3.3.3\nsetuptools==80.9.0\ntox==4.28.3\ntwine==6.1.0\nurllib3==2.5.0\nvirtualenv==20.32.0\nwheel==0.45.1\n",
"test_type": "pytest",
"test_files": "tests/test_subclasses.py, tests/test_shape_utils.py",
"test_count": 141,
"related_modules": "numpy",
"py_file_count": 20,
"total_loc_python": 2248,
"difficulty": "Medium",
"license": "MIT"
},
{
"repo_name": "exa-analytics/exa",
"repo_url": "https://github.com/exa-analytics/exa",
"commit_hash": "ff3ae2b0eb646b76ac2fd39203a3907e8b4e2f54",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,10 +1,10 @@\n-numba>=0.50\n-numpy>=1.0\n-pandas>=1.0.5\n-networkx>=2.0\n-matplotlib>=3.0\n-pytest>=5.0\n-seaborn>=0.10\n-sympy>=1.5\n-tables>=3.6\n-PyYAML>=3.0\n+numba\n+numpy\n+pandas\n+networkx\n+matplotlib\n+pytest\n+seaborn\n+sympy\n+tables\n+PyYAML\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,48 +1,18 @@\n-#!/usr/bin/env python\n import os\n from setuptools import setup, find_packages\n-\n-\n-NAME = \"exa\"\n-DESCRIPTION = \"A framework for data engineering and science\"\n-STATIC = \"static\"\n-README = \"README.md\"\n-REQUIREMENTS = \"requirements.txt\"\n+NAME = 'exa'\n+DESCRIPTION = 'A framework for data engineering and science'\n+STATIC = 'static'\n+README = 'README.md'\n+REQUIREMENTS = 'requirements.txt'\n try:\n import pypandoc\n- LONG_DESCRIPTION = pypandoc.convert_file(README, \"rst\")\n+ LONG_DESCRIPTION = pypandoc.convert_file(README, 'rst')\n except ImportError:\n with open(README) as f:\n LONG_DESCRIPTION = f.read()\n with open(REQUIREMENTS) as f:\n DEPENDENCIES = f.read().splitlines()\n-with open(os.path.abspath(os.path.join(os.path.dirname(__file__), \"exa\", \"static\", \"version.txt\"))) as f:\n+with open(os.path.abspath(os.path.join(os.path.dirname(__file__), 'exa', 'static', 'version.txt'))) as f:\n __version__ = f.read().strip()\n-\n-\n-setup(\n- name=NAME,\n- version=__version__,\n- description=DESCRIPTION,\n- long_description=LONG_DESCRIPTION,\n- package_data={NAME: [STATIC + \"/*\"]},\n- include_package_data=True,\n- install_requires=DEPENDENCIES,\n- packages=find_packages(),\n- zip_safe=False,\n- license=\"Apache License Version 2.0\",\n- author=\"The Exa Analytics development team\",\n- author_email=\"exa.data.analytics@gmail.com\",\n- project_urls={\n- \"Bug Tracker\": \"https://github.com/exa-analytics/exa/issues\",\n- \"Documentation\": \"https://exa-analytics.github.io/exa/\",\n- \"Source Code\": \"https://github.com/exa-analytics/exa\"\n- },\n- classifiers=[\n- \"Intended Audience :: Developers\",\n- \"Intended Audience :: Science/Research\",\n- \"License :: OSI Approved :: Apache Software License\",\n- \"Programming Language :: Python :: 3\",\n- \"Natural Language :: English\"\n- ]\n-)\n+setup(name=NAME, version=__version__, description=DESCRIPTION, long_description=LONG_DESCRIPTION, package_data={NAME: [STATIC + '/*']}, include_package_data=True, install_requires=DEPENDENCIES, packages=find_packages(), zip_safe=False, license='Apache License Version 2.0', author='The Exa Analytics development team', author_email='exa.data.analytics@gmail.com', project_urls={'Bug Tracker': 'https://github.com/exa-analytics/exa/issues', 'Documentation': 'https://exa-analytics.github.io/exa/', 'Source Code': 'https://github.com/exa-analytics/exa'}, classifiers=['Intended Audience :: Developers', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python :: 3', 'Natural Language :: English'])\n\\ No newline at end of file\n--- setup_exa-analytics__exa.sh\n+++ setup_exa-analytics__exa.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install pytest\n--- test_exa-analytics__exa.sh\n+++ test_exa-analytics__exa.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n",
"test_patch": "",
"gold_patch": "--- exa/core/editor.py\n+++ exa/core/editor.py\n@@ -297,7 +297,7 @@\n Returns:\n pd.DataFrame: structured data\n \"\"\"\n- if isinstance(ncol, (int, np.int, np.int64, np.int32)):\n+ if isinstance(ncol, (int, np.int64, np.int32)):\n return pd.read_csv(io.StringIO('\\n'.join(self[start:stop])), delim_whitespace=True, names=range(ncol), **kwargs)\n else:\n return pd.read_csv(io.StringIO('\\n'.join(self[start:stop])), delim_whitespace=True, names=ncol, **kwargs)\n",
"reproduction_target_date": "2020-11-06",
"reproduction_target_version": "3.8.6",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY exa-analytics__exa .\n\nRUN bash /work/setup_exa-analytics__exa.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_exa-analytics__exa.sh\"]\n",
"version_source": "default",
"script_source": "requirements.txt",
"dependency_versions": "blosc2==3.6.1\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\ncontourpy==1.3.3\ncycler==0.12.1\nfonttools==4.59.0\nidna==3.10\niniconfig==2.1.0\nkiwisolver==1.4.8\nllvmlite==0.44.0\nmatplotlib==3.10.3\nmpmath==1.3.0\nmsgpack==1.1.1\nndindex==1.10.0\nnetworkx==3.5\nnumba==0.61.2\nnumexpr==2.11.0\nnumpy==2.2.6\npackaging==25.0\npandas==2.3.1\npillow==11.3.0\nplatformdirs==4.3.8\npluggy==1.6.0\npy-cpuinfo==9.0.0\nPygments==2.19.2\npyparsing==3.2.3\npytest==8.4.1\npython-dateutil==2.9.0.post0\npytz==2025.2\nPyYAML==6.0.2\nrequests==2.32.4\nseaborn==0.13.2\nsix==1.17.0\nsympy==1.14.0\ntables==3.10.2\ntyping_extensions==4.14.1\ntzdata==2025.2\nurllib3==2.5.0\n",
"test_type": "pytest",
"test_files": "exa/tests/test_typed.py, exa/util/tests/test_conversions.py, exa/tests/test_static.py, exa/util/tests/test_io.py, exa/core/tests/test_container.py, exa/util/tests/test_isotopes.py, exa/core/tests/test_numerical.py, exa/util/tests/test_units.py, exa/core/tests/test_error.py, exa/util/tests/test_constants.py, exa/core/tests/test_editor.py, exa/util/tests/test_utility.py, exa/util/tests/test_nbvars.py",
"test_count": 67,
"related_modules": "numpy",
"py_file_count": 36,
"total_loc_python": 3950,
"difficulty": "Easy",
"license": "Apache-2.0"
},
{
"repo_name": "mixkorshun/django-antispam",
"repo_url": "https://github.com/mixkorshun/django-antispam",
"commit_hash": "e0c74984423486ed5b89d0a86be5191af2b0efcc",
"patch": "--- setup.py\n+++ setup.py\n@@ -1,47 +1,2 @@\n from setuptools import setup, find_packages\n-\n-setup(\n- name='django-antispam',\n- version='1.0.3',\n- url='https://github.com/mixkorshun/django-antispam',\n- description='Anti-spam protection tools for django applications.',\n- keywords=['anti-spam', 'antispam', 'spam'],\n-\n- long_description=open('README.rst', 'r').read(),\n-\n- author='Vladislav Bakin',\n- author_email='mixkorshun@gmail.com',\n- maintainer='Vladislav Bakin',\n- maintainer_email='mixkorshun@gmail.com',\n-\n- license='MIT',\n-\n- install_requires=[\n- 'django',\n-\n- 'python-akismet',\n- ],\n-\n- tests_require=[\n- 'mock~=3.0',\n- ],\n-\n- packages=find_packages(exclude=['tests.*', 'tests']),\n-\n- test_suite='tests',\n-\n- classifiers=[\n- 'Development Status :: 5 - Production/Stable',\n- 'Intended Audience :: Developers',\n- 'Environment :: Web Environment',\n- 'Framework :: Django',\n- 'Natural Language :: English',\n- 'License :: OSI Approved :: MIT License',\n- 'Programming Language :: Python',\n- 'Programming Language :: Python :: 3',\n- 'Programming Language :: Python :: 3.4',\n- 'Programming Language :: Python :: 3.5',\n- 'Programming Language :: Python :: 3.6',\n- 'Programming Language :: Python :: 3.7',\n- ],\n-)\n+setup(name='django-antispam', version='1.0.3', url='https://github.com/mixkorshun/django-antispam', description='Anti-spam protection tools for django applications.', keywords=['anti-spam', 'antispam', 'spam'], long_description=open('README.rst', 'r').read(), author='Vladislav Bakin', author_email='mixkorshun@gmail.com', maintainer='Vladislav Bakin', maintainer_email='mixkorshun@gmail.com', license='MIT', install_requires=['django', 'python-akismet'], tests_require=['mock'], packages=find_packages(exclude=['tests.*', 'tests']), test_suite='tests', classifiers=['Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'Environment :: Web Environment', 'Framework :: Django', 'Natural Language :: English', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7'])\n\\ No newline at end of file\n--- setup_mixkorshun__django-antispam.sh\n+++ setup_mixkorshun__django-antispam.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n+pip install mock~=3.0\n--- test_mixkorshun__django-antispam.sh\n+++ test_mixkorshun__django-antispam.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.akismet.test_entities tests.akismet.test_client tests.akismet.test_utils tests.captcha.test_forms tests.captcha.test_widgets tests.captcha.test_templatetags tests.honeypot.test_forms tests.honeypot.test_widgets\n",
"test_patch": "",
"gold_patch": "--- antispam/captcha/forms.py\n+++ antispam/captcha/forms.py\n@@ -3,7 +3,7 @@\n from django.conf import settings\n from django.core.exceptions import ValidationError\n from django.utils.module_loading import import_string\n-from django.utils.translation import ugettext_lazy as _\n+from django.utils.translation import gettext_lazy as _\n \n from . import default_settings\n \n--- antispam/honeypot/forms.py\n+++ antispam/honeypot/forms.py\n@@ -1,6 +1,6 @@\n from django import forms\n from django.core.exceptions import ValidationError\n-from django.utils.translation import ugettext_lazy as _\n+from django.utils.translation import gettext_lazy as _\n \n from .widgets import HoneypotInput\n \n",
"reproduction_target_date": "2020-05-25",
"reproduction_target_version": "3.7.7",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY mixkorshun__django-antispam .\n\nRUN bash /work/setup_mixkorshun__django-antispam.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_mixkorshun__django-antispam.sh\"]\n",
"version_source": "setup.py",
"script_source": "setup.py",
"dependency_versions": "asgiref==3.9.1\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\nDjango==5.2.4\ndjango-antispam @ file:///work\nidna==3.10\nmock==3.0.5\npython-akismet==0.4.3\nrequests==2.32.4\nsix==1.17.0\nsqlparse==0.5.3\nurllib3==2.5.0\n",
"test_type": "unittest",
"test_files": "tests/captcha/test_widgets.py, tests/captcha/test_templatetags.py, tests/honeypot/test_widgets.py, tests/akismet/test_utils.py, tests/captcha/test_forms.py, tests/akismet/test_client.py, tests/honeypot/test_forms.py, tests/akismet/test_entities.py",
"test_count": 34,
"related_modules": "Django",
"py_file_count": 29,
"total_loc_python": 1062,
"difficulty": "Easy",
"license": "MIT"
},
{
"repo_name": "exleym/Flask-Filter",
"repo_url": "https://github.com/exleym/Flask-Filter",
"commit_hash": "28ee1bde0b91d18c5eceb46929ecfc3af19722c6",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,49 +1,49 @@\n-alabaster==0.7.12\n-atomicwrites==1.3.0\n-attrs==19.3.0\n-Babel==2.10.3\n-bleach==5.0.1\n-certifi==2018.11.29\n-chardet==3.0.4\n-charset-normalizer==2.1.1\n-click==8.1.3\n-coverage==4.5.4\n-docutils==0.14\n-Flask==2.2.2\n-flask-marshmallow==0.9.0\n-Flask-SQLAlchemy==2.5.1\n-idna==2.8\n-imagesize==1.1.0\n-importlib-metadata==4.12.0\n-iniconfig==1.1.1\n-itsdangerous==2.1.2\n-Jinja2==3.1.2\n-MarkupSafe==2.1.1\n-marshmallow==3.2.0\n-marshmallow-sqlalchemy==0.15.0\n-more-itertools==7.2.0\n-packaging==18.0\n-pkginfo==1.5.0.1\n-pluggy==0.13.0\n-py==1.11.0\n-Pygments==2.13.0\n-pyparsing==2.3.0\n-pytest==7.1.3\n-pytest-cov==2.8.1\n-pytz==2018.7\n-readme-renderer==24.0\n-requests==2.28.1\n-requests-toolbelt==0.9.1\n-six==1.11.0\n-snowballstemmer==1.2.1\n-Sphinx==1.8.2\n-sphinxcontrib-websupport==1.1.0\n-SQLAlchemy==1.3.19\n-tomli==2.0.1\n-tqdm==4.36.1\n-twine==2.0.0\n-urllib3==1.26.5\n-wcwidth==0.1.7\n-webencodings==0.5.1\n-Werkzeug==2.2.2\n-zipp==0.6.0\n+alabaster\n+atomicwrites\n+attrs\n+Babel\n+bleach\n+certifi\n+chardet\n+charset-normalizer\n+click\n+coverage\n+docutils\n+Flask\n+flask-marshmallow\n+Flask-SQLAlchemy\n+idna\n+imagesize\n+importlib-metadata\n+iniconfig\n+itsdangerous\n+Jinja2\n+MarkupSafe\n+marshmallow\n+marshmallow-sqlalchemy\n+more-itertools\n+packaging\n+pkginfo\n+pluggy\n+py\n+Pygments\n+pyparsing\n+pytest\n+pytest-cov\n+pytz\n+readme-renderer\n+requests\n+requests-toolbelt\n+six\n+snowballstemmer\n+Sphinx\n+sphinxcontrib-websupport\n+SQLAlchemy\n+tomli\n+tqdm\n+twine\n+urllib3\n+wcwidth\n+webencodings\n+Werkzeug\n+zipp\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,17 +1,2 @@\n-\n from setuptools import find_packages, setup\n-\n-setup(\n- name='Flask-Filter',\n- version='0.1.1',\n- author=\"Exley McCormick\",\n- author_email=\"exleym@gmail.com\",\n- description=\"A Flask extension for creating standard resource searches\",\n- packages=find_packages(exclude=[\"tests\", \"docs\", \"contrib\"]),\n- license='Creative Commons Attribution-Noncommercial-Share Alike license',\n- long_description=open('README.md').read(),\n- long_description_content_type=\"text/markdown\",\n- url=\"https://github.com/exleym/Flask-Filter \",\n- setup_requires=[\"pytest-runner\"],\n- tests_require=[\"pytest\", \"marshmallow\", \"sqlalchemy\", \"Flask-SQLAlchemy\"],\n-)\n+setup(name='Flask-Filter', version='0.1.1', author='Exley McCormick', author_email='exleym@gmail.com', description='A Flask extension for creating standard resource searches', packages=find_packages(exclude=['tests', 'docs', 'contrib']), license='Creative Commons Attribution-Noncommercial-Share Alike license', long_description=open('README.md').read(), long_description_content_type='text/markdown', url='https://github.com/exleym/Flask-Filter ', setup_requires=['pytest-runner'], tests_require=['pytest', 'marshmallow', 'sqlalchemy', 'Flask-SQLAlchemy'])\n\\ No newline at end of file\n--- setup_exleym__Flask-Filter.sh\n+++ setup_exleym__Flask-Filter.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_exleym__Flask-Filter.sh\n+++ test_exleym__Flask-Filter.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_filter_typecheck tests.test_filter_schema tests.test_flask_filter tests.test_filter tests.test_ordered_search tests.test_query_with_filters\n",
"test_patch": "",
"gold_patch": "--- flask_filter/base.py\n+++ flask_filter/base.py\n@@ -1,5 +1,5 @@\n from flask import Flask\n-from flask_sqlalchemy import Model\n+from flask_sqlalchemy.model import Model\n from marshmallow import Schema\n from typing import Union\n from flask_filter.schemas import deserialize_filters\n--- flask_filter/schemas.py\n+++ flask_filter/schemas.py\n@@ -2,11 +2,12 @@\n import marshmallow as ma\n from marshmallow.exceptions import ValidationError\n from flask_filter.filters import FILTERS\n+from importlib.metadata import version\n \n \n __FILTER_MAP = {c.OP: c for c in FILTERS}\n __VALID_OPERATORS = {x.OP for x in FILTERS}\n-_mm2 = ma.__version_info__[0] == 2\n+_mm2 = int(version(\"marshmallow\").split(\".\")[0]) == 2\n logger = logging.getLogger(__name__)\n \n \n",
"reproduction_target_date": "2022-09-08",
"reproduction_target_version": "3.9.14",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY exleym__Flask-Filter .\n\nRUN bash /work/setup_exleym__Flask-Filter.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_exleym__Flask-Filter.sh\"]\n",
"version_source": "default",
"script_source": "requirements.txt",
"dependency_versions": "alabaster==1.0.0\natomicwrites==1.4.1\nattrs==25.3.0\nbabel==2.17.0\nbleach==6.2.0\nblinker==1.9.0\ncertifi==2025.7.14\ncffi==1.17.1\nchardet==5.2.0\ncharset-normalizer==3.4.2\nclick==8.2.1\ncoverage==7.10.1\ncryptography==45.0.5\ndocutils==0.21.2\nFlask==3.1.1\nflask-marshmallow==1.3.0\nFlask-SQLAlchemy==3.1.1\ngreenlet==3.2.3\nid==1.5.0\nidna==3.10\nimagesize==1.4.1\nimportlib_metadata==8.7.0\niniconfig==2.1.0\nitsdangerous==2.2.0\njaraco.classes==3.4.0\njaraco.context==6.0.1\njaraco.functools==4.2.1\njeepney==0.9.0\nJinja2==3.1.6\nkeyring==25.6.0\nmarkdown-it-py==3.0.0\nMarkupSafe==3.0.2\nmarshmallow==4.0.0\nmarshmallow-sqlalchemy==1.4.2\nmdurl==0.1.2\nmore-itertools==10.7.0\nnh3==0.3.0\npackaging==25.0\npkginfo==1.12.1.2\npluggy==1.6.0\npy==1.11.0\npycparser==2.22\nPygments==2.19.2\npyparsing==3.2.3\npytest==8.4.1\npytest-cov==6.2.1\npytz==2025.2\nreadme_renderer==44.0\nrequests==2.32.4\nrequests-toolbelt==1.0.0\nrfc3986==2.0.0\nrich==14.1.0\nroman-numerals-py==3.1.0\nSecretStorage==3.3.3\nsix==1.17.0\nsnowballstemmer==3.0.1\nSphinx==8.2.3\nsphinxcontrib-applehelp==2.0.0\nsphinxcontrib-devhelp==2.0.0\nsphinxcontrib-htmlhelp==2.1.0\nsphinxcontrib-jsmath==1.0.1\nsphinxcontrib-qthelp==2.0.0\nsphinxcontrib-serializinghtml==2.0.0\nsphinxcontrib-websupport==2.0.0\nSQLAlchemy==2.0.42\ntomli==2.2.1\ntqdm==4.67.1\ntwine==6.1.0\ntyping_extensions==4.14.1\nurllib3==2.5.0\nwcwidth==0.2.13\nwebencodings==0.5.1\nWerkzeug==3.1.3\nzipp==3.23.0\n",
"test_type": "unittest",
"test_files": "tests/test_filter.py, tests/test_query_with_filters.py, tests/test_ordered_search.py, tests/test_filter_schema.py, tests/test_flask_filter.py, tests/test_filter_typecheck.py",
"test_count": 83,
"related_modules": "Flask-SQLAlchemy, marshmallow",
"py_file_count": 16,
"total_loc_python": 1282,
"difficulty": "Medium",
"license": "BSD-3-Clause"
},
{
"repo_name": "lopezm1/python-clean-architecture",
"repo_url": "https://github.com/lopezm1/python-clean-architecture",
"commit_hash": "1ac86de4addd9218d90006867423d71df8f00386",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,25 +1,25 @@\n-attrs==17.3.0\n-boto3==1.4.8\n-botocore==1.8.6\n-certifi==2017.11.5\n-chardet==3.0.4\n-click==6.7\n-docutils==0.14\n-Flask==0.12.2\n-googlemaps==2.5.1\n-idna==2.6\n-itsdangerous==0.24\n-Jinja2==2.10\n-jmespath==0.9.3\n-MarkupSafe==1.0\n-pluggy==0.6.0\n-py==1.5.2\n-PyMySQL==0.7.11\n-python-dateutil==2.6.1\n-requests==2.18.4\n-s3transfer==0.1.12\n-six==1.11.0\n-SQLAlchemy==1.2.1\n-urllib3==1.22\n-virtualenv==15.1.0\n-Werkzeug==0.12.2\n+attrs\n+boto3\n+botocore\n+certifi\n+chardet\n+click\n+docutils\n+Flask\n+googlemaps\n+idna\n+itsdangerous\n+Jinja2\n+jmespath\n+MarkupSafe\n+pluggy\n+py\n+PyMySQL\n+python-dateutil\n+requests\n+s3transfer\n+six\n+SQLAlchemy\n+urllib3\n+virtualenv\n+Werkzeug\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,39 +1,4 @@\n-#!/usr/bin/env python\n-# -*- coding: utf-8 -*-\n-\n from setuptools import setup, find_packages\n-\n-requirements = [\n- # TODO: put package requirements here\n-]\n-\n-test_requirements = [\n- # TODO: put package test requirements here\n-]\n-\n-setup(\n- name='python-clean-architecture',\n- version='0.1.0',\n- description=\"A clean architecture project in Python\",\n- author=\"Miguel Lopez\",\n- author_email='miguel.lopez@us.sogeti.com',\n- url='',\n- packages=find_packages(exclude=('tests')),\n- dependency_links=[\n- ''\n- ],\n- include_package_data=True,\n- install_requires=requirements,\n- license=\"MIT license\",\n- zip_safe=False,\n- keywords='python-clean-architecture',\n- classifiers=[\n- 'Development Status :: 2 - Pre-Alpha',\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: MIT License',\n- 'Natural Language :: English',\n- 'Programming Language :: Python :: 3.6',\n- ],\n- test_suite='tests',\n- tests_require=test_requirements\n-)\n+requirements = []\n+test_requirements = []\n+setup(name='python-clean-architecture', version='0.1.0', description='A clean architecture project in Python', author='Miguel Lopez', author_email='miguel.lopez@us.sogeti.com', url='', packages=find_packages(exclude='tests'), dependency_links=[''], include_package_data=True, install_requires=requirements, license='MIT license', zip_safe=False, keywords='python-clean-architecture', classifiers=['Development Status :: 2 - Pre-Alpha', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Natural Language :: English', 'Programming Language :: Python :: 3.6'], test_suite='tests', tests_require=test_requirements)\n\\ No newline at end of file\n--- setup_lopezm1__python-clean-architecture.sh\n+++ setup_lopezm1__python-clean-architecture.sh\n@@ -0,0 +1,7 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r dev-requirements.txt\n+pip install -r requirements.txt\n+pip install -r test-requirements.txt\n+pip install pytest\n--- test-requirements.txt\n+++ test-requirements.txt\n@@ -2,4 +2,4 @@\n tox\n coverage\n pytest-cov\n-pytest-flask\n+pytest-flask\n\\ No newline at end of file\n--- test_lopezm1__python-clean-architecture.sh\n+++ test_lopezm1__python-clean-architecture.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n",
"test_patch": "",
"gold_patch": "--- core/interactors/request_objects.py\n+++ core/interactors/request_objects.py\n@@ -18,7 +18,7 @@\n invalid_req.add_error('Request Object', 'cannot be empty')\n return invalid_req\n \n- if not isinstance(adict, collections.Mapping):\n+ if not isinstance(adict, collections.abc.Mapping):\n invalid_req.add_error('Request Object', 'not iterable.')\n return invalid_req\n \n",
"reproduction_target_date": "2018-02-01",
"reproduction_target_version": "3.6.4",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY lopezm1__python-clean-architecture .\n\nRUN bash /work/setup_lopezm1__python-clean-architecture.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_lopezm1__python-clean-architecture.sh\"]\n",
"version_source": "setup.py",
"script_source": "requirements.txt",
"dependency_versions": "attrs==25.3.0\nblinker==1.9.0\nboto3==1.39.17\nbotocore==1.39.17\ncachetools==6.1.0\ncertifi==2025.7.14\nchardet==5.2.0\ncharset-normalizer==3.4.2\nclick==8.2.1\ncolorama==0.4.6\ncoverage==7.10.1\ndistlib==0.4.0\ndocutils==0.22\nfilelock==3.18.0\nflake8==7.3.0\nFlask==3.1.1\ngooglemaps==4.10.0\ngreenlet==3.2.3\nidna==3.10\niniconfig==2.1.0\nitsdangerous==2.2.0\nJinja2==3.1.6\njmespath==1.0.1\nMarkupSafe==3.0.2\nmccabe==0.7.0\npackaging==25.0\nplatformdirs==4.3.8\npluggy==1.6.0\npy==1.11.0\npycodestyle==2.14.0\npyflakes==3.4.0\nPygments==2.19.2\nPyMySQL==1.1.1\npyproject-api==1.9.1\npytest==8.4.1\npytest-cov==6.2.1\npytest-flask==1.3.0\npython-dateutil==2.9.0.post0\nrequests==2.32.4\ns3transfer==0.13.1\nsix==1.17.0\nSQLAlchemy==2.0.42\ntox==4.28.3\ntyping_extensions==4.14.1\nurllib3==2.5.0\nvirtualenv==20.32.0\nWerkzeug==3.1.3\n",
"test_type": "pytest",
"test_files": "tests/entities/test_course.py, tests/entities/test_student.py, tests/entities/test_professor.py, tests/interactors/test_request_objects.py, tests/interactors/test_course_registration_interactor.py",
"test_count": 19,
"related_modules": "builtin",
"py_file_count": 43,
"total_loc_python": 1211,
"difficulty": "Easy",
"license": ""
},
{
"repo_name": "PytLab/VASPy",
"repo_url": "https://github.com/PytLab/VASPy",
"commit_hash": "a48bb43842bb87c07c6a4c7943b8d280e2e8889b",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,4 +1,3 @@\n-matplotlib>=1.5.2\n-numpy>=1.11.1\n-scipy>=0.18.0\n-\n+matplotlib\n+numpy\n+scipy\n--- setup.py\n+++ setup.py\n@@ -1,128 +1,17 @@\n-#!/usr/bin/env python\n-\n from setuptools import setup, find_packages\n-\n from vaspy import __version__ as version\n-\n maintainer = 'Shao-Zheng-Jiang'\n maintainer_email = 'shaozhengjiang@gmail.com'\n author = maintainer\n author_email = maintainer_email\n-description = \"A pure Python library designed to make it easy and quick to manipulate VASP files\"\n-\n-long_description = \"\"\"\n-=====\n-VASPy\n-=====\n-\n-.. image:: https://travis-ci.org/PytLab/VASPy.svg?branch=master\n- :target: https://travis-ci.org/PytLab/VASPy\n- :alt: Build Status\n-\n-.. image:: https://landscape.io/github/PytLab/VASPy/master/landscape.svg?style=flat\n- :target: https://landscape.io/github/PytLab/VASPy/master\n- :alt: Code Health\n-\n-.. image:: https://codecov.io/gh/PytLab/VASPy/branch/master/graph/badge.svg\n- :target: https://codecov.io/gh/PytLab/VASPy\n-\n-.. image:: https://img.shields.io/badge/python-3.5, 2.7-green.svg\n- :target: https://www.python.org/downloads/release/python-351/\n- :alt: platform\n-\n-.. image:: https://img.shields.io/badge/pypi-v0.8.12-blue.svg\n- :target: https://pypi.python.org/pypi/vaspy/\n- :alt: versions\n-\n-\n-Introduction\n-------------\n-\n-VASPy is a pure Python library designed to make it easy and quick to manipulate VASP files.\n-\n-You can use VASPy to manipulate VASP files in command lins or write your own python scripts to process VASP files and visualize VASP data.\n-\n-In `/scripts <https://github.com/PytLab/VASPy/tree/master/scripts>`_ , there are some scripts written by me for daily use.\n-\n-Installation\n-------------\n-1. Via pip(recommend)::\n-\n- pip install vaspy\n-\n-2. Via easy_install::\n-\n- easy_install vaspy\n-\n-3. From source::\n-\n- python setup.py install\n-\n-If you want to use **mayavi** to visualize VASP data, it is recommened to install `Canopy environment <https://store.enthought.com/downloads/#default>`_ on your device instead of installing it manually.\n-\n-After installing canopy, you can set corresponding aliases, for example:\n-\n-.. code-block:: shell\n-\n- alias canopy='/Users/<yourname>/Library/Enthought/Canopy/edm/envs/User/bin/python'\n- alias canopy-pip='/Users/zjshao/Library/Enthought/Canopy/edm/envs/User/bin/pip'\n- alias canopy-ipython='/Users/<yourname>/Library/Enthought/Canopy/edm/envs/User/bin/ipython'\n- alias canopy-jupyter='/Users/<yourname>/Library/Enthought/Canopy/edm/envs/User/bin/jupyter'\n-\n-Then you can install VASPy to canopy::\n-\n- canopy-pip install vaspy\n-\n-\"\"\"\n-\n-install_requires = [\n- 'numpy>=1.11.1',\n- 'matplotlib>=1.5.2',\n- 'scipy>=0.18.0',\n-]\n-\n+description = 'A pure Python library designed to make it easy and quick to manipulate VASP files'\n+long_description = \"\\n=====\\nVASPy\\n=====\\n\\n.. image:: https://travis-ci.org/PytLab/VASPy.svg?branch=master\\n :target: https://travis-ci.org/PytLab/VASPy\\n :alt: Build Status\\n\\n.. image:: https://landscape.io/github/PytLab/VASPy/master/landscape.svg?style=flat\\n :target: https://landscape.io/github/PytLab/VASPy/master\\n :alt: Code Health\\n\\n.. image:: https://codecov.io/gh/PytLab/VASPy/branch/master/graph/badge.svg\\n :target: https://codecov.io/gh/PytLab/VASPy\\n\\n.. image:: https://img.shields.io/badge/python-3.5, 2.7-green.svg\\n :target: https://www.python.org/downloads/release/python-351/\\n :alt: platform\\n\\n.. image:: https://img.shields.io/badge/pypi-v0.8.12-blue.svg\\n :target: https://pypi.python.org/pypi/vaspy/\\n :alt: versions\\n\\n\\nIntroduction\\n------------\\n\\nVASPy is a pure Python library designed to make it easy and quick to manipulate VASP files.\\n\\nYou can use VASPy to manipulate VASP files in command lins or write your own python scripts to process VASP files and visualize VASP data.\\n\\nIn `/scripts <https://github.com/PytLab/VASPy/tree/master/scripts>`_ , there are some scripts written by me for daily use.\\n\\nInstallation\\n------------\\n1. Via pip(recommend)::\\n\\n pip install vaspy\\n\\n2. Via easy_install::\\n\\n easy_install vaspy\\n\\n3. From source::\\n\\n python setup.py install\\n\\nIf you want to use **mayavi** to visualize VASP data, it is recommened to install `Canopy environment <https://store.enthought.com/downloads/#default>`_ on your device instead of installing it manually.\\n\\nAfter installing canopy, you can set corresponding aliases, for example:\\n\\n.. code-block:: shell\\n\\n alias canopy='/Users/<yourname>/Library/Enthought/Canopy/edm/envs/User/bin/python'\\n alias canopy-pip='/Users/zjshao/Library/Enthought/Canopy/edm/envs/User/bin/pip'\\n alias canopy-ipython='/Users/<yourname>/Library/Enthought/Canopy/edm/envs/User/bin/ipython'\\n alias canopy-jupyter='/Users/<yourname>/Library/Enthought/Canopy/edm/envs/User/bin/jupyter'\\n\\nThen you can install VASPy to canopy::\\n\\n canopy-pip install vaspy\\n\\n\"\n+install_requires = ['numpy', 'matplotlib', 'scipy']\n license = 'LICENSE'\n-\n-# Get long description.\n-#with open(\"README.rst\") as f:\n-# lines = f.readlines()\n-#\n-#long_description = \"\"\n-#for line in lines:\n-# if \"Installation\" in line:\n-# break\n-# else:\n-# long_description += line\n-\n name = 'vaspy'\n platforms = ['linux']\n url = 'https://github.com/PytLab/VASPy'\n download_url = ''\n-classifiers = [\n- 'Development Status :: 3 - Alpha',\n- 'Topic :: Text Processing',\n- 'License :: OSI Approved :: MIT License',\n- 'Programming Language :: Python :: 2',\n- 'Programming Language :: Python :: 2.7',\n- 'Programming Language :: Python :: 3',\n- 'Programming Language :: Python :: 3.5',\n-]\n-\n+classifiers = ['Development Status :: 3 - Alpha', 'Topic :: Text Processing', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.5']\n test_suite = 'vaspy.tests.test_all'\n-\n-setup(author=author,\n- author_email=author_email,\n- description=description,\n- license=license,\n- long_description=long_description,\n- install_requires=install_requires,\n- maintainer=maintainer,\n- name=name,\n- packages=find_packages(),\n- platforms=platforms,\n- url=url,\n- download_url=download_url,\n- version=version,\n- test_suite=test_suite,\n- classifiers=classifiers)\n-\n+setup(author=author, author_email=author_email, description=description, license=license, long_description=long_description, install_requires=install_requires, maintainer=maintainer, name=name, packages=find_packages(), platforms=platforms, url=url, download_url=download_url, version=version, test_suite=test_suite, classifiers=classifiers)\n\\ No newline at end of file\n--- setup_PytLab__VASPy.sh\n+++ setup_PytLab__VASPy.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_PytLab__VASPy.sh\n+++ test_PytLab__VASPy.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest vaspy.tests.ani_test vaspy.tests.cif_test vaspy.tests.incar_test vaspy.tests.xdatcar_test vaspy.tests.poscar_test vaspy.tests.xtd_test vaspy.tests.xsd_test vaspy.tests.arc_test vaspy.tests.outcar_test vaspy.tests.oszicar_test vaspy.tests.xyzfile_test\n",
"test_patch": "",
"gold_patch": "--- vaspy/atomco.py\n+++ vaspy/atomco.py\n@@ -173,7 +173,7 @@\n tf = self.tf\n except AttributeError:\n # Initialize tf with 'T's.\n- default_tf = np.full(self.data.shape, 'T', dtype=np.str)\n+ default_tf = np.full(self.data.shape, 'T', dtype=str)\n tf = kwargs.get(\"tf\", default_tf)\n data_tf = ''\n if coord_type == 'direct':\n",
"reproduction_target_date": "2022-06-19",
"reproduction_target_version": "3.9.13",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY PytLab__VASPy .\n\nRUN bash /work/setup_PytLab__VASPy.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_PytLab__VASPy.sh\"]\n",
"version_source": "default",
"script_source": "requirements.txt",
"dependency_versions": "contourpy==1.3.3\ncycler==0.12.1\nfonttools==4.59.0\nkiwisolver==1.4.8\nmatplotlib==3.10.3\nnumpy==2.3.2\npackaging==25.0\npillow==11.3.0\npyparsing==3.2.3\npython-dateutil==2.9.0.post0\nscipy==1.16.1\nsix==1.17.0\n",
"test_type": "unittest",
"test_files": "vaspy/tests/ani_test.py, vaspy/tests/oszicar_test.py, vaspy/tests/cif_test.py, vaspy/tests/xyzfile_test.py, vaspy/tests/incar_test.py, vaspy/tests/xtd_test.py, vaspy/tests/outcar_test.py, vaspy/tests/poscar_test.py, vaspy/tests/xdatcar_test.py, vaspy/tests/arc_test.py, vaspy/tests/xsd_test.py",
"test_count": 41,
"related_modules": "numpy",
"py_file_count": 38,
"total_loc_python": 4788,
"difficulty": "Easy",
"license": "MIT"
},
{
"repo_name": "pylhc/optics_functions",
"repo_url": "https://github.com/pylhc/optics_functions",
"commit_hash": "3f2364fe5c9b78cb354e3db47c5282b3c39265e5",
"patch": "--- setup.py\n+++ setup.py\n@@ -1,13 +1,9 @@\n import pathlib\n-\n import setuptools\n-\n-MODULE_NAME = \"optics_functions\"\n-# The directory containing this file\n+MODULE_NAME = 'optics_functions'\n TOPLEVEL_DIR = pathlib.Path(__file__).parent.absolute()\n-ABOUT_FILE = TOPLEVEL_DIR / MODULE_NAME / \"__init__.py\"\n-README = TOPLEVEL_DIR / \"README.md\"\n-\n+ABOUT_FILE = TOPLEVEL_DIR / MODULE_NAME / '__init__.py'\n+README = TOPLEVEL_DIR / 'README.md'\n \n def about_package(init_posixpath: pathlib.Path) -> dict:\n \"\"\"\n@@ -15,64 +11,11 @@\n provided with a PosixPath to the __init__.py file.\n \"\"\"\n about_text: str = init_posixpath.read_text()\n- return {\n- entry.split(\" = \")[0]: entry.split(\" = \")[1].strip('\"')\n- for entry in about_text.strip().split(\"\\n\")\n- if entry.startswith(\"__\")\n- }\n-\n-\n+ return {entry.split(' = ')[0]: entry.split(' = ')[1].strip('\"') for entry in about_text.strip().split('\\n') if entry.startswith('__')}\n ABOUT_OPTICS_FUNCTIONS = about_package(ABOUT_FILE)\n-\n-with README.open(\"r\") as docs:\n+with README.open('r') as docs:\n long_description = docs.read()\n-\n-\n-# Dependencies for the package itself\n-DEPENDENCIES = [\n- \"numpy>=1.19.0\",\n- \"pandas>=1.0\",\n- \"tfs-pandas>=2.0\"\n-]\n-\n-# Extra dependencies\n-EXTRA_DEPENDENCIES = {\n- \"test\": [\"pytest>=5.2\", \"pytest-cov>=2.9\"],\n- \"doc\": [\"sphinx\", \"sphinx_rtd_theme\"],\n-}\n-EXTRA_DEPENDENCIES.update(\n- {\"all\": [elem for list_ in EXTRA_DEPENDENCIES.values() for elem in list_]}\n-)\n-\n-setuptools.setup(\n- name=ABOUT_OPTICS_FUNCTIONS[\"__title__\"],\n- version=ABOUT_OPTICS_FUNCTIONS[\"__version__\"],\n- description=ABOUT_OPTICS_FUNCTIONS[\"__description__\"],\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- author=ABOUT_OPTICS_FUNCTIONS[\"__author__\"],\n- author_email=ABOUT_OPTICS_FUNCTIONS[\"__author_email__\"],\n- url=ABOUT_OPTICS_FUNCTIONS[\"__url__\"],\n- packages=setuptools.find_packages(include=(MODULE_NAME,)),\n- include_package_data=True,\n- python_requires=\">=3.6\",\n- license=ABOUT_OPTICS_FUNCTIONS[\"__license__\"],\n- classifiers=[\n- \"Development Status :: 5 - Production/Stable\",\n- \"Intended Audience :: Science/Research\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Natural Language :: English\",\n- \"Operating System :: OS Independent\",\n- \"Programming Language :: Python :: 3 :: Only\",\n- \"Programming Language :: Python :: 3.7\",\n- \"Programming Language :: Python :: 3.8\",\n- \"Programming Language :: Python :: 3.9\",\n- \"Programming Language :: Python :: 3.10\",\n- \"Topic :: Scientific/Engineering\",\n- \"Topic :: Software Development :: Libraries :: Python Modules\",\n- \"Typing :: Typed\",\n- ],\n- install_requires=DEPENDENCIES,\n- tests_require=EXTRA_DEPENDENCIES[\"test\"],\n- extras_require=EXTRA_DEPENDENCIES,\n-)\n+DEPENDENCIES = ['numpy', 'pandas', 'tfs-pandas']\n+EXTRA_DEPENDENCIES = {'test': ['pytest>=5.2', 'pytest-cov>=2.9'], 'doc': ['sphinx', 'sphinx_rtd_theme']}\n+EXTRA_DEPENDENCIES.update({'all': [elem for list_ in EXTRA_DEPENDENCIES.values() for elem in list_]})\n+setuptools.setup(name=ABOUT_OPTICS_FUNCTIONS['__title__'], version=ABOUT_OPTICS_FUNCTIONS['__version__'], description=ABOUT_OPTICS_FUNCTIONS['__description__'], long_description=long_description, long_description_content_type='text/markdown', author=ABOUT_OPTICS_FUNCTIONS['__author__'], author_email=ABOUT_OPTICS_FUNCTIONS['__author_email__'], url=ABOUT_OPTICS_FUNCTIONS['__url__'], packages=setuptools.find_packages(include=(MODULE_NAME,)), include_package_data=True, python_requires='>=3.6', license=ABOUT_OPTICS_FUNCTIONS['__license__'], classifiers=['Development Status :: 5 - Production/Stable', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: MIT License', 'Natural Language :: English', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3 :: Only', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Topic :: Scientific/Engineering', 'Topic :: Software Development :: Libraries :: Python Modules', 'Typing :: Typed'], install_requires=DEPENDENCIES, tests_require=EXTRA_DEPENDENCIES['test'], extras_require=EXTRA_DEPENDENCIES)\n\\ No newline at end of file\n--- setup_pylhc__optics_functions.sh\n+++ setup_pylhc__optics_functions.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .[all]\n+pip install pytest>=5.2 pytest-cov>=2.9\n+pip install pytest\n--- test_pylhc__optics_functions.sh\n+++ test_pylhc__optics_functions.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n",
"test_patch": "",
"gold_patch": "--- optics_functions/coupling.py\n+++ optics_functions/coupling.py\n@@ -374,5 +374,5 @@\n \"of the data points |F1001| < |F1010|. Your closest tune \"\n \"approach estimates might not be accurate.\")\n if to_nan:\n- df.loc[condition_not_fulfilled, COUPLING_RDTS] = np.NaN\n+ df.loc[condition_not_fulfilled, COUPLING_RDTS] = np.nan\n return df\n",
"reproduction_target_date": "2023-04-26",
"reproduction_target_version": "3.11.3",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY pylhc__optics_functions .\n\nRUN bash /work/setup_pylhc__optics_functions.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_pylhc__optics_functions.sh\"]\n",
"version_source": "setup.py",
"script_source": "setup.py",
"dependency_versions": "alabaster==1.0.0\nbabel==2.17.0\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\ncoverage==7.10.1\ndocutils==0.21.2\nidna==3.10\nimagesize==1.4.1\niniconfig==2.1.0\nJinja2==3.1.6\nMarkupSafe==3.0.2\nnumpy==2.3.2\noptics_functions @ file:///work\npackaging==25.0\npandas==2.3.1\npluggy==1.6.0\nPygments==2.19.2\npytest==8.4.1\npytest-cov==6.2.1\npython-dateutil==2.9.0.post0\npytz==2025.2\nrequests==2.32.4\nroman-numerals-py==3.1.0\nsix==1.17.0\nsnowballstemmer==3.0.1\nSphinx==8.2.3\nsphinx-rtd-theme==3.0.2\nsphinxcontrib-applehelp==2.0.0\nsphinxcontrib-devhelp==2.0.0\nsphinxcontrib-htmlhelp==2.1.0\nsphinxcontrib-jquery==4.1\nsphinxcontrib-jsmath==1.0.1\nsphinxcontrib-qthelp==2.0.0\nsphinxcontrib-serializinghtml==2.0.0\ntfs-pandas==4.0.0\ntzdata==2025.2\nurllib3==2.5.0\nzstandard==0.23.0\n",
"test_type": "pytest",
"test_files": "tests/unit/test_coupling.py, tests/unit/test_rdt.py, tests/unit/test_utils.py",
"test_count": 45,
"related_modules": "numpy",
"py_file_count": 11,
"total_loc_python": 2098,
"difficulty": "Easy",
"license": "MIT"
},
{
"repo_name": "Arkenan/fiuba_opiniones_de_curso",
"repo_url": "https://github.com/Arkenan/fiuba_opiniones_de_curso",
"commit_hash": "3d72dea0c5713ce21204a2457c76560b6945a974",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -3,4 +3,4 @@\n numpy\n flask-bootstrap4\n gunicorn\n-unidecode\n+unidecode\n\\ No newline at end of file\n--- setup_Arkenan__fiuba_opiniones_de_curso.sh\n+++ setup_Arkenan__fiuba_opiniones_de_curso.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install pytest\n--- test_Arkenan__fiuba_opiniones_de_curso.sh\n+++ test_Arkenan__fiuba_opiniones_de_curso.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n",
"test_patch": "--- tests/modelo/test_dificultad.py\n+++ tests/modelo/test_dificultad.py\n@@ -1,6 +1,6 @@\n import pytest\n import csv\n-from numpy import NaN\n+from numpy import nan\n from numpy import isnan\n from modelo.dificultad import Dificultad\n \n--- tests/modelo/test_nivel_clases.py\n+++ tests/modelo/test_nivel_clases.py\n@@ -1,6 +1,6 @@\n import pytest\n import csv\n-from numpy import NaN\n+from numpy import nan\n from numpy import isnan\n from modelo.nivel_clases import NivelClases\n \n",
"gold_patch": "--- modelo/dificultad.py\n+++ modelo/dificultad.py\n@@ -1,4 +1,4 @@\n-from numpy import NaN\n+from numpy import nan\n from unidecode import unidecode\n \n \n@@ -9,7 +9,7 @@\n \"normal\": 3,\n \"facil\": 2,\n \"muy facil\": 1,\n- \"no hay tp\": NaN,\n+ \"no hay tp\": nan,\n }\n \n def __init__(self, texto_dificultad):\n--- modelo/nivel_clases.py\n+++ modelo/nivel_clases.py\n@@ -1,4 +1,4 @@\n-from numpy import NaN\n+from numpy import nan\n \n \n class NivelClases:\n@@ -7,6 +7,6 @@\n def __init__(self, texto):\n self.texto = texto\n if \"no hay\" in texto.lower():\n- self.puntos = NaN\n+ self.puntos = nan\n else:\n self.puntos = self.MAP[texto]\n",
"reproduction_target_date": "2021-12-10",
"reproduction_target_version": "3.9.9",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY Arkenan__fiuba_opiniones_de_curso .\n\nRUN bash /work/setup_Arkenan__fiuba_opiniones_de_curso.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_Arkenan__fiuba_opiniones_de_curso.sh\"]\n",
"version_source": "default",
"script_source": "requirements.txt",
"dependency_versions": "blinker==1.9.0\nclick==8.2.1\ndominate==2.9.1\nFlask==3.1.1\nFlask-Bootstrap4==4.0.2\ngunicorn==23.0.0\niniconfig==2.1.0\nitsdangerous==2.2.0\nJinja2==3.1.6\nMarkupSafe==3.0.2\nnumpy==2.3.2\npackaging==25.0\npluggy==1.6.0\nPygments==2.19.2\npytest==8.4.1\nUnidecode==1.4.0\nvisitor==0.1.3\nWerkzeug==3.1.3\n",
"test_type": "pytest",
"test_files": "tests/modelo/test_interes.py, tests/modelo/test_nivel_clases.py, tests/app/test_opiniones_repo.py, tests/app/test_asignaturas_repo.py, tests/modelo/test_periodo.py, tests/modelo/test_general.py, tests/modelo/test_dificultad.py, tests/app/test_opiniones_parser.py, tests/app/test_periodo_repo.py, tests/app/test_index.py, tests/app/test_vista_cuatrimestre.py",
"test_count": 40,
"related_modules": "numpy",
"py_file_count": 29,
"total_loc_python": 636,
"difficulty": "Medium",
"license": ""
},
{
"repo_name": "dan-stone/canal",
"repo_url": "https://github.com/dan-stone/canal",
"commit_hash": "8a6b03a46102f7e5ca457538eb03ab9526eec095",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,3 +1,3 @@\n nose\n-pandas>=0.18.0\n+pandas\n pytz\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,16 +1,8 @@\n-try: # for pip >= 10\n+try:\n from pip._internal.req import parse_requirements\n-except ImportError: # for pip <= 9.0.3\n+except ImportError:\n from pip.req import parse_requirements\n from setuptools import setup, find_packages\n-\n-# parse_requirements() returns generator of pip.req.InstallRequirement objects\n-install_reqs = parse_requirements(\"requirements.txt\", session=False)\n+install_reqs = parse_requirements('requirements.txt', session=False)\n reqs = [str(ir.req) for ir in install_reqs]\n-\n-setup(\n- name='canal',\n- install_requires=reqs,\n- packages=find_packages(),\n- version=\"0.1.0\"\n-)\n+setup(name='canal', install_requires=reqs, packages=find_packages(), version='0.1.0')\n\\ No newline at end of file\n--- setup_dan-stone__canal.sh\n+++ setup_dan-stone__canal.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_dan-stone__canal.sh\n+++ test_dan-stone__canal.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest canal.tests.test_query canal.tests.util canal.tests.test_measurement canal.tests.test_datum\n",
"test_patch": "--- canal/tests/test_measurement.py\n+++ canal/tests/test_measurement.py\n@@ -261,7 +261,7 @@\n test_series.to_line_protocol()\n \n def test_nan_in_required_float_field(self):\n- floats = np.arange(10, dtype=np.float)\n+ floats = np.arange(10, dtype=float)\n floats[0::2] = np.nan\n test_series = self.TestMeasurement(\n test_field=10*[1],\n--- canal/tests/test_query.py\n+++ canal/tests/test_query.py\n@@ -5,6 +5,7 @@\n \n import canal\n \n+TZ = pytz.timezone(\"EST\")\n TEST_DATE = datetime.datetime(\n year=2016,\n month=5,\n@@ -13,8 +14,8 @@\n minute=49,\n second=23,\n microsecond=12345,\n- tzinfo=pytz.timezone(\"EST\")\n )\n+TEST_DATE = TZ.localize(TEST_DATE)\n TEST_DATE_STRING = \"'2016-05-17T15:49:23.012345Z'\"\n \n \n",
"gold_patch": "--- canal/measurement.py\n+++ canal/measurement.py\n@@ -172,7 +172,7 @@\n ] + [\n ('time', np.array(time, dtype='datetime64[ns]') if time is not None else None)\n ]\n- self._data_frame = pd.DataFrame.from_items(items)\n+ self._data_frame = pd.DataFrame.from_dict(dict(items))\n \n def __len__(self):\n return len(self.data_frame)\n",
"reproduction_target_date": "2018-09-04",
"reproduction_target_version": "3.6.6",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY dan-stone__canal .\n\nRUN bash /work/setup_dan-stone__canal.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_dan-stone__canal.sh\"]\n",
"version_source": "default",
"script_source": "requirements.txt",
"dependency_versions": "nose==1.3.7\nnumpy==2.3.2\npandas==2.3.1\npython-dateutil==2.9.0.post0\npytz==2025.2\nsix==1.17.0\ntzdata==2025.2\n",
"test_type": "unittest",
"test_files": "canal/tests/test_query.py, canal/tests/util.py, canal/tests/test_measurement.py, canal/tests/test_datum.py",
"test_count": 47,
"related_modules": "pandas",
"py_file_count": 14,
"total_loc_python": 1507,
"difficulty": "Easy",
"license": "MIT"
},
{
"repo_name": "mzjp2/mdtable",
"repo_url": "https://github.com/mzjp2/mdtable",
"commit_hash": "9ce7bb98f5e560dd597f46dc6503f06bce1c631f",
"patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,25 +1,25 @@\n-appdirs==1.4.3\n-astroid==2.2.5\n-atomicwrites==1.3.0\n-attrs==19.1.0\n-black==19.3b0\n-Click==7.0\n-coverage==4.5.3\n-importlib-metadata==0.18\n-isort==4.3.20\n-lazy-object-proxy==1.4.1\n-mccabe==0.6.1\n-more-itertools==7.0.0\n-packaging==19.0\n-pluggy==0.12.0\n-py==1.8.0\n-pylint==2.3.1\n-pyparsing==2.4.0\n-pytest==4.6.3\n-pytest-cov==2.7.1\n-six==1.12.0\n-toml==0.10.0\n-typed-ast==1.4.0\n-wcwidth==0.1.7\n-wrapt==1.11.2\n-zipp==0.5.1\n+appdirs\n+astroid\n+atomicwrites\n+attrs\n+black\n+Click\n+coverage\n+importlib-metadata\n+isort\n+lazy-object-proxy\n+mccabe\n+more-itertools\n+packaging\n+pluggy\n+py\n+pylint\n+pyparsing\n+pytest\n+pytest-cov\n+six\n+toml\n+typed-ast\n+wcwidth\n+wrapt\n+zipp\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,36 +1,6 @@\n-# -*- coding: utf-8 -*-\n-\n import re\n from setuptools import setup\n-\n-\n-VERSION = re.search(\n- '^__version__\\s*=\\s*\"(.*)\"', open(\"mdtable/mdtable.py\").read(), re.M\n-).group(1)\n-\n-\n-with open(\"README.md\", \"rb\") as f:\n- LONG_DESCR = f.read().decode(\"utf-8\")\n-\n-\n-setup(\n- name=\"mdtable\",\n- packages=[\"mdtable\"],\n- entry_points={\"console_scripts\": [\"mdtable = mdtable.cli:main\"]},\n- version=VERSION,\n- description=\"mdtable converts csv files to markdown formatted tables\",\n- long_description=LONG_DESCR,\n- long_description_content_type=\"text/markdown\",\n- author=\"Zain Patel\",\n- author_email=\"zain.patel06@gmail.com\",\n- url=\"https://github.com/mzjp2/mdtable\",\n- classifiers=[\n- # Pick your license as you wish\n- \"Programming Language :: Python :: 3\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Operating System :: OS Independent\",\n- ],\n- keywords=\"markdown cli convert\",\n- python_requires=\">=3.5\",\n- install_requires=[\"click\"],\n-)\n+VERSION = re.search('^__version__\\\\s*=\\\\s*\"(.*)\"', open('mdtable/mdtable.py').read(), re.M).group(1)\n+with open('README.md', 'rb') as f:\n+ LONG_DESCR = f.read().decode('utf-8')\n+setup(name='mdtable', packages=['mdtable'], entry_points={'console_scripts': ['mdtable = mdtable.cli:main']}, version=VERSION, description='mdtable converts csv files to markdown formatted tables', long_description=LONG_DESCR, long_description_content_type='text/markdown', author='Zain Patel', author_email='zain.patel06@gmail.com', url='https://github.com/mzjp2/mdtable', classifiers=['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent'], keywords='markdown cli convert', python_requires='>=3.5', install_requires=['click'])\n\\ No newline at end of file\n--- setup_mzjp2__mdtable.sh\n+++ setup_mzjp2__mdtable.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install pytest\n--- test_mzjp2__mdtable.sh\n+++ test_mzjp2__mdtable.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n",
"test_patch": "",
"gold_patch": "--- mdtable/mdtable.py\n+++ mdtable/mdtable.py\n@@ -175,7 +175,7 @@\n csv_dict = {}\n with open(filepath, \"r\") as csv_file:\n csv_reader = csv.reader(\n- csv_file, delimiter=delimiter, quotechar=quotechar, escapechar=escapechar\n+ csv_file, delimiter=delimiter, quotechar=quotechar, escapechar=(escapechar or None),\n )\n header = next(csv_reader)\n num_cols = len(header)\n",
"reproduction_target_date": "2019-06-30",
"reproduction_target_version": "3.7.3",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY mzjp2__mdtable .\n\nRUN bash /work/setup_mzjp2__mdtable.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_mzjp2__mdtable.sh\"]\n",
"version_source": "setup.py",
"script_source": "requirements.txt",
"dependency_versions": "appdirs==1.4.4\nastroid==3.3.11\natomicwrites==1.4.1\nattrs==25.3.0\nblack==25.1.0\nclick==8.2.1\ncoverage==7.10.1\ndill==0.4.0\nimportlib_metadata==8.7.0\niniconfig==2.1.0\nisort==6.0.1\nlazy-object-proxy==1.11.0\nmccabe==0.7.0\nmore-itertools==10.7.0\nmypy_extensions==1.1.0\npackaging==25.0\npathspec==0.12.1\nplatformdirs==4.3.8\npluggy==1.6.0\npy==1.11.0\nPygments==2.19.2\npylint==3.3.7\npyparsing==3.2.3\npytest==8.4.1\npytest-cov==6.2.1\nsix==1.17.0\ntoml==0.10.2\ntomlkit==0.13.3\ntyped_ast==1.5.5\nwcwidth==0.2.13\nwrapt==1.17.2\nzipp==3.23.0\n",
"test_type": "pytest",
"test_files": "tests/test_mdtable.py",
"test_count": 15,
"related_modules": "builtin",
"py_file_count": 7,
"total_loc_python": 338,
"difficulty": "Easy",
"license": "MIT"
},
{
"repo_name": "alliefitter/iterable_collections",
"repo_url": "https://github.com/alliefitter/iterable_collections",
"commit_hash": "4e8fb4b05517406cbffe9c3276a1c0c956ba263c",
"patch": "--- setup.py\n+++ setup.py\n@@ -1,33 +1,5 @@\n import sys\n from setuptools import setup\n-\n with open('README.rst', 'r') as f:\n long_description = f.read()\n-\n-setup(\n- name='iterable_collections',\n- version='0.1.6',\n- packages=['iterable_collections'],\n- license='MIT License',\n- author='Allie Fitter',\n- author_email='fitterj@gmail.com',\n- description='A collections pipeline tool for iterable objects with support for iteration with `dict.items`',\n- long_description=long_description,\n- long_description_content_type='text/x-rst',\n- keywords=['collection', 'map', 'filter', 'pipeline', 'linq', 'scala'],\n- url='https://github.com/alliefitter/iterable_collections',\n- data_files=[(\n- 'lib/python{}.{}/site-packages/iterable_collections'.format(*sys.version_info[:2]),\n- [\n- \"iterable_collections/collection.pyi\",\n- \"iterable_collections/strategy.pyi\",\n- \"iterable_collections/factory.pyi\",\n- \"iterable_collections/utils.pyi\"\n- ]\n- )],\n- classifiers=(\n- \"Programming Language :: Python :: 3\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Operating System :: OS Independent\"\n- )\n-)\n+setup(name='iterable_collections', version='0.1.6', packages=['iterable_collections'], license='MIT License', author='Allie Fitter', author_email='fitterj@gmail.com', description='A collections pipeline tool for iterable objects with support for iteration with `dict.items`', long_description=long_description, long_description_content_type='text/x-rst', keywords=['collection', 'map', 'filter', 'pipeline', 'linq', 'scala'], url='https://github.com/alliefitter/iterable_collections', data_files=[('lib/python{}.{}/site-packages/iterable_collections'.format(*sys.version_info[:2]), ['iterable_collections/collection.pyi', 'iterable_collections/strategy.pyi', 'iterable_collections/factory.pyi', 'iterable_collections/utils.pyi'])], classifiers=('Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent'))\n\\ No newline at end of file\n--- setup_alliefitter__iterable_collections.sh\n+++ setup_alliefitter__iterable_collections.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n--- test_alliefitter__iterable_collections.sh\n+++ test_alliefitter__iterable_collections.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_list_ tests.test_first tests.test_len tests.test_chunks tests.test_max tests.test_reduce_items tests.test_last_item tests.test_set tests.test_iter tests.test_dict_ tests.test_reduce_nt_items tests.test_list tests.test_first_nt_item tests.test_groupby tests.test_reversed tests.test_iter_ tests.test_flatten tests.test_concat tests.test_items tests.test_last tests.test_intersect_iter tests.test_concat_dict tests.test_join tests.test_setitem tests.test_diff_iter tests.test_concat_seq tests.test_group_sort tests.test_getitem tests.test_tuple tests.test_first_item tests.test_next tests.test_filter_nt_items tests.test_all tests.test_emap tests.test_tuple_ tests.test_slice tests.test_diff_dict tests.test_diff_seq tests.test_unique tests.test_dict tests.test_map tests.test_islice tests.test_map_items tests.test_zip tests.test_contains tests.test_pop tests.test_empty tests.test_filter_items tests.test_set_ tests.test_sorted tests.test_filter tests.test_min tests.test_intersect_dict tests.test_ordered_dict tests.test_any tests.test_nt_items tests.test_intersect tests.test_diff tests.test_intersect_seq tests.test_enumerate tests.test_last_nt_item tests.test_map_nt_item tests.test_reduce\n",
"test_patch": "",
"gold_patch": "--- iterable_collections/collection.py\n+++ iterable_collections/collection.py\n@@ -1,4 +1,4 @@\n-from collections import Iterable\n+from collections.abc import Iterable\n \n from iterable_collections.factory import DefaultMethodStrategyFactory\n \n--- iterable_collections/factory.py\n+++ iterable_collections/factory.py\n@@ -4,7 +4,7 @@\n \n import builtins\n \n-from collections import Iterator\n+from collections.abc import Iterator\n \n import itertools\n \n",
"reproduction_target_date": "2018-11-07",
"reproduction_target_version": "3.6.7",
"migration_target_date": "2025-07-31",
"migration_target_version": "3.12.11",
"dockerfile": "FROM mirror.gcr.io/python:3.12.11\n\nENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31\nENV PIP_TRUSTED_HOST=localhost\n\nWORKDIR /work\n\nCOPY alliefitter__iterable_collections .\n\nRUN bash /work/setup_alliefitter__iterable_collections.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_alliefitter__iterable_collections.sh\"]\n",
"version_source": "default",
"script_source": "setup.py",
"dependency_versions": "iterable_collections @ file:///work\n",
"test_type": "unittest",
"test_files": "tests/test_reduce_nt_items.py, tests/test_concat.py, tests/test_empty.py, tests/test_filter_items.py, tests/test_intersect.py, tests/test_zip.py, tests/test_iter_.py, tests/test_intersect_iter.py, tests/test_join.py, tests/test_iter.py, tests/test_list.py, tests/test_filter_nt_items.py, tests/test_contains.py, tests/test_set_.py, tests/test_items.py, tests/test_tuple_.py, tests/test_islice.py, tests/test_diff_dict.py, tests/test_filter.py, tests/test_tuple.py, tests/test_diff_seq.py, tests/test_unique.py, tests/test_intersect_seq.py, tests/test_concat_dict.py, tests/test_any.py, tests/test_dict_.py, tests/test_enumerate.py, tests/test_getitem.py, tests/test_first_item.py, tests/test_len.py, tests/test_concat_seq.py, tests/test_last.py, tests/test_next.py, tests/test_all.py, tests/test_dict.py, tests/test_chunks.py, tests/test_reversed.py, tests/test_reduce_items.py, tests/test_diff_iter.py, tests/test_diff.py, tests/test_map.py, tests/test_last_item.py, tests/test_first_nt_item.py, tests/test_first.py, tests/test_setitem.py, tests/test_flatten.py, tests/test_groupby.py, tests/test_intersect_dict.py, tests/test_map_nt_item.py, tests/test_map_items.py, tests/test_sorted.py, tests/test_last_nt_item.py, tests/test_slice.py, tests/test_min.py, tests/test_pop.py, tests/test_max.py, tests/test_list_.py, tests/test_emap.py, tests/test_reduce.py, tests/test_set.py, tests/test_nt_items.py, tests/test_ordered_dict.py, tests/test_group_sort.py",
"test_count": 754,
"related_modules": "builtin",
"py_file_count": 71,
"total_loc_python": 5531,
"difficulty": "Easy",
"license": "MIT"
}
];