{"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": "jakemcaferty/insurapy", "repo_url": "https://github.com/jakemcaferty/insurapy", "commit_hash": "45746fa744753e0eefbbbb223bfa3d88476b59cd", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,2 +1,2 @@\n-numpy==1.17.2\n-pandas==0.25.1\n\\ No newline at end of file\n+numpy\n+pandas\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,22 +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=\"insurapy\",\n- version=\"0.1\",\n- author=\"Jake McAferty\",\n- author_email=\"jake.mcaferty@gmail.com\",\n- description=\"A python library for actuarial and insurance calculations\",\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- packages=setuptools.find_packages(),\n- classifiers=[\n- \"License :: OSI Approved :: MIT License\",\n- \"Operating System :: OS Independent\",\n- \"Programming Language :: Python :: 3\",\n- \"Topic :: Scientific/Engineering :: Mathematics\",\n- \"Intended Audience :: Financial and Insurance Industry\"\n- ],\n-)\n\\ No newline at end of file\n+setuptools.setup(name='insurapy', version='0.1', author='Jake McAferty', author_email='jake.mcaferty@gmail.com', description='A python library for actuarial and insurance calculations', long_description=long_description, long_description_content_type='text/markdown', packages=setuptools.find_packages(), classifiers=['License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3', 'Topic :: Scientific/Engineering :: Mathematics', 'Intended Audience :: Financial and Insurance Industry'])\n\\ No newline at end of file\n--- setup_jakemcaferty__insurapy.sh\n+++ setup_jakemcaferty__insurapy.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_jakemcaferty__insurapy.sh\n+++ test_jakemcaferty__insurapy.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_mortality\n", "test_patch": "", "gold_patch": "--- insurapy/mortality.py\n+++ insurapy/mortality.py\n@@ -46,7 +46,7 @@\n x_i = 0\n if x_end < 0:\n return 1\n- return np.product(self.px[x_i:x_end]) * self.npx(remain, x+n)\n+ return np.prod(self.px[x_i:x_end]) * self.npx(remain, x+n)\n \n def nqx(self, n, x):\n return 1 - self.npx(n, x)\n", "reproduction_target_date": "2019-12-06", "reproduction_target_version": "3.7.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 jakemcaferty__insurapy .\n\nRUN bash /work/setup_jakemcaferty__insurapy.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_jakemcaferty__insurapy.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "numpy==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": "tests/test_mortality.py", "test_count": 6, "related_modules": "numpy", "py_file_count": 5, "total_loc_python": 146, "difficulty": "Easy", "license": "MIT"} {"repo_name": "EBISPOT/gwas-sumstats-validator", "repo_url": "https://github.com/EBISPOT/gwas-sumstats-validator", "commit_hash": "b4490fca65738f88b824ec53683e5ecb2c128638", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,41 +1,41 @@\n-atomicwrites==1.3.0\n-attrs==19.1.0\n-bleach==3.3.0\n-build==0.7.0\n-bump2version==1.0.0\n-bumpversion==0.6.0\n-certifi==2020.6.20\n-chardet==3.0.4\n-charset-normalizer==2.0.12\n-colorama==0.4.3\n-docutils==0.16\n-idna==2.10\n-importlib-metadata==4.11.3\n-keyring==21.3.0\n-more-itertools==7.2.0\n-numpy==1.21.6\n-packaging==19.1\n-pandas==1.3.5\n-pandas-schema==0.3.4\n-pep517==0.12.0\n-pkginfo==1.5.0.1\n-pluggy==0.12.0\n-py==1.10.0\n-Pygments==2.7.4\n-pyparsing==2.4.2\n-pytest==5.0.1\n-python-dateutil==2.8.0\n-pytz==2019.2\n-readme-renderer==26.0\n-requests==2.28.1\n-requests-toolbelt==0.9.1\n-rfc3986==1.4.0\n-six==1.12.0\n-tomli==2.0.1\n-tqdm==4.48.2\n-twine==3.2.0\n-typing-extensions==4.1.1\n-urllib3==1.26.11\n-wcwidth==0.1.7\n-webencodings==0.5.1\n-zipp==3.7.0\n+atomicwrites\n+attrs\n+bleach\n+build\n+bump2version\n+bumpversion\n+certifi\n+chardet\n+charset-normalizer\n+colorama\n+docutils\n+idna\n+importlib-metadata\n+keyring\n+more-itertools\n+numpy\n+packaging\n+pandas\n+pandas-schema\n+pep517\n+pkginfo\n+pluggy\n+py\n+Pygments\n+pyparsing\n+pytest\n+python-dateutil\n+pytz\n+readme-renderer\n+requests\n+requests-toolbelt\n+rfc3986\n+six\n+tomli\n+tqdm\n+twine\n+typing-extensions\n+urllib3\n+wcwidth\n+webencodings\n+zipp\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,26 +1,6 @@\n from setuptools import setup\n-\n-# read the contents of your README file\n from os import path\n this_directory = path.abspath(path.dirname(__file__))\n with open(path.join(this_directory, 'README.md'), encoding='utf-8') as f:\n long_description = f.read()\n-\n-setup(\n- name='ss-validate',\n- description='GWAS summary statistics file validator',\n- long_description=long_description,\n- long_description_content_type='text/markdown',\n- version='1.0.0-dev3',\n- packages=['ss_validate'],\n- license='Apache License, Version 2.0',\n- entry_points={\n- \"console_scripts\": ['ss-validate = ss_validate.validator:main']\n- },\n- url='https://github.com/EBISPOT/gwas-sumstats-validator',\n- author='EBI SPOT',\n- author_email='gwas-info@ebi.ac.uk',\n- install_requires=['pandas_schema>=0.3.4',\n- 'tqdm>=4.48.2'\n- ]\n-)\n+setup(name='ss-validate', description='GWAS summary statistics file validator', long_description=long_description, long_description_content_type='text/markdown', version='1.0.0-dev3', packages=['ss_validate'], license='Apache License, Version 2.0', entry_points={'console_scripts': ['ss-validate = ss_validate.validator:main']}, url='https://github.com/EBISPOT/gwas-sumstats-validator', author='EBI SPOT', author_email='gwas-info@ebi.ac.uk', install_requires=['pandas_schema', 'tqdm'])\n\\ No newline at end of file\n--- setup_EBISPOT__gwas-sumstats-validator.sh\n+++ setup_EBISPOT__gwas-sumstats-validator.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_EBISPOT__gwas-sumstats-validator.sh\n+++ test_EBISPOT__gwas-sumstats-validator.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_validator\n", "test_patch": "", "gold_patch": "--- ss_validate/validator.py\n+++ ss_validate/validator.py\n@@ -124,7 +124,7 @@\n to_validate = df[self.cols_to_validate]\n p_val_label = self.schema['fields']['PVAL']['label']\n psplit_row = pd.Series({p_val_label: '1000e1000'}, name=self.psplit_row_index)\n- to_validate = to_validate.append(psplit_row, ignore_index=False)\n+ to_validate = pd.concat([to_validate, pd.DataFrame([psplit_row])], ignore_index=False)\n return to_validate\n \n def store_errors(self, errors, store):\n@@ -214,8 +214,7 @@\n df = pd.read_csv(self.file, \n sep=self.sep, \n dtype=str, \n- error_bad_lines=False,\n- warn_bad_lines=False,\n+ on_bad_lines='skip',\n comment='#', \n chunksize=self.chunksize)\n return df\n", "reproduction_target_date": "2023-04-11", "reproduction_target_version": "3.10.11", "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 EBISPOT__gwas-sumstats-validator .\n\nRUN bash /work/setup_EBISPOT__gwas-sumstats-validator.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_EBISPOT__gwas-sumstats-validator.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "atomicwrites==1.4.1\nattrs==25.3.0\nbleach==6.2.0\nbuild==1.2.2.post1\nbump2version==1.0.1\nbumpversion==0.6.0\ncertifi==2025.7.14\ncffi==1.17.1\nchardet==5.2.0\ncharset-normalizer==3.4.2\ncolorama==0.4.6\ncryptography==45.0.5\ndocutils==0.22\nid==1.5.0\nidna==3.10\nimportlib_metadata==8.7.0\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\nmdurl==0.1.2\nmore-itertools==10.7.0\nnh3==0.3.0\nnumpy==2.3.2\npackaging==25.0\npandas==2.3.1\npandas-schema==0.3.6\npep517==0.13.1\npkginfo==1.12.1.2\npluggy==1.6.0\npy==1.11.0\npycparser==2.22\nPygments==2.19.2\npyparsing==3.2.3\npyproject_hooks==1.2.0\npytest==8.4.1\npython-dateutil==2.9.0.post0\npytz==2025.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\nsix==1.17.0\ntomli==2.2.1\ntqdm==4.67.1\ntwine==6.1.0\ntyping_extensions==4.14.1\ntzdata==2025.2\nurllib3==2.5.0\nwcwidth==0.2.13\nwebencodings==0.5.1\nzipp==3.23.0\n", "test_type": "unittest", "test_files": "tests/test_validator.py", "test_count": 29, "related_modules": "pandas", "py_file_count": 9, "total_loc_python": 1120, "difficulty": "Easy", "license": "Apache-2.0"} {"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\\.json|\\.yaml)$', schema_view.without_ui(cache_timeout=0),\n+ re_path(r'^swagger(?P\\.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": "Easy", "license": ""} {"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": "Easy", "license": ""} {"repo_name": "ljvmiranda921/pyswarms", "repo_url": "https://github.com/ljvmiranda921/pyswarms", "commit_hash": "70c969d929bb2dab6211765def0431680fc5cb01", "patch": "--- requirements-dev.txt\n+++ requirements-dev.txt\n@@ -1,86 +1,86 @@\n-alabaster==0.7.12\n-attrs==18.1.0\n-babel==2.6.0\n-backcall==0.1.0\n-bleach==3.1.0\n-bumpversion==0.5.3\n-certifi==2018.11.29\n-chardet==3.0.4\n-coverage==4.5.1\n-cycler==0.10.0\n-decorator==4.4.0\n-defusedxml==0.6.0\n-docutils==0.14\n-entrypoints==0.3\n-flake8==3.5.0\n-future==0.16.0\n-idna==2.8\n-imagesize==1.1.0\n-iniconfig==1.1.1\n-ipykernel==5.1.1\n-ipython-genutils==0.2.0\n-ipython==7.5.0\n-jedi==0.13.3\n-jinja2==2.10\n-joblib==0.13.2\n-jsonschema==3.0.1\n-jupyter-client==5.2.4\n-jupyter-core==4.4.0\n-kiwisolver==1.0.1\n-markupsafe==1.1.0\n-matplotlib==3.0.2\n-mccabe==0.6.1\n-mistune==0.8.4\n-mock==2.0.0\n-nbconvert==5.5.0\n-nbformat==4.4.0\n-nbsphinx==0.4.2\n-nbstripout==0.3.5\n-numpy==1.16.1\n-packaging==19.0\n-pandas==0.24.2\n-pandocfilters==1.4.2\n-parso==0.4.0\n-pbr==5.1.1\n-pexpect==4.7.0\n-pickleshare==0.7.5\n-pluggy==0.13.1\n-pockets==0.7.2\n-prompt-toolkit==2.0.9\n-ptyprocess==0.6.0\n-py==1.9.0\n-pycodestyle==2.3.1\n-pyflakes==1.6.0\n-pygments==2.3.1\n-pyparsing==2.3.1\n-pyrsistent==0.15.2\n-pytest-cov==2.10.1\n-pytest==6.1.2\n-python-dateutil==2.7.5\n-pytz==2018.9\n-pyyaml==3.13\n-pyzmq==18.0.1\n-requests==2.21.0\n-scikit-learn==0.21.1\n-scipy==1.2.0\n-seaborn==0.9.0\n-six==1.12.0\n-snowballstemmer==1.2.1\n-sphinx-rtd-theme==0.4.3\n-sphinx>=1.8,<2\n-sphinxcontrib-napoleon==0.7\n-sphinxcontrib-websupport==1.1.0\n-testpath==0.4.2\n-toml==0.10.2\n-tornado==6.0.2\n-tox==3.2.1\n-tqdm==4.24.0\n-traitlets==4.3.2\n-urllib3==1.24.1\n-virtualenv==16.3.0\n-wcwidth==0.1.7\n-webencodings==0.5.1\n-wheel==0.31.1\n+alabaster\n+attrs\n+babel\n+backcall\n+bleach\n+bumpversion\n+certifi\n+chardet\n+coverage\n+cycler\n+decorator\n+defusedxml\n+docutils\n+entrypoints\n+flake8\n+future\n+idna\n+imagesize\n+iniconfig\n+ipykernel\n+ipython-genutils\n+ipython\n+jedi\n+jinja2\n+joblib\n+jsonschema\n+jupyter-client\n+jupyter-core\n+kiwisolver\n+markupsafe\n+matplotlib\n+mccabe\n+mistune\n+mock\n+nbconvert\n+nbformat\n+nbsphinx\n+nbstripout\n+numpy\n+packaging\n+pandas\n+pandocfilters\n+parso\n+pbr\n+pexpect\n+pickleshare\n+pluggy\n+pockets\n+prompt-toolkit\n+ptyprocess\n+py\n+pycodestyle\n+pyflakes\n+pygments\n+pyparsing\n+pyrsistent\n+pytest-cov\n+pytest\n+python-dateutil\n+pytz\n+pyyaml\n+pyzmq\n+requests\n+scikit-learn\n+scipy\n+seaborn\n+six\n+snowballstemmer\n+sphinx-rtd-theme\n+sphinx\n+sphinxcontrib-napoleon\n+sphinxcontrib-websupport\n+testpath\n+toml\n+tornado\n+tox\n+tqdm\n+traitlets\n+urllib3\n+virtualenv\n+wcwidth\n+webencodings\n+wheel\n \n # The following packages are considered to be unsafe in a requirements file:\n-# setuptools\n+# setuptools\n\\ No newline at end of file\n--- requirements.txt\n+++ requirements.txt\n@@ -1,12 +1,12 @@\n-attrs==18.1.0\n-cycler==0.10.0\n-future==0.16.0\n-kiwisolver==1.0.1\n-matplotlib==3.0.2\n-numpy==1.16.1\n-pyparsing==2.3.1\n-python-dateutil==2.7.5\n-scipy==1.2.0\n-six==1.12.0\n-tqdm==4.24.0\n-pyyaml==5.1.1\n+attrs\n+cycler\n+future\n+kiwisolver\n+matplotlib\n+numpy\n+pyparsing\n+python-dateutil\n+scipy\n+six\n+tqdm\n+pyyaml\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,49 +1,9 @@\n-#!/usr/bin/env python\n-# -*- coding: utf-8 -*-\n-\n \"\"\"The setup script.\"\"\"\n-\n-# Import modules\n from setuptools import find_packages, setup\n-\n-with open(\"README.md\", encoding=\"utf8\") as readme_file:\n+with open('README.md', encoding='utf8') as readme_file:\n readme = readme_file.read()\n-\n-with open(\"requirements.in\") as f:\n+with open('requirements.in') as f:\n requirements = f.read().splitlines()\n-\n-with open(\"requirements-dev.txt\") as f:\n+with open('requirements-dev.txt') as f:\n dev_requirements = f.read().splitlines()\n-\n-\n-setup(\n- name=\"pyswarms\",\n- version=\"1.3.0\",\n- description=\"A Python-based Particle Swarm Optimization (PSO) library.\",\n- long_description=readme,\n- long_description_content_type=\"text/markdown\",\n- author=\"Lester James V. Miranda\",\n- author_email=\"ljvmiranda@gmail.com\",\n- url=\"https://github.com/ljvmiranda921/pyswarms\",\n- packages=find_packages(exclude=[\"docs\", \"tests\"]),\n- include_package_data=True,\n- install_requires=requirements,\n- tests_require=dev_requirements,\n- extras_require={\"test\": dev_requirements},\n- license=\"MIT license\",\n- zip_safe=False,\n- keywords=\"pyswarms\",\n- classifiers=[\n- \"Development Status :: 5 - Production/Stable\",\n- \"Intended Audience :: Developers\",\n- \"Intended Audience :: Education\",\n- \"Intended Audience :: Science/Research\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Natural Language :: English\",\n- \"Topic :: Scientific/Engineering\",\n- \"Topic :: Scientific/Engineering :: Mathematics\",\n- \"Programming Language :: Python :: 3.6\",\n- \"Programming Language :: Python :: 3.7\",\n- ],\n- test_suite=\"tests\",\n-)\n+setup(name='pyswarms', version='1.3.0', description='A Python-based Particle Swarm Optimization (PSO) library.', long_description=readme, long_description_content_type='text/markdown', author='Lester James V. Miranda', author_email='ljvmiranda@gmail.com', url='https://github.com/ljvmiranda921/pyswarms', packages=find_packages(exclude=['docs', 'tests']), include_package_data=True, install_requires=requirements, tests_require=dev_requirements, extras_require={'test': dev_requirements}, license='MIT license', zip_safe=False, keywords='pyswarms', classifiers=['Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'Intended Audience :: Education', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: MIT License', 'Natural Language :: English', 'Topic :: Scientific/Engineering', 'Topic :: Scientific/Engineering :: Mathematics', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7'], test_suite='tests')\n\\ No newline at end of file\n--- setup_ljvmiranda921__pyswarms.sh\n+++ setup_ljvmiranda921__pyswarms.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements-dev.txt\n+pip install -r requirements.txt\n+pip install pytest\n--- test_ljvmiranda921__pyswarms.sh\n+++ test_ljvmiranda921__pyswarms.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- pyswarms/backend/topology/pyramid.py\n+++ pyswarms/backend/topology/pyramid.py\n@@ -83,6 +83,7 @@\n index_pointer[indices[i] : indices[i + 1]]\n for i in range(swarm.n_particles)\n ]\n+ , dtype=object\n )\n \n idx_min = np.array(\n--- pyswarms/backend/topology/random.py\n+++ pyswarms/backend/topology/random.py\n@@ -70,6 +70,7 @@\n adj_matrix[i].nonzero()[0]\n for i in range(swarm.n_particles)\n ]\n+ , dtype=object\n )\n idx_min = np.array(\n [\n", "reproduction_target_date": "2023-06-06", "reproduction_target_version": "3.7.17", "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 ljvmiranda921__pyswarms .\n\nRUN bash /work/setup_ljvmiranda921__pyswarms.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_ljvmiranda921__pyswarms.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "alabaster==1.0.0\nasttokens==3.0.0\nattrs==25.3.0\nbabel==2.17.0\nbackcall==0.2.0\nbeautifulsoup4==4.13.4\nbleach==6.2.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\ncomm==0.2.3\ncontourpy==1.3.3\ncoverage==7.10.1\ncycler==0.12.1\ndebugpy==1.8.15\ndecorator==5.2.1\ndefusedxml==0.7.1\ndistlib==0.4.0\ndocutils==0.21.2\nentrypoints==0.4\nexecuting==2.2.0\nfastjsonschema==2.21.1\nfilelock==3.18.0\nflake8==7.3.0\nfonttools==4.59.0\nfuture==1.0.0\nidna==3.10\nimagesize==1.4.1\niniconfig==2.1.0\nipykernel==6.30.0\nipython==9.4.0\nipython-genutils==0.2.0\nipython_pygments_lexers==1.1.1\njedi==0.19.2\nJinja2==3.1.6\njoblib==1.5.1\njsonschema==4.25.0\njsonschema-specifications==2025.4.1\njupyter_client==8.6.3\njupyter_core==5.8.1\njupyterlab_pygments==0.3.0\nkiwisolver==1.4.8\nMarkupSafe==3.0.2\nmatplotlib==3.10.3\nmatplotlib-inline==0.1.7\nmccabe==0.7.0\nmistune==3.1.3\nmock==5.2.0\nnbclient==0.10.2\nnbconvert==7.16.6\nnbformat==5.10.4\nnbsphinx==0.9.7\nnbstripout==0.8.1\nnest-asyncio==1.6.0\nnumpy==2.3.2\npackaging==25.0\npandas==2.3.1\npandocfilters==1.5.1\nparso==0.8.4\npbr==6.1.1\npexpect==4.9.0\npickleshare==0.7.5\npillow==11.3.0\nplatformdirs==4.3.8\npluggy==1.6.0\npockets==0.9.1\nprompt_toolkit==3.0.51\npsutil==7.0.0\nptyprocess==0.7.0\npure_eval==0.2.3\npy==1.11.0\npycodestyle==2.14.0\npyflakes==3.4.0\nPygments==2.19.2\npyparsing==3.2.3\npyproject-api==1.9.1\npyrsistent==0.20.0\npytest==8.4.1\npytest-cov==6.2.1\npython-dateutil==2.9.0.post0\npytz==2025.2\nPyYAML==6.0.2\npyzmq==27.0.0\nreferencing==0.36.2\nrequests==2.32.4\nrpds-py==0.26.0\nscikit-learn==1.7.1\nscipy==1.16.1\nseaborn==0.13.2\nsetuptools==80.9.0\nsix==1.17.0\nsnowballstemmer==3.0.1\nsoupsieve==2.7\nSphinx==8.1.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-napoleon==0.7\nsphinxcontrib-qthelp==2.0.0\nsphinxcontrib-serializinghtml==2.0.0\nsphinxcontrib-websupport==2.0.0\nstack-data==0.6.3\ntestpath==0.6.0\nthreadpoolctl==3.6.0\ntinycss2==1.4.0\ntoml==0.10.2\ntornado==6.5.1\ntox==4.28.3\ntqdm==4.67.1\ntraitlets==5.14.3\ntyping_extensions==4.14.1\ntzdata==2025.2\nurllib3==2.5.0\nvirtualenv==20.32.0\nwcwidth==0.2.13\nwebencodings==0.5.1\nwheel==0.45.1\n", "test_type": "pytest", "test_files": "tests/utils/search/test_randomsearch.py, tests/utils/functions/test_singleobj_returndims.py, tests/backend/topology/test_star.py, tests/utils/functions/test_singleobj_bounds.py, tests/backend/topology/test_von_neumann.py, tests/backend/test_handlers.py, tests/utils/functions/test_singleobj_return.py, tests/backend/topology/test_random.py, tests/utils/decorators/test_decorators.py, tests/utils/plotters/test_plotters.py, tests/optimizers/test_binary.py, tests/utils/search/test_gridsearch.py, tests/backend/topology/test_pyramid.py, tests/optimizers/test_general_optimizer.py, tests/optimizers/test_local_best.py, tests/optimizers/test_tolerance.py, tests/backend/test_generators.py, tests/backend/test_operators.py, tests/optimizers/test_global_best.py, tests/utils/functions/test_singleobj_dims.py, tests/backend/topology/test_ring.py, tests/optimizers/test_verbose.py", "test_count": 456, "related_modules": "numpy", "py_file_count": 78, "total_loc_python": 8761, "difficulty": "Medium", "license": "MIT"} {"repo_name": "RavenKyu/PyExcel2Json", "repo_url": "https://github.com/RavenKyu/PyExcel2Json", "commit_hash": "4f79fb8e215d876aad5021e7a3792c881968a671", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,3 +1,3 @@\n-et-xmlfile==1.0.1\n-jdcal==1.4\n-openpyxl==2.5.9\n+et-xmlfile\n+jdcal\n+openpyxl\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,50 +1,11 @@\n-try: # for pip >= 10\n+try:\n from pip._internal.req import parse_requirements\n from pip._internal.download import PipSession\n-except ImportError: # for pip <= 9.0.3\n+except ImportError:\n from pip.req import parse_requirements\n from pip.download import PipSession\n-\n from pyxl2json import VERSION\n-\n-\n-\n-################################################################################\n-# parse_requirements() returns generator of pip.req.InstallRequirement objects\n-install_reqs = parse_requirements(\"requirements.txt\", session=PipSession())\n+install_reqs = parse_requirements('requirements.txt', session=PipSession())\n from setuptools import setup, find_packages\n-\n-# e.g. ['django==1.5.1', 'mezzanine==1.4.6']\n reqs = [str(ir.req) for ir in install_reqs]\n-\n-\n-setup(\n- name='pyxl2json',\n- version=VERSION,\n- description='Excel to Json',\n- author='Duk-kyu Lim',\n- author_email='hong18s@gmail.com',\n- url='',\n- download_url='',\n- install_requires=reqs,\n- packages=find_packages(include=['pyxl2json*', 'tests', ]),\n- keywords=['excel', 'json', 'converter'],\n- python_requires='>=3',\n- package_data={},\n- zip_safe=False,\n- classifiers=[\n- 'Programming Language :: Python :: 3',\n- 'Programming Language :: Python :: 3.2',\n- 'Programming Language :: Python :: 3.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- entry_points={\n- 'console_scripts': [\n- 'pyxl2json=pyxl2json:__main__',\n- ],\n- },\n- test_suite='discover_tests',\n-)\n\\ No newline at end of file\n+setup(name='pyxl2json', version=VERSION, description='Excel to Json', author='Duk-kyu Lim', author_email='hong18s@gmail.com', url='', download_url='', install_requires=reqs, packages=find_packages(include=['pyxl2json*', 'tests']), keywords=['excel', 'json', 'converter'], python_requires='>=3', package_data={}, zip_safe=False, classifiers=['Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.2', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7'], entry_points={'console_scripts': ['pyxl2json=pyxl2json:__main__']}, test_suite='discover_tests')\n\\ No newline at end of file\n--- setup_RavenKyu__PyExcel2Json.sh\n+++ setup_RavenKyu__PyExcel2Json.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_RavenKyu__PyExcel2Json.sh\n+++ test_RavenKyu__PyExcel2Json.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest pyxl2json.tests.test_pyxl2json\n", "test_patch": "--- pyxl2json/tests/test_pyxl2json.py\n+++ pyxl2json/tests/test_pyxl2json.py\n@@ -99,7 +99,7 @@\n argspec = parse_args(args)\n wb = _open_excel_file(argspec.excel_filename[0])\n ws = _read_sheet(wb, argspec.sheet)\n- self.assertIsInstance(ws, openpyxl.worksheet.Worksheet)\n+ self.assertIsInstance(ws, openpyxl.worksheet.worksheet.Worksheet)\n \n args = [self._INPUT_FILENAME_1, '--sheet', _WRONG_SHEET_NAME]\n argspec = parse_args(args)\n", "gold_patch": "--- pyxl2json/pyxl2json.py\n+++ pyxl2json/pyxl2json.py\n@@ -54,7 +54,7 @@\n return wb[sheet]\n \n ################################################################################\n-def _read_head(ws:openpyxl.worksheet.Worksheet, data_range):\n+def _read_head(ws:openpyxl.worksheet.worksheet.Worksheet, data_range):\n # 헤드 범위가 지정되지 않았을 경우\n # 첫 번째 줄의 시작과 끝의 위치를 가지고 시작\n if not data_range:\n@@ -63,7 +63,7 @@\n return [x.value for x in ws[data_range] for x in x]\n \n ################################################################################\n-def _read_data(ws:openpyxl.worksheet.Worksheet, data_range):\n+def _read_data(ws:openpyxl.worksheet.worksheet.Worksheet, data_range):\n data = []\n if not data_range:\n max_column = excel_column_calculate(ws.max_column, [])\n", "reproduction_target_date": "2018-11-09", "reproduction_target_version": "3.7.1", "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 RavenKyu__PyExcel2Json .\n\nRUN bash /work/setup_RavenKyu__PyExcel2Json.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_RavenKyu__PyExcel2Json.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "et_xmlfile==2.0.0\njdcal==1.4.1\nopenpyxl==3.1.5\n", "test_type": "unittest", "test_files": "pyxl2json/tests/test_pyxl2json.py", "test_count": 11, "related_modules": "openpyxl", "py_file_count": 9, "total_loc_python": 649, "difficulty": "Easy", "license": ""} {"repo_name": "dakrauth/django-swingtime", "repo_url": "https://github.com/dakrauth/django-swingtime", "commit_hash": "e32fba3f8eecfc291201b21776b9f130e152c1c3", "patch": "--- setup.py\n+++ setup.py\n@@ -1,48 +1,9 @@\n-#!/usr/bin/env python\n import os, sys\n from setuptools import setup, find_packages\n-\n if sys.argv[-1] == 'publish':\n os.system('python setup.py sdist upload')\n sys.exit(0)\n-\n with open('README.rst', 'r') as f:\n long_description = f.read()\n-\n-# Dynamically calculate the version based on swingtime.VERSION.\n-version=__import__('swingtime').get_version()\n-\n-setup(\n- name='django-swingtime',\n- url='https://github.com/dakrauth/django-swingtime',\n- author='David A Krauth',\n- author_email='dakrauth@gmail.com',\n- description='A Django calendaring application.',\n- version=version,\n- long_description=long_description,\n- long_description_content_type='text/x-rst',\n- platforms=['any'],\n- license='MIT License',\n- python_requires='>=3.6, <4',\n- install_requires=['Django>=2.2,<4.1', 'python-dateutil==2.8.2'],\n- extras_require={\n- 'test': ['tox', 'coverage', 'pytest-django', 'pytest', 'pytest-cov', 'flake8'],\n- },\n- classifiers=[\n- 'Development Status :: 5 - Production/Stable',\n- 'Environment :: Web Environment',\n- 'Framework :: Django',\n- 'Framework :: Django :: 2.2',\n- 'Framework :: Django :: 3.2',\n- 'Framework :: Django :: 4.0',\n- 'License :: OSI Approved :: MIT License',\n- 'Programming Language :: Python',\n- 'Programming Language :: Python :: 3.7',\n- 'Programming Language :: Python :: 3.8',\n- 'Programming Language :: Python :: 3.9',\n- 'Topic :: Office/Business :: Scheduling',\n- ],\n- packages=find_packages(),\n- package_data={'swingtime': ['locale/*/*/*.*',]},\n- zip_safe=False,\n-)\n+version = __import__('swingtime').get_version()\n+setup(name='django-swingtime', url='https://github.com/dakrauth/django-swingtime', author='David A Krauth', author_email='dakrauth@gmail.com', description='A Django calendaring application.', version=version, long_description=long_description, long_description_content_type='text/x-rst', platforms=['any'], license='MIT License', python_requires='>=3.6', install_requires=['Django', 'python-dateutil'], extras_require={'test': ['tox', 'coverage', 'pytest-django', 'pytest', 'pytest-cov', 'flake8']}, classifiers=['Development Status :: 5 - Production/Stable', 'Environment :: Web Environment', 'Framework :: Django', 'Framework :: Django :: 2.2', 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.0', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Topic :: Office/Business :: Scheduling'], packages=find_packages(), package_data={'swingtime': ['locale/*/*/*.*']}, zip_safe=False)\n\\ No newline at end of file\n--- setup_dakrauth__django-swingtime.sh\n+++ setup_dakrauth__django-swingtime.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .[test]\n+pip install pytest\n--- test_dakrauth__django-swingtime.sh\n+++ test_dakrauth__django-swingtime.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- demo/settings.py\n+++ demo/settings.py\n@@ -23,6 +23,7 @@\n LANGUAGES = (('en', 'English'),)\n STATIC_URL = '/static/'\n STATIC_ROOT = 'static'\n+USE_TZ = False\n TIME_ZONE = 'America/New_York'\n SITE_ID = 1\n USE_I18N = True\n", "reproduction_target_date": "2021-12-23", "reproduction_target_version": "3.10.1", "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 dakrauth__django-swingtime .\n\nRUN bash /work/setup_dakrauth__django-swingtime.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_dakrauth__django-swingtime.sh\"]\n", "version_source": "setup.py", "script_source": "setup.py", "dependency_versions": "asgiref==3.9.1\ncachetools==6.1.0\nchardet==5.2.0\ncolorama==0.4.6\ncoverage==7.10.1\ndistlib==0.4.0\nDjango==5.2.4\ndjango-swingtime @ file:///work\nfilelock==3.18.0\nflake8==7.3.0\niniconfig==2.1.0\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\npytest==8.4.1\npytest-cov==6.2.1\npytest-django==4.11.1\npython-dateutil==2.9.0.post0\nsix==1.17.0\nsqlparse==0.5.3\ntox==4.28.3\nvirtualenv==20.32.0\n", "test_type": "pytest", "test_files": "tests/test_swingtime.py", "test_count": 24, "related_modules": "django", "py_file_count": 27, "total_loc_python": 2362, "difficulty": "Medium", "license": "MIT"} {"repo_name": "ebi-ait/json-converter", "repo_url": "https://github.com/ebi-ait/json-converter", "commit_hash": "3c03503900d707ddc25b14d5382341012f218769", "patch": "--- setup.py\n+++ setup.py\n@@ -1,21 +1,4 @@\n import setuptools\n-\n-with open(\"README.md\", \"r\", encoding=\"utf-8\") as fh:\n+with open('README.md', 'r', encoding='utf-8') as fh:\n long_description = fh.read()\n-\n-setuptools.setup(\n- name=\"json-converter\",\n- version=\"0.5.0\",\n- description=\"json-converter is a tool for translating/converting a JSON document into another JSON document \"\n- \"with a different structure.\",\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- url=\"https://github.com/ebi-ait/json-converter\",\n- packages=setuptools.find_packages(exclude=['tests', 'tests.*']),\n- classifiers=[\n- \"Development Status :: 3 - Alpha\",\n- \"Programming Language :: Python :: 3\",\n- \"License :: OSI Approved :: Apache Software License\",\n- \"Operating System :: OS Independent\"\n- ],\n-)\n+setuptools.setup(name='json-converter', version='0.5.0', description='json-converter is a tool for translating/converting a JSON document into another JSON document with a different structure.', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/ebi-ait/json-converter', packages=setuptools.find_packages(exclude=['tests', 'tests.*']), classifiers=['Development Status :: 3 - Alpha', 'Programming Language :: Python :: 3', 'License :: OSI Approved :: Apache Software License', 'Operating System :: OS Independent'])\n\\ No newline at end of file\n--- setup_ebi-ait__json-converter.sh\n+++ setup_ebi-ait__json-converter.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements-dev.txt\n--- test_ebi-ait__json-converter.sh\n+++ test_ebi-ait__json-converter.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_json_mapper tests.test_data_node tests.test_array_spec\n", "test_patch": "", "gold_patch": "--- json_converter/json_mapper.py\n+++ json_converter/json_mapper.py\n@@ -1,5 +1,5 @@\n import copy\n-from collections import Mapping\n+from collections.abc import Mapping\n \n from .data_node import DataNode\n \n", "reproduction_target_date": "2021-05-13", "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 ebi-ait__json-converter .\n\nRUN bash /work/setup_ebi-ait__json-converter.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_ebi-ait__json-converter.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "certifi==2025.7.14\ncffi==1.17.1\ncharset-normalizer==3.4.2\ncryptography==45.0.5\ndocutils==0.22\nid==1.5.0\nidna==3.10\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\nmdurl==0.1.2\nmore-itertools==10.7.0\nnh3==0.3.0\npackaging==25.0\npycparser==2.22\nPygments==2.19.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\ntwine==6.1.0\nurllib3==2.5.0\nwheel==0.45.1\n", "test_type": "unittest", "test_files": "tests/test_json_mapper.py, tests/test_data_node.py, tests/test_array_spec.py", "test_count": 31, "related_modules": "builtin", "py_file_count": 9, "total_loc_python": 1102, "difficulty": "Easy", "license": ""} {"repo_name": "internap/python-config-probe", "repo_url": "https://github.com/internap/python-config-probe", "commit_hash": "dc290ae6a4a0b800805da3f03324cab66ced7173", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,2 +1,2 @@\n munch\n-PyYAML\n+PyYAML\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,8 +1,2 @@\n-#!/usr/bin/env python\n-\n from setuptools import setup\n-\n-setup(\n- setup_requires=['pbr'],\n- pbr=True,\n-)\n+setup(setup_requires=['pbr'], pbr=True)\n\\ No newline at end of file\n--- setup_internap__python-config-probe.sh\n+++ setup_internap__python-config-probe.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install -r test-requirements.txt\n--- test-requirements.txt\n+++ test-requirements.txt\n@@ -1,2 +1,2 @@\n nose\n-pyhamcrest\n+pyhamcrest\n\\ No newline at end of file\n--- test_internap__python-config-probe.sh\n+++ test_internap__python-config-probe.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_config_probe\n", "test_patch": "", "gold_patch": "--- config_probe/__init__.py\n+++ config_probe/__init__.py\n@@ -4,7 +4,7 @@\n import os\n \n import yaml\n-from munch import Munch, iteritems\n+from munch import Munch\n \n from config_probe.exceptions import ConfigNotFound\n \n@@ -67,7 +67,7 @@\n \n def _update(config, values):\n for k, v in values.items():\n- if k in config and isinstance(v, collections.Mapping):\n+ if k in config and isinstance(v, collections.abc.Mapping):\n _update(config[k], v)\n else:\n config[k] = v\n@@ -83,7 +83,7 @@\n \n def _munchify(x):\n if isinstance(x, dict):\n- return _Munch((k, _munchify(v)) for k,v in iteritems(x))\n+ return _Munch((k, _munchify(v)) for k,v in x.items())\n elif isinstance(x, (list, tuple)):\n return type(x)(_munchify(v) for v in x)\n else:\n", "reproduction_target_date": "2019-04-01", "reproduction_target_version": "3.6.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 internap__python-config-probe .\n\nRUN bash /work/setup_internap__python-config-probe.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_internap__python-config-probe.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "munch==4.0.0\nnose==1.3.7\nPyHamcrest==2.1.0\nPyYAML==6.0.2\n", "test_type": "unittest", "test_files": "tests/test_config_probe.py", "test_count": 15, "related_modules": "munch, builtin", "py_file_count": 5, "total_loc_python": 231, "difficulty": "Medium", "license": "Apache-2.0"} {"repo_name": "mp4096/blockschaltbilder", "repo_url": "https://github.com/mp4096/blockschaltbilder", "commit_hash": "9253022b5518e42d784176594d4d6fee7baa1050", "patch": "--- setup.py\n+++ setup.py\n@@ -1,15 +1,2 @@\n from setuptools import setup\n-\n-\n-setup(\n- name=\"Blockschaltbilder\",\n- version=\"0.1\",\n- description=\"Blockschaltbilder: Boilerplate code generator\",\n- author=\"Mikhail Pak\",\n- author_email=\"mikhail.pak@tum.de\",\n- url=\"https://github.com/mp4096/blockschaltbilder\",\n- packages=[\"blockschaltbilder\"],\n- install_requires=[\"numpy\"],\n- license=\"MIT\",\n- test_suite=\"blockschaltbilder.tests\",\n- )\n+setup(name='Blockschaltbilder', version='0.1', description='Blockschaltbilder: Boilerplate code generator', author='Mikhail Pak', author_email='mikhail.pak@tum.de', url='https://github.com/mp4096/blockschaltbilder', packages=['blockschaltbilder'], install_requires=['numpy'], license='MIT', test_suite='blockschaltbilder.tests')\n\\ No newline at end of file\n--- setup_mp4096__blockschaltbilder.sh\n+++ setup_mp4096__blockschaltbilder.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n--- test_mp4096__blockschaltbilder.sh\n+++ test_mp4096__blockschaltbilder.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest blockschaltbilder.tests.bsb_test blockschaltbilder.tests.boilerplate_test\n", "test_patch": "", "gold_patch": "--- blockschaltbilder/bsb.py\n+++ blockschaltbilder/bsb.py\n@@ -303,7 +303,7 @@\n self._blocks = []\n \n # Create an empty adjacency matrix\n- self._adj_mat = np.zeros((0, 0), dtype=np.int)\n+ self._adj_mat = np.zeros((0, 0), dtype=int)\n \n # Create a default block sizes dict if none is given\n if block_sizes is None:\n@@ -495,7 +495,7 @@\n temp_mat = self._adj_mat\n new_num_blocks = self.num_blocks\n self._adj_mat = np.zeros((new_num_blocks, new_num_blocks),\n- dtype=np.int)\n+ dtype=int)\n self._adj_mat[:-1, :-1] = temp_mat\n \n def get_block(self, block_name):\n", "reproduction_target_date": "2018-12-24", "reproduction_target_version": "3.6.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 mp4096__blockschaltbilder .\n\nRUN bash /work/setup_mp4096__blockschaltbilder.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_mp4096__blockschaltbilder.sh\"]\n", "version_source": "default", "script_source": "setup.py", "dependency_versions": "Blockschaltbilder @ file:///work\nnumpy==2.3.2\n", "test_type": "unittest", "test_files": "blockschaltbilder/tests/bsb_test.py, blockschaltbilder/tests/boilerplate_test.py", "test_count": 28, "related_modules": "numpy", "py_file_count": 9, "total_loc_python": 1521, "difficulty": "Easy", "license": "MIT"} {"repo_name": "FabienArcellier/spike-ariadne", "repo_url": "https://github.com/FabienArcellier/spike-ariadne", "commit_hash": "fce763134711472a729a8f09daa3e009d94d8188", "patch": "--- Pipfile.lock\n+++ Pipfile.lock\n@@ -1,619 +0,0 @@\n-{\n- \"_meta\": {\n- \"hash\": {\n- \"sha256\": \"5cb11797b391b5dc18128ac3feb2fd32297ccdd7867afeaec1b4301b4b753d28\"\n- },\n- \"pipfile-spec\": 6,\n- \"requires\": {\n- \"python_version\": \"3.6\"\n- },\n- \"sources\": [\n- {\n- \"name\": \"pypi\",\n- \"url\": \"https://pypi.org/simple\",\n- \"verify_ssl\": true\n- }\n- ]\n- },\n- \"default\": {\n- \"ariadne-spike\": {\n- \"path\": \".\"\n- }\n- },\n- \"develop\": {\n- \"appdirs\": {\n- \"hashes\": [\n- \"sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92\",\n- \"sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e\"\n- ],\n- \"version\": \"==1.4.3\"\n- },\n- \"ariadne\": {\n- \"hashes\": [\n- \"sha256:40de53740d7e1ba81df94bc0acd7fa571f31d58029c3f5a6dfcc9fa1bc5ad224\",\n- \"sha256:79f275b09535bc869db04e76b559be7fca0133fe41a8fb124adcca9ac4a6197e\"\n- ],\n- \"version\": \"==0.11.0\"\n- },\n- \"ariadne-spike\": {\n- \"path\": \".\"\n- },\n- \"astroid\": {\n- \"hashes\": [\n- \"sha256:71ea07f44df9568a75d0f354c49143a4575d90645e9fead6dfb52c26a85ed13a\",\n- \"sha256:840947ebfa8b58f318d42301cf8c0a20fd794a33b61cc4638e28e9e61ba32f42\"\n- ],\n- \"version\": \"==2.3.3\"\n- },\n- \"bleach\": {\n- \"hashes\": [\n- \"sha256:cc8da25076a1fe56c3ac63671e2194458e0c4d9c7becfd52ca251650d517903c\",\n- \"sha256:e78e426105ac07026ba098f04de8abe9b6e3e98b5befbf89b51a5ef0a4292b03\"\n- ],\n- \"version\": \"==3.1.4\"\n- },\n- \"certifi\": {\n- \"hashes\": [\n- \"sha256:1d987a998c75633c40847cc966fcf5904906c920a7f17ef374f5aa4282abd304\",\n- \"sha256:51fcb31174be6e6664c5f69e3e1691a2d72a1a12e90f872cbdb1567eb47b6519\"\n- ],\n- \"version\": \"==2020.4.5.1\"\n- },\n- \"cffi\": {\n- \"hashes\": [\n- \"sha256:001bf3242a1bb04d985d63e138230802c6c8d4db3668fb545fb5005ddf5bb5ff\",\n- \"sha256:00789914be39dffba161cfc5be31b55775de5ba2235fe49aa28c148236c4e06b\",\n- \"sha256:028a579fc9aed3af38f4892bdcc7390508adabc30c6af4a6e4f611b0c680e6ac\",\n- \"sha256:14491a910663bf9f13ddf2bc8f60562d6bc5315c1f09c704937ef17293fb85b0\",\n- \"sha256:1cae98a7054b5c9391eb3249b86e0e99ab1e02bb0cc0575da191aedadbdf4384\",\n- \"sha256:2089ed025da3919d2e75a4d963d008330c96751127dd6f73c8dc0c65041b4c26\",\n- \"sha256:2d384f4a127a15ba701207f7639d94106693b6cd64173d6c8988e2c25f3ac2b6\",\n- \"sha256:337d448e5a725bba2d8293c48d9353fc68d0e9e4088d62a9571def317797522b\",\n- \"sha256:399aed636c7d3749bbed55bc907c3288cb43c65c4389964ad5ff849b6370603e\",\n- \"sha256:3b911c2dbd4f423b4c4fcca138cadde747abdb20d196c4a48708b8a2d32b16dd\",\n- \"sha256:3d311bcc4a41408cf5854f06ef2c5cab88f9fded37a3b95936c9879c1640d4c2\",\n- \"sha256:62ae9af2d069ea2698bf536dcfe1e4eed9090211dbaafeeedf5cb6c41b352f66\",\n- \"sha256:66e41db66b47d0d8672d8ed2708ba91b2f2524ece3dee48b5dfb36be8c2f21dc\",\n- \"sha256:675686925a9fb403edba0114db74e741d8181683dcf216be697d208857e04ca8\",\n- \"sha256:7e63cbcf2429a8dbfe48dcc2322d5f2220b77b2e17b7ba023d6166d84655da55\",\n- \"sha256:8a6c688fefb4e1cd56feb6c511984a6c4f7ec7d2a1ff31a10254f3c817054ae4\",\n- \"sha256:8c0ffc886aea5df6a1762d0019e9cb05f825d0eec1f520c51be9d198701daee5\",\n- \"sha256:95cd16d3dee553f882540c1ffe331d085c9e629499ceadfbda4d4fde635f4b7d\",\n- \"sha256:99f748a7e71ff382613b4e1acc0ac83bf7ad167fb3802e35e90d9763daba4d78\",\n- \"sha256:b8c78301cefcf5fd914aad35d3c04c2b21ce8629b5e4f4e45ae6812e461910fa\",\n- \"sha256:c420917b188a5582a56d8b93bdd8e0f6eca08c84ff623a4c16e809152cd35793\",\n- \"sha256:c43866529f2f06fe0edc6246eb4faa34f03fe88b64a0a9a942561c8e22f4b71f\",\n- \"sha256:cab50b8c2250b46fe738c77dbd25ce017d5e6fb35d3407606e7a4180656a5a6a\",\n- \"sha256:cef128cb4d5e0b3493f058f10ce32365972c554572ff821e175dbc6f8ff6924f\",\n- \"sha256:cf16e3cf6c0a5fdd9bc10c21687e19d29ad1fe863372b5543deaec1039581a30\",\n- \"sha256:e56c744aa6ff427a607763346e4170629caf7e48ead6921745986db3692f987f\",\n- \"sha256:e577934fc5f8779c554639376beeaa5657d54349096ef24abe8c74c5d9c117c3\",\n- \"sha256:f2b0fa0c01d8a0c7483afd9f31d7ecf2d71760ca24499c8697aeb5ca37dc090c\"\n- ],\n- \"version\": \"==1.14.0\"\n- },\n- \"chardet\": {\n- \"hashes\": [\n- \"sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae\",\n- \"sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691\"\n- ],\n- \"version\": \"==3.0.4\"\n- },\n- \"click\": {\n- \"hashes\": [\n- \"sha256:8a18b4ea89d8820c5d0c7da8a64b2c324b4dabb695804dbfea19b9be9d88c0cc\",\n- \"sha256:e345d143d80bf5ee7534056164e5e112ea5e22716bbb1ce727941f4c8b471b9a\"\n- ],\n- \"version\": \"==7.1.1\"\n- },\n- \"coverage\": {\n- \"hashes\": [\n- \"sha256:03f630aba2b9b0d69871c2e8d23a69b7fe94a1e2f5f10df5049c0df99db639a0\",\n- \"sha256:046a1a742e66d065d16fb564a26c2a15867f17695e7f3d358d7b1ad8a61bca30\",\n- \"sha256:0a907199566269e1cfa304325cc3b45c72ae341fbb3253ddde19fa820ded7a8b\",\n- \"sha256:165a48268bfb5a77e2d9dbb80de7ea917332a79c7adb747bd005b3a07ff8caf0\",\n- \"sha256:1b60a95fc995649464e0cd48cecc8288bac5f4198f21d04b8229dc4097d76823\",\n- \"sha256:1f66cf263ec77af5b8fe14ef14c5e46e2eb4a795ac495ad7c03adc72ae43fafe\",\n- \"sha256:2e08c32cbede4a29e2a701822291ae2bc9b5220a971bba9d1e7615312efd3037\",\n- \"sha256:3844c3dab800ca8536f75ae89f3cf566848a3eb2af4d9f7b1103b4f4f7a5dad6\",\n- \"sha256:408ce64078398b2ee2ec08199ea3fcf382828d2f8a19c5a5ba2946fe5ddc6c31\",\n- \"sha256:443be7602c790960b9514567917af538cac7807a7c0c0727c4d2bbd4014920fd\",\n- \"sha256:4482f69e0701139d0f2c44f3c395d1d1d37abd81bfafbf9b6efbe2542679d892\",\n- \"sha256:4a8a259bf990044351baf69d3b23e575699dd60b18460c71e81dc565f5819ac1\",\n- \"sha256:513e6526e0082c59a984448f4104c9bf346c2da9961779ede1fc458e8e8a1f78\",\n- \"sha256:5f587dfd83cb669933186661a351ad6fc7166273bc3e3a1531ec5c783d997aac\",\n- \"sha256:62061e87071497951155cbccee487980524d7abea647a1b2a6eb6b9647df9006\",\n- \"sha256:641e329e7f2c01531c45c687efcec8aeca2a78a4ff26d49184dce3d53fc35014\",\n- \"sha256:65a7e00c00472cd0f59ae09d2fb8a8aaae7f4a0cf54b2b74f3138d9f9ceb9cb2\",\n- \"sha256:6ad6ca45e9e92c05295f638e78cd42bfaaf8ee07878c9ed73e93190b26c125f7\",\n- \"sha256:73aa6e86034dad9f00f4bbf5a666a889d17d79db73bc5af04abd6c20a014d9c8\",\n- \"sha256:7c9762f80a25d8d0e4ab3cb1af5d9dffbddb3ee5d21c43e3474c84bf5ff941f7\",\n- \"sha256:85596aa5d9aac1bf39fe39d9fa1051b0f00823982a1de5766e35d495b4a36ca9\",\n- \"sha256:86a0ea78fd851b313b2e712266f663e13b6bc78c2fb260b079e8b67d970474b1\",\n- \"sha256:8a620767b8209f3446197c0e29ba895d75a1e272a36af0786ec70fe7834e4307\",\n- \"sha256:922fb9ef2c67c3ab20e22948dcfd783397e4c043a5c5fa5ff5e9df5529074b0a\",\n- \"sha256:9fad78c13e71546a76c2f8789623eec8e499f8d2d799f4b4547162ce0a4df435\",\n- \"sha256:a37c6233b28e5bc340054cf6170e7090a4e85069513320275a4dc929144dccf0\",\n- \"sha256:c3fc325ce4cbf902d05a80daa47b645d07e796a80682c1c5800d6ac5045193e5\",\n- \"sha256:cda33311cb9fb9323958a69499a667bd728a39a7aa4718d7622597a44c4f1441\",\n- \"sha256:db1d4e38c9b15be1521722e946ee24f6db95b189d1447fa9ff18dd16ba89f732\",\n- \"sha256:eda55e6e9ea258f5e4add23bcf33dc53b2c319e70806e180aecbff8d90ea24de\",\n- \"sha256:f372cdbb240e09ee855735b9d85e7f50730dcfb6296b74b95a3e5dea0615c4c1\"\n- ],\n- \"version\": \"==5.0.4\"\n- },\n- \"cryptography\": {\n- \"hashes\": [\n- \"sha256:0cacd3ef5c604b8e5f59bf2582c076c98a37fe206b31430d0cd08138aff0986e\",\n- \"sha256:192ca04a36852a994ef21df13cca4d822adbbdc9d5009c0f96f1d2929e375d4f\",\n- \"sha256:19ae795137682a9778892fb4390c07811828b173741bce91e30f899424b3934d\",\n- \"sha256:1b9b535d6b55936a79dbe4990b64bb16048f48747c76c29713fea8c50eca2acf\",\n- \"sha256:2a2ad24d43398d89f92209289f15265107928f22a8d10385f70def7a698d6a02\",\n- \"sha256:3be7a5722d5bfe69894d3f7bbed15547b17619f3a88a318aab2e37f457524164\",\n- \"sha256:49870684da168b90110bbaf86140d4681032c5e6a2461adc7afdd93be5634216\",\n- \"sha256:587f98ce27ac4547177a0c6fe0986b8736058daffe9160dcf5f1bd411b7fbaa1\",\n- \"sha256:5aca6f00b2f42546b9bdf11a69f248d1881212ce5b9e2618b04935b87f6f82a1\",\n- \"sha256:6b744039b55988519cc183149cceb573189b3e46e16ccf6f8c46798bb767c9dc\",\n- \"sha256:6b91cab3841b4c7cb70e4db1697c69f036c8bc0a253edc0baa6783154f1301e4\",\n- \"sha256:7598974f6879a338c785c513e7c5a4329fbc58b9f6b9a6305035fca5b1076552\",\n- \"sha256:7a279f33a081d436e90e91d1a7c338553c04e464de1c9302311a5e7e4b746088\",\n- \"sha256:95e1296e0157361fe2f5f0ed307fd31f94b0ca13372e3673fa95095a627636a1\",\n- \"sha256:9fc9da390e98cb6975eadf251b6e5fa088820141061bf041cd5c72deba1dc526\",\n- \"sha256:cc20316e3f5a6b582fc3b029d8dc03aabeb645acfcb7fc1d9848841a33265748\",\n- \"sha256:d1bf5a1a0d60c7f9a78e448adcb99aa101f3f9588b16708044638881be15d6bc\",\n- \"sha256:ed1d0760c7e46436ec90834d6f10477ff09475c692ed1695329d324b2c5cd547\",\n- \"sha256:ef9a55013676907df6c9d7dd943eb1770d014f68beaa7e73250fb43c759f4585\"\n- ],\n- \"version\": \"==2.9\"\n- },\n- \"decorator\": {\n- \"hashes\": [\n- \"sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760\",\n- \"sha256:e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7\"\n- ],\n- \"version\": \"==4.4.2\"\n- },\n- \"distlib\": {\n- \"hashes\": [\n- \"sha256:2e166e231a26b36d6dfe35a48c4464346620f8645ed0ace01ee31822b288de21\"\n- ],\n- \"version\": \"==0.3.0\"\n- },\n- \"docutils\": {\n- \"hashes\": [\n- \"sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af\",\n- \"sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc\"\n- ],\n- \"version\": \"==0.16\"\n- },\n- \"filelock\": {\n- \"hashes\": [\n- \"sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59\",\n- \"sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10da9b879fef15836\"\n- ],\n- \"version\": \"==3.0.12\"\n- },\n- \"flask\": {\n- \"hashes\": [\n- \"sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060\",\n- \"sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557\"\n- ],\n- \"version\": \"==1.1.2\"\n- },\n- \"graphql-core\": {\n- \"hashes\": [\n- \"sha256:35cbc459d54169d1b897def18d297329cb1a38cb311fe7876b72457f87dfcc5d\",\n- \"sha256:5fb679c3b7e326eb4e208b1942bb27c2c2049389e743e722ca70cbb69cd2fea4\"\n- ],\n- \"version\": \"==3.0.4\"\n- },\n- \"h11\": {\n- \"hashes\": [\n- \"sha256:33d4bca7be0fa039f4e84d50ab00531047e53d6ee8ffbc83501ea602c169cae1\",\n- \"sha256:4bc6d6a1238b7615b266ada57e0618568066f57dd6fa967d1290ec9309b2f2f1\"\n- ],\n- \"version\": \"==0.9.0\"\n- },\n- \"httptools\": {\n- \"hashes\": [\n- \"sha256:0a4b1b2012b28e68306575ad14ad5e9120b34fccd02a81eb08838d7e3bbb48be\",\n- \"sha256:3592e854424ec94bd17dc3e0c96a64e459ec4147e6d53c0a42d0ebcef9cb9c5d\",\n- \"sha256:41b573cf33f64a8f8f3400d0a7faf48e1888582b6f6e02b82b9bd4f0bf7497ce\",\n- \"sha256:56b6393c6ac7abe632f2294da53f30d279130a92e8ae39d8d14ee2e1b05ad1f2\",\n- \"sha256:86c6acd66765a934e8730bf0e9dfaac6fdcf2a4334212bd4a0a1c78f16475ca6\",\n- \"sha256:96da81e1992be8ac2fd5597bf0283d832287e20cb3cfde8996d2b00356d4e17f\",\n- \"sha256:96eb359252aeed57ea5c7b3d79839aaa0382c9d3149f7d24dd7172b1bcecb009\",\n- \"sha256:a2719e1d7a84bb131c4f1e0cb79705034b48de6ae486eb5297a139d6a3296dce\",\n- \"sha256:ac0aa11e99454b6a66989aa2d44bca41d4e0f968e395a0a8f164b401fefe359a\",\n- \"sha256:bc3114b9edbca5a1eb7ae7db698c669eb53eb8afbbebdde116c174925260849c\",\n- \"sha256:fa3cd71e31436911a44620473e873a256851e1f53dee56669dae403ba41756a4\",\n- \"sha256:fea04e126014169384dee76a153d4573d90d0cbd1d12185da089f73c78390437\"\n- ],\n- \"markers\": \"sys_platform != 'win32' and sys_platform != 'cygwin' and platform_python_implementation != 'PyPy'\",\n- \"version\": \"==0.1.1\"\n- },\n- \"idna\": {\n- \"hashes\": [\n- \"sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb\",\n- \"sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa\"\n- ],\n- \"version\": \"==2.9\"\n- },\n- \"importlib-metadata\": {\n- \"hashes\": [\n- \"sha256:2a688cbaa90e0cc587f1df48bdc97a6eadccdcd9c35fb3f976a09e3b5016d90f\",\n- \"sha256:34513a8a0c4962bc66d35b359558fd8a5e10cd472d37aec5f66858addef32c1e\"\n- ],\n- \"markers\": \"python_version < '3.8'\",\n- \"version\": \"==1.6.0\"\n- },\n- \"importlib-resources\": {\n- \"hashes\": [\n- \"sha256:4019b6a9082d8ada9def02bece4a76b131518866790d58fdda0b5f8c603b36c2\",\n- \"sha256:dd98ceeef3f5ad2ef4cc287b8586da4ebad15877f351e9688987ad663a0a29b8\"\n- ],\n- \"markers\": \"python_version < '3.7'\",\n- \"version\": \"==1.4.0\"\n- },\n- \"isort\": {\n- \"hashes\": [\n- \"sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1\",\n- \"sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd\"\n- ],\n- \"version\": \"==4.3.21\"\n- },\n- \"itsdangerous\": {\n- \"hashes\": [\n- \"sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19\",\n- \"sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749\"\n- ],\n- \"version\": \"==1.1.0\"\n- },\n- \"jeepney\": {\n- \"hashes\": [\n- \"sha256:3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e\",\n- \"sha256:d6c6b49683446d2407d2fe3acb7a368a77ff063f9182fe427da15d622adc24cf\"\n- ],\n- \"markers\": \"sys_platform == 'linux'\",\n- \"version\": \"==0.4.3\"\n- },\n- \"jinja2\": {\n- \"hashes\": [\n- \"sha256:93187ffbc7808079673ef52771baa950426fd664d3aad1d0fa3e95644360e250\",\n- \"sha256:b0eaf100007721b5c16c1fc1eecb87409464edc10469ddc9a22a27a99123be49\"\n- ],\n- \"version\": \"==2.11.1\"\n- },\n- \"keyring\": {\n- \"hashes\": [\n- \"sha256:197fd5903901030ef7b82fe247f43cfed2c157a28e7747d1cfcf4bc5e699dd03\",\n- \"sha256:8179b1cdcdcbc221456b5b74e6b7cfa06f8dd9f239eb81892166d9223d82c5ba\"\n- ],\n- \"version\": \"==21.2.0\"\n- },\n- \"lazy-object-proxy\": {\n- \"hashes\": [\n- \"sha256:0c4b206227a8097f05c4dbdd323c50edf81f15db3b8dc064d08c62d37e1a504d\",\n- \"sha256:194d092e6f246b906e8f70884e620e459fc54db3259e60cf69a4d66c3fda3449\",\n- \"sha256:1be7e4c9f96948003609aa6c974ae59830a6baecc5376c25c92d7d697e684c08\",\n- \"sha256:4677f594e474c91da97f489fea5b7daa17b5517190899cf213697e48d3902f5a\",\n- \"sha256:48dab84ebd4831077b150572aec802f303117c8cc5c871e182447281ebf3ac50\",\n- \"sha256:5541cada25cd173702dbd99f8e22434105456314462326f06dba3e180f203dfd\",\n- \"sha256:59f79fef100b09564bc2df42ea2d8d21a64fdcda64979c0fa3db7bdaabaf6239\",\n- \"sha256:8d859b89baf8ef7f8bc6b00aa20316483d67f0b1cbf422f5b4dc56701c8f2ffb\",\n- \"sha256:9254f4358b9b541e3441b007a0ea0764b9d056afdeafc1a5569eee1cc6c1b9ea\",\n- \"sha256:9651375199045a358eb6741df3e02a651e0330be090b3bc79f6d0de31a80ec3e\",\n- \"sha256:97bb5884f6f1cdce0099f86b907aa41c970c3c672ac8b9c8352789e103cf3156\",\n- \"sha256:9b15f3f4c0f35727d3a0fba4b770b3c4ebbb1fa907dbcc046a1d2799f3edd142\",\n- \"sha256:a2238e9d1bb71a56cd710611a1614d1194dc10a175c1e08d75e1a7bcc250d442\",\n- \"sha256:a6ae12d08c0bf9909ce12385803a543bfe99b95fe01e752536a60af2b7797c62\",\n- \"sha256:ca0a928a3ddbc5725be2dd1cf895ec0a254798915fb3a36af0964a0a4149e3db\",\n- \"sha256:cb2c7c57005a6804ab66f106ceb8482da55f5314b7fcb06551db1edae4ad1531\",\n- \"sha256:d74bb8693bf9cf75ac3b47a54d716bbb1a92648d5f781fc799347cfc95952383\",\n- \"sha256:d945239a5639b3ff35b70a88c5f2f491913eb94871780ebfabb2568bd58afc5a\",\n- \"sha256:eba7011090323c1dadf18b3b689845fd96a61ba0a1dfbd7f24b921398affc357\",\n- \"sha256:efa1909120ce98bbb3777e8b6f92237f5d5c8ea6758efea36a473e1d38f7d3e4\",\n- \"sha256:f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0\"\n- ],\n- \"version\": \"==1.4.3\"\n- },\n- \"markupsafe\": {\n- \"hashes\": [\n- \"sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473\",\n- \"sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161\",\n- \"sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235\",\n- \"sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5\",\n- \"sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42\",\n- \"sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff\",\n- \"sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b\",\n- \"sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1\",\n- \"sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e\",\n- \"sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183\",\n- \"sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66\",\n- \"sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b\",\n- \"sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1\",\n- \"sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15\",\n- \"sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1\",\n- \"sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e\",\n- \"sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b\",\n- \"sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905\",\n- \"sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735\",\n- \"sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d\",\n- \"sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e\",\n- \"sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d\",\n- \"sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c\",\n- \"sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21\",\n- \"sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2\",\n- \"sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5\",\n- \"sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b\",\n- \"sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6\",\n- \"sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f\",\n- \"sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f\",\n- \"sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2\",\n- \"sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7\",\n- \"sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be\"\n- ],\n- \"version\": \"==1.1.1\"\n- },\n- \"mccabe\": {\n- \"hashes\": [\n- \"sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42\",\n- \"sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f\"\n- ],\n- \"version\": \"==0.6.1\"\n- },\n- \"packaging\": {\n- \"hashes\": [\n- \"sha256:3c292b474fda1671ec57d46d739d072bfd495a4f51ad01a055121d81e952b7a3\",\n- \"sha256:82f77b9bee21c1bafbf35a84905d604d5d1223801d639cf3ed140bd651c08752\"\n- ],\n- \"version\": \"==20.3\"\n- },\n- \"pkginfo\": {\n- \"hashes\": [\n- \"sha256:7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb\",\n- \"sha256:a6d9e40ca61ad3ebd0b72fbadd4fba16e4c0e4df0428c041e01e06eb6ee71f32\"\n- ],\n- \"version\": \"==1.5.0.1\"\n- },\n- \"pluggy\": {\n- \"hashes\": [\n- \"sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0\",\n- \"sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d\"\n- ],\n- \"version\": \"==0.13.1\"\n- },\n- \"py\": {\n- \"hashes\": [\n- \"sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa\",\n- \"sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0\"\n- ],\n- \"version\": \"==1.8.1\"\n- },\n- \"pycparser\": {\n- \"hashes\": [\n- \"sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0\",\n- \"sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705\"\n- ],\n- \"version\": \"==2.20\"\n- },\n- \"pygments\": {\n- \"hashes\": [\n- \"sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44\",\n- \"sha256:ff7a40b4860b727ab48fad6360eb351cc1b33cbf9b15a0f689ca5353e9463324\"\n- ],\n- \"version\": \"==2.6.1\"\n- },\n- \"pylint\": {\n- \"hashes\": [\n- \"sha256:3db5468ad013380e987410a8d6956226963aed94ecb5f9d3a28acca6d9ac36cd\",\n- \"sha256:886e6afc935ea2590b462664b161ca9a5e40168ea99e5300935f6591ad467df4\"\n- ],\n- \"version\": \"==2.4.4\"\n- },\n- \"pyparsing\": {\n- \"hashes\": [\n- \"sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1\",\n- \"sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b\"\n- ],\n- \"version\": \"==2.4.7\"\n- },\n- \"readme-renderer\": {\n- \"hashes\": [\n- \"sha256:1b6d8dd1673a0b293766b4106af766b6eff3654605f9c4f239e65de6076bc222\",\n- \"sha256:e67d64242f0174a63c3b727801a2fff4c1f38ebe5d71d95ff7ece081945a6cd4\"\n- ],\n- \"version\": \"==25.0\"\n- },\n- \"requests\": {\n- \"hashes\": [\n- \"sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee\",\n- \"sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6\"\n- ],\n- \"version\": \"==2.23.0\"\n- },\n- \"requests-toolbelt\": {\n- \"hashes\": [\n- \"sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f\",\n- \"sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0\"\n- ],\n- \"version\": \"==0.9.1\"\n- },\n- \"secretstorage\": {\n- \"hashes\": [\n- \"sha256:15da8a989b65498e29be338b3b279965f1b8f09b9668bd8010da183024c8bff6\",\n- \"sha256:b5ec909dde94d4ae2fa26af7c089036997030f0cf0a5cb372b4cccabd81c143b\"\n- ],\n- \"markers\": \"sys_platform == 'linux'\",\n- \"version\": \"==3.1.2\"\n- },\n- \"six\": {\n- \"hashes\": [\n- \"sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a\",\n- \"sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c\"\n- ],\n- \"version\": \"==1.14.0\"\n- },\n- \"starlette\": {\n- \"hashes\": [\n- \"sha256:6169ee78ded501095d1dda7b141a1dc9f9934d37ad23196e180150ace2c6449b\",\n- \"sha256:a9bb130fa7aa736eda8a814b6ceb85ccf7a209ed53843d0d61e246b380afa10f\"\n- ],\n- \"version\": \"==0.13.2\"\n- },\n- \"toml\": {\n- \"hashes\": [\n- \"sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c\",\n- \"sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e\"\n- ],\n- \"version\": \"==0.10.0\"\n- },\n- \"tox\": {\n- \"hashes\": [\n- \"sha256:a4a6689045d93c208d77230853b28058b7513f5123647b67bf012f82fa168303\",\n- \"sha256:b2c4b91c975ea5c11463d9ca00bebf82654439c5df0f614807b9bdec62cc9471\"\n- ],\n- \"version\": \"==3.14.6\"\n- },\n- \"tqdm\": {\n- \"hashes\": [\n- \"sha256:00339634a22c10a7a22476ee946bbde2dbe48d042ded784e4d88e0236eca5d81\",\n- \"sha256:ea9e3fd6bd9a37e8783d75bfc4c1faf3c6813da6bd1c3e776488b41ec683af94\"\n- ],\n- \"version\": \"==4.45.0\"\n- },\n- \"twine\": {\n- \"hashes\": [\n- \"sha256:c1af8ca391e43b0a06bbc155f7f67db0bf0d19d284bfc88d1675da497a946124\",\n- \"sha256:d561a5e511f70275e5a485a6275ff61851c16ffcb3a95a602189161112d9f160\"\n- ],\n- \"version\": \"==3.1.1\"\n- },\n- \"typed-ast\": {\n- \"hashes\": [\n- \"sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355\",\n- \"sha256:0c2c07682d61a629b68433afb159376e24e5b2fd4641d35424e462169c0a7919\",\n- \"sha256:249862707802d40f7f29f6e1aad8d84b5aa9e44552d2cc17384b209f091276aa\",\n- \"sha256:24995c843eb0ad11a4527b026b4dde3da70e1f2d8806c99b7b4a7cf491612652\",\n- \"sha256:269151951236b0f9a6f04015a9004084a5ab0d5f19b57de779f908621e7d8b75\",\n- \"sha256:4083861b0aa07990b619bd7ddc365eb7fa4b817e99cf5f8d9cf21a42780f6e01\",\n- \"sha256:498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d\",\n- \"sha256:4e3e5da80ccbebfff202a67bf900d081906c358ccc3d5e3c8aea42fdfdfd51c1\",\n- \"sha256:6daac9731f172c2a22ade6ed0c00197ee7cc1221aa84cfdf9c31defeb059a907\",\n- \"sha256:715ff2f2df46121071622063fc7543d9b1fd19ebfc4f5c8895af64a77a8c852c\",\n- \"sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3\",\n- \"sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b\",\n- \"sha256:8ce678dbaf790dbdb3eba24056d5364fb45944f33553dd5869b7580cdbb83614\",\n- \"sha256:aaee9905aee35ba5905cfb3c62f3e83b3bec7b39413f0a7f19be4e547ea01ebb\",\n- \"sha256:bcd3b13b56ea479b3650b82cabd6b5343a625b0ced5429e4ccad28a8973f301b\",\n- \"sha256:c9e348e02e4d2b4a8b2eedb48210430658df6951fa484e59de33ff773fbd4b41\",\n- \"sha256:d205b1b46085271b4e15f670058ce182bd1199e56b317bf2ec004b6a44f911f6\",\n- \"sha256:d43943ef777f9a1c42bf4e552ba23ac77a6351de620aa9acf64ad54933ad4d34\",\n- \"sha256:d5d33e9e7af3b34a40dc05f498939f0ebf187f07c385fd58d591c533ad8562fe\",\n- \"sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4\",\n- \"sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7\"\n- ],\n- \"markers\": \"implementation_name == 'cpython' and python_version < '3.8'\",\n- \"version\": \"==1.4.1\"\n- },\n- \"typing-extensions\": {\n- \"hashes\": [\n- \"sha256:6e95524d8a547a91e08f404ae485bbb71962de46967e1b71a0cb89af24e761c5\",\n- \"sha256:79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae\",\n- \"sha256:f8d2bd89d25bc39dabe7d23df520442fa1d8969b82544370e03d88b5a591c392\"\n- ],\n- \"version\": \"==3.7.4.2\"\n- },\n- \"urllib3\": {\n- \"hashes\": [\n- \"sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc\",\n- \"sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc\"\n- ],\n- \"version\": \"==1.25.8\"\n- },\n- \"uvicorn\": {\n- \"hashes\": [\n- \"sha256:0f58170165c4495f563d8224b2f415a0829af0412baa034d6f777904613087fd\",\n- \"sha256:6fdaf8e53bf1b2ddf0fe9ed06079b5348d7d1d87b3365fe2549e6de0d49e631c\"\n- ],\n- \"version\": \"==0.11.3\"\n- },\n- \"uvloop\": {\n- \"hashes\": [\n- \"sha256:08b109f0213af392150e2fe6f81d33261bb5ce968a288eb698aad4f46eb711bd\",\n- \"sha256:123ac9c0c7dd71464f58f1b4ee0bbd81285d96cdda8bc3519281b8973e3a461e\",\n- \"sha256:4315d2ec3ca393dd5bc0b0089d23101276778c304d42faff5dc4579cb6caef09\",\n- \"sha256:4544dcf77d74f3a84f03dd6278174575c44c67d7165d4c42c71db3fdc3860726\",\n- \"sha256:afd5513c0ae414ec71d24f6f123614a80f3d27ca655a4fcf6cabe50994cc1891\",\n- \"sha256:b4f591aa4b3fa7f32fb51e2ee9fea1b495eb75b0b3c8d0ca52514ad675ae63f7\",\n- \"sha256:bcac356d62edd330080aed082e78d4b580ff260a677508718f88016333e2c9c5\",\n- \"sha256:e7514d7a48c063226b7d06617cbb12a14278d4323a065a8d46a7962686ce2e95\",\n- \"sha256:f07909cd9fc08c52d294b1570bba92186181ca01fe3dc9ffba68955273dd7362\"\n- ],\n- \"markers\": \"sys_platform != 'win32' and sys_platform != 'cygwin' and platform_python_implementation != 'PyPy'\",\n- \"version\": \"==0.14.0\"\n- },\n- \"virtualenv\": {\n- \"hashes\": [\n- \"sha256:00cfe8605fb97f5a59d52baab78e6070e72c12ca64f51151695407cc0eb8a431\",\n- \"sha256:c8364ec469084046c779c9a11ae6340094e8a0bf1d844330fc55c1cefe67c172\"\n- ],\n- \"version\": \"==20.0.17\"\n- },\n- \"webencodings\": {\n- \"hashes\": [\n- \"sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78\",\n- \"sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923\"\n- ],\n- \"version\": \"==0.5.1\"\n- },\n- \"websockets\": {\n- \"hashes\": [\n- \"sha256:0e4fb4de42701340bd2353bb2eee45314651caa6ccee80dbd5f5d5978888fed5\",\n- \"sha256:1d3f1bf059d04a4e0eb4985a887d49195e15ebabc42364f4eb564b1d065793f5\",\n- \"sha256:20891f0dddade307ffddf593c733a3fdb6b83e6f9eef85908113e628fa5a8308\",\n- \"sha256:295359a2cc78736737dd88c343cd0747546b2174b5e1adc223824bcaf3e164cb\",\n- \"sha256:2db62a9142e88535038a6bcfea70ef9447696ea77891aebb730a333a51ed559a\",\n- \"sha256:3762791ab8b38948f0c4d281c8b2ddfa99b7e510e46bd8dfa942a5fff621068c\",\n- \"sha256:3db87421956f1b0779a7564915875ba774295cc86e81bc671631379371af1170\",\n- \"sha256:3ef56fcc7b1ff90de46ccd5a687bbd13a3180132268c4254fc0fa44ecf4fc422\",\n- \"sha256:4f9f7d28ce1d8f1295717c2c25b732c2bc0645db3215cf757551c392177d7cb8\",\n- \"sha256:5c01fd846263a75bc8a2b9542606927cfad57e7282965d96b93c387622487485\",\n- \"sha256:5c65d2da8c6bce0fca2528f69f44b2f977e06954c8512a952222cea50dad430f\",\n- \"sha256:751a556205d8245ff94aeef23546a1113b1dd4f6e4d102ded66c39b99c2ce6c8\",\n- \"sha256:7ff46d441db78241f4c6c27b3868c9ae71473fe03341340d2dfdbe8d79310acc\",\n- \"sha256:965889d9f0e2a75edd81a07592d0ced54daa5b0785f57dc429c378edbcffe779\",\n- \"sha256:9b248ba3dd8a03b1a10b19efe7d4f7fa41d158fdaa95e2cf65af5a7b95a4f989\",\n- \"sha256:9bef37ee224e104a413f0780e29adb3e514a5b698aabe0d969a6ba426b8435d1\",\n- \"sha256:c1ec8db4fac31850286b7cd3b9c0e1b944204668b8eb721674916d4e28744092\",\n- \"sha256:c8a116feafdb1f84607cb3b14aa1418424ae71fee131642fc568d21423b51824\",\n- \"sha256:ce85b06a10fc65e6143518b96d3dca27b081a740bae261c2fb20375801a9d56d\",\n- \"sha256:d705f8aeecdf3262379644e4b55107a3b55860eb812b673b28d0fbc347a60c55\",\n- \"sha256:e898a0863421650f0bebac8ba40840fc02258ef4714cb7e1fd76b6a6354bda36\",\n- \"sha256:f8a7bff6e8664afc4e6c28b983845c5bc14965030e3fb98789734d416af77c4b\"\n- ],\n- \"version\": \"==8.1\"\n- },\n- \"werkzeug\": {\n- \"hashes\": [\n- \"sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43\",\n- \"sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c\"\n- ],\n- \"version\": \"==1.0.1\"\n- },\n- \"wrapt\": {\n- \"hashes\": [\n- \"sha256:565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1\"\n- ],\n- \"version\": \"==1.11.2\"\n- },\n- \"zipp\": {\n- \"hashes\": [\n- \"sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b\",\n- \"sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96\"\n- ],\n- \"markers\": \"python_version < '3.8'\",\n- \"version\": \"==3.1.0\"\n- }\n- }\n-}\n--- setup.py\n+++ setup.py\n@@ -1,40 +1,3 @@\n-#!/usr/bin/env python\n-# -*- coding: utf-8 -*-\n from setuptools import setup\n from setuptools import find_packages\n-\n-setup(\n- name='ariadne_spike',\n- version='1.0.0',\n- packages=find_packages(exclude=[\"*_tests\"]),\n- license='MIT license',\n- long_description=open('README.md').read(),\n- long_description_content_type='text/markdown',\n- entry_points = {\n- 'console_scripts': [\n- 'ariadne_spike = ariadne_spike.cli:cli',\n- ],\n- },\n- install_requires = [\n- 'ariadne',\n- 'click',\n- 'decorator',\n- 'flask',\n- 'uvicorn'\n- ],\n- extras_require={\n- 'dev': [\n- 'pylint',\n- 'coverage',\n- 'tox',\n- 'twine'\n- ]\n- },\n- classifiers=[\n- \"Programming Language :: Python :: 3.6\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Operating System :: OS Independent\",\n- \"Intended Audience :: Developers\",\n- \"Environment :: Console\"\n- ]\n-)\n+setup(name='ariadne_spike', version='1.0.0', packages=find_packages(exclude=['*_tests']), license='MIT license', long_description=open('README.md').read(), long_description_content_type='text/markdown', entry_points={'console_scripts': ['ariadne_spike = ariadne_spike.cli:cli']}, install_requires=['ariadne', 'click', 'decorator', 'flask', 'uvicorn'], extras_require={'dev': ['pylint', 'coverage', 'tox', 'twine']}, classifiers=['Programming Language :: Python :: 3.6', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Intended Audience :: Developers', 'Environment :: Console'])\n\\ No newline at end of file\n--- setup_FabienArcellier__spike-ariadne.sh\n+++ setup_FabienArcellier__spike-ariadne.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .[dev]\n--- test_FabienArcellier__spike-ariadne.sh\n+++ test_FabienArcellier__spike-ariadne.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest ariadne_spike_tests.acceptances.test_query ariadne_spike_tests.acceptances.test_cli\n", "test_patch": "", "gold_patch": "--- ariadne_spike/flask_server.py\n+++ ariadne_spike/flask_server.py\n@@ -3,7 +3,9 @@\n from flask import Flask, request, jsonify\n \n from ariadne import graphql_sync\n-from ariadne.constants import PLAYGROUND_HTML\n+from ariadne.explorer import ExplorerGraphiQL\n+\n+PLAYGROUND_HTML = ExplorerGraphiQL().html(None)\n \n from ariadne_spike import query\n \n", "reproduction_target_date": "2020-04-10", "reproduction_target_version": "3.6.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 FabienArcellier__spike-ariadne .\n\nRUN bash /work/setup_FabienArcellier__spike-ariadne.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_FabienArcellier__spike-ariadne.sh\"]\n", "version_source": "setup.py", "script_source": "setup.py", "dependency_versions": "anyio==4.9.0\nariadne==0.26.2\nariadne_spike @ file:///work\nastroid==3.3.11\nblinker==1.9.0\ncachetools==6.1.0\ncertifi==2025.7.14\ncffi==1.17.1\nchardet==5.2.0\ncharset-normalizer==3.4.2\nclick==8.2.1\ncolorama==0.4.6\ncoverage==7.10.1\ncryptography==45.0.5\ndecorator==5.2.1\ndill==0.4.0\ndistlib==0.4.0\ndocutils==0.22\nfilelock==3.18.0\nFlask==3.1.1\ngraphql-core==3.2.5\nh11==0.16.0\nid==1.5.0\nidna==3.10\nisort==6.0.1\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\nmccabe==0.7.0\nmdurl==0.1.2\nmore-itertools==10.7.0\nnh3==0.3.0\npackaging==25.0\nplatformdirs==4.3.8\npluggy==1.6.0\npycparser==2.22\nPygments==2.19.2\npylint==3.3.7\npyproject-api==1.9.1\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\nsniffio==1.3.1\nstarlette==0.47.2\ntomlkit==0.13.3\ntox==4.28.3\ntwine==6.1.0\ntyping_extensions==4.14.1\nurllib3==2.5.0\nuvicorn==0.35.0\nvirtualenv==20.32.0\nWerkzeug==3.1.3\n", "test_type": "unittest", "test_files": "ariadne_spike_tests/acceptances/test_cli.py, ariadne_spike_tests/acceptances/test_query.py", "test_count": 4, "related_modules": "ariadne", "py_file_count": 11, "total_loc_python": 189, "difficulty": "Easy", "license": "MIT"} {"repo_name": "erperreault/18xxgamesbot", "repo_url": "https://github.com/erperreault/18xxgamesbot", "commit_hash": "1a0e3fa015cbe1154b620aa2eb975084c21ac38f", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,10 +1,10 @@\n-aiohttp==3.7.4.post0\n-async-timeout==3.0.1\n-attrs==21.2.0\n-chardet==4.0.0\n-discord.py==1.7.2\n-idna==3.2\n-multidict==5.1.0\n-psycopg2==2.8.6\n-typing-extensions==3.10.0.0\n-yarl==1.6.3\n+aiohttp\n+async-timeout\n+attrs\n+chardet\n+discord.py\n+idna\n+multidict\n+psycopg2\n+typing-extensions\n+yarl\n\\ No newline at end of file\n--- setup_erperreault__18xxgamesbot.sh\n+++ setup_erperreault__18xxgamesbot.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_erperreault__18xxgamesbot.sh\n+++ test_erperreault__18xxgamesbot.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest unit_tests\n", "test_patch": "", "gold_patch": "--- server.py\n+++ server.py\n@@ -10,7 +10,7 @@\n import discord\n import psycopg2\n \n-client = discord.Client()\n+client = discord.Client(intents=discord.Intents.default())\n postgres_url = os.getenv('DATABASE_URL')\n \n help_command = '!help'\n", "reproduction_target_date": "2021-07-26", "reproduction_target_version": "3.8.11", "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 erperreault__18xxgamesbot .\n\nRUN bash /work/setup_erperreault__18xxgamesbot.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_erperreault__18xxgamesbot.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "aiohappyeyeballs==2.6.1\naiohttp==3.12.15\naiosignal==1.4.0\nasync-timeout==5.0.1\nattrs==25.3.0\nchardet==5.2.0\ndiscord.py==2.5.2\nfrozenlist==1.7.0\nidna==3.10\nmultidict==6.6.3\npropcache==0.3.2\npsycopg2==2.9.10\ntyping_extensions==4.14.1\nyarl==1.20.1\n", "test_type": "unittest", "test_files": "unit_tests.py", "test_count": 7, "related_modules": "discord", "py_file_count": 4, "total_loc_python": 403, "difficulty": "Easy", "license": ""} {"repo_name": "byt3-m3/connector", "repo_url": "https://github.com/byt3-m3/connector", "commit_hash": "39a0a06396fb6fff8338bc7f0e19a70e7d06ee26", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,28 +1,28 @@\n-aniso8601==8.0.0\n-bcrypt==3.1.7\n-cffi==1.14.0\n-click==7.1.2\n-contextlib2==0.6.0.post1\n-cryptography==2.9.2\n-Flask==1.1.2\n-Flask-RESTful==0.3.8\n-future==0.18.2\n-itsdangerous==1.1.0\n-Jinja2==2.11.2\n-MarkupSafe==1.1.1\n-marshmallow==3.7.0\n-netmiko==3.1.1\n-paramiko==2.7.1\n-ply==3.11\n-pyasn1==0.4.8\n-pycparser==2.20\n-pycryptodomex==3.9.8\n-PyNaCl==1.4.0\n-pyserial==3.4\n-pysmi==0.3.4\n-pysnmp==4.4.12\n-pytz==2020.1\n-scp==0.13.2\n-six==1.15.0\n-textfsm==1.1.0\n-Werkzeug==1.0.1\n+aniso8601\n+bcrypt\n+cffi\n+click\n+contextlib2\n+cryptography\n+Flask\n+Flask-RESTful\n+future\n+itsdangerous\n+Jinja2\n+MarkupSafe\n+marshmallow\n+netmiko\n+paramiko\n+ply\n+pyasn1\n+pycparser\n+pycryptodomex\n+PyNaCl\n+pyserial\n+pysmi\n+pysnmp\n+pytz\n+scp\n+six\n+textfsm\n+Werkzeug\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,12 +1,2 @@\n from setuptools import setup, find_packages\n-\n-setup(\n- name='connector',\n- version='1.0',\n- url='http://www.github.com/cbaxter1988',\n- description='External Connection API used in the SNAP system',\n- author='Courtney S Baxter Jr',\n- author_email='cbaxtertech@gmail.com',\n- packages=find_packages(),\n- include_package_data=True\n-)\n+setup(name='connector', version='1.0', url='http://www.github.com/cbaxter1988', description='External Connection API used in the SNAP system', author='Courtney S Baxter Jr', author_email='cbaxtertech@gmail.com', packages=find_packages(), include_package_data=True)\n\\ No newline at end of file\n--- setup_byt3-m3__connector.sh\n+++ setup_byt3-m3__connector.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_byt3-m3__connector.sh\n+++ test_byt3-m3__connector.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_schemas\n", "test_patch": "", "gold_patch": "--- connector/constants.py\n+++ connector/constants.py\n@@ -1,5 +1,5 @@\n from netmiko.ssh_dispatcher import CLASS_MAPPER_BASE\n-from pysnmp.hlapi import (usmNoPrivProtocol,\n+from pysnmp.entity.config import (usmNoPrivProtocol,\n usmAesCfb128Protocol,\n usmHMACMD5AuthProtocol,\n usmHMACSHAAuthProtocol,\n--- connector/controllers/command_ssh.py\n+++ connector/controllers/command_ssh.py\n@@ -1,5 +1,5 @@\n from netmiko import ConnectHandler\n-from netmiko.ssh_exception import NetMikoTimeoutException\n+from netmiko.exceptions import NetMikoTimeoutException\n from connector.controllers.core import ControllerResult, validate_params\n from connector.models.command_ssh import SSHCommandSchema\n from connector.constants import DEV_TYPES\n--- connector/models/discover_snmp.py\n+++ connector/models/discover_snmp.py\n@@ -5,9 +5,9 @@\n class DiscoverSNMPv2(Schema):\n community = fields.Str(required=True)\n target = fields.Str(required=True)\n- version = fields.Str(default=\"2c\")\n- timeout = fields.Integer(default=1)\n- retries = fields.Integer(default=3)\n+ version = fields.Str(dump_default=\"2c\")\n+ timeout = fields.Integer(dump_default=1)\n+ retries = fields.Integer(dump_default=3)\n \n \n class DiscoverSNMPv3(Schema):\n@@ -18,6 +18,6 @@\n auth_proto = fields.Str(validate=OneOf(AUTH_PROTO_MAP.keys()))\n priv_proto = fields.Str(validate=OneOf(PRIV_PROTO_MAP.keys()))\n target = fields.Str(required=True)\n- version = fields.Str(default=\"3\")\n- timeout = fields.Integer(default=1)\n- retries = fields.Integer(default=3)\n\\ No newline at end of file\n+ version = fields.Str(dump_default=\"3\")\n+ timeout = fields.Integer(dump_default=1)\n+ retries = fields.Integer(dump_default=3)\n\\ No newline at end of file\n", "reproduction_target_date": "2020-07-21", "reproduction_target_version": "3.7.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 byt3-m3__connector .\n\nRUN bash /work/setup_byt3-m3__connector.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_byt3-m3__connector.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "aniso8601==10.0.1\nbcrypt==4.3.0\nblinker==1.9.0\ncertifi==2025.7.14\ncffi==1.17.1\ncharset-normalizer==3.4.2\nclick==8.2.1\ncontextlib2==21.6.0\ncryptography==45.0.5\nFlask==3.1.1\nFlask-RESTful==0.3.10\nfuture==1.0.0\nidna==3.10\nitsdangerous==2.2.0\nJinja2==3.1.6\nmarkdown-it-py==3.0.0\nMarkupSafe==3.0.2\nmarshmallow==4.0.0\nmdurl==0.1.2\nnetmiko==4.6.0\nntc_templates==7.9.0\nparamiko==3.5.1\nply==3.11\npyasn1==0.6.1\npycparser==2.22\npycryptodomex==3.23.0\nPygments==2.19.2\nPyNaCl==1.5.0\npyserial==3.5\npysmi==1.6.2\npysnmp==7.1.21\npytz==2025.2\nPyYAML==6.0.2\nrequests==2.32.4\nrich==14.1.0\nruamel.yaml==0.18.14\nruamel.yaml.clib==0.2.12\nscp==0.15.0\nsix==1.17.0\ntextfsm==1.1.3\nurllib3==2.5.0\nWerkzeug==3.1.3\n", "test_type": "unittest", "test_files": "tests/test_schemas.py", "test_count": 1, "related_modules": "pysnmp, marshmallow, netmiko", "py_file_count": 25, "total_loc_python": 975, "difficulty": "Medium", "license": ""} {"repo_name": "arthurcgusmao/py-mcc-f1", "repo_url": "https://github.com/arthurcgusmao/py-mcc-f1", "commit_hash": "d1b7cb856fbf03faad6a9eeeaea08da049c603c0", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,3 +1,3 @@\n pytest\n-numpy>=1.14.0\n-scikit_learn>=0.22\n+numpy\n+scikit_learn\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,25 +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=\"py-mcc-f1\",\n- version=\"0.1.0\",\n- author=\"Arthur Colombini Gusmão\",\n- description=\"MCC-F1 Curve\",\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- url=\"https://github.com/arthurcgusmao/py-mcc-f1\",\n- packages=setuptools.find_packages(),\n- install_requires=[\n- \"numpy>=1.14.0\",\n- \"scikit-learn>=0.22\"\n- ],\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-)\n+setuptools.setup(name='py-mcc-f1', version='0.1.0', author='Arthur Colombini Gusmão', description='MCC-F1 Curve', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/arthurcgusmao/py-mcc-f1', packages=setuptools.find_packages(), install_requires=['numpy', 'scikit-learn'], classifiers=['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent'], python_requires='>=3.6')\n\\ No newline at end of file\n--- setup_arthurcgusmao__py-mcc-f1.sh\n+++ setup_arthurcgusmao__py-mcc-f1.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_arthurcgusmao__py-mcc-f1.sh\n+++ test_arthurcgusmao__py-mcc-f1.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- mcc_f1/_plot/mcc_f1_curve.py\n+++ mcc_f1/_plot/mcc_f1_curve.py\n@@ -4,7 +4,7 @@\n # Function was not present in sklearn.metrics._plot.base before c3f2516\n from .base import _get_response\n \n-from sklearn.utils import check_matplotlib_support\n+from sklearn.utils._optional_dependencies import check_matplotlib_support\n \n # from .. import mcc_f1_metric, mcc_f1_curve\n from .. import mcc_f1_curve\n", "reproduction_target_date": "2020-09-30", "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 arthurcgusmao__py-mcc-f1 .\n\nRUN bash /work/setup_arthurcgusmao__py-mcc-f1.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_arthurcgusmao__py-mcc-f1.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "iniconfig==2.1.0\njoblib==1.5.1\nnumpy==2.3.2\npackaging==25.0\npluggy==1.6.0\nPygments==2.19.2\npytest==8.4.1\nscikit-learn==1.7.1\nscipy==1.16.1\nthreadpoolctl==3.6.0\n", "test_type": "pytest", "test_files": "tests/test_plot_mcc_f1_curve.py, tests/test_mcc_f1_curve.py", "test_count": 4, "related_modules": "scikit-learn", "py_file_count": 8, "total_loc_python": 769, "difficulty": "Medium", "license": "MIT"} {"repo_name": "compas-rrc/compas_rrc", "repo_url": "https://github.com/compas-rrc/compas_rrc", "commit_hash": "162dcefe1bcdc735bf32e858e75690e8ec332202", "patch": "--- docs/requirements.txt\n+++ docs/requirements.txt\n@@ -1 +1 @@\n--r ../requirements-dev.txt\n+-r ../requirements-dev.txt\n\\ No newline at end of file\n--- requirements-dev.txt\n+++ requirements-dev.txt\n@@ -1,12 +1,12 @@\n autopep8\n-bump2version>=1.0\n-check-manifest>=0.36\n+bump2version\n+check-manifest\n flake8\n-invoke>=0.14\n+invoke\n isort\n pylint\n pytest\n-sphinx_compas_theme>=0.9\n-sphinx>=1.6\n+sphinx_compas_theme\n+sphinx\n twine\n--e .\n+-e .\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,8 +1,5 @@\n-#!/usr/bin/env python\n-# -*- encoding: utf-8 -*-\n from __future__ import absolute_import\n from __future__ import print_function\n-\n import io\n import re\n from glob import glob\n@@ -11,66 +8,14 @@\n from os.path import dirname\n from os.path import join\n from os.path import splitext\n-\n from setuptools import find_packages\n from setuptools import setup\n-\n-requirements = ['compas_fab', 'roslibpy>=1.1']\n+requirements = ['compas_fab', 'roslibpy']\n keywords_list = []\n-\n here = abspath(dirname(__file__))\n \n-\n def read(*names, **kwargs):\n- return io.open(\n- join(here, *names),\n- encoding=kwargs.get('encoding', 'utf8')\n- ).read()\n-\n-\n+ return io.open(join(here, *names), encoding=kwargs.get('encoding', 'utf8')).read()\n about = {}\n exec(read('src', 'compas_rrc', '__version__.py'), about)\n-\n-setup(\n- name=about['__title__'],\n- version=about['__version__'],\n- license=about['__license__'],\n- description=about['__description__'],\n- author=about['__author__'],\n- author_email=about['__author_email__'],\n- url=about['__url__'],\n- long_description='%s\\n%s' % (\n- re.compile('^.. start-badges.*^.. end-badges', re.M |\n- re.S).sub('', read('README.rst')),\n- re.sub(':[a-z]+:`~?(.*?)`', r'``\\1``', read('CHANGELOG.rst'))\n- ),\n- packages=find_packages('src'),\n- package_dir={'': 'src'},\n- py_modules=[splitext(basename(path))[0] for path in glob('src/*.py')],\n- include_package_data=True,\n- zip_safe=False,\n- classifiers=[\n- 'Development Status :: 4 - Beta',\n- 'Intended Audience :: Developers',\n- 'Intended Audience :: Science/Research',\n- 'License :: OSI Approved :: MIT License',\n- 'Operating System :: Unix',\n- 'Operating System :: POSIX',\n- 'Operating System :: Microsoft :: Windows',\n- 'Programming Language :: Python',\n- 'Programming Language :: Python :: 3',\n- 'Programming Language :: Python :: 3.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- 'Programming Language :: Python :: 3.8',\n- 'Programming Language :: Python :: Implementation :: CPython',\n- 'Programming Language :: Python :: Implementation :: IronPython',\n- 'Topic :: Scientific/Engineering',\n- ],\n- keywords=keywords_list,\n- install_requires=requirements,\n- extras_require={},\n- entry_points={},\n-)\n+setup(name=about['__title__'], version=about['__version__'], license=about['__license__'], description=about['__description__'], author=about['__author__'], author_email=about['__author_email__'], url=about['__url__'], long_description='%s\\n%s' % (re.compile('^.. start-badges.*^.. end-badges', re.M | re.S).sub('', read('README.rst')), re.sub(':[a-z]+:`~?(.*?)`', '``\\\\1``', read('CHANGELOG.rst'))), packages=find_packages('src'), package_dir={'': 'src'}, py_modules=[splitext(basename(path))[0] for path in glob('src/*.py')], include_package_data=True, zip_safe=False, classifiers=['Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: MIT License', 'Operating System :: Unix', 'Operating System :: POSIX', 'Operating System :: Microsoft :: Windows', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: IronPython', 'Topic :: Scientific/Engineering'], keywords=keywords_list, install_requires=requirements, extras_require={}, entry_points={})\n\\ No newline at end of file\n--- setup_compas-rrc__compas_rrc.sh\n+++ setup_compas-rrc__compas_rrc.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements-dev.txt\n+pip install -r docs/requirements.txt\n+pip install pytest\n--- test_compas-rrc__compas_rrc.sh\n+++ test_compas-rrc__compas_rrc.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "--- tests/test_common.py\n+++ tests/test_common.py\n@@ -1,7 +1,7 @@\n import math\n \n from compas.geometry import allclose\n-from compas.robots import Configuration\n+from compas_robots import Configuration\n import compas_rrc as rrc\n \n \n", "gold_patch": "--- src/compas_rrc/common.py\n+++ src/compas_rrc/common.py\n@@ -2,8 +2,8 @@\n import math\n import threading\n \n-from compas.robots import Configuration\n-from compas.robots import Joint\n+from compas_robots import Configuration\n+from compas_robots.model import Joint\n \n __all__ = ['CLIENT_PROTOCOL_VERSION',\n 'FeedbackLevel',\n", "reproduction_target_date": "2022-04-01", "reproduction_target_version": "3.8.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 compas-rrc__compas_rrc .\n\nRUN bash /work/setup_compas-rrc__compas_rrc.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_compas-rrc__compas_rrc.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "alabaster==1.0.0\nastroid==3.3.11\nattrs==25.3.0\nautobahn==24.4.2\nAutomat==25.4.16\nautopep8==2.3.2\nbabel==2.17.0\nbuild==1.2.2.post1\nbump2version==1.0.1\nbumpversion==0.6.0\ncertifi==2025.7.14\ncffi==1.17.1\ncharset-normalizer==3.4.2\ncheck-manifest==0.50\ncompas==2.13.0\ncompas-fab==1.1.0\ncompas-robots==0.6.0\n# Editable install with no version control (compas_rrc==1.1.0)\n-e /work\nconstantly==23.10.4\ncryptography==45.0.5\ndill==0.4.0\ndocutils==0.21.2\nflake8==7.3.0\nhyperlink==21.0.0\nid==1.5.0\nidna==3.10\nimagesize==1.4.1\nincremental==24.7.2\niniconfig==2.1.0\ninvoke==2.2.0\nisort==6.0.1\njaraco.classes==3.4.0\njaraco.context==6.0.1\njaraco.functools==4.2.1\njeepney==0.9.0\nJinja2==3.1.6\njsonschema==4.25.0\njsonschema-specifications==2025.4.1\nkeyring==25.6.0\nmarkdown-it-py==3.0.0\nMarkupSafe==3.0.2\nmccabe==0.7.0\nmdurl==0.1.2\nmore-itertools==10.7.0\nnetworkx==3.5\nnh3==0.3.0\nnumpy==2.3.2\npackaging==25.0\nplatformdirs==4.3.8\npluggy==1.6.0\npyasn1==0.6.1\npyasn1_modules==0.4.2\npycodestyle==2.14.0\npycparser==2.22\npyflakes==3.4.0\nPygments==2.19.2\npylint==3.3.7\npyOpenSSL==25.1.0\npyproject_hooks==1.2.0\npyserial==3.5\npytest==8.4.1\nreadme_renderer==44.0\nreferencing==0.36.2\nrequests==2.32.4\nrequests-toolbelt==1.0.0\nrfc3986==2.0.0\nrich==14.1.0\nroman-numerals-py==3.1.0\nroslibpy==1.8.1\nrpds-py==0.26.0\nscipy==1.16.1\nSecretStorage==3.3.3\nservice-identity==24.2.0\nsetuptools==80.9.0\nsnowballstemmer==3.0.1\nSphinx==8.2.3\nsphinx-compas-theme==0.15.18\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\ntomlkit==0.13.3\ntwine==6.1.0\nTwisted==25.5.0\ntxaio==25.6.1\ntyping_extensions==4.14.1\nurllib3==2.5.0\nwatchdog==6.0.0\nzope.interface==7.2\n", "test_type": "pytest", "test_files": "tests/test_common.py, tests/test_client.py, tests/test_motion.py", "test_count": 11, "related_modules": "compas", "py_file_count": 18, "total_loc_python": 2869, "difficulty": "Medium", "license": "MIT"} {"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": "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": "microparts/configuration-python", "repo_url": "https://github.com/microparts/configuration-python", "commit_hash": "7626e4e075a5b698255118dc8c2925a2522752b7", "patch": "--- setup.py\n+++ setup.py\n@@ -1,30 +1,3 @@\n from setuptools import setup, find_packages\n-\n __version__ = '1.1.2'\n-\n-setup(\n- version=__version__,\n- name='config_pkg',\n- packages=find_packages(),\n-\n- install_requires=[\n- 'pyyaml'\n- ],\n-\n- description='Python Config PKG',\n-\n- author='Roquie, detrous',\n- author_email='roquie0@gmail.com, artyom.slobodyan@gmail.com',\n-\n- url='https://github.com/microparts/configuration-python',\n- download_url='https://github.com/microparts/configuration-python/archive/%s.tar.gz' % __version__,\n-\n- license='GPL-3.0-only',\n- classifiers=[\n- 'Environment :: Web Environment',\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',\n- 'Programming Language :: Python :: 3.6',\n- 'Topic :: Software Development :: Libraries :: Python Modules',\n- ],\n-)\n+setup(version=__version__, name='config_pkg', packages=find_packages(), install_requires=['pyyaml'], description='Python Config PKG', author='Roquie, detrous', author_email='roquie0@gmail.com, artyom.slobodyan@gmail.com', url='https://github.com/microparts/configuration-python', download_url='https://github.com/microparts/configuration-python/archive/%s.tar.gz' % __version__, license='GPL-3.0-only', classifiers=['Environment :: Web Environment', 'Intended Audience :: Developers', 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)', 'Programming Language :: Python :: 3.6', 'Topic :: Software Development :: Libraries :: Python Modules'])\n\\ No newline at end of file\n--- setup_microparts__configuration-python.sh\n+++ setup_microparts__configuration-python.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n--- test_microparts__configuration-python.sh\n+++ test_microparts__configuration-python.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_api\n", "test_patch": "", "gold_patch": "--- config_pkg/__init__.py\n+++ config_pkg/__init__.py\n@@ -105,6 +105,6 @@\n \"\"\"Parses the yaml file\"\"\"\r\n \r\n try:\r\n- return yaml.load(open(path, 'r')).get(stage, None)\r\n+ return yaml.load(open(path, 'r'), Loader=yaml.Loader).get(stage, None)\r\n except:\r\n return None\r\n", "reproduction_target_date": "2020-04-16", "reproduction_target_version": "3.6.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 microparts__configuration-python .\n\nRUN bash /work/setup_microparts__configuration-python.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_microparts__configuration-python.sh\"]\n", "version_source": "setup.py", "script_source": "setup.py", "dependency_versions": "config_pkg @ file:///work\nPyYAML==6.0.2\n", "test_type": "unittest", "test_files": "tests/test_api.py", "test_count": 6, "related_modules": "PyYAML", "py_file_count": 4, "total_loc_python": 205, "difficulty": "Medium", "license": "MIT"} {"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": "rimek/fatek-fbs-lib", "repo_url": "https://github.com/rimek/fatek-fbs-lib", "commit_hash": "731e349c0cfa421dd6afe4a1fb1ef52d70e85c60", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,7 +1,7 @@\n-pymodbus==1.2.0; python_version < '3.0'\n-pymodbus3==1.0.0; python_version >= '3.0'\n-pyserial==3.2.1\n-docopt==0.6.2\n+pymodbus\n+pymodbus3\n+pyserial\n+docopt\n mock\n pytest\n-pytest-cov\n+pytest-cov\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,36 +1,5 @@\n-#!/usr/bin/env python\n import os\n-\n from setuptools import find_packages, setup\n-\n VERSION = '0.1.9'\n-\n root = os.path.abspath(os.path.dirname(__file__))\n-\n-setup(\n- name='fatek-fbs-lib',\n- version=VERSION,\n- description='Fatek FBs communication lib',\n- author='Marcin Rim',\n- author_email='rimek@poczta.fm',\n- url='https://github.com/rimek/fatek-fbs-lib',\n- packages=find_packages(),\n- test_suite='tests',\n- include_package_data=True,\n- zip_safe=False,\n- install_requires=[\n- \"pymodbus3; python_version >= '3.0'\",\n- \"pymodbus; python_version < '3.0'\",\n- 'pyserial',\n- ],\n- scripts=['bin/fatek-cli'],\n- classifiers=[\n- 'Development Status :: 2 - Pre-Alpha',\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: BSD License',\n- 'Operating System :: OS Independent',\n- 'Programming Language :: Python',\n- 'Programming Language :: Python :: 3',\n- 'Topic :: Software Development :: Libraries :: Python Modules',\n- ],\n-)\n+setup(name='fatek-fbs-lib', version=VERSION, description='Fatek FBs communication lib', author='Marcin Rim', author_email='rimek@poczta.fm', url='https://github.com/rimek/fatek-fbs-lib', packages=find_packages(), test_suite='tests', include_package_data=True, zip_safe=False, install_requires=['pymodbus3', 'pymodbus', 'pyserial'], scripts=['bin/fatek-cli'], classifiers=['Development Status :: 2 - Pre-Alpha', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Topic :: Software Development :: Libraries :: Python Modules'])\n\\ No newline at end of file\n--- setup_rimek__fatek-fbs-lib.sh\n+++ setup_rimek__fatek-fbs-lib.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_rimek__fatek-fbs-lib.sh\n+++ test_rimek__fatek-fbs-lib.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_target tests.test_symbol tests.test_fatek\n", "test_patch": "", "gold_patch": "--- fatek/fatek.py\n+++ fatek/fatek.py\n@@ -1,7 +1,4 @@\n-try:\n- from pymodbus3.client.sync import ModbusTcpClient\n-except ImportError:\n- from pymodbus.client.sync import ModbusTcpClient\n+from pymodbus.client import ModbusTcpClient\n \n import logging\n \n@@ -18,7 +15,7 @@\n self.logger = logger\n \n self.address = address\n- self.client = ModbusTcpClient(address, port)\n+ self.client = ModbusTcpClient(address, port=port)\n \n def read(self, symbol):\n target = FatekTarget(self.client, symbol)\n", "reproduction_target_date": "2020-06-28", "reproduction_target_version": "3.7.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 rimek__fatek-fbs-lib .\n\nRUN bash /work/setup_rimek__fatek-fbs-lib.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_rimek__fatek-fbs-lib.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "attrs==25.3.0\nAutomat==25.4.16\nconstantly==23.10.4\ncoverage==7.10.1\ndocopt==0.6.2\nhyperlink==21.0.0\nidna==3.10\nincremental==24.7.2\niniconfig==2.1.0\nmock==5.2.0\npackaging==25.0\npluggy==1.6.0\nPygments==2.19.2\npymodbus==3.10.0\npymodbus3==1.0.0\npyserial==3.5\npytest==8.4.1\npytest-cov==6.2.1\nsetuptools==80.9.0\nTwisted==25.5.0\ntyping_extensions==4.14.1\nzope.interface==7.2\n", "test_type": "unittest", "test_files": "tests/test_target.py, tests/test_symbol.py, tests/test_fatek.py", "test_count": 25, "related_modules": "pymodbus", "py_file_count": 39, "total_loc_python": 9311, "difficulty": "Medium", "license": ""} {"repo_name": "behance/chamberlain", "repo_url": "https://github.com/behance/chamberlain", "commit_hash": "98912d4c548ee898a10789a23ebe0f2bae29edc2", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,11 +1,11 @@\n-pbr<2.0,>=1.0\n-PyYAML==3.11\n-termcolor==1.1.0\n+pbr\n+PyYAML\n+termcolor\n argparse\n ordereddict\n-six>=1.5.2\n+six\n \n-github3.py==1.0.0a2\n+github3.py\n \n-python-jenkins==0.4.15\n-jenkins-job-builder==1.6.1\n+python-jenkins\n+jenkins-job-builder\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,5 +1,2 @@\n import setuptools\n-\n-setuptools.setup(\n- setup_requires=['pbr'],\n- pbr=True)\n+setuptools.setup(setup_requires=['pbr'], pbr=True)\n\\ No newline at end of file\n--- setup_behance__chamberlain.sh\n+++ setup_behance__chamberlain.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install -r test-requirements.txt\n--- test-requirements.txt\n+++ test-requirements.txt\n@@ -1,4 +1,4 @@\n-tox==1.8.1\n-nose==1.3.4\n-mock==1.0.1\n-flake8==2.2.5\n+tox\n+nose\n+mock\n+flake8\n\\ No newline at end of file\n--- test_behance__chamberlain.sh\n+++ test_behance__chamberlain.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.chamberlain.config_test tests.chamberlain.application_test tests.chamberlain.github_test tests.chamberlain.mappers_test\n", "test_patch": "--- tests/chamberlain/application_test.py\n+++ tests/chamberlain/application_test.py\n@@ -7,4 +7,4 @@\n class AppHomeTest(unittest.TestCase):\n def app_home_test(self):\n with patch.dict(\"os.environ\", {\"HOME\": \"user_home\"}):\n- self.assertEquals(chap.app_home(), \"user_home/.chamberlain\")\n+ self.assertEqual(chap.app_home(), \"user_home/.chamberlain\")\n--- tests/chamberlain/config_test.py\n+++ tests/chamberlain/config_test.py\n@@ -26,7 +26,7 @@\n self.assertTrue(type(self.cfg.baz) is NullConfig)\n \n def test_kv_get_on_k_returns_v(self):\n- self.assertEquals(self.cfg.foo(), \"bar\")\n+ self.assertEqual(self.cfg.foo(), \"bar\")\n \n def test_kv_get_on_nonexistant_k_returns_false(self):\n self.assertFalse(self.cfg.baz())\n--- tests/chamberlain/github_test.py\n+++ tests/chamberlain/github_test.py\n@@ -11,7 +11,7 @@\n \n def test_repo_memory_list(self):\n self.client.repos = []\n- self.assertEquals(self.client.repo_list(), [])\n+ self.assertEqual(self.client.repo_list(), [])\n \n # TODO: file filter test\n def test_filter(self):\n@@ -20,7 +20,7 @@\n Config({\"full_name\": \"foobaz\"})\n ]\n self.client.repos = valid_list + [Config({\"full_name\": \"floobygoop\"})]\n- self.assertEquals(self.client.filter_repos([\"fooba\"], []), valid_list)\n+ self.assertEqual(self.client.filter_repos([\"fooba\"], []), valid_list)\n \n def test_repo_data(self):\n repo = \"user/test\"\n@@ -29,7 +29,7 @@\n Config({\"full_name\": \"wrong_repo\"})\n ]\n self.client.repo_list = mock.Mock(return_value=stub_list)\n- self.assertEquals(self.client.repo_data(repo).full_name(), repo)\n+ self.assertEqual(self.client.repo_data(repo).full_name(), repo)\n \n def test_repo_data_throws(self):\n repo = \"user/test\"\n--- tests/chamberlain/mappers_test.py\n+++ tests/chamberlain/mappers_test.py\n@@ -18,38 +18,38 @@\n \n def test_not_owner_returns_empty_list(self):\n self.repo[\"owner\"] = \"baz\"\n- self.assertEquals(self.fixture_templates(), [])\n+ self.assertEqual(self.fixture_templates(), [])\n \n def test_meta_has_repo_and_does_not_match(self):\n self.meta[\"repo\"] = \"different_repo_name\"\n- self.assertEquals(self.fixture_templates(), [])\n+ self.assertEqual(self.fixture_templates(), [])\n \n def test_public_repo_returns_nothing(self):\n self.repo[\"private\"] = False\n- self.assertEquals(self.fixture_templates(), [])\n+ self.assertEqual(self.fixture_templates(), [])\n \n def test_fork_repo_returns_nothing(self):\n self.repo[\"fork\"] = True\n- self.assertEquals(self.fixture_templates(), [])\n+ self.assertEqual(self.fixture_templates(), [])\n \n def test_excluded_repo_returns_nothing(self):\n self.repo[\"owner\"] = \"bar\"\n self.meta[\"exclude\"] = [\"repo_name\"]\n- self.assertEquals(self.fixture_templates(), [])\n+ self.assertEqual(self.fixture_templates(), [])\n \n def test_included_repo_returns_nothing(self):\n self.repo[\"owner\"] = \"bar\"\n self.repo[\"private\"] = True\n self.meta[\"owner\"] = \"bar\"\n self.meta[\"include\"] = [\"other_repo\"]\n- self.assertEquals(self.fixture_templates(), [])\n+ self.assertEqual(self.fixture_templates(), [])\n \n def test_repo_takes_precedence(self):\n self.repo[\"owner\"] = \"bar\"\n self.repo[\"private\"] = True\n self.repo[\"fork\"] = False\n self.meta[\"repo\"] = \"different_repo_name\"\n- self.assertEquals(self.fixture_templates(), [])\n+ self.assertEqual(self.fixture_templates(), [])\n \n \"\"\"Cases that will yield templates\"\"\"\n \n@@ -57,32 +57,32 @@\n self.meta[\"include_public\"] = True\n self.repo[\"owner\"] = \"bar\"\n self.repo[\"private\"] = False\n- self.assertEquals(self.fixture_templates(), [\"a\", \"b\"])\n+ self.assertEqual(self.fixture_templates(), [\"a\", \"b\"])\n \n def test_include_forks(self):\n self.meta[\"include_forks\"] = True\n self.repo[\"owner\"] = \"bar\"\n self.repo[\"private\"] = True\n self.repo[\"fork\"] = True\n- self.assertEquals(self.fixture_templates(), [\"a\", \"b\"])\n+ self.assertEqual(self.fixture_templates(), [\"a\", \"b\"])\n \n def test_repo_specified(self):\n self.repo[\"owner\"] = \"bar\"\n self.meta[\"owner\"] = \"bar\"\n self.repo[\"private\"] = True\n self.meta[\"repo\"] = \"repo_name\"\n- self.assertEquals(self.fixture_templates(), [\"a\", \"b\"])\n+ self.assertEqual(self.fixture_templates(), [\"a\", \"b\"])\n \n def test_repo_included(self):\n self.repo[\"owner\"] = \"bar\"\n self.repo[\"private\"] = True\n self.meta[\"owner\"] = \"bar\"\n self.meta[\"include\"] = [\"repo_name\"]\n- self.assertEquals(self.fixture_templates(), [\"a\", \"b\"])\n+ self.assertEqual(self.fixture_templates(), [\"a\", \"b\"])\n \n def test_default_case(self):\n self.repo[\"owner\"] = \"bar\"\n self.meta[\"owner\"] = \"bar\"\n self.repo[\"private\"] = True\n self.repo[\"fork\"] = False\n- self.assertEquals(self.fixture_templates(), [\"a\", \"b\"])\n+ self.assertEqual(self.fixture_templates(), [\"a\", \"b\"])\n", "gold_patch": "--- chamberlain/github.py\n+++ chamberlain/github.py\n@@ -6,7 +6,6 @@\n from chamberlain.files import load_json_file, write_json_file\n from chamberlain.repo import repo_hash\n \n-import github3.null\n from github3 import GitHub\n \n sshMatchRegexp = \"^git@[a-zA-Z.-]*:[a-zA-Z-.]*/[a-zA-Z-.]*\"\n@@ -65,7 +64,7 @@\n def repo_has_file(self, owner, repo_name, filepath):\n repo = self.client.repository(owner, repo_name)\n contents = repo.file_contents(filepath)\n- return not isinstance(contents, github3.null.NullObject)\n+ return contents is not None\n \n def filter_repos(self, filters, file_filters):\n repos = copy(self.repos)\n", "reproduction_target_date": "2018-08-14", "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 behance__chamberlain .\n\nRUN bash /work/setup_behance__chamberlain.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_behance__chamberlain.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "cachetools==6.1.0\ncertifi==2025.7.14\ncffi==1.17.1\nchardet==5.2.0\ncharset-normalizer==3.4.2\ncolorama==0.4.6\ncryptography==45.0.5\ndistlib==0.4.0\nfasteners==0.19\nfilelock==3.18.0\nflake8==7.3.0\ngithub3.py==4.0.1\nidna==3.10\njenkins-job-builder==6.4.2\nJinja2==3.1.6\nMarkupSafe==3.0.2\nmccabe==0.7.0\nmock==5.2.0\nmulti_key_dict==2.0.3\nnose==1.3.7\nordereddict==1.1\npackaging==25.0\npbr==6.1.1\nplatformdirs==4.3.8\npluggy==1.6.0\npycodestyle==2.14.0\npycparser==2.22\npyflakes==3.4.0\nPyJWT==2.10.1\npyproject-api==1.9.1\npython-dateutil==2.9.0.post0\npython-jenkins==1.8.2\nPyYAML==6.0.2\nrequests==2.32.4\nsetuptools==80.9.0\nsix==1.17.0\nstevedore==5.4.1\ntermcolor==3.1.0\ntox==4.28.3\nuritemplate==4.2.0\nurllib3==2.5.0\nvirtualenv==20.32.0\n", "test_type": "unittest", "test_files": "tests/chamberlain/mappers_test.py, tests/chamberlain/application_test.py, tests/chamberlain/github_test.py, tests/chamberlain/config_test.py", "test_count": 22, "related_modules": "github3.py", "py_file_count": 26, "total_loc_python": 1370, "difficulty": "Medium", "license": ""} {"repo_name": "alexdaniel654/Segmentation_Metrics", "repo_url": "https://github.com/alexdaniel654/Segmentation_Metrics", "commit_hash": "b85634115e58f63831fb95a4a272031e7d0f1fa1", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,6 +1,6 @@\n-absl-py==1.1.0\n-numpy==1.22.4\n-pandas==1.4.2\n-pytest==7.1.2\n-scikit-image==0.19.2\n-scipy==1.8.1\n+absl-py\n+numpy\n+pandas\n+pytest\n+scikit-image\n+scipy\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,37 +1,6 @@\n from setuptools import setup, find_packages\n-\n-# Get requirements from text file\n with open('requirements.txt') as f:\n requirements = f.read().splitlines()\n-\n-# Use README.md as the long description\n with open('README.md', encoding='utf-8') as f:\n long_description = f.read()\n-\n-setup(\n- name=\"segmentationmetrics\",\n- version=\"1.0.0\",\n- description=\"Binary segmentation accuracy metrics\",\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- url=\"https://github.com/alexdaniel654/Segmentation_Metrics\",\n- license=\"Apache-2.0\",\n-\n- python_requires='>=3.8, <4',\n- packages=find_packages(),\n- install_requires=requirements,\n- include_package_data=True,\n-\n- classifiers=[\n- 'Development Status :: 5 - Production/Stable',\n- 'Intended Audience :: Developers',\n- 'Intended Audience :: Science/Research',\n- 'Topic :: Scientific/Engineering',\n- 'Environment :: Console',\n- 'Operating System :: OS Independent',\n- 'Programming Language :: Python :: 3.8',\n- 'Programming Language :: Python :: 3.9',\n- 'Programming Language :: Python :: 3.10',\n- 'License :: OSI Approved :: Apache Software License',\n- ],\n-)\n+setup(name='segmentationmetrics', version='1.0.0', description='Binary segmentation accuracy metrics', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/alexdaniel654/Segmentation_Metrics', license='Apache-2.0', python_requires='>=3.8', packages=find_packages(), install_requires=requirements, include_package_data=True, classifiers=['Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'Intended Audience :: Science/Research', 'Topic :: Scientific/Engineering', 'Environment :: Console', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'License :: OSI Approved :: Apache Software License'])\n\\ No newline at end of file\n--- setup_alexdaniel654__Segmentation_Metrics.sh\n+++ setup_alexdaniel654__Segmentation_Metrics.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_alexdaniel654__Segmentation_Metrics.sh\n+++ test_alexdaniel654__Segmentation_Metrics.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- segmentationmetrics/surface_distance/metrics.py\n+++ segmentationmetrics/surface_distance/metrics.py\n@@ -254,13 +254,13 @@\n distmap_gt = ndimage.morphology.distance_transform_edt(\n ~borders_gt, sampling=spacing_mm)\n else:\n- distmap_gt = np.Inf * np.ones(borders_gt.shape)\n+ distmap_gt = np.inf * np.ones(borders_gt.shape)\n \n if borders_pred.any():\n distmap_pred = ndimage.morphology.distance_transform_edt(\n ~borders_pred, sampling=spacing_mm)\n else:\n- distmap_pred = np.Inf * np.ones(borders_pred.shape)\n+ distmap_pred = np.inf * np.ones(borders_pred.shape)\n \n # compute the area of each surface element\n surface_area_map_gt = neighbour_code_to_surface_area[neighbour_code_map_gt]\n@@ -348,7 +348,7 @@\n perc_distance_gt_to_pred = distances_gt_to_pred[\n min(idx, len(distances_gt_to_pred)-1)]\n else:\n- perc_distance_gt_to_pred = np.Inf\n+ perc_distance_gt_to_pred = np.inf\n \n if len(distances_pred_to_gt) > 0: # pylint: disable=g-explicit-length-test\n surfel_areas_cum_pred = (np.cumsum(surfel_areas_pred) /\n@@ -357,7 +357,7 @@\n perc_distance_pred_to_gt = distances_pred_to_gt[\n min(idx, len(distances_pred_to_gt)-1)]\n else:\n- perc_distance_pred_to_gt = np.Inf\n+ perc_distance_pred_to_gt = np.inf\n \n return max(perc_distance_gt_to_pred, perc_distance_pred_to_gt)\n \n@@ -438,6 +438,6 @@\n \"\"\"\n volume_sum = mask_gt.sum() + mask_pred.sum()\n if volume_sum == 0:\n- return np.NaN\n+ return np.nan\n volume_intersect = (mask_gt & mask_pred).sum()\n return 2*volume_intersect / volume_sum\n\\ No newline at end of file\n", "reproduction_target_date": "2022-06-09", "reproduction_target_version": "3.10.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 alexdaniel654__Segmentation_Metrics .\n\nRUN bash /work/setup_alexdaniel654__Segmentation_Metrics.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_alexdaniel654__Segmentation_Metrics.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "absl-py==2.3.1\nimageio==2.37.0\niniconfig==2.1.0\nlazy_loader==0.4\nnetworkx==3.5\nnumpy==2.3.2\npackaging==25.0\npandas==2.3.1\npillow==11.3.0\npluggy==1.6.0\nPygments==2.19.2\npytest==8.4.1\npython-dateutil==2.9.0.post0\npytz==2025.2\nscikit-image==0.25.2\nscipy==1.16.1\nsix==1.17.0\ntifffile==2025.6.11\ntzdata==2025.2\n", "test_type": "pytest", "test_files": "segmentationmetrics/tests/test_surface_distance.py, segmentationmetrics/tests/test_metrics.py", "test_count": 30, "related_modules": "numpy", "py_file_count": 9, "total_loc_python": 1527, "difficulty": "Easy", "license": "Apache-2.0"} {"repo_name": "NickWedzinga/BlekingePoGO", "repo_url": "https://github.com/NickWedzinga/BlekingePoGO", "commit_hash": "96fba00f9171b1eab3b2a43af5e22c532a5aa3b3", "patch": "--- .github/workflows/requirements.txt\n+++ .github/workflows/requirements.txt\n@@ -1,7 +1,7 @@\n-discord.py==2.3.1\n-schedule==1.1.0\n-requests==2.31.0\n-records==0.5.3\n-mysqlclient==2.1.0\n-SQLAlchemy==1.3.19\n-pyspellchecker==0.6.2\n+discord.py\n+schedule\n+requests\n+records\n+mysqlclient\n+SQLAlchemy\n+pyspellchecker\n\\ No newline at end of file\n--- setup_NickWedzinga__BlekingePoGO.sh\n+++ setup_NickWedzinga__BlekingePoGO.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r .github/workflows/requirements.txt\n+pip install pytest\n--- test_NickWedzinga__BlekingePoGO.sh\n+++ test_NickWedzinga__BlekingePoGO.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- sneaselcommands/dex.py\n+++ sneaselcommands/dex.py\n@@ -31,7 +31,7 @@\n \n \n def create_no_matches_info_message(ctx, pokemon_name: str):\n- pokemon_spelling_candidates = instances.SPELLCHECKER.candidates(pokemon_name)\n+ pokemon_spelling_candidates = instances.SPELLCHECKER.candidates(pokemon_name) or {pokemon_name}\n pokemon_containing_matches = _find_containing_matches(pokemon_name=pokemon_name)\n \n info_message = f\"Could not find any matches for {pokemon_name} {ctx.author.mention}\"\n@@ -47,7 +47,7 @@\n \"\"\"Creates a str that lists the corrected Pokémon and attempts to give spelling alternatives\"\"\"\n info_message = f\"Showing result for **{corrected_name.title()}**, did not find **{incorrect_name.title()}** {ctx.author.mention}\"\n \n- candidates = instances.SPELLCHECKER.candidates(incorrect_name)\n+ candidates = instances.SPELLCHECKER.candidates(incorrect_name) or {incorrect_name}\n if len(candidates) > 1:\n info_message += f\"\\nOther spelling options: {', '.join(list(map(str.title, candidates)))}\"\n return info_message\n--- sneaselcommands/raids/raid.py\n+++ sneaselcommands/raids/raid.py\n@@ -140,7 +140,7 @@\n for word in report:\n if word.upper() in corrected_pokemon_name.upper():\n original_pokemon_list.append(word)\n- elif instances.SPELLCHECKER.correction(word).upper() in corrected_pokemon_name.upper():\n+ elif (instances.SPELLCHECKER.correction(word) or word).upper() in corrected_pokemon_name.upper():\n original_pokemon_list.append(word)\n return \" \".join(original_pokemon_list)\n \n--- utils/pokemon_corrector.py\n+++ utils/pokemon_corrector.py\n@@ -46,7 +46,7 @@\n \"\"\"\n if pokemon_misspelled.upper() in constants.RAID_EGG_TYPES:\n return None\n- pokemon_spell_checked = instances.SPELLCHECKER.correction(pokemon_misspelled)\n+ pokemon_spell_checked = instances.SPELLCHECKER.correction(pokemon_misspelled) or pokemon_misspelled\n return instances.POKEDEX.lookup(pokemon_spell_checked)\n \n \n@@ -62,7 +62,7 @@\n maybe_correctly_spelled_pokemon: list = []\n for pokemon_sub_name in incorrect_pokemon_list:\n if pokemon_sub_name.upper() not in constants.RAID_EGG_TYPES:\n- maybe_correctly_spelled_pokemon.append(instances.SPELLCHECKER.correction(pokemon_sub_name))\n+ maybe_correctly_spelled_pokemon.append(instances.SPELLCHECKER.correction(pokemon_sub_name) or pokemon_sub_name)\n else:\n maybe_correctly_spelled_pokemon.append(pokemon_sub_name)\n \n", "reproduction_target_date": "2023-08-28", "reproduction_target_version": "3.10.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 NickWedzinga__BlekingePoGO .\n\nRUN bash /work/setup_NickWedzinga__BlekingePoGO.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_NickWedzinga__BlekingePoGO.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "aiohappyeyeballs==2.6.1\naiohttp==3.12.15\naiosignal==1.4.0\nattrs==25.3.0\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\ndiscord.py==2.5.2\ndocopt==0.6.2\net_xmlfile==2.0.0\nfrozenlist==1.7.0\ngreenlet==3.2.3\nidna==3.10\niniconfig==2.1.0\nmultidict==6.6.3\nmysqlclient==2.2.7\nopenpyxl==3.1.5\npackaging==25.0\npluggy==1.6.0\npropcache==0.3.2\nPygments==2.19.2\npyspellchecker==0.8.3\npytest==8.4.1\nrecords==0.6.0\nrequests==2.32.4\nschedule==1.2.2\nSQLAlchemy==2.0.42\ntablib==3.8.0\ntyping_extensions==4.14.1\nurllib3==2.5.0\nyarl==1.20.1\n", "test_type": "pytest", "test_files": "testing/unit/test_support.py, testing/unit/test_stats.py, testing/unit/test_trainercodes.py, testing/unit/test_scheduler.py, testing/unit/test_pokemon.py, testing/unit/test_extras.py, testing/unit/test_pokemon_collection.py, testing/unit/test_moves.py, testing/unit/test_raid.py, testing/unit/test_leaderboard_controller.py, testing/unit/test_pokedex.py", "test_count": 81, "related_modules": "pyspellchecker", "py_file_count": 75, "total_loc_python": 6158, "difficulty": "Hard", "license": ""} {"repo_name": "n8henrie/eyeflask", "repo_url": "https://github.com/n8henrie/eyeflask", "commit_hash": "c806a791243ca179eebee38adaaadda3138941dd", "patch": "--- requirements-dev.txt\n+++ requirements-dev.txt\n@@ -1,9 +1,9 @@\n-docutils==0.13.1\n-flake8==3.3.0\n-pypandoc==1.3.3\n-pytest==3.0.6\n-recommonmark==0.4.0\n-Sphinx==1.5.3\n-sphinx-rtd-theme==0.2.4\n-tox==2.6.0\n-twine==1.8.1\n+docutils\n+flake8\n+pypandoc\n+pytest\n+recommonmark\n+Sphinx\n+sphinx-rtd-theme\n+tox\n+twine\n\\ No newline at end of file\n--- requirements.txt\n+++ requirements.txt\n@@ -1,2 +1,2 @@\n-defusedxml==0.5.0\n-Flask==0.12\n+defusedxml\n+Flask\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,60 +1,22 @@\n-# -*- coding: utf-8 -*-\n-\n import re\n try:\n from setuptools import setup, find_packages\n except ImportError:\n from distutils.core import setup\n-\n try:\n import pypandoc\n readme = pypandoc.convert('README.md', 'rst')\n history = pypandoc.convert('CHANGELOG.md', 'rst')\n except (ImportError, OSError):\n- with open('README.md') as readme_file, \\\n- open('CHANGELOG.md') as history_file:\n+ with open('README.md') as readme_file, open('CHANGELOG.md') as history_file:\n readme = readme_file.read()\n history = history_file.read()\n-\n with open('requirements.txt') as requirements_file:\n requirements = requirements_file.read().splitlines()\n-\n with open('requirements-dev.txt') as dev_requirements_file:\n dev_requirements = dev_requirements_file.read().splitlines()\n-\n-version_regex = re.compile(r'__version__ = [\\'\\\"]((\\d+\\.?)+)[\\'\\\"]')\n+version_regex = re.compile('__version__ = [\\\\\\'\\\\\"]((\\\\d+\\\\.?)+)[\\\\\\'\\\\\"]')\n with open('eyeflask/__init__.py') as f:\n vlines = f.readlines()\n-__version__ = next(re.match(version_regex, line).group(1) for line in vlines\n- if re.match(version_regex, line))\n-\n-setup(\n- name=\"eyeflask\",\n- version=__version__,\n- description=\"Flask-based EyeFi Server\",\n- long_description=readme + \"\\n\\n\" + history,\n- author=\"Nathan Henrie\",\n- author_email=\"nate@n8henrie.com\",\n- url=\"https://github.com/n8henrie/eyeflask\",\n- packages=find_packages(),\n- entry_points={\n- 'console_scripts': ['eyeflask=eyeflask.cli:run']\n- },\n- include_package_data=True,\n- install_requires=requirements,\n- license=\"MIT\",\n- zip_safe=False,\n- keywords=\"eyeflask eyefi flask\",\n- classifiers=[\n- \"Natural Language :: English\",\n- \"Programming Language :: Python :: 3\",\n- \"Programming Language :: Python :: 3.4\",\n- \"Programming Language :: Python :: 3.5\",\n- \"Programming Language :: Python :: 3.6\",\n- ],\n- extras_require={\n- \"dev\": dev_requirements\n- },\n- test_suite=\"tests\",\n- tests_require=['pytest>=2.8.7']\n-)\n+__version__ = next((re.match(version_regex, line).group(1) for line in vlines if re.match(version_regex, line)))\n+setup(name='eyeflask', version=__version__, description='Flask-based EyeFi Server', long_description=readme + '\\n\\n' + history, author='Nathan Henrie', author_email='nate@n8henrie.com', url='https://github.com/n8henrie/eyeflask', packages=find_packages(), entry_points={'console_scripts': ['eyeflask=eyeflask.cli:run']}, include_package_data=True, install_requires=requirements, license='MIT', zip_safe=False, keywords='eyeflask eyefi flask', classifiers=['Natural Language :: English', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6'], extras_require={'dev': dev_requirements}, test_suite='tests', tests_require=['pytest'])\n\\ No newline at end of file\n--- setup_n8henrie__eyeflask.sh\n+++ setup_n8henrie__eyeflask.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements-dev.txt\n+pip install -r requirements.txt\n+pip install pytest\n--- test_n8henrie__eyeflask.sh\n+++ test_n8henrie__eyeflask.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- eyeflask/server/crypto.py\n+++ eyeflask/server/crypto.py\n@@ -58,7 +58,7 @@\n \n checksums = array.array(\"H\", gen_checksums(upfile))\n checksums.frombytes(binascii.unhexlify(upload_key))\n- digest = checksums.tostring()\n+ digest = checksums.tobytes()\n \n m = hashlib.md5()\n m.update(digest)\n", "reproduction_target_date": "2023-07-24", "reproduction_target_version": "3.6.15", "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 n8henrie__eyeflask .\n\nRUN bash /work/setup_n8henrie__eyeflask.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_n8henrie__eyeflask.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "alabaster==1.0.0\nbabel==2.17.0\nblinker==1.9.0\ncachetools==6.1.0\ncertifi==2025.7.14\ncffi==1.17.1\nchardet==5.2.0\ncharset-normalizer==3.4.2\nclick==8.2.1\ncolorama==0.4.6\ncommonmark==0.9.1\ncryptography==45.0.5\ndefusedxml==0.7.1\ndistlib==0.4.0\ndocutils==0.21.2\nfilelock==3.18.0\nflake8==7.3.0\nFlask==3.1.1\nid==1.5.0\nidna==3.10\nimagesize==1.4.1\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\nmccabe==0.7.0\nmdurl==0.1.2\nmore-itertools==10.7.0\nnh3==0.3.0\npackaging==25.0\nplatformdirs==4.3.8\npluggy==1.6.0\npycodestyle==2.14.0\npycparser==2.22\npyflakes==3.4.0\nPygments==2.19.2\npypandoc==1.15\npyproject-api==1.9.1\npytest==8.4.1\nreadme_renderer==44.0\nrecommonmark==0.7.1\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\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\ntox==4.28.3\ntwine==6.1.0\nurllib3==2.5.0\nvirtualenv==20.32.0\nWerkzeug==3.1.3\n", "test_type": "pytest", "test_files": "tests/test_eyeflask.py", "test_count": 7, "related_modules": "builtin", "py_file_count": 11, "total_loc_python": 781, "difficulty": "Easy", "license": "MIT"} {"repo_name": "miracle2k/k8s-snapshots", "repo_url": "https://github.com/miracle2k/k8s-snapshots", "commit_hash": "5185ecb707438211e8c24deb5704bb59fdb78077", "patch": "--- poetry.lock\n+++ poetry.lock\n@@ -1,1152 +0,0 @@\n-[[package]]\n-name = \"aiochannel\"\n-version = \"1.1.1\"\n-description = \"asyncio Channels (closable queues) inspired by golang\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[[package]]\n-name = \"aiohttp\"\n-version = \"3.8.1\"\n-description = \"Async http client/server framework (asyncio)\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.6\"\n-\n-[package.dependencies]\n-aiosignal = \">=1.1.2\"\n-async-timeout = \">=4.0.0a3,<5.0\"\n-attrs = \">=17.3.0\"\n-charset-normalizer = \">=2.0,<3.0\"\n-frozenlist = \">=1.1.1\"\n-multidict = \">=4.5,<7.0\"\n-yarl = \">=1.0,<2.0\"\n-\n-[package.extras]\n-speedups = [\"aiodns\", \"brotli\", \"cchardet\"]\n-\n-[[package]]\n-name = \"aiosignal\"\n-version = \"1.2.0\"\n-description = \"aiosignal: a list of registered asynchronous callbacks\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.6\"\n-\n-[package.dependencies]\n-frozenlist = \">=1.1.0\"\n-\n-[[package]]\n-name = \"aiostream\"\n-version = \"0.4.4\"\n-description = \"Generator-based operators for asynchronous iteration\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[[package]]\n-name = \"argparse\"\n-version = \"1.4.0\"\n-description = \"Python command-line parsing library\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[[package]]\n-name = \"async-timeout\"\n-version = \"4.0.2\"\n-description = \"Timeout context manager for asyncio programs\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.6\"\n-\n-[[package]]\n-name = \"attrs\"\n-version = \"17.4.0\"\n-description = \"Classes Without Boilerplate\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[package.extras]\n-dev = [\"coverage\", \"hypothesis\", \"pympler\", \"pytest\", \"six\", \"zope.interface\", \"sphinx\", \"zope.interface\"]\n-docs = [\"sphinx\", \"zope.interface\"]\n-tests = [\"coverage\", \"hypothesis\", \"pympler\", \"pytest\", \"six\", \"zope.interface\"]\n-\n-[[package]]\n-name = \"boto3\"\n-version = \"1.21.11\"\n-description = \"The AWS SDK for Python\"\n-category = \"main\"\n-optional = false\n-python-versions = \">= 3.6\"\n-\n-[package.dependencies]\n-botocore = \">=1.24.11,<1.25.0\"\n-jmespath = \">=0.7.1,<1.0.0\"\n-s3transfer = \">=0.5.0,<0.6.0\"\n-\n-[package.extras]\n-crt = [\"botocore[crt] (>=1.21.0,<2.0a0)\"]\n-\n-[[package]]\n-name = \"botocore\"\n-version = \"1.24.11\"\n-description = \"Low-level, data-driven core of boto 3.\"\n-category = \"main\"\n-optional = false\n-python-versions = \">= 3.6\"\n-\n-[package.dependencies]\n-jmespath = \">=0.7.1,<1.0.0\"\n-python-dateutil = \">=2.1,<3.0.0\"\n-urllib3 = \">=1.25.4,<1.27\"\n-\n-[package.extras]\n-crt = [\"awscrt (==0.12.5)\"]\n-\n-[[package]]\n-name = \"cachetools\"\n-version = \"5.0.0\"\n-description = \"Extensible memoizing collections and decorators\"\n-category = \"main\"\n-optional = false\n-python-versions = \"~=3.7\"\n-\n-[[package]]\n-name = \"certifi\"\n-version = \"2021.10.8\"\n-description = \"Python package for providing Mozilla's CA Bundle.\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[[package]]\n-name = \"charset-normalizer\"\n-version = \"2.0.12\"\n-description = \"The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.5.0\"\n-\n-[package.extras]\n-unicode_backport = [\"unicodedata2\"]\n-\n-[[package]]\n-name = \"confcollect\"\n-version = \"0.2.5\"\n-description = \"Helpers to collect configuration from os environment, files etc.\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[[package]]\n-name = \"frozenlist\"\n-version = \"1.3.0\"\n-description = \"A list-like structure which implements collections.abc.MutableSequence\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.7\"\n-\n-[[package]]\n-name = \"google-api-core\"\n-version = \"2.5.0\"\n-description = \"Google API client core library\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.6\"\n-\n-[package.dependencies]\n-google-auth = \">=1.25.0,<3.0dev\"\n-googleapis-common-protos = \">=1.52.0,<2.0dev\"\n-protobuf = \">=3.12.0\"\n-requests = \">=2.18.0,<3.0.0dev\"\n-\n-[package.extras]\n-grpc = [\"grpcio (>=1.33.2,<2.0dev)\", \"grpcio-status (>=1.33.2,<2.0dev)\"]\n-grpcgcp = [\"grpcio-gcp (>=0.2.2)\"]\n-grpcio-gcp = [\"grpcio-gcp (>=0.2.2)\"]\n-\n-[[package]]\n-name = \"google-api-python-client\"\n-version = \"1.12.10\"\n-description = \"Google API Client Library for Python\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*\"\n-\n-[package.dependencies]\n-google-api-core = {version = \">=1.21.0,<3dev\", markers = \"python_version >= \\\"3\\\"\"}\n-google-auth = {version = \">=1.16.0,<3dev\", markers = \"python_version >= \\\"3\\\"\"}\n-google-auth-httplib2 = \">=0.0.3\"\n-httplib2 = \">=0.15.0,<1dev\"\n-six = \">=1.13.0,<2dev\"\n-uritemplate = \">=3.0.0,<4dev\"\n-\n-[[package]]\n-name = \"google-auth\"\n-version = \"2.6.0\"\n-description = \"Google Authentication Library\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*\"\n-\n-[package.dependencies]\n-cachetools = \">=2.0.0,<6.0\"\n-pyasn1-modules = \">=0.2.1\"\n-rsa = {version = \">=3.1.4,<5\", markers = \"python_version >= \\\"3.6\\\"\"}\n-six = \">=1.9.0\"\n-\n-[package.extras]\n-aiohttp = [\"requests (>=2.20.0,<3.0.0dev)\", \"aiohttp (>=3.6.2,<4.0.0dev)\"]\n-pyopenssl = [\"pyopenssl (>=20.0.0)\"]\n-reauth = [\"pyu2f (>=0.1.5)\"]\n-\n-[[package]]\n-name = \"google-auth-httplib2\"\n-version = \"0.1.0\"\n-description = \"Google Authentication Library: httplib2 transport\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[package.dependencies]\n-google-auth = \"*\"\n-httplib2 = \">=0.15.0\"\n-six = \"*\"\n-\n-[[package]]\n-name = \"googleapis-common-protos\"\n-version = \"1.55.0\"\n-description = \"Common protobufs used in Google APIs\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.6\"\n-\n-[package.dependencies]\n-protobuf = \">=3.12.0\"\n-\n-[package.extras]\n-grpc = [\"grpcio (>=1.0.0)\"]\n-\n-[[package]]\n-name = \"httplib2\"\n-version = \"0.20.4\"\n-description = \"A comprehensive HTTP client library.\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*\"\n-\n-[package.dependencies]\n-pyparsing = {version = \">=2.4.2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0.2,<3.0.3 || >3.0.3,<4\", markers = \"python_version > \\\"3.0\\\"\"}\n-\n-[[package]]\n-name = \"idna\"\n-version = \"3.3\"\n-description = \"Internationalized Domain Names in Applications (IDNA)\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.5\"\n-\n-[[package]]\n-name = \"isodate\"\n-version = \"0.6.1\"\n-description = \"An ISO 8601 date/time/duration parser and formatter\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[package.dependencies]\n-six = \"*\"\n-\n-[[package]]\n-name = \"jmespath\"\n-version = \"0.10.0\"\n-description = \"JSON Matching Expressions\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=2.6, !=3.0.*, !=3.1.*, !=3.2.*\"\n-\n-[[package]]\n-name = \"jsonpickle\"\n-version = \"2.1.0\"\n-description = \"Python library for serializing any arbitrary object graph into JSON\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=2.7\"\n-\n-[package.extras]\n-docs = [\"sphinx\", \"jaraco.packaging (>=3.2)\", \"rst.linker (>=1.9)\"]\n-testing = [\"pytest (>=3.5,!=3.7.3)\", \"pytest-checkdocs (>=1.2.3)\", \"pytest-flake8\", \"pytest-black-multipy\", \"pytest-cov\", \"ecdsa\", \"feedparser\", \"numpy\", \"pandas\", \"pymongo\", \"scikit-learn\", \"sqlalchemy\", \"enum34\", \"jsonlib\"]\n-\"testing.libs\" = [\"demjson\", \"simplejson\", \"ujson\", \"yajl\"]\n-\n-[[package]]\n-name = \"multidict\"\n-version = \"6.0.2\"\n-description = \"multidict implementation\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.7\"\n-\n-[[package]]\n-name = \"oauth2client\"\n-version = \"4.1.3\"\n-description = \"OAuth 2.0 client library\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[package.dependencies]\n-httplib2 = \">=0.9.1\"\n-pyasn1 = \">=0.1.7\"\n-pyasn1-modules = \">=0.0.5\"\n-rsa = \">=3.1.4\"\n-six = \">=1.6.1\"\n-\n-[[package]]\n-name = \"oauthlib\"\n-version = \"3.2.0\"\n-description = \"A generic, spec-compliant, thorough implementation of the OAuth request-signing logic\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.6\"\n-\n-[package.extras]\n-rsa = [\"cryptography (>=3.0.0)\"]\n-signals = [\"blinker (>=1.4.0)\"]\n-signedtoken = [\"cryptography (>=3.0.0)\", \"pyjwt (>=2.0.0,<3)\"]\n-\n-[[package]]\n-name = \"pendulum\"\n-version = \"0.8.0\"\n-description = \"Python datetimes made easy.\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[package.dependencies]\n-python-dateutil = \"*\"\n-pytzdata = \"*\"\n-tzlocal = \"*\"\n-\n-[[package]]\n-name = \"pexpect\"\n-version = \"4.8.0\"\n-description = \"Pexpect allows easy control of interactive console applications.\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[package.dependencies]\n-ptyprocess = \">=0.5\"\n-\n-[[package]]\n-name = \"protobuf\"\n-version = \"3.19.4\"\n-description = \"Protocol Buffers\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.5\"\n-\n-[[package]]\n-name = \"ptyprocess\"\n-version = \"0.7.0\"\n-description = \"Run a subprocess in a pseudo terminal\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[[package]]\n-name = \"pyasn1\"\n-version = \"0.4.8\"\n-description = \"ASN.1 types and codecs\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[[package]]\n-name = \"pyasn1-modules\"\n-version = \"0.2.8\"\n-description = \"A collection of ASN.1-based protocols modules.\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[package.dependencies]\n-pyasn1 = \">=0.4.6,<0.5.0\"\n-\n-[[package]]\n-name = \"pykube\"\n-version = \"0.14.0\"\n-description = \"Python client library for Kubernetes\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[package.dependencies]\n-oauth2client = \"*\"\n-PyYAML = \"*\"\n-requests = \">=2.12\"\n-requests-oauthlib = \"*\"\n-six = \"*\"\n-tzlocal = \"*\"\n-\n-[[package]]\n-name = \"pyparsing\"\n-version = \"3.0.7\"\n-description = \"Python parsing module\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.6\"\n-\n-[package.extras]\n-diagrams = [\"jinja2\", \"railroad-diagrams\"]\n-\n-[[package]]\n-name = \"python-dateutil\"\n-version = \"2.8.2\"\n-description = \"Extensions to the standard Python datetime module\"\n-category = \"main\"\n-optional = false\n-python-versions = \"!=3.0.*,!=3.1.*,!=3.2.*,>=2.7\"\n-\n-[package.dependencies]\n-six = \">=1.5\"\n-\n-[[package]]\n-name = \"python-digitalocean\"\n-version = \"1.17.0\"\n-description = \"digitalocean.com API to manage Droplets and Images\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[package.dependencies]\n-jsonpickle = \"*\"\n-requests = \"*\"\n-\n-[[package]]\n-name = \"pytz-deprecation-shim\"\n-version = \"0.1.0.post0\"\n-description = \"Shims to make deprecation of pytz easier\"\n-category = \"main\"\n-optional = false\n-python-versions = \"!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7\"\n-\n-[package.dependencies]\n-tzdata = {version = \"*\", markers = \"python_version >= \\\"3.6\\\"\"}\n-\n-[[package]]\n-name = \"pytzdata\"\n-version = \"2020.1\"\n-description = \"The Olson timezone database for Python.\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*\"\n-\n-[[package]]\n-name = \"pyyaml\"\n-version = \"6.0\"\n-description = \"YAML parser and emitter for Python\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.6\"\n-\n-[[package]]\n-name = \"requests\"\n-version = \"2.27.1\"\n-description = \"Python HTTP for Humans.\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*\"\n-\n-[package.dependencies]\n-certifi = \">=2017.4.17\"\n-charset-normalizer = {version = \">=2.0.0,<2.1.0\", markers = \"python_version >= \\\"3\\\"\"}\n-idna = {version = \">=2.5,<4\", markers = \"python_version >= \\\"3\\\"\"}\n-urllib3 = \">=1.21.1,<1.27\"\n-\n-[package.extras]\n-socks = [\"PySocks (>=1.5.6,!=1.5.7)\", \"win-inet-pton\"]\n-use_chardet_on_py3 = [\"chardet (>=3.0.2,<5)\"]\n-\n-[[package]]\n-name = \"requests-oauthlib\"\n-version = \"1.3.1\"\n-description = \"OAuthlib authentication support for Requests.\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*\"\n-\n-[package.dependencies]\n-oauthlib = \">=3.0.0\"\n-requests = \">=2.0.0\"\n-\n-[package.extras]\n-rsa = [\"oauthlib[signedtoken] (>=3.0.0)\"]\n-\n-[[package]]\n-name = \"rsa\"\n-version = \"4.8\"\n-description = \"Pure-Python RSA implementation\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.6,<4\"\n-\n-[package.dependencies]\n-pyasn1 = \">=0.1.3\"\n-\n-[[package]]\n-name = \"s3transfer\"\n-version = \"0.5.2\"\n-description = \"An Amazon S3 Transfer Manager\"\n-category = \"main\"\n-optional = false\n-python-versions = \">= 3.6\"\n-\n-[package.dependencies]\n-botocore = \">=1.12.36,<2.0a.0\"\n-\n-[package.extras]\n-crt = [\"botocore[crt] (>=1.20.29,<2.0a.0)\"]\n-\n-[[package]]\n-name = \"six\"\n-version = \"1.16.0\"\n-description = \"Python 2 and 3 compatibility utilities\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*\"\n-\n-[[package]]\n-name = \"structlog\"\n-version = \"21.5.0\"\n-description = \"Structured Logging for Python\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.6\"\n-\n-[package.extras]\n-dev = [\"pre-commit\", \"rich\", \"cogapp\", \"tomli\", \"coverage\", \"freezegun (>=0.2.8)\", \"pretend\", \"pytest-asyncio\", \"pytest (>=6.0)\", \"simplejson\", \"furo\", \"sphinx\", \"sphinx-notfound-page\", \"sphinxcontrib-mermaid\", \"twisted\"]\n-docs = [\"furo\", \"sphinx\", \"sphinx-notfound-page\", \"sphinxcontrib-mermaid\", \"twisted\"]\n-tests = [\"coverage\", \"freezegun (>=0.2.8)\", \"pretend\", \"pytest-asyncio\", \"pytest (>=6.0)\", \"simplejson\"]\n-\n-[[package]]\n-name = \"tarsnapper\"\n-version = \"0.4.0\"\n-description = \"Manages tarsnap backups\"\n-category = \"main\"\n-optional = false\n-python-versions = \"*\"\n-\n-[package.dependencies]\n-argparse = \">=1.1\"\n-pexpect = \">=3.1\"\n-python-dateutil = \">=2.4.0\"\n-pyyaml = \">=3.09\"\n-\n-[[package]]\n-name = \"tzdata\"\n-version = \"2021.5\"\n-description = \"Provider of IANA time zone data\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=2\"\n-\n-[[package]]\n-name = \"tzlocal\"\n-version = \"4.1\"\n-description = \"tzinfo object for the local timezone\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.6\"\n-\n-[package.dependencies]\n-pytz-deprecation-shim = \"*\"\n-tzdata = {version = \"*\", markers = \"platform_system == \\\"Windows\\\"\"}\n-\n-[package.extras]\n-devenv = [\"black\", \"pyroma\", \"pytest-cov\", \"zest.releaser\"]\n-test = [\"pytest-mock (>=3.3)\", \"pytest (>=4.3)\"]\n-\n-[[package]]\n-name = \"uritemplate\"\n-version = \"3.0.1\"\n-description = \"URI templates\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*\"\n-\n-[[package]]\n-name = \"urllib3\"\n-version = \"1.26.8\"\n-description = \"HTTP library with thread-safe connection pooling, file post, and more.\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4\"\n-\n-[package.extras]\n-brotli = [\"brotlipy (>=0.6.0)\"]\n-secure = [\"pyOpenSSL (>=0.14)\", \"cryptography (>=1.3.4)\", \"idna (>=2.0.0)\", \"certifi\", \"ipaddress\"]\n-socks = [\"PySocks (>=1.5.6,!=1.5.7,<2.0)\"]\n-\n-[[package]]\n-name = \"yarl\"\n-version = \"1.7.2\"\n-description = \"Yet another URL library\"\n-category = \"main\"\n-optional = false\n-python-versions = \">=3.6\"\n-\n-[package.dependencies]\n-idna = \">=2.0\"\n-multidict = \">=4.0\"\n-\n-[metadata]\n-lock-version = \"1.1\"\n-python-versions = \"^3.9\"\n-content-hash = \"dc11994a4c5b96300b696cf1ca0c7e729111ee0a716bcb7cf75d27e33cebc3f5\"\n-\n-[metadata.files]\n-aiochannel = [\n- {file = \"aiochannel-1.1.1.tar.gz\", hash = \"sha256:2e6adf5bc5aad39eb9a3cd72e3198a96c81e4367f3330ab935f8c8759a278cf7\"},\n-]\n-aiohttp = [\n- {file = \"aiohttp-3.8.1-cp310-cp310-macosx_10_9_universal2.whl\", hash = \"sha256:1ed0b6477896559f17b9eaeb6d38e07f7f9ffe40b9f0f9627ae8b9926ae260a8\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:7dadf3c307b31e0e61689cbf9e06be7a867c563d5a63ce9dca578f956609abf8\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:a79004bb58748f31ae1cbe9fa891054baaa46fb106c2dc7af9f8e3304dc30316\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:12de6add4038df8f72fac606dff775791a60f113a725c960f2bab01d8b8e6b15\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:6f0d5f33feb5f69ddd57a4a4bd3d56c719a141080b445cbf18f238973c5c9923\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:eaba923151d9deea315be1f3e2b31cc39a6d1d2f682f942905951f4e40200922\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl\", hash = \"sha256:099ebd2c37ac74cce10a3527d2b49af80243e2a4fa39e7bce41617fbc35fa3c1\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:2e5d962cf7e1d426aa0e528a7e198658cdc8aa4fe87f781d039ad75dcd52c516\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-musllinux_1_1_aarch64.whl\", hash = \"sha256:fa0ffcace9b3aa34d205d8130f7873fcfefcb6a4dd3dd705b0dab69af6712642\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-musllinux_1_1_i686.whl\", hash = \"sha256:61bfc23df345d8c9716d03717c2ed5e27374e0fe6f659ea64edcd27b4b044cf7\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-musllinux_1_1_ppc64le.whl\", hash = \"sha256:31560d268ff62143e92423ef183680b9829b1b482c011713ae941997921eebc8\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-musllinux_1_1_s390x.whl\", hash = \"sha256:01d7bdb774a9acc838e6b8f1d114f45303841b89b95984cbb7d80ea41172a9e3\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-musllinux_1_1_x86_64.whl\", hash = \"sha256:97ef77eb6b044134c0b3a96e16abcb05ecce892965a2124c566af0fd60f717e2\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-win32.whl\", hash = \"sha256:c2aef4703f1f2ddc6df17519885dbfa3514929149d3ff900b73f45998f2532fa\"},\n- {file = \"aiohttp-3.8.1-cp310-cp310-win_amd64.whl\", hash = \"sha256:713ac174a629d39b7c6a3aa757b337599798da4c1157114a314e4e391cd28e32\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-macosx_10_9_x86_64.whl\", hash = \"sha256:473d93d4450880fe278696549f2e7aed8cd23708c3c1997981464475f32137db\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:99b5eeae8e019e7aad8af8bb314fb908dd2e028b3cdaad87ec05095394cce632\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:3af642b43ce56c24d063325dd2cf20ee012d2b9ba4c3c008755a301aaea720ad\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:c3630c3ef435c0a7c549ba170a0633a56e92629aeed0e707fec832dee313fb7a\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl\", hash = \"sha256:4a4a4e30bf1edcad13fb0804300557aedd07a92cabc74382fdd0ba6ca2661091\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:6f8b01295e26c68b3a1b90efb7a89029110d3a4139270b24fda961893216c440\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_aarch64.whl\", hash = \"sha256:a25fa703a527158aaf10dafd956f7d42ac6d30ec80e9a70846253dd13e2f067b\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_i686.whl\", hash = \"sha256:5bfde62d1d2641a1f5173b8c8c2d96ceb4854f54a44c23102e2ccc7e02f003ec\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_ppc64le.whl\", hash = \"sha256:51467000f3647d519272392f484126aa716f747859794ac9924a7aafa86cd411\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_s390x.whl\", hash = \"sha256:03a6d5349c9ee8f79ab3ff3694d6ce1cfc3ced1c9d36200cb8f08ba06bd3b782\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_x86_64.whl\", hash = \"sha256:102e487eeb82afac440581e5d7f8f44560b36cf0bdd11abc51a46c1cd88914d4\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-win32.whl\", hash = \"sha256:4aed991a28ea3ce320dc8ce655875e1e00a11bdd29fe9444dd4f88c30d558602\"},\n- {file = \"aiohttp-3.8.1-cp36-cp36m-win_amd64.whl\", hash = \"sha256:b0e20cddbd676ab8a64c774fefa0ad787cc506afd844de95da56060348021e96\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-macosx_10_9_x86_64.whl\", hash = \"sha256:37951ad2f4a6df6506750a23f7cbabad24c73c65f23f72e95897bb2cecbae676\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5c23b1ad869653bc818e972b7a3a79852d0e494e9ab7e1a701a3decc49c20d51\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:15b09b06dae900777833fe7fc4b4aa426556ce95847a3e8d7548e2d19e34edb8\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:477c3ea0ba410b2b56b7efb072c36fa91b1e6fc331761798fa3f28bb224830dd\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl\", hash = \"sha256:2f2f69dca064926e79997f45b2f34e202b320fd3782f17a91941f7eb85502ee2\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:ef9612483cb35171d51d9173647eed5d0069eaa2ee812793a75373447d487aa4\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_aarch64.whl\", hash = \"sha256:6d69f36d445c45cda7b3b26afef2fc34ef5ac0cdc75584a87ef307ee3c8c6d00\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_i686.whl\", hash = \"sha256:55c3d1072704d27401c92339144d199d9de7b52627f724a949fc7d5fc56d8b93\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_ppc64le.whl\", hash = \"sha256:b9d00268fcb9f66fbcc7cd9fe423741d90c75ee029a1d15c09b22d23253c0a44\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_s390x.whl\", hash = \"sha256:07b05cd3305e8a73112103c834e91cd27ce5b4bd07850c4b4dbd1877d3f45be7\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_x86_64.whl\", hash = \"sha256:c34dc4958b232ef6188c4318cb7b2c2d80521c9a56c52449f8f93ab7bc2a8a1c\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-win32.whl\", hash = \"sha256:d2f9b69293c33aaa53d923032fe227feac867f81682f002ce33ffae978f0a9a9\"},\n- {file = \"aiohttp-3.8.1-cp37-cp37m-win_amd64.whl\", hash = \"sha256:6ae828d3a003f03ae31915c31fa684b9890ea44c9c989056fea96e3d12a9fa17\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-macosx_10_9_universal2.whl\", hash = \"sha256:0c7ebbbde809ff4e970824b2b6cb7e4222be6b95a296e46c03cf050878fc1785\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-macosx_10_9_x86_64.whl\", hash = \"sha256:8b7ef7cbd4fec9a1e811a5de813311ed4f7ac7d93e0fda233c9b3e1428f7dd7b\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-macosx_11_0_arm64.whl\", hash = \"sha256:c3d6a4d0619e09dcd61021debf7059955c2004fa29f48788a3dfaf9c9901a7cd\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:718626a174e7e467f0558954f94af117b7d4695d48eb980146016afa4b580b2e\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:589c72667a5febd36f1315aa6e5f56dd4aa4862df295cb51c769d16142ddd7cd\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:2ed076098b171573161eb146afcb9129b5ff63308960aeca4b676d9d3c35e700\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl\", hash = \"sha256:086f92daf51a032d062ec5f58af5ca6a44d082c35299c96376a41cbb33034675\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:11691cf4dc5b94236ccc609b70fec991234e7ef8d4c02dd0c9668d1e486f5abf\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-musllinux_1_1_aarch64.whl\", hash = \"sha256:31d1e1c0dbf19ebccbfd62eff461518dcb1e307b195e93bba60c965a4dcf1ba0\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-musllinux_1_1_i686.whl\", hash = \"sha256:11a67c0d562e07067c4e86bffc1553f2cf5b664d6111c894671b2b8712f3aba5\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-musllinux_1_1_ppc64le.whl\", hash = \"sha256:bb01ba6b0d3f6c68b89fce7305080145d4877ad3acaed424bae4d4ee75faa950\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-musllinux_1_1_s390x.whl\", hash = \"sha256:44db35a9e15d6fe5c40d74952e803b1d96e964f683b5a78c3cc64eb177878155\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-musllinux_1_1_x86_64.whl\", hash = \"sha256:844a9b460871ee0a0b0b68a64890dae9c415e513db0f4a7e3cab41a0f2fedf33\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-win32.whl\", hash = \"sha256:7d08744e9bae2ca9c382581f7dce1273fe3c9bae94ff572c3626e8da5b193c6a\"},\n- {file = \"aiohttp-3.8.1-cp38-cp38-win_amd64.whl\", hash = \"sha256:04d48b8ce6ab3cf2097b1855e1505181bdd05586ca275f2505514a6e274e8e75\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-macosx_10_9_universal2.whl\", hash = \"sha256:f5315a2eb0239185af1bddb1abf472d877fede3cc8d143c6cddad37678293237\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:a996d01ca39b8dfe77440f3cd600825d05841088fd6bc0144cc6c2ec14cc5f74\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:13487abd2f761d4be7c8ff9080de2671e53fff69711d46de703c310c4c9317ca\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:ea302f34477fda3f85560a06d9ebdc7fa41e82420e892fc50b577e35fc6a50b2\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:a2f635ce61a89c5732537a7896b6319a8fcfa23ba09bec36e1b1ac0ab31270d2\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:e999f2d0e12eea01caeecb17b653f3713d758f6dcc770417cf29ef08d3931421\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl\", hash = \"sha256:0770e2806a30e744b4e21c9d73b7bee18a1cfa3c47991ee2e5a65b887c49d5cf\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-musllinux_1_1_aarch64.whl\", hash = \"sha256:6c7cefb4b0640703eb1069835c02486669312bf2f12b48a748e0a7756d0de33d\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-musllinux_1_1_i686.whl\", hash = \"sha256:71927042ed6365a09a98a6377501af5c9f0a4d38083652bcd2281a06a5976724\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-musllinux_1_1_ppc64le.whl\", hash = \"sha256:28d490af82bc6b7ce53ff31337a18a10498303fe66f701ab65ef27e143c3b0ef\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-musllinux_1_1_s390x.whl\", hash = \"sha256:b6613280ccedf24354406caf785db748bebbddcf31408b20c0b48cb86af76866\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-musllinux_1_1_x86_64.whl\", hash = \"sha256:81e3d8c34c623ca4e36c46524a3530e99c0bc95ed068fd6e9b55cb721d408fb2\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-win32.whl\", hash = \"sha256:7187a76598bdb895af0adbd2fb7474d7f6025d170bc0a1130242da817ce9e7d1\"},\n- {file = \"aiohttp-3.8.1-cp39-cp39-win_amd64.whl\", hash = \"sha256:1c182cb873bc91b411e184dab7a2b664d4fea2743df0e4d57402f7f3fa644bac\"},\n- {file = \"aiohttp-3.8.1.tar.gz\", hash = \"sha256:fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578\"},\n-]\n-aiosignal = [\n- {file = \"aiosignal-1.2.0-py3-none-any.whl\", hash = \"sha256:26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a\"},\n- {file = \"aiosignal-1.2.0.tar.gz\", hash = \"sha256:78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2\"},\n-]\n-aiostream = [\n- {file = \"aiostream-0.4.4.tar.gz\", hash = \"sha256:31a505fef567a6d0c3fba2bb14f10bd3da2fb90724167a31605ee8c412455292\"},\n-]\n-argparse = [\n- {file = \"argparse-1.4.0-py2.py3-none-any.whl\", hash = \"sha256:c31647edb69fd3d465a847ea3157d37bed1f95f19760b11a47aa91c04b666314\"},\n- {file = \"argparse-1.4.0.tar.gz\", hash = \"sha256:62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4\"},\n-]\n-async-timeout = [\n- {file = \"async-timeout-4.0.2.tar.gz\", hash = \"sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15\"},\n- {file = \"async_timeout-4.0.2-py3-none-any.whl\", hash = \"sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c\"},\n-]\n-attrs = [\n- {file = \"attrs-17.4.0-py2.py3-none-any.whl\", hash = \"sha256:a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450\"},\n- {file = \"attrs-17.4.0.tar.gz\", hash = \"sha256:1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9\"},\n-]\n-boto3 = [\n- {file = \"boto3-1.21.11-py3-none-any.whl\", hash = \"sha256:bf5f6a8997ed11a66280ace67cc25ec31c28525940da91d309c3976a9955d4cf\"},\n- {file = \"boto3-1.21.11.tar.gz\", hash = \"sha256:f2cecf5d176f398a39bfde0008df83c03f2142b2be5eabe32bf104961df68810\"},\n-]\n-botocore = [\n- {file = \"botocore-1.24.11-py3-none-any.whl\", hash = \"sha256:b29c2b5906d7f70782634bb8713c77e39f23aafc994bb2f7dccbeb2b36712adc\"},\n- {file = \"botocore-1.24.11.tar.gz\", hash = \"sha256:2af93de704f3122878a3233e7cf5de0b02f6c4c9fa993ca853b583f597bb1c38\"},\n-]\n-cachetools = [\n- {file = \"cachetools-5.0.0-py3-none-any.whl\", hash = \"sha256:8fecd4203a38af17928be7b90689d8083603073622229ca7077b72d8e5a976e4\"},\n- {file = \"cachetools-5.0.0.tar.gz\", hash = \"sha256:486471dfa8799eb7ec503a8059e263db000cdda20075ce5e48903087f79d5fd6\"},\n-]\n-certifi = [\n- {file = \"certifi-2021.10.8-py2.py3-none-any.whl\", hash = \"sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569\"},\n- {file = \"certifi-2021.10.8.tar.gz\", hash = \"sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872\"},\n-]\n-charset-normalizer = [\n- {file = \"charset-normalizer-2.0.12.tar.gz\", hash = \"sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597\"},\n- {file = \"charset_normalizer-2.0.12-py3-none-any.whl\", hash = \"sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df\"},\n-]\n-confcollect = [\n- {file = \"confcollect-0.2.5.tar.gz\", hash = \"sha256:fc60fb18dcb61c9284b0400b345ebe4a9cd48b84cf1f0dd21f89ef88dce4696d\"},\n-]\n-frozenlist = [\n- {file = \"frozenlist-1.3.0-cp310-cp310-macosx_10_9_universal2.whl\", hash = \"sha256:d2257aaba9660f78c7b1d8fea963b68f3feffb1a9d5d05a18401ca9eb3e8d0a3\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:4a44ebbf601d7bac77976d429e9bdb5a4614f9f4027777f9e54fd765196e9d3b\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:45334234ec30fc4ea677f43171b18a27505bfb2dba9aca4398a62692c0ea8868\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:47be22dc27ed933d55ee55845d34a3e4e9f6fee93039e7f8ebadb0c2f60d403f\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:03a7dd1bfce30216a3f51a84e6dd0e4a573d23ca50f0346634916ff105ba6e6b\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:691ddf6dc50480ce49f68441f1d16a4c3325887453837036e0fb94736eae1e58\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:bde99812f237f79eaf3f04ebffd74f6718bbd216101b35ac7955c2d47c17da02\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:6a202458d1298ced3768f5a7d44301e7c86defac162ace0ab7434c2e961166e8\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-musllinux_1_1_aarch64.whl\", hash = \"sha256:b9e3e9e365991f8cc5f5edc1fd65b58b41d0514a6a7ad95ef5c7f34eb49b3d3e\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-musllinux_1_1_i686.whl\", hash = \"sha256:04cb491c4b1c051734d41ea2552fde292f5f3a9c911363f74f39c23659c4af78\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-musllinux_1_1_ppc64le.whl\", hash = \"sha256:436496321dad302b8b27ca955364a439ed1f0999311c393dccb243e451ff66aa\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-musllinux_1_1_s390x.whl\", hash = \"sha256:754728d65f1acc61e0f4df784456106e35afb7bf39cfe37227ab00436fb38676\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-musllinux_1_1_x86_64.whl\", hash = \"sha256:6eb275c6385dd72594758cbe96c07cdb9bd6becf84235f4a594bdf21e3596c9d\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-win32.whl\", hash = \"sha256:e30b2f9683812eb30cf3f0a8e9f79f8d590a7999f731cf39f9105a7c4a39489d\"},\n- {file = \"frozenlist-1.3.0-cp310-cp310-win_amd64.whl\", hash = \"sha256:f7353ba3367473d1d616ee727945f439e027f0bb16ac1a750219a8344d1d5d3c\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-macosx_10_9_x86_64.whl\", hash = \"sha256:88aafd445a233dbbf8a65a62bc3249a0acd0d81ab18f6feb461cc5a938610d24\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:4406cfabef8f07b3b3af0f50f70938ec06d9f0fc26cbdeaab431cbc3ca3caeaa\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:8cf829bd2e2956066dd4de43fd8ec881d87842a06708c035b37ef632930505a2\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:603b9091bd70fae7be28bdb8aa5c9990f4241aa33abb673390a7f7329296695f\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:25af28b560e0c76fa41f550eacb389905633e7ac02d6eb3c09017fa1c8cdfde1\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:94c7a8a9fc9383b52c410a2ec952521906d355d18fccc927fca52ab575ee8b93\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-musllinux_1_1_aarch64.whl\", hash = \"sha256:65bc6e2fece04e2145ab6e3c47428d1bbc05aede61ae365b2c1bddd94906e478\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-musllinux_1_1_i686.whl\", hash = \"sha256:3f7c935c7b58b0d78c0beea0c7358e165f95f1fd8a7e98baa40d22a05b4a8141\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-musllinux_1_1_ppc64le.whl\", hash = \"sha256:bd89acd1b8bb4f31b47072615d72e7f53a948d302b7c1d1455e42622de180eae\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-musllinux_1_1_s390x.whl\", hash = \"sha256:6983a31698490825171be44ffbafeaa930ddf590d3f051e397143a5045513b01\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl\", hash = \"sha256:adac9700675cf99e3615eb6a0eb5e9f5a4143c7d42c05cea2e7f71c27a3d0846\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-win32.whl\", hash = \"sha256:0c36e78b9509e97042ef869c0e1e6ef6429e55817c12d78245eb915e1cca7468\"},\n- {file = \"frozenlist-1.3.0-cp37-cp37m-win_amd64.whl\", hash = \"sha256:57f4d3f03a18facacb2a6bcd21bccd011e3b75d463dc49f838fd699d074fabd1\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-macosx_10_9_universal2.whl\", hash = \"sha256:8c905a5186d77111f02144fab5b849ab524f1e876a1e75205cd1386a9be4b00a\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-macosx_10_9_x86_64.whl\", hash = \"sha256:b5009062d78a8c6890d50b4e53b0ddda31841b3935c1937e2ed8c1bda1c7fb9d\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-macosx_11_0_arm64.whl\", hash = \"sha256:2fdc3cd845e5a1f71a0c3518528bfdbfe2efaf9886d6f49eacc5ee4fd9a10953\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:92e650bd09b5dda929523b9f8e7f99b24deac61240ecc1a32aeba487afcd970f\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:40dff8962b8eba91fd3848d857203f0bd704b5f1fa2b3fc9af64901a190bba08\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:768efd082074bb203c934e83a61654ed4931ef02412c2fbdecea0cff7ecd0274\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:006d3595e7d4108a12025ddf415ae0f6c9e736e726a5db0183326fd191b14c5e\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:871d42623ae15eb0b0e9df65baeee6976b2e161d0ba93155411d58ff27483ad8\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-musllinux_1_1_aarch64.whl\", hash = \"sha256:aff388be97ef2677ae185e72dc500d19ecaf31b698986800d3fc4f399a5e30a5\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-musllinux_1_1_i686.whl\", hash = \"sha256:9f892d6a94ec5c7b785e548e42722e6f3a52f5f32a8461e82ac3e67a3bd073f1\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-musllinux_1_1_ppc64le.whl\", hash = \"sha256:e982878792c971cbd60ee510c4ee5bf089a8246226dea1f2138aa0bb67aff148\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-musllinux_1_1_s390x.whl\", hash = \"sha256:c6c321dd013e8fc20735b92cb4892c115f5cdb82c817b1e5b07f6b95d952b2f0\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-musllinux_1_1_x86_64.whl\", hash = \"sha256:30530930410855c451bea83f7b272fb1c495ed9d5cc72895ac29e91279401db3\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-win32.whl\", hash = \"sha256:40ec383bc194accba825fbb7d0ef3dda5736ceab2375462f1d8672d9f6b68d07\"},\n- {file = \"frozenlist-1.3.0-cp38-cp38-win_amd64.whl\", hash = \"sha256:f20baa05eaa2bcd5404c445ec51aed1c268d62600362dc6cfe04fae34a424bd9\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-macosx_10_9_universal2.whl\", hash = \"sha256:0437fe763fb5d4adad1756050cbf855bbb2bf0d9385c7bb13d7a10b0dd550486\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:b684c68077b84522b5c7eafc1dc735bfa5b341fb011d5552ebe0968e22ed641c\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:93641a51f89473837333b2f8100f3f89795295b858cd4c7d4a1f18e299dc0a4f\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:d6d32ff213aef0fd0bcf803bffe15cfa2d4fde237d1d4838e62aec242a8362fa\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:31977f84828b5bb856ca1eb07bf7e3a34f33a5cddce981d880240ba06639b94d\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:3c62964192a1c0c30b49f403495911298810bada64e4f03249ca35a33ca0417a\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:4eda49bea3602812518765810af732229b4291d2695ed24a0a20e098c45a707b\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:acb267b09a509c1df5a4ca04140da96016f40d2ed183cdc356d237286c971b51\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-musllinux_1_1_aarch64.whl\", hash = \"sha256:e1e26ac0a253a2907d654a37e390904426d5ae5483150ce3adedb35c8c06614a\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-musllinux_1_1_i686.whl\", hash = \"sha256:f96293d6f982c58ebebb428c50163d010c2f05de0cde99fd681bfdc18d4b2dc2\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-musllinux_1_1_ppc64le.whl\", hash = \"sha256:e84cb61b0ac40a0c3e0e8b79c575161c5300d1d89e13c0e02f76193982f066ed\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-musllinux_1_1_s390x.whl\", hash = \"sha256:ff9310f05b9d9c5c4dd472983dc956901ee6cb2c3ec1ab116ecdde25f3ce4951\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-musllinux_1_1_x86_64.whl\", hash = \"sha256:d26b650b71fdc88065b7a21f8ace70175bcf3b5bdba5ea22df4bfd893e795a3b\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-win32.whl\", hash = \"sha256:01a73627448b1f2145bddb6e6c2259988bb8aee0fb361776ff8604b99616cd08\"},\n- {file = \"frozenlist-1.3.0-cp39-cp39-win_amd64.whl\", hash = \"sha256:772965f773757a6026dea111a15e6e2678fbd6216180f82a48a40b27de1ee2ab\"},\n- {file = \"frozenlist-1.3.0.tar.gz\", hash = \"sha256:ce6f2ba0edb7b0c1d8976565298ad2deba6f8064d2bebb6ffce2ca896eb35b0b\"},\n-]\n-google-api-core = [\n- {file = \"google-api-core-2.5.0.tar.gz\", hash = \"sha256:f33863a6709651703b8b18b67093514838c79f2b04d02aa501203079f24b8018\"},\n- {file = \"google_api_core-2.5.0-py2.py3-none-any.whl\", hash = \"sha256:7d030edbd3a0e994d796e62716022752684e863a6df9864b6ca82a1616c2a5a6\"},\n-]\n-google-api-python-client = [\n- {file = \"google-api-python-client-1.12.10.tar.gz\", hash = \"sha256:1cb773647e7d97048d9d1c7fa746247fbad39fd1a3b5040f2cb2645dd7156b11\"},\n- {file = \"google_api_python_client-1.12.10-py2.py3-none-any.whl\", hash = \"sha256:5a8742b9b604b34e13462cc3d6aedbbf11d3af1ef558eb95defe74a29ebc5c28\"},\n-]\n-google-auth = [\n- {file = \"google-auth-2.6.0.tar.gz\", hash = \"sha256:ad160fc1ea8f19e331a16a14a79f3d643d813a69534ba9611d2c80dc10439dad\"},\n- {file = \"google_auth-2.6.0-py2.py3-none-any.whl\", hash = \"sha256:218ca03d7744ca0c8b6697b6083334be7df49b7bf76a69d555962fd1a7657b5f\"},\n-]\n-google-auth-httplib2 = [\n- {file = \"google-auth-httplib2-0.1.0.tar.gz\", hash = \"sha256:a07c39fd632becacd3f07718dfd6021bf396978f03ad3ce4321d060015cc30ac\"},\n- {file = \"google_auth_httplib2-0.1.0-py2.py3-none-any.whl\", hash = \"sha256:31e49c36c6b5643b57e82617cb3e021e3e1d2df9da63af67252c02fa9c1f4a10\"},\n-]\n-googleapis-common-protos = [\n- {file = \"googleapis-common-protos-1.55.0.tar.gz\", hash = \"sha256:53eb313064738f45d5ac634155ae208e121c963659627b90dfcb61ef514c03e1\"},\n- {file = \"googleapis_common_protos-1.55.0-py2.py3-none-any.whl\", hash = \"sha256:183bb0356bd614c4330ad5158bc1c1bcf9bcf7f5e7f911317559fe209496eeee\"},\n-]\n-httplib2 = [\n- {file = \"httplib2-0.20.4-py3-none-any.whl\", hash = \"sha256:8b6a905cb1c79eefd03f8669fd993c36dc341f7c558f056cb5a33b5c2f458543\"},\n- {file = \"httplib2-0.20.4.tar.gz\", hash = \"sha256:58a98e45b4b1a48273073f905d2961666ecf0fbac4250ea5b47aef259eb5c585\"},\n-]\n-idna = [\n- {file = \"idna-3.3-py3-none-any.whl\", hash = \"sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff\"},\n- {file = \"idna-3.3.tar.gz\", hash = \"sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d\"},\n-]\n-isodate = [\n- {file = \"isodate-0.6.1-py2.py3-none-any.whl\", hash = \"sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96\"},\n- {file = \"isodate-0.6.1.tar.gz\", hash = \"sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9\"},\n-]\n-jmespath = [\n- {file = \"jmespath-0.10.0-py2.py3-none-any.whl\", hash = \"sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f\"},\n- {file = \"jmespath-0.10.0.tar.gz\", hash = \"sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9\"},\n-]\n-jsonpickle = [\n- {file = \"jsonpickle-2.1.0-py2.py3-none-any.whl\", hash = \"sha256:1dee77ddc5d652dfdabc33d33cff9d7e131d428007007da4fd6f7071ae774b0f\"},\n- {file = \"jsonpickle-2.1.0.tar.gz\", hash = \"sha256:84684cfc5338a534173c8dd69809e40f2865d0be1f8a2b7af8465e5b968dcfa9\"},\n-]\n-multidict = [\n- {file = \"multidict-6.0.2-cp310-cp310-macosx_10_9_universal2.whl\", hash = \"sha256:0b9e95a740109c6047602f4db4da9949e6c5945cefbad34a1299775ddc9a62e2\"},\n- {file = \"multidict-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:ac0e27844758d7177989ce406acc6a83c16ed4524ebc363c1f748cba184d89d3\"},\n- {file = \"multidict-6.0.2-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:041b81a5f6b38244b34dc18c7b6aba91f9cdaf854d9a39e5ff0b58e2b5773b9c\"},\n- {file = \"multidict-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5fdda29a3c7e76a064f2477c9aab1ba96fd94e02e386f1e665bca1807fc5386f\"},\n- {file = \"multidict-6.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:3368bf2398b0e0fcbf46d85795adc4c259299fec50c1416d0f77c0a843a3eed9\"},\n- {file = \"multidict-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:f4f052ee022928d34fe1f4d2bc743f32609fb79ed9c49a1710a5ad6b2198db20\"},\n- {file = \"multidict-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:225383a6603c086e6cef0f2f05564acb4f4d5f019a4e3e983f572b8530f70c88\"},\n- {file = \"multidict-6.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:50bd442726e288e884f7be9071016c15a8742eb689a593a0cac49ea093eef0a7\"},\n- {file = \"multidict-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl\", hash = \"sha256:47e6a7e923e9cada7c139531feac59448f1f47727a79076c0b1ee80274cd8eee\"},\n- {file = \"multidict-6.0.2-cp310-cp310-musllinux_1_1_i686.whl\", hash = \"sha256:0556a1d4ea2d949efe5fd76a09b4a82e3a4a30700553a6725535098d8d9fb672\"},\n- {file = \"multidict-6.0.2-cp310-cp310-musllinux_1_1_ppc64le.whl\", hash = \"sha256:626fe10ac87851f4cffecee161fc6f8f9853f0f6f1035b59337a51d29ff3b4f9\"},\n- {file = \"multidict-6.0.2-cp310-cp310-musllinux_1_1_s390x.whl\", hash = \"sha256:8064b7c6f0af936a741ea1efd18690bacfbae4078c0c385d7c3f611d11f0cf87\"},\n- {file = \"multidict-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl\", hash = \"sha256:2d36e929d7f6a16d4eb11b250719c39560dd70545356365b494249e2186bc389\"},\n- {file = \"multidict-6.0.2-cp310-cp310-win32.whl\", hash = \"sha256:fcb91630817aa8b9bc4a74023e4198480587269c272c58b3279875ed7235c293\"},\n- {file = \"multidict-6.0.2-cp310-cp310-win_amd64.whl\", hash = \"sha256:8cbf0132f3de7cc6c6ce00147cc78e6439ea736cee6bca4f068bcf892b0fd658\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-macosx_10_9_x86_64.whl\", hash = \"sha256:05f6949d6169878a03e607a21e3b862eaf8e356590e8bdae4227eedadacf6e51\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:e2c2e459f7050aeb7c1b1276763364884595d47000c1cddb51764c0d8976e608\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:d0509e469d48940147e1235d994cd849a8f8195e0bca65f8f5439c56e17872a3\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:514fe2b8d750d6cdb4712346a2c5084a80220821a3e91f3f71eec11cf8d28fd4\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:19adcfc2a7197cdc3987044e3f415168fc5dc1f720c932eb1ef4f71a2067e08b\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:b9d153e7f1f9ba0b23ad1568b3b9e17301e23b042c23870f9ee0522dc5cc79e8\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl\", hash = \"sha256:aef9cc3d9c7d63d924adac329c33835e0243b5052a6dfcbf7732a921c6e918ba\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-musllinux_1_1_i686.whl\", hash = \"sha256:4571f1beddff25f3e925eea34268422622963cd8dc395bb8778eb28418248e43\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-musllinux_1_1_ppc64le.whl\", hash = \"sha256:d48b8ee1d4068561ce8033d2c344cf5232cb29ee1a0206a7b828c79cbc5982b8\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-musllinux_1_1_s390x.whl\", hash = \"sha256:45183c96ddf61bf96d2684d9fbaf6f3564d86b34cb125761f9a0ef9e36c1d55b\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl\", hash = \"sha256:75bdf08716edde767b09e76829db8c1e5ca9d8bb0a8d4bd94ae1eafe3dac5e15\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-win32.whl\", hash = \"sha256:a45e1135cb07086833ce969555df39149680e5471c04dfd6a915abd2fc3f6dbc\"},\n- {file = \"multidict-6.0.2-cp37-cp37m-win_amd64.whl\", hash = \"sha256:6f3cdef8a247d1eafa649085812f8a310e728bdf3900ff6c434eafb2d443b23a\"},\n- {file = \"multidict-6.0.2-cp38-cp38-macosx_10_9_universal2.whl\", hash = \"sha256:0327292e745a880459ef71be14e709aaea2f783f3537588fb4ed09b6c01bca60\"},\n- {file = \"multidict-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl\", hash = \"sha256:e875b6086e325bab7e680e4316d667fc0e5e174bb5611eb16b3ea121c8951b86\"},\n- {file = \"multidict-6.0.2-cp38-cp38-macosx_11_0_arm64.whl\", hash = \"sha256:feea820722e69451743a3d56ad74948b68bf456984d63c1a92e8347b7b88452d\"},\n- {file = \"multidict-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:9cc57c68cb9139c7cd6fc39f211b02198e69fb90ce4bc4a094cf5fe0d20fd8b0\"},\n- {file = \"multidict-6.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:497988d6b6ec6ed6f87030ec03280b696ca47dbf0648045e4e1d28b80346560d\"},\n- {file = \"multidict-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:89171b2c769e03a953d5969b2f272efa931426355b6c0cb508022976a17fd376\"},\n- {file = \"multidict-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:684133b1e1fe91eda8fa7447f137c9490a064c6b7f392aa857bba83a28cfb693\"},\n- {file = \"multidict-6.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:fd9fc9c4849a07f3635ccffa895d57abce554b467d611a5009ba4f39b78a8849\"},\n- {file = \"multidict-6.0.2-cp38-cp38-musllinux_1_1_aarch64.whl\", hash = \"sha256:e07c8e79d6e6fd37b42f3250dba122053fddb319e84b55dd3a8d6446e1a7ee49\"},\n- {file = \"multidict-6.0.2-cp38-cp38-musllinux_1_1_i686.whl\", hash = \"sha256:4070613ea2227da2bfb2c35a6041e4371b0af6b0be57f424fe2318b42a748516\"},\n- {file = \"multidict-6.0.2-cp38-cp38-musllinux_1_1_ppc64le.whl\", hash = \"sha256:47fbeedbf94bed6547d3aa632075d804867a352d86688c04e606971595460227\"},\n- {file = \"multidict-6.0.2-cp38-cp38-musllinux_1_1_s390x.whl\", hash = \"sha256:5774d9218d77befa7b70d836004a768fb9aa4fdb53c97498f4d8d3f67bb9cfa9\"},\n- {file = \"multidict-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl\", hash = \"sha256:2957489cba47c2539a8eb7ab32ff49101439ccf78eab724c828c1a54ff3ff98d\"},\n- {file = \"multidict-6.0.2-cp38-cp38-win32.whl\", hash = \"sha256:e5b20e9599ba74391ca0cfbd7b328fcc20976823ba19bc573983a25b32e92b57\"},\n- {file = \"multidict-6.0.2-cp38-cp38-win_amd64.whl\", hash = \"sha256:8004dca28e15b86d1b1372515f32eb6f814bdf6f00952699bdeb541691091f96\"},\n- {file = \"multidict-6.0.2-cp39-cp39-macosx_10_9_universal2.whl\", hash = \"sha256:2e4a0785b84fb59e43c18a015ffc575ba93f7d1dbd272b4cdad9f5134b8a006c\"},\n- {file = \"multidict-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:6701bf8a5d03a43375909ac91b6980aea74b0f5402fbe9428fc3f6edf5d9677e\"},\n- {file = \"multidict-6.0.2-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:a007b1638e148c3cfb6bf0bdc4f82776cef0ac487191d093cdc316905e504071\"},\n- {file = \"multidict-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:07a017cfa00c9890011628eab2503bee5872f27144936a52eaab449be5eaf032\"},\n- {file = \"multidict-6.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:c207fff63adcdf5a485969131dc70e4b194327666b7e8a87a97fbc4fd80a53b2\"},\n- {file = \"multidict-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:373ba9d1d061c76462d74e7de1c0c8e267e9791ee8cfefcf6b0b2495762c370c\"},\n- {file = \"multidict-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bfba7c6d5d7c9099ba21f84662b037a0ffd4a5e6b26ac07d19e423e6fdf965a9\"},\n- {file = \"multidict-6.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:19d9bad105dfb34eb539c97b132057a4e709919ec4dd883ece5838bcbf262b80\"},\n- {file = \"multidict-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl\", hash = \"sha256:de989b195c3d636ba000ee4281cd03bb1234635b124bf4cd89eeee9ca8fcb09d\"},\n- {file = \"multidict-6.0.2-cp39-cp39-musllinux_1_1_i686.whl\", hash = \"sha256:7c40b7bbece294ae3a87c1bc2abff0ff9beef41d14188cda94ada7bcea99b0fb\"},\n- {file = \"multidict-6.0.2-cp39-cp39-musllinux_1_1_ppc64le.whl\", hash = \"sha256:d16cce709ebfadc91278a1c005e3c17dd5f71f5098bfae1035149785ea6e9c68\"},\n- {file = \"multidict-6.0.2-cp39-cp39-musllinux_1_1_s390x.whl\", hash = \"sha256:a2c34a93e1d2aa35fbf1485e5010337c72c6791407d03aa5f4eed920343dd360\"},\n- {file = \"multidict-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl\", hash = \"sha256:feba80698173761cddd814fa22e88b0661e98cb810f9f986c54aa34d281e4937\"},\n- {file = \"multidict-6.0.2-cp39-cp39-win32.whl\", hash = \"sha256:23b616fdc3c74c9fe01d76ce0d1ce872d2d396d8fa8e4899398ad64fb5aa214a\"},\n- {file = \"multidict-6.0.2-cp39-cp39-win_amd64.whl\", hash = \"sha256:4bae31803d708f6f15fd98be6a6ac0b6958fcf68fda3c77a048a4f9073704aae\"},\n- {file = \"multidict-6.0.2.tar.gz\", hash = \"sha256:5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013\"},\n-]\n-oauth2client = [\n- {file = \"oauth2client-4.1.3-py2.py3-none-any.whl\", hash = \"sha256:b8a81cc5d60e2d364f0b1b98f958dbd472887acaf1a5b05e21c28c31a2d6d3ac\"},\n- {file = \"oauth2client-4.1.3.tar.gz\", hash = \"sha256:d486741e451287f69568a4d26d70d9acd73a2bbfa275746c535b4209891cccc6\"},\n-]\n-oauthlib = [\n- {file = \"oauthlib-3.2.0-py3-none-any.whl\", hash = \"sha256:6db33440354787f9b7f3a6dbd4febf5d0f93758354060e802f6c06cb493022fe\"},\n- {file = \"oauthlib-3.2.0.tar.gz\", hash = \"sha256:23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2\"},\n-]\n-pendulum = [\n- {file = \"pendulum-0.8.0-cp27-cp27m-macosx_10_11_x86_64.whl\", hash = \"sha256:7c2ed18ef5fec45b24ba28d98f3bbf77cdd2715daa6f5dd864ff8e6f6e526641\"},\n- {file = \"pendulum-0.8.0-cp27-cp27m-manylinux1_i686.whl\", hash = \"sha256:e89f08dad953ff0c46453d361a1b448b87f684d474f1cec81e00d47bd70c5eaf\"},\n- {file = \"pendulum-0.8.0-cp27-cp27m-manylinux1_x86_64.whl\", hash = \"sha256:0724d38d974b4e30274ae96d386dabc7e449fd0b00cb66879fcf6b12ae97e1be\"},\n- {file = \"pendulum-0.8.0-cp35-cp35m-macosx_10_11_x86_64.whl\", hash = \"sha256:8851372708e13c4996aa137d92df9a100a5db6b79c233cd5e6dead68b3fdd1d2\"},\n- {file = \"pendulum-0.8.0-cp35-cp35m-manylinux1_i686.whl\", hash = \"sha256:23d38f54923e65f9a824a2b8e16b0af9a70d323fa18a72f799a078ec68d3c6b9\"},\n- {file = \"pendulum-0.8.0-cp35-cp35m-manylinux1_x86_64.whl\", hash = \"sha256:67e0dc68ad43f9554498ac4ef08d5f1dbe18d021acf19f0764d5adaac7cbf4df\"},\n- {file = \"pendulum-0.8.0-cp36-cp36m-macosx_10_11_x86_64.whl\", hash = \"sha256:787c5f472d1498a9caca71ddaaa749da818193923cd286555625f82f8000fe1a\"},\n- {file = \"pendulum-0.8.0.tar.gz\", hash = \"sha256:df13a4c3830d8cf2f09c897a3f84d04c525c1d5aec30b9b9ae9a8abe24b8a29e\"},\n-]\n-pexpect = [\n- {file = \"pexpect-4.8.0-py2.py3-none-any.whl\", hash = \"sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937\"},\n- {file = \"pexpect-4.8.0.tar.gz\", hash = \"sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c\"},\n-]\n-protobuf = [\n- {file = \"protobuf-3.19.4-cp310-cp310-macosx_10_9_universal2.whl\", hash = \"sha256:f51d5a9f137f7a2cec2d326a74b6e3fc79d635d69ffe1b036d39fc7d75430d37\"},\n- {file = \"protobuf-3.19.4-cp310-cp310-manylinux2014_aarch64.whl\", hash = \"sha256:09297b7972da685ce269ec52af761743714996b4381c085205914c41fcab59fb\"},\n- {file = \"protobuf-3.19.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:072fbc78d705d3edc7ccac58a62c4c8e0cec856987da7df8aca86e647be4e35c\"},\n- {file = \"protobuf-3.19.4-cp310-cp310-win32.whl\", hash = \"sha256:7bb03bc2873a2842e5ebb4801f5c7ff1bfbdf426f85d0172f7644fcda0671ae0\"},\n- {file = \"protobuf-3.19.4-cp310-cp310-win_amd64.whl\", hash = \"sha256:f358aa33e03b7a84e0d91270a4d4d8f5df6921abe99a377828839e8ed0c04e07\"},\n- {file = \"protobuf-3.19.4-cp36-cp36m-macosx_10_9_x86_64.whl\", hash = \"sha256:1c91ef4110fdd2c590effb5dca8fdbdcb3bf563eece99287019c4204f53d81a4\"},\n- {file = \"protobuf-3.19.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:c438268eebb8cf039552897d78f402d734a404f1360592fef55297285f7f953f\"},\n- {file = \"protobuf-3.19.4-cp36-cp36m-win32.whl\", hash = \"sha256:835a9c949dc193953c319603b2961c5c8f4327957fe23d914ca80d982665e8ee\"},\n- {file = \"protobuf-3.19.4-cp36-cp36m-win_amd64.whl\", hash = \"sha256:4276cdec4447bd5015453e41bdc0c0c1234eda08420b7c9a18b8d647add51e4b\"},\n- {file = \"protobuf-3.19.4-cp37-cp37m-macosx_10_9_x86_64.whl\", hash = \"sha256:6cbc312be5e71869d9d5ea25147cdf652a6781cf4d906497ca7690b7b9b5df13\"},\n- {file = \"protobuf-3.19.4-cp37-cp37m-manylinux2014_aarch64.whl\", hash = \"sha256:54a1473077f3b616779ce31f477351a45b4fef8c9fd7892d6d87e287a38df368\"},\n- {file = \"protobuf-3.19.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:435bb78b37fc386f9275a7035fe4fb1364484e38980d0dd91bc834a02c5ec909\"},\n- {file = \"protobuf-3.19.4-cp37-cp37m-win32.whl\", hash = \"sha256:16f519de1313f1b7139ad70772e7db515b1420d208cb16c6d7858ea989fc64a9\"},\n- {file = \"protobuf-3.19.4-cp37-cp37m-win_amd64.whl\", hash = \"sha256:cdc076c03381f5c1d9bb1abdcc5503d9ca8b53cf0a9d31a9f6754ec9e6c8af0f\"},\n- {file = \"protobuf-3.19.4-cp38-cp38-macosx_10_9_x86_64.whl\", hash = \"sha256:69da7d39e39942bd52848438462674c463e23963a1fdaa84d88df7fbd7e749b2\"},\n- {file = \"protobuf-3.19.4-cp38-cp38-manylinux2014_aarch64.whl\", hash = \"sha256:48ed3877fa43e22bcacc852ca76d4775741f9709dd9575881a373bd3e85e54b2\"},\n- {file = \"protobuf-3.19.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bd95d1dfb9c4f4563e6093a9aa19d9c186bf98fa54da5252531cc0d3a07977e7\"},\n- {file = \"protobuf-3.19.4-cp38-cp38-win32.whl\", hash = \"sha256:b38057450a0c566cbd04890a40edf916db890f2818e8682221611d78dc32ae26\"},\n- {file = \"protobuf-3.19.4-cp38-cp38-win_amd64.whl\", hash = \"sha256:7ca7da9c339ca8890d66958f5462beabd611eca6c958691a8fe6eccbd1eb0c6e\"},\n- {file = \"protobuf-3.19.4-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:36cecbabbda242915529b8ff364f2263cd4de7c46bbe361418b5ed859677ba58\"},\n- {file = \"protobuf-3.19.4-cp39-cp39-manylinux2014_aarch64.whl\", hash = \"sha256:c1068287025f8ea025103e37d62ffd63fec8e9e636246b89c341aeda8a67c934\"},\n- {file = \"protobuf-3.19.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:96bd766831596d6014ca88d86dc8fe0fb2e428c0b02432fd9db3943202bf8c5e\"},\n- {file = \"protobuf-3.19.4-cp39-cp39-win32.whl\", hash = \"sha256:84123274d982b9e248a143dadd1b9815049f4477dc783bf84efe6250eb4b836a\"},\n- {file = \"protobuf-3.19.4-cp39-cp39-win_amd64.whl\", hash = \"sha256:3112b58aac3bac9c8be2b60a9daf6b558ca3f7681c130dcdd788ade7c9ffbdca\"},\n- {file = \"protobuf-3.19.4-py2.py3-none-any.whl\", hash = \"sha256:8961c3a78ebfcd000920c9060a262f082f29838682b1f7201889300c1fbe0616\"},\n- {file = \"protobuf-3.19.4.tar.gz\", hash = \"sha256:9df0c10adf3e83015ced42a9a7bd64e13d06c4cf45c340d2c63020ea04499d0a\"},\n-]\n-ptyprocess = [\n- {file = \"ptyprocess-0.7.0-py2.py3-none-any.whl\", hash = \"sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35\"},\n- {file = \"ptyprocess-0.7.0.tar.gz\", hash = \"sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220\"},\n-]\n-pyasn1 = [\n- {file = \"pyasn1-0.4.8-py2.4.egg\", hash = \"sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3\"},\n- {file = \"pyasn1-0.4.8-py2.5.egg\", hash = \"sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf\"},\n- {file = \"pyasn1-0.4.8-py2.6.egg\", hash = \"sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00\"},\n- {file = \"pyasn1-0.4.8-py2.7.egg\", hash = \"sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8\"},\n- {file = \"pyasn1-0.4.8-py2.py3-none-any.whl\", hash = \"sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d\"},\n- {file = \"pyasn1-0.4.8-py3.1.egg\", hash = \"sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86\"},\n- {file = \"pyasn1-0.4.8-py3.2.egg\", hash = \"sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7\"},\n- {file = \"pyasn1-0.4.8-py3.3.egg\", hash = \"sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576\"},\n- {file = \"pyasn1-0.4.8-py3.4.egg\", hash = \"sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12\"},\n- {file = \"pyasn1-0.4.8-py3.5.egg\", hash = \"sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2\"},\n- {file = \"pyasn1-0.4.8-py3.6.egg\", hash = \"sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359\"},\n- {file = \"pyasn1-0.4.8-py3.7.egg\", hash = \"sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776\"},\n- {file = \"pyasn1-0.4.8.tar.gz\", hash = \"sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba\"},\n-]\n-pyasn1-modules = [\n- {file = \"pyasn1-modules-0.2.8.tar.gz\", hash = \"sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e\"},\n- {file = \"pyasn1_modules-0.2.8-py2.4.egg\", hash = \"sha256:0fe1b68d1e486a1ed5473f1302bd991c1611d319bba158e98b106ff86e1d7199\"},\n- {file = \"pyasn1_modules-0.2.8-py2.5.egg\", hash = \"sha256:fe0644d9ab041506b62782e92b06b8c68cca799e1a9636ec398675459e031405\"},\n- {file = \"pyasn1_modules-0.2.8-py2.6.egg\", hash = \"sha256:a99324196732f53093a84c4369c996713eb8c89d360a496b599fb1a9c47fc3eb\"},\n- {file = \"pyasn1_modules-0.2.8-py2.7.egg\", hash = \"sha256:0845a5582f6a02bb3e1bde9ecfc4bfcae6ec3210dd270522fee602365430c3f8\"},\n- {file = \"pyasn1_modules-0.2.8-py2.py3-none-any.whl\", hash = \"sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74\"},\n- {file = \"pyasn1_modules-0.2.8-py3.1.egg\", hash = \"sha256:f39edd8c4ecaa4556e989147ebf219227e2cd2e8a43c7e7fcb1f1c18c5fd6a3d\"},\n- {file = \"pyasn1_modules-0.2.8-py3.2.egg\", hash = \"sha256:b80486a6c77252ea3a3e9b1e360bc9cf28eaac41263d173c032581ad2f20fe45\"},\n- {file = \"pyasn1_modules-0.2.8-py3.3.egg\", hash = \"sha256:65cebbaffc913f4fe9e4808735c95ea22d7a7775646ab690518c056784bc21b4\"},\n- {file = \"pyasn1_modules-0.2.8-py3.4.egg\", hash = \"sha256:15b7c67fabc7fc240d87fb9aabf999cf82311a6d6fb2c70d00d3d0604878c811\"},\n- {file = \"pyasn1_modules-0.2.8-py3.5.egg\", hash = \"sha256:426edb7a5e8879f1ec54a1864f16b882c2837bfd06eee62f2c982315ee2473ed\"},\n- {file = \"pyasn1_modules-0.2.8-py3.6.egg\", hash = \"sha256:cbac4bc38d117f2a49aeedec4407d23e8866ea4ac27ff2cf7fb3e5b570df19e0\"},\n- {file = \"pyasn1_modules-0.2.8-py3.7.egg\", hash = \"sha256:c29a5e5cc7a3f05926aff34e097e84f8589cd790ce0ed41b67aed6857b26aafd\"},\n-]\n-pykube = [\n- {file = \"pykube-0.14.0-py2.py3-none-any.whl\", hash = \"sha256:b3d45056e05324bb3274a3baccb6e6a96660554fd299206dad556709af8a228d\"},\n- {file = \"pykube-0.14.0.tar.gz\", hash = \"sha256:273b3608668876ff244b1f384a8600ece897f2c28bd74741177a869aff0b65ed\"},\n-]\n-pyparsing = [\n- {file = \"pyparsing-3.0.7-py3-none-any.whl\", hash = \"sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484\"},\n- {file = \"pyparsing-3.0.7.tar.gz\", hash = \"sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea\"},\n-]\n-python-dateutil = [\n- {file = \"python-dateutil-2.8.2.tar.gz\", hash = \"sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86\"},\n- {file = \"python_dateutil-2.8.2-py2.py3-none-any.whl\", hash = \"sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9\"},\n-]\n-python-digitalocean = [\n- {file = \"python-digitalocean-1.17.0.tar.gz\", hash = \"sha256:107854fde1aafa21774e8053cf253b04173613c94531f75d5a039ad770562b24\"},\n- {file = \"python_digitalocean-1.17.0-py3-none-any.whl\", hash = \"sha256:0032168e022e85fca314eb3f8dfaabf82087f2ed40839eb28f1eeeeca5afb1fa\"},\n-]\n-pytz-deprecation-shim = [\n- {file = \"pytz_deprecation_shim-0.1.0.post0-py2.py3-none-any.whl\", hash = \"sha256:8314c9692a636c8eb3bda879b9f119e350e93223ae83e70e80c31675a0fdc1a6\"},\n- {file = \"pytz_deprecation_shim-0.1.0.post0.tar.gz\", hash = \"sha256:af097bae1b616dde5c5744441e2ddc69e74dfdcb0c263129610d85b87445a59d\"},\n-]\n-pytzdata = [\n- {file = \"pytzdata-2020.1-py2.py3-none-any.whl\", hash = \"sha256:e1e14750bcf95016381e4d472bad004eef710f2d6417240904070b3d6654485f\"},\n- {file = \"pytzdata-2020.1.tar.gz\", hash = \"sha256:3efa13b335a00a8de1d345ae41ec78dd11c9f8807f522d39850f2dd828681540\"},\n-]\n-pyyaml = [\n- {file = \"PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53\"},\n- {file = \"PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c\"},\n- {file = \"PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc\"},\n- {file = \"PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b\"},\n- {file = \"PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5\"},\n- {file = \"PyYAML-6.0-cp310-cp310-win32.whl\", hash = \"sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513\"},\n- {file = \"PyYAML-6.0-cp310-cp310-win_amd64.whl\", hash = \"sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a\"},\n- {file = \"PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl\", hash = \"sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86\"},\n- {file = \"PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f\"},\n- {file = \"PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92\"},\n- {file = \"PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4\"},\n- {file = \"PyYAML-6.0-cp36-cp36m-win32.whl\", hash = \"sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293\"},\n- {file = \"PyYAML-6.0-cp36-cp36m-win_amd64.whl\", hash = \"sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57\"},\n- {file = \"PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl\", hash = \"sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c\"},\n- {file = \"PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0\"},\n- {file = \"PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4\"},\n- {file = \"PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9\"},\n- {file = \"PyYAML-6.0-cp37-cp37m-win32.whl\", hash = \"sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737\"},\n- {file = \"PyYAML-6.0-cp37-cp37m-win_amd64.whl\", hash = \"sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d\"},\n- {file = \"PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl\", hash = \"sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b\"},\n- {file = \"PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba\"},\n- {file = \"PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34\"},\n- {file = \"PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287\"},\n- {file = \"PyYAML-6.0-cp38-cp38-win32.whl\", hash = \"sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78\"},\n- {file = \"PyYAML-6.0-cp38-cp38-win_amd64.whl\", hash = \"sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07\"},\n- {file = \"PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b\"},\n- {file = \"PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174\"},\n- {file = \"PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803\"},\n- {file = \"PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3\"},\n- {file = \"PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0\"},\n- {file = \"PyYAML-6.0-cp39-cp39-win32.whl\", hash = \"sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb\"},\n- {file = \"PyYAML-6.0-cp39-cp39-win_amd64.whl\", hash = \"sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c\"},\n- {file = \"PyYAML-6.0.tar.gz\", hash = \"sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2\"},\n-]\n-requests = [\n- {file = \"requests-2.27.1-py2.py3-none-any.whl\", hash = \"sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d\"},\n- {file = \"requests-2.27.1.tar.gz\", hash = \"sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61\"},\n-]\n-requests-oauthlib = [\n- {file = \"requests-oauthlib-1.3.1.tar.gz\", hash = \"sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a\"},\n- {file = \"requests_oauthlib-1.3.1-py2.py3-none-any.whl\", hash = \"sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5\"},\n-]\n-rsa = [\n- {file = \"rsa-4.8-py3-none-any.whl\", hash = \"sha256:95c5d300c4e879ee69708c428ba566c59478fd653cc3a22243eeb8ed846950bb\"},\n- {file = \"rsa-4.8.tar.gz\", hash = \"sha256:5c6bd9dc7a543b7fe4304a631f8a8a3b674e2bbfc49c2ae96200cdbe55df6b17\"},\n-]\n-s3transfer = [\n- {file = \"s3transfer-0.5.2-py3-none-any.whl\", hash = \"sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971\"},\n- {file = \"s3transfer-0.5.2.tar.gz\", hash = \"sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed\"},\n-]\n-six = [\n- {file = \"six-1.16.0-py2.py3-none-any.whl\", hash = \"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254\"},\n- {file = \"six-1.16.0.tar.gz\", hash = \"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926\"},\n-]\n-structlog = [\n- {file = \"structlog-21.5.0-py3-none-any.whl\", hash = \"sha256:fd7922e195262b337da85c2a91c84be94ccab1f8fd1957bd6986f6904e3761c8\"},\n- {file = \"structlog-21.5.0.tar.gz\", hash = \"sha256:68c4c29c003714fe86834f347cb107452847ba52414390a7ee583472bde00fc9\"},\n-]\n-tarsnapper = [\n- {file = \"tarsnapper-0.4.0.tar.gz\", hash = \"sha256:5afe4846e41686ef8b5b0b90caeeb17abc1a337ceec0ae098068e24ee4db6c52\"},\n-]\n-tzdata = [\n- {file = \"tzdata-2021.5-py2.py3-none-any.whl\", hash = \"sha256:3eee491e22ebfe1e5cfcc97a4137cd70f092ce59144d81f8924a844de05ba8f5\"},\n- {file = \"tzdata-2021.5.tar.gz\", hash = \"sha256:68dbe41afd01b867894bbdfd54fa03f468cfa4f0086bfb4adcd8de8f24f3ee21\"},\n-]\n-tzlocal = [\n- {file = \"tzlocal-4.1-py3-none-any.whl\", hash = \"sha256:28ba8d9fcb6c9a782d6e0078b4f6627af1ea26aeaa32b4eab5324abc7df4149f\"},\n- {file = \"tzlocal-4.1.tar.gz\", hash = \"sha256:0f28015ac68a5c067210400a9197fc5d36ba9bc3f8eaf1da3cbd59acdfed9e09\"},\n-]\n-uritemplate = [\n- {file = \"uritemplate-3.0.1-py2.py3-none-any.whl\", hash = \"sha256:07620c3f3f8eed1f12600845892b0e036a2420acf513c53f7de0abd911a5894f\"},\n- {file = \"uritemplate-3.0.1.tar.gz\", hash = \"sha256:5af8ad10cec94f215e3f48112de2022e1d5a37ed427fbd88652fa908f2ab7cae\"},\n-]\n-urllib3 = [\n- {file = \"urllib3-1.26.8-py2.py3-none-any.whl\", hash = \"sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed\"},\n- {file = \"urllib3-1.26.8.tar.gz\", hash = \"sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c\"},\n-]\n-yarl = [\n- {file = \"yarl-1.7.2-cp310-cp310-macosx_10_9_universal2.whl\", hash = \"sha256:f2a8508f7350512434e41065684076f640ecce176d262a7d54f0da41d99c5a95\"},\n- {file = \"yarl-1.7.2-cp310-cp310-macosx_10_9_x86_64.whl\", hash = \"sha256:da6df107b9ccfe52d3a48165e48d72db0eca3e3029b5b8cb4fe6ee3cb870ba8b\"},\n- {file = \"yarl-1.7.2-cp310-cp310-macosx_11_0_arm64.whl\", hash = \"sha256:a1d0894f238763717bdcfea74558c94e3bc34aeacd3351d769460c1a586a8b05\"},\n- {file = \"yarl-1.7.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:dfe4b95b7e00c6635a72e2d00b478e8a28bfb122dc76349a06e20792eb53a523\"},\n- {file = \"yarl-1.7.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:c145ab54702334c42237a6c6c4cc08703b6aa9b94e2f227ceb3d477d20c36c63\"},\n- {file = \"yarl-1.7.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:1ca56f002eaf7998b5fcf73b2421790da9d2586331805f38acd9997743114e98\"},\n- {file = \"yarl-1.7.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl\", hash = \"sha256:1d3d5ad8ea96bd6d643d80c7b8d5977b4e2fb1bab6c9da7322616fd26203d125\"},\n- {file = \"yarl-1.7.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:167ab7f64e409e9bdd99333fe8c67b5574a1f0495dcfd905bc7454e766729b9e\"},\n- {file = \"yarl-1.7.2-cp310-cp310-musllinux_1_1_aarch64.whl\", hash = \"sha256:95a1873b6c0dd1c437fb3bb4a4aaa699a48c218ac7ca1e74b0bee0ab16c7d60d\"},\n- {file = \"yarl-1.7.2-cp310-cp310-musllinux_1_1_i686.whl\", hash = \"sha256:6152224d0a1eb254f97df3997d79dadd8bb2c1a02ef283dbb34b97d4f8492d23\"},\n- {file = \"yarl-1.7.2-cp310-cp310-musllinux_1_1_ppc64le.whl\", hash = \"sha256:5bb7d54b8f61ba6eee541fba4b83d22b8a046b4ef4d8eb7f15a7e35db2e1e245\"},\n- {file = \"yarl-1.7.2-cp310-cp310-musllinux_1_1_s390x.whl\", hash = \"sha256:9c1f083e7e71b2dd01f7cd7434a5f88c15213194df38bc29b388ccdf1492b739\"},\n- {file = \"yarl-1.7.2-cp310-cp310-musllinux_1_1_x86_64.whl\", hash = \"sha256:f44477ae29025d8ea87ec308539f95963ffdc31a82f42ca9deecf2d505242e72\"},\n- {file = \"yarl-1.7.2-cp310-cp310-win32.whl\", hash = \"sha256:cff3ba513db55cc6a35076f32c4cdc27032bd075c9faef31fec749e64b45d26c\"},\n- {file = \"yarl-1.7.2-cp310-cp310-win_amd64.whl\", hash = \"sha256:c9c6d927e098c2d360695f2e9d38870b2e92e0919be07dbe339aefa32a090265\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-macosx_10_9_x86_64.whl\", hash = \"sha256:9b4c77d92d56a4c5027572752aa35082e40c561eec776048330d2907aead891d\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:c01a89a44bb672c38f42b49cdb0ad667b116d731b3f4c896f72302ff77d71656\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:c19324a1c5399b602f3b6e7db9478e5b1adf5cf58901996fc973fe4fccd73eed\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:3abddf0b8e41445426d29f955b24aeecc83fa1072be1be4e0d194134a7d9baee\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl\", hash = \"sha256:6a1a9fe17621af43e9b9fcea8bd088ba682c8192d744b386ee3c47b56eaabb2c\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:8b0915ee85150963a9504c10de4e4729ae700af11df0dc5550e6587ed7891e92\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-musllinux_1_1_aarch64.whl\", hash = \"sha256:29e0656d5497733dcddc21797da5a2ab990c0cb9719f1f969e58a4abac66234d\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-musllinux_1_1_i686.whl\", hash = \"sha256:bf19725fec28452474d9887a128e98dd67eee7b7d52e932e6949c532d820dc3b\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-musllinux_1_1_ppc64le.whl\", hash = \"sha256:d6f3d62e16c10e88d2168ba2d065aa374e3c538998ed04996cd373ff2036d64c\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-musllinux_1_1_s390x.whl\", hash = \"sha256:ac10bbac36cd89eac19f4e51c032ba6b412b3892b685076f4acd2de18ca990aa\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-musllinux_1_1_x86_64.whl\", hash = \"sha256:aa32aaa97d8b2ed4e54dc65d241a0da1c627454950f7d7b1f95b13985afd6c5d\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-win32.whl\", hash = \"sha256:87f6e082bce21464857ba58b569370e7b547d239ca22248be68ea5d6b51464a1\"},\n- {file = \"yarl-1.7.2-cp36-cp36m-win_amd64.whl\", hash = \"sha256:ac35ccde589ab6a1870a484ed136d49a26bcd06b6a1c6397b1967ca13ceb3913\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-macosx_10_9_x86_64.whl\", hash = \"sha256:a467a431a0817a292121c13cbe637348b546e6ef47ca14a790aa2fa8cc93df63\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:6ab0c3274d0a846840bf6c27d2c60ba771a12e4d7586bf550eefc2df0b56b3b4\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:d260d4dc495c05d6600264a197d9d6f7fc9347f21d2594926202fd08cf89a8ba\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:fc4dd8b01a8112809e6b636b00f487846956402834a7fd59d46d4f4267181c41\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl\", hash = \"sha256:c1164a2eac148d85bbdd23e07dfcc930f2e633220f3eb3c3e2a25f6148c2819e\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:67e94028817defe5e705079b10a8438b8cb56e7115fa01640e9c0bb3edf67332\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-musllinux_1_1_aarch64.whl\", hash = \"sha256:89ccbf58e6a0ab89d487c92a490cb5660d06c3a47ca08872859672f9c511fc52\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-musllinux_1_1_i686.whl\", hash = \"sha256:8cce6f9fa3df25f55521fbb5c7e4a736683148bcc0c75b21863789e5185f9185\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-musllinux_1_1_ppc64le.whl\", hash = \"sha256:211fcd65c58bf250fb994b53bc45a442ddc9f441f6fec53e65de8cba48ded986\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-musllinux_1_1_s390x.whl\", hash = \"sha256:c10ea1e80a697cf7d80d1ed414b5cb8f1eec07d618f54637067ae3c0334133c4\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-musllinux_1_1_x86_64.whl\", hash = \"sha256:52690eb521d690ab041c3919666bea13ab9fbff80d615ec16fa81a297131276b\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-win32.whl\", hash = \"sha256:695ba021a9e04418507fa930d5f0704edbce47076bdcfeeaba1c83683e5649d1\"},\n- {file = \"yarl-1.7.2-cp37-cp37m-win_amd64.whl\", hash = \"sha256:c17965ff3706beedafd458c452bf15bac693ecd146a60a06a214614dc097a271\"},\n- {file = \"yarl-1.7.2-cp38-cp38-macosx_10_9_universal2.whl\", hash = \"sha256:fce78593346c014d0d986b7ebc80d782b7f5e19843ca798ed62f8e3ba8728576\"},\n- {file = \"yarl-1.7.2-cp38-cp38-macosx_10_9_x86_64.whl\", hash = \"sha256:c2a1ac41a6aa980db03d098a5531f13985edcb451bcd9d00670b03129922cd0d\"},\n- {file = \"yarl-1.7.2-cp38-cp38-macosx_11_0_arm64.whl\", hash = \"sha256:39d5493c5ecd75c8093fa7700a2fb5c94fe28c839c8e40144b7ab7ccba6938c8\"},\n- {file = \"yarl-1.7.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:1eb6480ef366d75b54c68164094a6a560c247370a68c02dddb11f20c4c6d3c9d\"},\n- {file = \"yarl-1.7.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:5ba63585a89c9885f18331a55d25fe81dc2d82b71311ff8bd378fc8004202ff6\"},\n- {file = \"yarl-1.7.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:e39378894ee6ae9f555ae2de332d513a5763276a9265f8e7cbaeb1b1ee74623a\"},\n- {file = \"yarl-1.7.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl\", hash = \"sha256:c0910c6b6c31359d2f6184828888c983d54d09d581a4a23547a35f1d0b9484b1\"},\n- {file = \"yarl-1.7.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:6feca8b6bfb9eef6ee057628e71e1734caf520a907b6ec0d62839e8293e945c0\"},\n- {file = \"yarl-1.7.2-cp38-cp38-musllinux_1_1_aarch64.whl\", hash = \"sha256:8300401dc88cad23f5b4e4c1226f44a5aa696436a4026e456fe0e5d2f7f486e6\"},\n- {file = \"yarl-1.7.2-cp38-cp38-musllinux_1_1_i686.whl\", hash = \"sha256:788713c2896f426a4e166b11f4ec538b5736294ebf7d5f654ae445fd44270832\"},\n- {file = \"yarl-1.7.2-cp38-cp38-musllinux_1_1_ppc64le.whl\", hash = \"sha256:fd547ec596d90c8676e369dd8a581a21227fe9b4ad37d0dc7feb4ccf544c2d59\"},\n- {file = \"yarl-1.7.2-cp38-cp38-musllinux_1_1_s390x.whl\", hash = \"sha256:737e401cd0c493f7e3dd4db72aca11cfe069531c9761b8ea474926936b3c57c8\"},\n- {file = \"yarl-1.7.2-cp38-cp38-musllinux_1_1_x86_64.whl\", hash = \"sha256:baf81561f2972fb895e7844882898bda1eef4b07b5b385bcd308d2098f1a767b\"},\n- {file = \"yarl-1.7.2-cp38-cp38-win32.whl\", hash = \"sha256:ede3b46cdb719c794427dcce9d8beb4abe8b9aa1e97526cc20de9bd6583ad1ef\"},\n- {file = \"yarl-1.7.2-cp38-cp38-win_amd64.whl\", hash = \"sha256:cc8b7a7254c0fc3187d43d6cb54b5032d2365efd1df0cd1749c0c4df5f0ad45f\"},\n- {file = \"yarl-1.7.2-cp39-cp39-macosx_10_9_universal2.whl\", hash = \"sha256:580c1f15500e137a8c37053e4cbf6058944d4c114701fa59944607505c2fe3a0\"},\n- {file = \"yarl-1.7.2-cp39-cp39-macosx_10_9_x86_64.whl\", hash = \"sha256:3ec1d9a0d7780416e657f1e405ba35ec1ba453a4f1511eb8b9fbab81cb8b3ce1\"},\n- {file = \"yarl-1.7.2-cp39-cp39-macosx_11_0_arm64.whl\", hash = \"sha256:3bf8cfe8856708ede6a73907bf0501f2dc4e104085e070a41f5d88e7faf237f3\"},\n- {file = \"yarl-1.7.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:1be4bbb3d27a4e9aa5f3df2ab61e3701ce8fcbd3e9846dbce7c033a7e8136746\"},\n- {file = \"yarl-1.7.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:534b047277a9a19d858cde163aba93f3e1677d5acd92f7d10ace419d478540de\"},\n- {file = \"yarl-1.7.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:c6ddcd80d79c96eb19c354d9dca95291589c5954099836b7c8d29278a7ec0bda\"},\n- {file = \"yarl-1.7.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl\", hash = \"sha256:9bfcd43c65fbb339dc7086b5315750efa42a34eefad0256ba114cd8ad3896f4b\"},\n- {file = \"yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl\", hash = \"sha256:f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794\"},\n- {file = \"yarl-1.7.2-cp39-cp39-musllinux_1_1_aarch64.whl\", hash = \"sha256:044daf3012e43d4b3538562da94a88fb12a6490652dbc29fb19adfa02cf72eac\"},\n- {file = \"yarl-1.7.2-cp39-cp39-musllinux_1_1_i686.whl\", hash = \"sha256:368bcf400247318382cc150aaa632582d0780b28ee6053cd80268c7e72796dec\"},\n- {file = \"yarl-1.7.2-cp39-cp39-musllinux_1_1_ppc64le.whl\", hash = \"sha256:bab827163113177aee910adb1f48ff7af31ee0289f434f7e22d10baf624a6dfe\"},\n- {file = \"yarl-1.7.2-cp39-cp39-musllinux_1_1_s390x.whl\", hash = \"sha256:0cba38120db72123db7c58322fa69e3c0efa933040ffb586c3a87c063ec7cae8\"},\n- {file = \"yarl-1.7.2-cp39-cp39-musllinux_1_1_x86_64.whl\", hash = \"sha256:59218fef177296451b23214c91ea3aba7858b4ae3306dde120224cfe0f7a6ee8\"},\n- {file = \"yarl-1.7.2-cp39-cp39-win32.whl\", hash = \"sha256:1edc172dcca3f11b38a9d5c7505c83c1913c0addc99cd28e993efeaafdfaa18d\"},\n- {file = \"yarl-1.7.2-cp39-cp39-win_amd64.whl\", hash = \"sha256:797c2c412b04403d2da075fb93c123df35239cd7b4cc4e0cd9e5839b73f52c58\"},\n- {file = \"yarl-1.7.2.tar.gz\", hash = \"sha256:45399b46d60c253327a460e99856752009fcee5f5d3c80b2f7c0cae1c38d56dd\"},\n-]\n--- pyproject.toml\n+++ pyproject.toml\n@@ -5,26 +5,26 @@\n authors = [\"Michael Elsdorfer \"]\n \n [tool.poetry.dependencies]\n-python = \"^3.9\"\n-google-api-python-client = \"^1.6.2\"\n-requests = \"^2.27.1\"\n-pykube = \"^0.14.0\"\n-tarsnapper = \"^0.4.0\"\n-aiochannel = \"^1.0.1\"\n-structlog = \"^21.5.0\"\n-attrs = \"^17.3.0\"\n-pendulum = \"^0.8.0\"\n-confcollect = \"^0.2.3\"\n-isodate = \"^0.6.1\"\n-python-dateutil = \"^2.6.0\"\n-aiohttp = \"^3.5.4\"\n-aiostream = \"^0.4.4\"\n-boto3 = \"^1.21.10\"\n-yarl = \"^1.1.1\"\n-python-digitalocean = \"^1.15.0\"\n+python = \">=3.9\"\n+google-api-python-client = \"*\"\n+requests = \"*\"\n+pykube = \"*\"\n+tarsnapper = \"*\"\n+aiochannel = \"*\"\n+structlog = \"*\"\n+attrs = \"*\"\n+pendulum = \"*\"\n+confcollect = \"*\"\n+isodate = \"*\"\n+python-dateutil = \"*\"\n+aiohttp = \"*\"\n+aiostream = \"*\"\n+boto3 = \"*\"\n+yarl = \"*\"\n+python-digitalocean = \"*\"\n \n [tool.poetry.dev-dependencies]\n \n [build-system]\n-requires = [\"poetry-core>=1.0.0\"]\n+requires = [\"poetry-core\"]\n build-backend = \"poetry.core.masonry.api\"\n--- setup.py\n+++ setup.py\n@@ -1,11 +1,2 @@\n from setuptools import setup, find_packages\n-\n-setup(\n- name='k8s-snapshots',\n- packages=find_packages(exclude=['tests']),\n- entry_points={\n- 'console_scripts': [\n- 'k8s-snapshots=k8s_snapshots.__main__:main'\n- ]\n- }\n-)\n+setup(name='k8s-snapshots', packages=find_packages(exclude=['tests']), entry_points={'console_scripts': ['k8s-snapshots=k8s_snapshots.__main__:main']})\n\\ No newline at end of file\n--- setup_miracle2k__k8s-snapshots.sh\n+++ setup_miracle2k__k8s-snapshots.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install poetry\n+poetry install\n+poetry add pytest\n--- test_miracle2k__k8s-snapshots.sh\n+++ test_miracle2k__k8s-snapshots.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+poetry run python -m pytest .\n", "test_patch": "--- tests/test_snapshots.py\n+++ tests/test_snapshots.py\n@@ -1,5 +1,5 @@\n from datetime import timedelta\n-from pendulum import Pendulum\n+from pendulum import DateTime\n from unittest import TestCase\n \n from k8s_snapshots.backends.abstract import Snapshot\n@@ -25,7 +25,7 @@\n def test_snapshot_not_required_with_recent_snapshots(self):\n assert not snapshots_for_rule_are_outdated(self.rule, [\n Snapshot(\n- created_at=Pendulum.now('utc') - timedelta(minutes=59),\n+ created_at=DateTime.now('utc') - timedelta(minutes=59),\n name='snapshot-1',\n disk=self.TEST_DISK)\n ])\n@@ -33,7 +33,7 @@\n def test_snapshot_required_with_outdated_snapshot(self):\n assert snapshots_for_rule_are_outdated(self.rule, [\n Snapshot(\n- created_at=Pendulum.now('utc') - timedelta(hours=1, minutes=1),\n+ created_at=DateTime.now('utc') - timedelta(hours=1, minutes=1),\n name='snapshot-1',\n disk=self.TEST_DISK)\n ])\n@@ -41,7 +41,7 @@\n def test_snapshot_required_with_snapshot_for_different_disk(self):\n assert snapshots_for_rule_are_outdated(self.rule, [\n Snapshot(\n- created_at=Pendulum.now('utc') - timedelta(minutes=5),\n+ created_at=DateTime.now('utc') - timedelta(minutes=5),\n name='snapshot-1',\n disk='some-other-disk')\n ])\n", "gold_patch": "--- k8s_snapshots/backends/abstract.py\n+++ k8s_snapshots/backends/abstract.py\n@@ -22,7 +22,7 @@\n Identifies an existing snapshot.\n \"\"\"\n name: str\n- created_at: pendulum.Pendulum\n+ created_at: pendulum.DateTime\n # A disk id that is known to Kubernetes.\n disk: DiskIdentifier\n \n--- k8s_snapshots/backends/aws.py\n+++ k8s_snapshots/backends/aws.py\n@@ -95,7 +95,7 @@\n return AWSDiskIdentifier(region=region, volume_id=volume_id)\n \n \n-def parse_timestamp(date) -> pendulum.Pendulum:\n+def parse_timestamp(date) -> pendulum.DateTime:\n return pendulum.instance(date)\n \n \n--- k8s_snapshots/backends/google.py\n+++ k8s_snapshots/backends/google.py\n@@ -147,7 +147,7 @@\n return bool(volume.obj['spec'].get('gcePersistentDisk'))\n \n \n-def parse_timestamp(date_str: str) -> pendulum.Pendulum:\n+def parse_timestamp(date_str: str) -> pendulum.DateTime:\n return pendulum.parse(date_str).in_timezone('utc')\n \n \n--- k8s_snapshots/serialize.py\n+++ k8s_snapshots/serialize.py\n@@ -45,7 +45,7 @@\n if isinstance(obj, timedelta):\n return isodate.duration_isoformat(obj)\n \n- if isinstance(obj, pendulum.Pendulum):\n+ if isinstance(obj, pendulum.DateTime):\n return obj.isoformat()\n \n if fallback_processor is not None:\n", "reproduction_target_date": "2022-03-02", "reproduction_target_version": "3.10.2", "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 miracle2k__k8s-snapshots .\n\nRUN printf '\\n[[tool.poetry.source]]\\nname = \"mirror\"\\nurl = \"http://localhost:5000/snapshot/2025-07-31\"\\npriority = \"primary\"\\n' >> pyproject.toml\n\nRUN bash /work/setup_miracle2k__k8s-snapshots.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_miracle2k__k8s-snapshots.sh\"]\n", "version_source": "pyproject.toml", "script_source": "pyproject.toml", "dependency_versions": "aiochannel==1.3.0\naiohappyeyeballs==2.6.1\naiohttp==3.12.15\naiosignal==1.4.0\naiostream==0.7.0\nattrs==25.3.0\nboto3==1.39.17\nbotocore==1.39.17\ncachetools==5.5.2\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\nconfcollect==0.3.1\nfrozenlist==1.7.0\ngoogle-api-core==2.25.1\ngoogle-api-python-client==2.177.0\ngoogle-auth==2.40.3\ngoogle-auth-httplib2==0.2.0\ngoogleapis-common-protos==1.70.0\nhttplib2==0.22.0\nidna==3.10\niniconfig==2.1.0\nisodate==0.7.2\njmespath==1.0.1\njsonpickle==4.1.1\n# Editable install with no version control (k8s-snapshots==0.1.0)\n-e /work\nmultidict==6.6.3\noauth2client==4.1.3\noauthlib==3.3.1\npackaging==25.0\npendulum==3.1.0\npexpect==4.9.0\npluggy==1.6.0\npropcache==0.3.2\nproto-plus==1.26.1\nprotobuf==6.31.1\nptyprocess==0.7.0\npyasn1==0.6.1\npyasn1_modules==0.4.2\nPygments==2.19.2\npykube==0.15.0\npyparsing==3.2.3\npytest==8.4.1\npython-dateutil==2.9.0.post0\npython-digitalocean==1.17.0\nPyYAML==6.0.2\nrequests==2.32.4\nrequests-oauthlib==2.0.0\nrsa==4.9.1\ns3transfer==0.13.1\nsix==1.17.0\nstructlog==25.4.0\ntarsnapper==0.5.0\ntyping_extensions==4.14.1\ntzdata==2025.2\ntzlocal==5.3.1\nuritemplate==4.2.0\nurllib3==2.5.0\nyarl==1.20.1\n", "test_type": "pytest", "test_files": "tests/test_snapshots.py, tests/test_kube.py, tests/test_volume_from_pvc.py, tests/test_deltas.py", "test_count": 16, "related_modules": "pendulum", "py_file_count": 29, "total_loc_python": 3880, "difficulty": "Medium", "license": "BSD-2-Clause"} {"repo_name": "lucasmaystre/choix", "repo_url": "https://github.com/lucasmaystre/choix", "commit_hash": "4feb285312b2b22e87d1e961514dc735e60d7624", "patch": "--- setup.py\n+++ setup.py\n@@ -1,43 +1,8 @@\n from setuptools import setup\n from os import path\n-\n-\n HERE = path.abspath(path.dirname(__file__))\n \n-\n def readme():\n with open(path.join(HERE, 'README.rst')) as f:\n return f.read()\n-\n-\n-setup(\n- name='choix',\n- version='0.3.5',\n- author='Lucas Maystre',\n- author_email='lucas@maystre.ch',\n- description=\"Inference algorithms for models based on Luce's choice axiom.\",\n- long_description=readme(),\n- url='https://github.com/lucasmaystre/choix',\n- license='MIT',\n- classifiers=[\n- 'Development Status :: 4 - Beta',\n- 'License :: OSI Approved :: MIT License',\n- 'Programming Language :: Python :: 3',\n- 'Intended Audience :: Science/Research',\n- 'Topic :: Scientific/Engineering :: Mathematics',\n- 'Topic :: Scientific/Engineering :: Artificial Intelligence',\n- ],\n- keywords='statistics ml bradley terry plackett luce choice comparison ranking',\n- packages=['choix'],\n- install_requires=[\n- 'numpy',\n- 'scipy',\n- ],\n- setup_requires=['pytest-runner'],\n- tests_require=[\n- 'pytest',\n- 'networkx',\n- ],\n- include_package_data=True,\n- zip_safe=False,\n-)\n+setup(name='choix', version='0.3.5', author='Lucas Maystre', author_email='lucas@maystre.ch', description=\"Inference algorithms for models based on Luce's choice axiom.\", long_description=readme(), url='https://github.com/lucasmaystre/choix', license='MIT', classifiers=['Development Status :: 4 - Beta', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3', 'Intended Audience :: Science/Research', 'Topic :: Scientific/Engineering :: Mathematics', 'Topic :: Scientific/Engineering :: Artificial Intelligence'], keywords='statistics ml bradley terry plackett luce choice comparison ranking', packages=['choix'], install_requires=['numpy', 'scipy'], setup_requires=['pytest-runner'], tests_require=['pytest', 'networkx'], include_package_data=True, zip_safe=False)\n\\ No newline at end of file\n--- setup_lucasmaystre__choix.sh\n+++ setup_lucasmaystre__choix.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n+pip install pytest networkx\n+pip install pytest\n--- test_lucasmaystre__choix.sh\n+++ test_lucasmaystre__choix.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- choix/mm.py\n+++ choix/mm.py\n@@ -242,7 +242,7 @@\n # Compute the (sparse) adjacency matrix.\n n_items = len(digraph)\n nodes = np.arange(n_items)\n- adj = nx.to_scipy_sparse_matrix(digraph, nodelist=nodes, weight=weight)\n+ adj = nx.to_scipy_sparse_array(digraph, nodelist=nodes, weight=weight)\n adj_t = adj.T.tocsr()\n # Process the data into a standard form.\n traffic_in = np.asarray(traffic_in)\n", "reproduction_target_date": "2022-01-11", "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 lucasmaystre__choix .\n\nRUN bash /work/setup_lucasmaystre__choix.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_lucasmaystre__choix.sh\"]\n", "version_source": "default", "script_source": "setup.py", "dependency_versions": "choix @ file:///work\niniconfig==2.1.0\nnetworkx==3.5\nnumpy==2.3.2\npackaging==25.0\npluggy==1.6.0\nPygments==2.19.2\npytest==8.4.1\nscipy==1.16.1\n", "test_type": "pytest", "test_files": "tests/test_ep.py, tests/test_convergence.py, tests/test_utils.py, tests/test_opt.py, tests/test_lsr.py, tests/test_mm.py", "test_count": 68, "related_modules": "networkx", "py_file_count": 16, "total_loc_python": 2867, "difficulty": "Easy", "license": "MIT"} {"repo_name": "cynepton/deploy-flask-app-to-eks", "repo_url": "https://github.com/cynepton/deploy-flask-app-to-eks", "commit_hash": "7e24174954f505efefbe2a22e39e9ddfc509c372", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,4 +1,4 @@\n pyjwt\n flask\n gunicorn\n-pytest\n+pytest\n\\ No newline at end of file\n--- setup_cynepton__deploy-flask-app-to-eks.sh\n+++ setup_cynepton__deploy-flask-app-to-eks.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_cynepton__deploy-flask-app-to-eks.sh\n+++ test_cynepton__deploy-flask-app-to-eks.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- main.py\n+++ main.py\n@@ -79,7 +79,7 @@\n \n user_data = body\n \n- return jsonify(token=_get_jwt(user_data).decode('utf-8'))\n+ return jsonify(token=_get_jwt(user_data))\n \n \n @APP.route('/contents', methods=['GET'])\n", "reproduction_target_date": "2020-07-25", "reproduction_target_version": "3.7.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 cynepton__deploy-flask-app-to-eks .\n\nRUN bash /work/setup_cynepton__deploy-flask-app-to-eks.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_cynepton__deploy-flask-app-to-eks.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "blinker==1.9.0\nclick==8.2.1\nFlask==3.1.1\ngunicorn==23.0.0\niniconfig==2.1.0\nitsdangerous==2.2.0\nJinja2==3.1.6\nMarkupSafe==3.0.2\npackaging==25.0\npluggy==1.6.0\nPygments==2.19.2\nPyJWT==2.10.1\npytest==8.4.1\nWerkzeug==3.1.3\n", "test_type": "pytest", "test_files": "test_main.py", "test_count": 2, "related_modules": "PyJWT", "py_file_count": 3, "total_loc_python": 166, "difficulty": "Easy", "license": "MIT"} {"repo_name": "hauser-group/pyQChem", "repo_url": "https://github.com/hauser-group/pyQChem", "commit_hash": "509b8be959ead4b6bfaa6b688082b4506e115494", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,2 +1,2 @@\n-numpy>=1.10.4\n-matplotlib>=2.0.0\n+numpy\n+matplotlib\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,21 +1,6 @@\n import setuptools\n-\n with open('README.md', 'r', encoding='utf-8') as fh:\n long_description = fh.read()\n-\n with open('requirements.txt') as f:\n requirements = f.read().splitlines()\n-\n-setuptools.setup(\n- name='pyqchem',\n- version='1.0.0`',\n- author='Andreas Hauser',\n- url='https://github.com/hauser-group/pyQChem',\n- license='FreeBSD',\n- description='A Python module for scripting with Q-Chem',\n- long_description=long_description,\n- long_description_content_type='text/markdown',\n- packages=setuptools.find_packages(),\n- python_requires='>=3.5',\n- install_requires=requirements\n-)\n+setuptools.setup(name='pyqchem', version='1.0.0`', author='Andreas Hauser', url='https://github.com/hauser-group/pyQChem', license='FreeBSD', description='A Python module for scripting with Q-Chem', long_description=long_description, long_description_content_type='text/markdown', packages=setuptools.find_packages(), python_requires='>=3.5', install_requires=requirements)\n\\ No newline at end of file\n--- setup_hauser-group__pyQChem.sh\n+++ setup_hauser-group__pyQChem.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_hauser-group__pyQChem.sh\n+++ test_hauser-group__pyQChem.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest test.test_output_classes\n", "test_patch": "", "gold_patch": "--- pyqchem/output_classes.py\n+++ pyqchem/output_classes.py\n@@ -128,14 +128,14 @@\n wall_time, cpu_time):\n self.jobtype = jobtype\n self.version = version\n- self.spin = _np.float(spin)\n+ self.spin = float(spin)\n if mm_type != \"mm\":\n try:\n self.basis_size = int(basis_size)\n except ValueError:\n self.basis_size = \"undefined\"\n try:\n- self.energy = _np.float(energy)\n+ self.energy = float(energy)\n except ValueError:\n self.energy = \"undefined\"\n try:\n", "reproduction_target_date": "2022-08-16", "reproduction_target_version": "3.10.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 hauser-group__pyQChem .\n\nRUN bash /work/setup_hauser-group__pyQChem.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_hauser-group__pyQChem.sh\"]\n", "version_source": "setup.py", "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\nsix==1.17.0\n", "test_type": "unittest", "test_files": "test/test_output_classes.py", "test_count": 2, "related_modules": "numpy", "py_file_count": 20, "total_loc_python": 17165, "difficulty": "Easy", "license": "BSD-2-Clause"} {"repo_name": "ralphje/signify", "repo_url": "https://github.com/ralphje/signify", "commit_hash": "7a1b61446e53645b9725d690a83fa3d41d559137", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,6 +1,6 @@\n-pyasn1>=0.4.0,<0.5.0\n-certvalidator>=0.11\n-asn1crypto>=1.3,<2\n-oscrypto>=1.1,<2\n-pyasn1-modules>=0.2.8\n-mscerts\n+pyasn1\n+certvalidator\n+asn1crypto\n+oscrypto\n+pyasn1-modules\n+mscerts\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,54 +1,12 @@\n import glob\n import os\n from setuptools import setup\n-\n-\n base_dir = os.path.dirname(__file__)\n about = {}\n-with open(os.path.join(base_dir, \"signify\", \"__init__.py\")) as f:\n+with open(os.path.join(base_dir, 'signify', '__init__.py')) as f:\n exec(f.read(), about)\n-\n try:\n- long_description = open(\"README.rst\", \"r\").read()\n+ long_description = open('README.rst', 'r').read()\n except Exception:\n long_description = None\n-\n-\n-setup(\n- name='signify',\n- version=about['__version__'],\n- packages=['signify', 'signify.asn1', 'signify.authenticode', 'signify.pkcs7', 'signify.x509'],\n- package_data={'signify': ['*.pem']},\n- include_package_data=True,\n-\n- url='https://github.com/ralphje/signify',\n- download_url='https://github.com/ralphje/signify/tarball/v' + about['__version__'],\n- license='MIT',\n- author='Ralph Broenink',\n- author_email='ralph@ralphbroenink.net',\n- description='Module to generate and verify PE signatures',\n- long_description=long_description,\n- install_requires=['pyasn1>=0.4.0,<0.5.0',\n- 'certvalidator>=0.11',\n- 'asn1crypto>=1.3,<2',\n- 'oscrypto>=1.1,<2',\n- 'pyasn1-modules>=0.2.8',\n- 'mscerts'],\n- keywords=['authenticode', 'authentihash', 'fingerprinter', 'pe'],\n- classifiers=[\n- 'Development Status :: 3 - Alpha',\n- 'Environment :: Console',\n- 'Intended Audience :: Developers',\n- 'Intended Audience :: Legal Industry',\n- 'Intended Audience :: System Administrators',\n- 'License :: OSI Approved :: MIT License',\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 :: Information Analysis',\n- 'Topic :: Security :: Cryptography',\n- 'Topic :: System :: Software Distribution',\n- 'Topic :: Utilities',\n- ]\n-)\n+setup(name='signify', version=about['__version__'], packages=['signify', 'signify.asn1', 'signify.authenticode', 'signify.pkcs7', 'signify.x509'], package_data={'signify': ['*.pem']}, include_package_data=True, url='https://github.com/ralphje/signify', download_url='https://github.com/ralphje/signify/tarball/v' + about['__version__'], license='MIT', author='Ralph Broenink', author_email='ralph@ralphbroenink.net', description='Module to generate and verify PE signatures', long_description=long_description, install_requires=['pyasn1', 'certvalidator', 'asn1crypto', 'oscrypto', 'pyasn1-modules', 'mscerts'], keywords=['authenticode', 'authentihash', 'fingerprinter', 'pe'], classifiers=['Development Status :: 3 - Alpha', 'Environment :: Console', 'Intended Audience :: Developers', 'Intended Audience :: Legal Industry', 'Intended Audience :: System Administrators', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Topic :: Scientific/Engineering :: Information Analysis', 'Topic :: Security :: Cryptography', 'Topic :: System :: Software Distribution', 'Topic :: Utilities'])\n\\ No newline at end of file\n--- setup_ralphje__signify.sh\n+++ setup_ralphje__signify.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install -r tests/requirements.txt\n--- test_ralphje__signify.sh\n+++ test_ralphje__signify.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_asn1 tests.test_authenticode tests.test_authroot tests.test_fingerprinter tests.test_context tests.test_signerinfo\n--- tests/requirements.txt\n+++ tests/requirements.txt\n@@ -1,2 +1,2 @@\n-flake8~=4.0.1\n-coverage~=6.2\n+flake8\n+coverage\n\\ No newline at end of file\n", "test_patch": "", "gold_patch": "--- signify/asn1/preserving_der.py\n+++ signify/asn1/preserving_der.py\n@@ -1,6 +1,5 @@\n from pyasn1.codec.cer import encoder as cer_encoder\n from pyasn1.codec.der import encoder\n-from pyasn1.compat.octets import null, str2octs\n from pyasn1.type import univ\n \n __all__ = ['encode']\n@@ -14,7 +13,7 @@\n value, asn1Spec, encodeFun, **options)\n \n if len(chunks) > 1:\n- zero = str2octs('\\x00')\n+ zero = b'\\x00'\n maxLen = max(map(len, chunks))\n paddedChunks = [\n (x.ljust(maxLen, zero), x) for x in chunks\n@@ -22,7 +21,7 @@\n \n chunks = [x[1] for x in paddedChunks]\n \n- return null.join(chunks), True, True\n+ return b''.join(chunks), True, True\n \n \n tagMap = encoder.tagMap.copy()\n", "reproduction_target_date": "2023-04-22", "reproduction_target_version": "3.10.11", "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 ralphje__signify .\n\nRUN bash /work/setup_ralphje__signify.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_ralphje__signify.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "asn1crypto==1.5.1\ncertvalidator==0.11.1\ncoverage==7.10.1\nflake8==7.3.0\nmccabe==0.7.0\nmscerts==2025.6.27\noscrypto==1.3.0\npyasn1==0.6.1\npyasn1_modules==0.4.2\npycodestyle==2.14.0\npyflakes==3.4.0\n", "test_type": "unittest", "test_files": "tests/test_context.py, tests/test_fingerprinter.py, tests/test_signerinfo.py, tests/test_asn1.py, tests/test_authenticode.py, tests/test_authroot.py", "test_count": 47, "related_modules": "pyasn1", "py_file_count": 32, "total_loc_python": 4287, "difficulty": "Easy", "license": "Apache-2.0, MIT"} {"repo_name": "cisagov/cyhy-api", "repo_url": "https://github.com/cisagov/cyhy-api", "commit_hash": "f2cd870c7ef7e9f9116883d2b849125362418e40", "patch": "--- requirements-dev.txt\n+++ requirements-dev.txt\n@@ -1,2 +1,2 @@\n -r requirements-test.txt\n-ipython\n+ipython\n\\ No newline at end of file\n--- requirements-test.txt\n+++ requirements-test.txt\n@@ -1 +1 @@\n--e .[test]\n+-e .[test]\n\\ No newline at end of file\n--- requirements.txt\n+++ requirements.txt\n@@ -1 +1 @@\n--e .\n+-e .\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,82 +1,19 @@\n \"\"\"Setup environment for Cyber Hygiene API Server.\"\"\"\n-\n from glob import glob\n from os.path import splitext, basename\n-\n from setuptools import setup, find_packages\n \n-\n def readme():\n \"\"\"Read in and return the contents of the project's README.md file.\"\"\"\n- with open(\"README.md\") as f:\n+ with open('README.md') as f:\n return f.read()\n \n-\n def package_vars(version_file):\n \"\"\"Read in and return the variables defined by the version_file.\"\"\"\n pkg_vars = {}\n with open(version_file) as f:\n- exec(f.read(), pkg_vars) # nosec\n+ exec(f.read(), pkg_vars)\n return pkg_vars\n-\n-\n-install_requires = [\n- \"docopt == 0.6.2\",\n- \"Flask == 1.0.2\",\n- \"Flask-Bcrypt\", # compiled in Dockerfile\n- \"flask-cors == 3.0.7\",\n- \"Flask-GraphQL == 2.0.0\",\n- \"Flask-JWT-Extended == 3.18.1\",\n- \"graphene-mongo == 0.2.4\",\n- \"mongoengine == 0.17.0\",\n- \"python-dateutil == 2.8.0\",\n- \"PyYAML == 5.1\",\n-]\n-\n-extras_require = {\n- \"test\": [\"coveralls\", \"mimesis\", \"mongomock\", \"pre-commit\", \"pytest-cov\", \"pytest\"]\n-}\n-\n-\n-setup(\n- name=\"cyhy-api\",\n- # Versions should comply with PEP440\n- version=package_vars(\"src/cyhy_api/_version.py\")[\"__version__\"],\n- description=\"Cyber Hygiene API Server\",\n- long_description=readme(),\n- long_description_content_type=\"text/markdown\",\n- # NCATS \"homepage\"\n- url=\"https://www.us-cert.gov/resources/ncats\",\n- # The project's main homepage\n- download_url=\"https://github.com/cisagov/skeleton-python-library\",\n- # Author details\n- author=\"Cyber and Infrastructure Security Agency\",\n- author_email=\"ncats@hq.dhs.gov\",\n- license=\"License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication\",\n- # See https://pypi.python.org/pypi?%3Aaction=list_classifiers\n- classifiers=[\n- # How mature is this project? Common values are\n- # 3 - Alpha\n- # 4 - Beta\n- # 5 - Production/Stable\n- \"Development Status :: 3 - Alpha\",\n- # Indicate who your project is intended for\n- \"Intended Audience :: Developers\",\n- # Pick your license as you wish (should match \"license\" above)\n- \"License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication\",\n- # Specify the Python versions you support here. In particular, ensure\n- # that you indicate whether you support Python 2, Python 3 or both.\n- \"Programming Language :: Python :: 3\",\n- \"Programming Language :: Python :: 3.6\",\n- \"Programming Language :: Python :: 3.7\",\n- ],\n- # What does your project relate to?\n- keywords=\"cyhy\",\n- packages=find_packages(where=\"src\"),\n- package_dir={\"\": \"src\"},\n- py_modules=[splitext(basename(path))[0] for path in glob(\"src/*.py\")],\n- include_package_data=True,\n- install_requires=install_requires,\n- extras_require=extras_require,\n- entry_points={\"console_scripts\": [\"cyhy-api-server=cyhy_api.api:main\"]},\n-)\n+install_requires = ['docopt', 'Flask', 'Flask-Bcrypt', 'flask-cors', 'Flask-GraphQL', 'Flask-JWT-Extended', 'graphene-mongo', 'mongoengine', 'python-dateutil', 'PyYAML']\n+extras_require = {'test': ['coveralls', 'mimesis', 'mongomock', 'pre-commit', 'pytest-cov', 'pytest']}\n+setup(name='cyhy-api', version=package_vars('src/cyhy_api/_version.py')['__version__'], description='Cyber Hygiene API Server', long_description=readme(), long_description_content_type='text/markdown', url='https://www.us-cert.gov/resources/ncats', download_url='https://github.com/cisagov/skeleton-python-library', author='Cyber and Infrastructure Security Agency', author_email='ncats@hq.dhs.gov', license='License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication', classifiers=['Development Status :: 3 - Alpha', 'Intended Audience :: Developers', 'License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7'], keywords='cyhy', packages=find_packages(where='src'), package_dir={'': 'src'}, py_modules=[splitext(basename(path))[0] for path in glob('src/*.py')], include_package_data=True, install_requires=install_requires, extras_require=extras_require, entry_points={'console_scripts': ['cyhy-api-server=cyhy_api.api:main']})\n\\ No newline at end of file\n--- setup_cisagov__cyhy-api.sh\n+++ setup_cisagov__cyhy-api.sh\n@@ -0,0 +1,7 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements-dev.txt\n+pip install -r requirements.txt\n+pip install -r requirements-test.txt\n+pip install pytest\n--- test_cisagov__cyhy-api.sh\n+++ test_cisagov__cyhy-api.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "--- tests/src/schema_auth_test.py\n+++ tests/src/schema_auth_test.py\n@@ -3,6 +3,7 @@\n from pprint import pprint\n \n import pytest\n+import mongomock\n from graphene.test import Client\n \n from cyhy_api.schema import schema\n@@ -15,7 +16,7 @@\n @pytest.fixture(scope=\"class\", autouse=True)\n def connection():\n \"\"\"Create connections for tests to use.\"\"\"\n- connect(host=\"mongomock://localhost\", alias=\"default\")\n+ connect(host=\"mongodb://localhost\", alias=\"default\", mongo_client_class=mongomock.MongoClient)\n \n \n @pytest.fixture(scope=\"class\", autouse=True)\n--- tests/src/user_test.py\n+++ tests/src/user_test.py\n@@ -2,6 +2,7 @@\n \"\"\"Tests for User documents.\"\"\"\n \n import pytest\n+import mongomock\n import mongoengine\n \n from cyhy_api.model import UserModel\n@@ -13,7 +14,7 @@\n \"\"\"Create connections for tests to use.\"\"\"\n from mongoengine import connect\n \n- connect(host=\"mongomock://localhost\", alias=\"default\")\n+ connect(host=\"mongodb://localhost\", alias=\"default\", mongo_client_class=mongomock.MongoClient)\n \n \n @pytest.fixture\n", "gold_patch": "--- src/cyhy_api/api.py\n+++ src/cyhy_api/api.py\n@@ -40,7 +40,7 @@\n jwt = JWTManager(app)\n CORS(app) # TODO define specific origin\n \n- @jwt.user_loader_callback_loader\n+ @jwt.user_lookup_loader\n def user_loader(uid):\n app.logger.debug(f\"Looking up user with uid: {uid}\")\n user = UserModel.objects(id=uid).first()\n--- src/cyhy_api/schema/mutations/auth.py\n+++ src/cyhy_api/schema/mutations/auth.py\n@@ -4,8 +4,8 @@\n create_refresh_token,\n decode_token,\n get_current_user,\n- get_raw_jwt,\n- jwt_refresh_token_required,\n+ get_jwt,\n+ jwt_required,\n )\n \n from cyhy_api.model import UserModel\n@@ -45,10 +45,10 @@\n class RefreshMutation(graphene.Mutation):\n result = graphene.Field(RefreshUnion)\n \n- @jwt_refresh_token_required\n+ @jwt_required(refresh=True)\n def mutate(self, info):\n user = get_current_user()\n- refresh_token = get_raw_jwt()\n+ refresh_token = get_jwt()\n # verify that this refresh token has not been revoked\n if user.verify_refresh_token(refresh_token):\n return RefreshMutation(\n@@ -68,10 +68,10 @@\n class LogoutMutation(graphene.Mutation):\n result = graphene.Field(ResponseMessageField)\n \n- @jwt_refresh_token_required\n+ @jwt_required(refresh=True)\n def mutate(self, info):\n user = get_current_user()\n- refresh_token = get_raw_jwt()\n+ refresh_token = get_jwt()\n success = user.revoke_refresh_token(refresh_token) is not None\n if success:\n user.save()\n--- src/cyhy_api/util/config.py\n+++ src/cyhy_api/util/config.py\n@@ -1,6 +1,7 @@\n \"\"\"Utility functions.\"\"\"\n \n import yaml\n+import mongomock\n from mongoengine import connect\n \n \n@@ -22,10 +23,16 @@\n if not config:\n config = load_config()\n connections = config[\"databases\"]\n+\n if default_alias is not None:\n # only create the specified connection and map it to the \"default\" alias\n try:\n- connect(host=connections[default_alias][\"uri\"], alias=\"default\")\n+ uri = connections[default_alias][\"uri\"]\n+ if uri.startswith(\"mongomock://\"):\n+ uri = uri.replace(\"mongomock://\", \"mongodb://\")\n+ connect(host=uri, alias=\"default\", mongo_client_class=mongomock.MongoClient)\n+ else:\n+ connect(host=uri, alias=\"default\")\n except KeyError:\n raise KeyError(\n f\"Requested alias '{default_alias}' not found in connection configuration file.\"\n@@ -33,4 +40,9 @@\n else:\n # create all connections\n for alias in connections.keys():\n- connect(host=connections[alias][\"uri\"], alias=alias)\n+ uri = connections[alias][\"uri\"]\n+ if uri.startswith(\"mongomock://\"):\n+ uri = uri.replace(\"mongomock://\", \"mongodb://\")\n+ connect(host=uri, alias=alias, mongo_client_class=mongomock.MongoClient)\n+ else:\n+ connect(host=uri, alias=alias)\n", "reproduction_target_date": "2019-05-07", "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 cisagov__cyhy-api .\n\nRUN bash /work/setup_cisagov__cyhy-api.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_cisagov__cyhy-api.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "aniso8601==7.0.0\nasttokens==3.0.0\nbcrypt==4.3.0\nblinker==1.9.0\ncertifi==2025.7.14\ncfgv==3.4.0\ncharset-normalizer==3.4.2\nclick==8.2.1\ncoverage==7.10.1\ncoveralls==4.0.1\n# Editable install with no version control (cyhy-api==0.0.1)\n-e /work\ndecorator==5.2.1\ndistlib==0.4.0\ndnspython==2.7.0\ndocopt==0.6.2\nexecuting==2.2.0\nfilelock==3.18.0\nFlask==3.1.1\nFlask-Bcrypt==1.0.1\nflask-cors==6.0.1\nFlask-GraphQL==2.0.1\nFlask-JWT-Extended==4.7.1\ngraphene==2.1.9\ngraphene-mongo==0.2.13\ngraphql-core==2.3.2\ngraphql-relay==2.0.1\ngraphql-server-core==1.2.0\nidentify==2.6.12\nidna==3.10\niniconfig==2.1.0\nipython==9.4.0\nipython_pygments_lexers==1.1.1\niso8601==2.1.0\nitsdangerous==2.2.0\njedi==0.19.2\nJinja2==3.1.6\nMarkupSafe==3.0.2\nmatplotlib-inline==0.1.7\nmimesis==18.0.0\nmongoengine==0.29.1\nmongomock==4.3.0\nnodeenv==1.9.1\npackaging==25.0\nparso==0.8.4\npexpect==4.9.0\nplatformdirs==4.3.8\npluggy==1.6.0\npre_commit==4.2.0\npromise==2.3\nprompt_toolkit==3.0.51\nptyprocess==0.7.0\npure_eval==0.2.3\nPygments==2.19.2\nPyJWT==2.10.1\npymongo==4.13.2\npytest==8.4.1\npytest-cov==6.2.1\npython-dateutil==2.9.0.post0\npytz==2025.2\nPyYAML==6.0.2\nrequests==2.32.4\nRx==1.6.3\nsentinels==1.0.0\nsingledispatch==4.1.2\nsix==1.17.0\nstack-data==0.6.3\ntraitlets==5.14.3\nurllib3==2.5.0\nvirtualenv==20.32.0\nwcwidth==0.2.13\nWerkzeug==3.1.3\n", "test_type": "pytest", "test_files": "tests/src/schema_auth_test.py, tests/src/password_test.py, tests/src/email_validity_test.py, tests/src/user_test.py", "test_count": 62, "related_modules": "Flask-JWT-Extended, mongoengine", "py_file_count": 34, "total_loc_python": 1119, "difficulty": "Medium", "license": "CC0-1.0"} {"repo_name": "italomaia/flask-rev", "repo_url": "https://github.com/italomaia/flask-rev", "commit_hash": "dbdeefe21b248226bac0ce4854b7e87ef5c97407", "patch": "--- setup.py\n+++ setup.py\n@@ -6,34 +6,4 @@\n url.\n \"\"\"\n from setuptools import setup\n-\n-\n-setup(\n- name='Flask-Rev',\n- version='0.1.2',\n- url='https://github.com/italomaia/flask-rev',\n- license='BSD',\n- author='Italo Maia',\n- author_email='italo.maia@gmail.com',\n- description='Easily integrate flask with revisioned static files',\n- long_description=__doc__,\n- py_modules=['flask_rev'],\n- # if you would be using a package instead use packages instead\n- # of py_modules:\n- # packages=['flask_rev'],\n- test_suite='tests.test_rev',\n- zip_safe=False,\n- platforms='any',\n- install_requires=[\n- 'Flask'\n- ],\n- classifiers=[\n- 'Environment :: Web Environment',\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: BSD License',\n- 'Operating System :: OS Independent',\n- 'Programming Language :: Python',\n- 'Topic :: Internet :: WWW/HTTP :: Dynamic Content',\n- 'Topic :: Software Development :: Libraries :: Python Modules'\n- ]\n-)\n+setup(name='Flask-Rev', version='0.1.2', url='https://github.com/italomaia/flask-rev', license='BSD', author='Italo Maia', author_email='italo.maia@gmail.com', description='Easily integrate flask with revisioned static files', long_description=__doc__, py_modules=['flask_rev'], test_suite='tests.test_rev', zip_safe=False, platforms='any', install_requires=['Flask'], classifiers=['Environment :: Web Environment', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', 'Topic :: Software Development :: Libraries :: Python Modules'])\n\\ No newline at end of file\n--- setup_italomaia__flask-rev.sh\n+++ setup_italomaia__flask-rev.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n--- test_italomaia__flask-rev.sh\n+++ test_italomaia__flask-rev.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_rev\n", "test_patch": "", "gold_patch": "--- flask_rev.py\n+++ flask_rev.py\n@@ -6,7 +6,7 @@\n cached static files from the http server.\n \"\"\"\n \n-from flask.helpers import safe_join\n+from werkzeug.utils import safe_join\n from flask import request\n import hashlib\n import contextlib\n", "reproduction_target_date": "2019-12-14", "reproduction_target_version": "3.7.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 italomaia__flask-rev .\n\nRUN bash /work/setup_italomaia__flask-rev.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_italomaia__flask-rev.sh\"]\n", "version_source": "default", "script_source": "setup.py", "dependency_versions": "blinker==1.9.0\nclick==8.2.1\nFlask==3.1.1\nFlask-Rev @ file:///work\nitsdangerous==2.2.0\nJinja2==3.1.6\nMarkupSafe==3.0.2\nWerkzeug==3.1.3\n", "test_type": "unittest", "test_files": "tests/test_rev.py", "test_count": 2, "related_modules": "flask", "py_file_count": 9, "total_loc_python": 585, "difficulty": "Easy", "license": ""} {"repo_name": "MycroftAI/mycroft-messagebus-client", "repo_url": "https://github.com/MycroftAI/mycroft-messagebus-client", "commit_hash": "01ade972facb9c2287d4b9eade49b7f8c1e74655", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,2 +1,2 @@\n-websocket-client>=0.54.0\n-pyee==8.1.0\n\\ No newline at end of file\n+websocket-client\n+pyee\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,32 +1,8 @@\n-# Copyright (c) 2018 Mycroft AI, Inc.\n-#\n-# This file is part of Mycroft Skills Manager\n-# (see https://github.com/MatthewScholefield/mycroft-light).\n-#\n-# Licensed to the Apache Software Foundation (ASF) under one\n-# or more contributor license agreements. See the NOTICE file\n-# distributed with this work for additional information\n-# regarding copyright ownership. The ASF licenses this file\n-# to you under the Apache License, Version 2.0 (the\n-# \"License\"); you may not use this file except in compliance\n-# with the License. You may obtain a copy of the License at\n-#\n-# http://www.apache.org/licenses/LICENSE-2.0\n-#\n-# Unless required by applicable law or agreed to in writing,\n-# software distributed under the License is distributed on an\n-# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n-# KIND, either express or implied. See the License for the\n-# specific language governing permissions and limitations\n-# under the License.\n import os\n from setuptools import setup\n-\n-\n-with open(\"README.md\", \"r\") as fh:\n+with open('README.md', 'r') as fh:\n long_desc = fh.read()\n \n-\n def required(requirements_file):\n \"\"\" Read requirements file and remove comments and empty lines. \"\"\"\n base_dir = os.path.abspath(os.path.dirname(__file__))\n@@ -35,35 +11,5 @@\n if 'MYCROFT_LOOSE_REQUIREMENTS' in os.environ:\n print('USING LOOSE REQUIREMENTS!')\n requirements = [r.replace('==', '>=') for r in requirements]\n- return [pkg for pkg in requirements\n- if pkg.strip() and not pkg.startswith(\"#\")]\n-\n-\n-setup(\n- name='mycroft-messagebus-client',\n- version='0.10.1',\n- packages=['mycroft_bus_client', 'mycroft_bus_client.client',\n- 'mycroft_bus_client.util'],\n- package_data={\n- '*': ['*.txt', '*.md']\n- },\n- include_package_data=True,\n- install_requires=required('requirements.txt'),\n- url='https://github.com/MycroftAI/mycroft-messagebus-client',\n- license='Apache-2.0',\n- author='Mycroft AI, Åke Forslund',\n- author_email='devs@mycroft.ai, ake.forslund@gmail.com',\n- description='Mycroft Messagebus Client',\n- long_description=long_desc,\n- long_description_content_type=\"text/markdown\",\n- classifiers=[\n- 'Development Status :: 4 - Beta',\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: Apache Software License',\n-\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- ]\n-)\n+ return [pkg for pkg in requirements if pkg.strip() and (not pkg.startswith('#'))]\n+setup(name='mycroft-messagebus-client', version='0.10.1', packages=['mycroft_bus_client', 'mycroft_bus_client.client', 'mycroft_bus_client.util'], package_data={'*': ['*.txt', '*.md']}, include_package_data=True, install_requires=required('requirements.txt'), url='https://github.com/MycroftAI/mycroft-messagebus-client', license='Apache-2.0', author='Mycroft AI, Åke Forslund', author_email='devs@mycroft.ai, ake.forslund@gmail.com', description='Mycroft Messagebus Client', long_description=long_desc, long_description_content_type='text/markdown', classifiers=['Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9'])\n\\ No newline at end of file\n--- setup_MycroftAI__mycroft-messagebus-client.sh\n+++ setup_MycroftAI__mycroft-messagebus-client.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_MycroftAI__mycroft-messagebus-client.sh\n+++ test_MycroftAI__mycroft-messagebus-client.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest test.test_message\n", "test_patch": "", "gold_patch": "--- mycroft_bus_client/client/client.py\n+++ mycroft_bus_client/client/client.py\n@@ -25,7 +25,7 @@\n from threading import Event, Thread\n from uuid import uuid4\n \n-from pyee import ExecutorEventEmitter\n+from pyee.executor import ExecutorEventEmitter\n from websocket import (WebSocketApp,\n WebSocketConnectionClosedException,\n WebSocketException)\n", "reproduction_target_date": "2022-10-12", "reproduction_target_version": "3.9.15", "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 MycroftAI__mycroft-messagebus-client .\n\nRUN bash /work/setup_MycroftAI__mycroft-messagebus-client.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_MycroftAI__mycroft-messagebus-client.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "pyee==13.0.0\ntyping_extensions==4.14.1\nwebsocket-client==1.8.0\n", "test_type": "unittest", "test_files": "test/test_message.py", "test_count": 7, "related_modules": "pyee", "py_file_count": 16, "total_loc_python": 1554, "difficulty": "Easy", "license": "Apache-2.0"} {"repo_name": "marshmallow-code/django-rest-marshmallow", "repo_url": "https://github.com/marshmallow-code/django-rest-marshmallow", "commit_hash": "117f89bd5f06de6049dd51d4705d0ccafcc351d7", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,13 +1,13 @@\n # Minimum Django and REST framework version\n-Django>=1.11.14,<4.0\n-djangorestframework>=3.6,<3.13\n-marshmallow>=3.0,<4.0\n+Django\n+djangorestframework\n+marshmallow\n \n # Test requirements\n pytest\n-pytest-django==3.8.0\n-pytest-cov==2.12.1\n-flake8==3.9.2\n+pytest-django\n+pytest-cov\n+flake8\n \n # MkDocs for documentation\n-mkdocs\n+mkdocs\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,10 +1,7 @@\n-#!/usr/bin/env python\n-# -*- coding: utf-8 -*-\n import re\n import os\n from codecs import open\n from setuptools import setup\n-\n here = os.path.abspath(os.path.dirname(__file__))\n name = 'django-rest-marshmallow'\n package = 'rest_marshmallow'\n@@ -16,75 +13,30 @@\n maintainer_email = 'sloria1@gmail.com'\n license = 'BSD'\n \n-\n def get_version(package):\n \"\"\"\n Return package version as listed in `__version__` in `init.py`.\n \"\"\"\n init_py = open(os.path.join(package, '__init__.py')).read()\n- return re.search(\"^__version__ = ['\\\"]([^'\\\"]+)['\\\"]\",\n- init_py, re.MULTILINE).group(1)\n-\n+ return re.search('^__version__ = [\\'\"]([^\\'\"]+)[\\'\"]', init_py, re.MULTILINE).group(1)\n \n def get_packages(package):\n \"\"\"\n Return root package and all sub-packages.\n \"\"\"\n- return [dirpath\n- for dirpath, dirnames, filenames in os.walk(package)\n- if os.path.exists(os.path.join(dirpath, '__init__.py'))]\n-\n+ return [dirpath for dirpath, dirnames, filenames in os.walk(package) if os.path.exists(os.path.join(dirpath, '__init__.py'))]\n \n def get_package_data(package):\n \"\"\"\n Return all files under the root package, that are not in a\n package themselves.\n \"\"\"\n- walk = [(dirpath.replace(package + os.sep, '', 1), filenames)\n- for dirpath, dirnames, filenames in os.walk(package)\n- if not os.path.exists(os.path.join(dirpath, '__init__.py'))]\n-\n+ walk = [(dirpath.replace(package + os.sep, '', 1), filenames) for dirpath, dirnames, filenames in os.walk(package) if not os.path.exists(os.path.join(dirpath, '__init__.py'))]\n filepaths = []\n for base, filenames in walk:\n- filepaths.extend([os.path.join(base, filename)\n- for filename in filenames])\n+ filepaths.extend([os.path.join(base, filename) for filename in filenames])\n return {package: filepaths}\n-\n-\n version = get_version(package)\n-\n with open(os.path.join(here, 'README.md'), encoding='utf-8') as f:\n long_description = f.read()\n-\n-setup(\n- name=name,\n- version=version,\n- url=url,\n- license=license,\n- description=description,\n- author=author,\n- author_email=author_email,\n- maintainer=maintainer,\n- maintainer_email=maintainer_email,\n- packages=get_packages(package),\n- package_data=get_package_data(package),\n- install_requires=[],\n- long_description=long_description,\n- long_description_content_type='text/markdown',\n- python_requires=\">=3.6\",\n- classifiers=[\n- 'Development Status :: 4 - Beta',\n- 'Environment :: Web Environment',\n- 'Framework :: Django',\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: BSD License',\n- 'Operating System :: OS Independent',\n- 'Natural Language :: English',\n- 'Programming Language :: Python :: 3',\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- 'Topic :: Internet :: WWW/HTTP',\n- ]\n-)\n+setup(name=name, version=version, url=url, license=license, description=description, author=author, author_email=author_email, maintainer=maintainer, maintainer_email=maintainer_email, packages=get_packages(package), package_data=get_package_data(package), install_requires=[], long_description=long_description, long_description_content_type='text/markdown', python_requires='>=3.6', classifiers=['Development Status :: 4 - Beta', 'Environment :: Web Environment', 'Framework :: Django', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Natural Language :: English', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Topic :: Internet :: WWW/HTTP'])\n\\ No newline at end of file\n--- setup_marshmallow-code__django-rest-marshmallow.sh\n+++ setup_marshmallow-code__django-rest-marshmallow.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_marshmallow-code__django-rest-marshmallow.sh\n+++ test_marshmallow-code__django-rest-marshmallow.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "--- tests/test_marshmallow.py\n+++ tests/test_marshmallow.py\n@@ -1,11 +1,11 @@\n+import typing\n from datetime import date\n+from importlib.metadata import version\n \n from rest_marshmallow import Schema, fields\n \n \n-import marshmallow\n-\n-IS_MARSHMALLOW_1 = marshmallow.__version__.split('.')[0] == '1'\n+IS_MARSHMALLOW_1 = version('marshmallow').split('.')[0] == '1'\n \n \n class Object(object):\n", "gold_patch": "--- rest_marshmallow/__init__.py\n+++ rest_marshmallow/__init__.py\n@@ -1,11 +1,11 @@\n-import marshmallow\n from marshmallow import Schema as MarshmallowSchema\n from marshmallow import fields # noqa\n from marshmallow.exceptions import ValidationError as MarshmallowValidationError\n from rest_framework.serializers import BaseSerializer, ValidationError\n+from importlib.metadata import version\n \n \n-IS_MARSHMALLOW_LT_3 = int(marshmallow.__version__.split('.')[0]) < 3\n+IS_MARSHMALLOW_LT_3 = int(version('marshmallow').split('.')[0]) < 3\n \n \n __version__ = '4.0.2'\n@@ -33,6 +33,10 @@\n schema_kwargs[key] = kwargs.pop(key)\n \n super(Schema, self).__init__(*args, **kwargs)\n+\n+ context = schema_kwargs.pop('context', None)\n+ self.context = context\n+\n # XXX: Remove parent attribute so that Field.root resolves properly\n # https://github.com/marshmallow-code/django-rest-marshmallow/issues/131#issuecomment-601089549\n delattr(self, 'parent')\n", "reproduction_target_date": "2021-06-02", "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 marshmallow-code__django-rest-marshmallow .\n\nRUN bash /work/setup_marshmallow-code__django-rest-marshmallow.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_marshmallow-code__django-rest-marshmallow.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "asgiref==3.9.1\nclick==8.2.1\ncoverage==7.10.1\nDjango==5.2.4\ndjangorestframework==3.16.0\nflake8==7.3.0\nghp-import==2.1.0\niniconfig==2.1.0\nJinja2==3.1.6\nMarkdown==3.8.2\nMarkupSafe==3.0.2\nmarshmallow==4.0.0\nmccabe==0.7.0\nmergedeep==1.3.4\nmkdocs==1.6.1\nmkdocs-get-deps==0.2.0\npackaging==25.0\npathspec==0.12.1\nplatformdirs==4.3.8\npluggy==1.6.0\npycodestyle==2.14.0\npyflakes==3.4.0\nPygments==2.19.2\npytest==8.4.1\npytest-cov==6.2.1\npytest-django==4.11.1\npython-dateutil==2.9.0.post0\nPyYAML==6.0.2\npyyaml_env_tag==1.1\nsix==1.17.0\nsqlparse==0.5.3\nwatchdog==6.0.0\n", "test_type": "pytest", "test_files": "tests/test_marshmallow.py", "test_count": 10, "related_modules": "marshmallow", "py_file_count": 6, "total_loc_python": 353, "difficulty": "Medium", "license": "ISC"} {"repo_name": "home-assistant-libs/pytradfri", "repo_url": "https://github.com/home-assistant-libs/pytradfri", "commit_hash": "0d7bfbfc63670c050570c96bf3f4a1b20c8091a3", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,3 +1,3 @@\n-aiocoap==0.4.7\n-DTLSSocket==0.1.16\n-pydantic==1.10.9\n+aiocoap\n+DTLSSocket\n+pydantic\n\\ No newline at end of file\n--- requirements_test.txt\n+++ requirements_test.txt\n@@ -1,10 +1,10 @@\n-black==23.7.0\n-coverage==7.3.0\n-mypy==1.5.1\n-pre-commit==3.3.3\n-pylint==2.17.5\n-pylint_strict_informational==0.1\n-pytest==7.4.0\n-pytest-asyncio==0.21.1\n-pytest-cov==4.1.0\n-pytest-timeout==2.1.0\n+black\n+coverage\n+mypy\n+pre-commit\n+pylint\n+pylint_strict_informational\n+pytest\n+pytest-asyncio\n+pytest-cov\n+pytest-timeout\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,48 +1,13 @@\n-#!/usr/bin/env python3\n \"\"\"Set up pytradfri.\"\"\"\n from pathlib import Path\n-\n from setuptools import find_packages, setup\n-\n PROJECT_DIR = Path(__file__).parent.resolve()\n-README_FILE = PROJECT_DIR / \"README.md\"\n-LONG_DESCRIPTION = README_FILE.read_text(encoding=\"utf-8\")\n-\n-VERSION = (PROJECT_DIR / \"pytradfri\" / \"VERSION\").read_text().strip()\n-\n-GITHUB_URL = \"https://github.com/home-assistant-libs/pytradfri\"\n-DOWNLOAD_URL = f\"{GITHUB_URL}/archive/{VERSION}.zip\"\n-\n-EXTRAS_REQUIRE = {\"async\": [\"aiocoap~=0.4.5\", \"DTLSSocket~=0.1.12\"]}\n-INSTALL_REQUIRES = [\"pydantic\"]\n-PACKAGES = find_packages(exclude=[\"tests\", \"tests.*\"])\n-\n-setup(\n- name=\"pytradfri\",\n- packages=PACKAGES,\n- python_requires=\">=3.10\",\n- version=VERSION,\n- description=\"IKEA Trådfri/Tradfri API. Control and observe your \"\n- \"lights from Python.\",\n- long_description=LONG_DESCRIPTION,\n- author=\"balloob, lwis, ggravlingen, janiversen\",\n- author_email=\"no@email.com\",\n- long_description_content_type=\"text/markdown\",\n- url=GITHUB_URL,\n- package_data={\"pytradfri\": [\"py.typed\"]},\n- include_package_data=True,\n- license=\"MIT\",\n- keywords=\"ikea tradfri api iot light homeautomation\",\n- download_url=DOWNLOAD_URL,\n- extras_require=EXTRAS_REQUIRE,\n- install_requires=INSTALL_REQUIRES,\n- classifiers=[\n- \"Development Status :: 5 - Production/Stable\",\n- \"Intended Audience :: Developers\",\n- \"Natural Language :: English\",\n- \"Programming Language :: Python :: 3\",\n- \"Programming Language :: Python :: 3.10\",\n- \"Programming Language :: Python :: 3.11\",\n- \"Topic :: Home Automation\",\n- ],\n-)\n+README_FILE = PROJECT_DIR / 'README.md'\n+LONG_DESCRIPTION = README_FILE.read_text(encoding='utf-8')\n+VERSION = (PROJECT_DIR / 'pytradfri' / 'VERSION').read_text().strip()\n+GITHUB_URL = 'https://github.com/home-assistant-libs/pytradfri'\n+DOWNLOAD_URL = f'{GITHUB_URL}/archive/{VERSION}.zip'\n+EXTRAS_REQUIRE = {'async': ['aiocoap~=0.4.5', 'DTLSSocket~=0.1.12']}\n+INSTALL_REQUIRES = ['pydantic']\n+PACKAGES = find_packages(exclude=['tests', 'tests.*'])\n+setup(name='pytradfri', packages=PACKAGES, python_requires='>=3.10', version=VERSION, description='IKEA Trådfri/Tradfri API. Control and observe your lights from Python.', long_description=LONG_DESCRIPTION, author='balloob, lwis, ggravlingen, janiversen', author_email='no@email.com', long_description_content_type='text/markdown', url=GITHUB_URL, package_data={'pytradfri': ['py.typed']}, include_package_data=True, license='MIT', keywords='ikea tradfri api iot light homeautomation', download_url=DOWNLOAD_URL, extras_require=EXTRAS_REQUIRE, install_requires=INSTALL_REQUIRES, classifiers=['Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'Natural Language :: English', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Topic :: Home Automation'])\n\\ No newline at end of file\n--- setup_home-assistant-libs__pytradfri.sh\n+++ setup_home-assistant-libs__pytradfri.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements_test.txt\n+pip install -r requirements.txt\n+pip install pytest\n--- test_home-assistant-libs__pytradfri.sh\n+++ test_home-assistant-libs__pytradfri.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- pytradfri/device/__init__.py\n+++ pytradfri/device/__init__.py\n@@ -43,26 +43,26 @@\n model_number: str = Field(alias=ATTR_DEVICE_MODEL_NUMBER)\n serial: str = Field(alias=ATTR_DEVICE_SERIAL)\n firmware_version: str = Field(alias=ATTR_DEVICE_FIRMWARE_VERSION)\n- power_source: int | None = Field(alias=ATTR_DEVICE_POWER_SOURCE)\n- battery_level: int | None = Field(alias=ATTR_DEVICE_BATTERY)\n+ power_source: int | None = Field(alias=ATTR_DEVICE_POWER_SOURCE, default=None)\n+ battery_level: int | None = Field(alias=ATTR_DEVICE_BATTERY, default=None)\n \n \n class DeviceResponse(ApiResourceResponse):\n \"\"\"Represent a device response.\"\"\"\n \n air_purifier_control: list[AirPurifierResponse] | None = Field(\n- alias=ROOT_AIR_PURIFIER\n+ alias=ROOT_AIR_PURIFIER, default=None\n )\n application_type: int = Field(alias=ATTR_APPLICATION_TYPE)\n- blind_control: list[BlindResponse] | None = Field(alias=ATTR_START_BLINDS)\n+ blind_control: list[BlindResponse] | None = Field(alias=ATTR_START_BLINDS, default=None)\n device_info: DeviceInfoResponse = Field(alias=ATTR_DEVICE_INFO)\n- last_seen: int | None = Field(alias=ATTR_LAST_SEEN)\n- light_control: list[LightResponse] | None = Field(alias=ATTR_LIGHT_CONTROL)\n+ last_seen: int | None = Field(alias=ATTR_LAST_SEEN, default=None)\n+ light_control: list[LightResponse] | None = Field(alias=ATTR_LIGHT_CONTROL, default=None)\n reachable: int = Field(alias=ATTR_REACHABLE_STATE)\n signal_repeater_control: list[SignalRepeaterResponse] | None = Field(\n- alias=ROOT_SIGNAL_REPEATER\n+ alias=ROOT_SIGNAL_REPEATER, default=None\n )\n- socket_control: list[SocketResponse] | None = Field(alias=ATTR_SWITCH_PLUG)\n+ socket_control: list[SocketResponse] | None = Field(alias=ATTR_SWITCH_PLUG, default=None)\n \n \n class Device(ApiResource):\n--- pytradfri/device/light.py\n+++ pytradfri/device/light.py\n@@ -31,13 +31,13 @@\n class LightResponse(BaseResponse):\n \"\"\"Represent API response for a blind.\"\"\"\n \n- color_mireds: int | None = Field(alias=ATTR_LIGHT_MIREDS)\n- color_hex: str | None = Field(alias=ATTR_LIGHT_COLOR_HEX)\n- color_xy_x: int | None = Field(alias=ATTR_LIGHT_COLOR_X)\n- color_xy_y: int | None = Field(alias=ATTR_LIGHT_COLOR_Y)\n- color_hue: int | None = Field(alias=ATTR_LIGHT_COLOR_HUE)\n- color_saturation: int | None = Field(alias=ATTR_LIGHT_COLOR_SATURATION)\n- dimmer: int | None = Field(alias=ATTR_LIGHT_DIMMER)\n+ color_mireds: int | None = Field(alias=ATTR_LIGHT_MIREDS, default=None)\n+ color_hex: str | None = Field(alias=ATTR_LIGHT_COLOR_HEX, default=None)\n+ color_xy_x: int | None = Field(alias=ATTR_LIGHT_COLOR_X, default=None)\n+ color_xy_y: int | None = Field(alias=ATTR_LIGHT_COLOR_Y, default=None)\n+ color_hue: int | None = Field(alias=ATTR_LIGHT_COLOR_HUE, default=None)\n+ color_saturation: int | None = Field(alias=ATTR_LIGHT_COLOR_SATURATION, default=None)\n+ dimmer: int | None = Field(alias=ATTR_LIGHT_DIMMER, default=None)\n state: int = Field(alias=ATTR_DEVICE_STATE)\n \n \n--- pytradfri/gateway.py\n+++ pytradfri/gateway.py\n@@ -46,11 +46,11 @@\n \"\"\"Represent API response for the gateway.\"\"\"\n \n certificate_provisioned: int = Field(alias=ATTR_CERTIFICATE_PROV)\n- current_time: int | None = Field(alias=ATTR_CURRENT_TIME_UNIX)\n+ current_time: int | None = Field(alias=ATTR_CURRENT_TIME_UNIX, default=None)\n current_time_iso8601: str = Field(alias=ATTR_CURRENT_TIME_ISO8601)\n commissioning_mode: int = Field(alias=ATTR_COMMISSIONING_MODE)\n firmware_version: str = Field(alias=ATTR_FIRMWARE_VERSION)\n- first_setup: int | None = Field(alias=ATTR_FIRST_SETUP)\n+ first_setup: int | None = Field(alias=ATTR_FIRST_SETUP, default=None)\n homekit_id: str = Field(alias=ATTR_HOMEKIT_ID)\n id: str = Field(alias=ATTR_GATEWAY_ID)\n ntp_server: str = Field(alias=ATTR_NTP)\n--- pytradfri/group.py\n+++ pytradfri/group.py\n@@ -42,10 +42,10 @@\n class GroupResponse(ApiResourceResponse):\n \"\"\"Represent API response for a blind.\"\"\"\n \n- color_hex: str | None = Field(alias=ATTR_LIGHT_COLOR_HEX)\n+ color_hex: str | None = Field(alias=ATTR_LIGHT_COLOR_HEX, default=None)\n dimmer: int = Field(alias=ATTR_LIGHT_DIMMER)\n group_members: dict[str, dict[str, list[int]]] = Field(alias=ATTR_GROUP_MEMBERS)\n- mood_id: str = Field(alias=ATTR_MOOD)\n+ mood_id: str = Field(alias=ATTR_MOOD, coerce_numbers_to_str=True)\n state: int = Field(alias=ATTR_DEVICE_STATE)\n \n \n--- pytradfri/resource.py\n+++ pytradfri/resource.py\n@@ -24,9 +24,9 @@\n class ApiResourceResponse(BaseResponse):\n \"\"\"Represent a resource response.\"\"\"\n \n- name: str | None = Field(alias=ATTR_NAME)\n- created_at: int | None = Field(alias=ATTR_CREATED_AT)\n- ota_update_state: int | None = Field(alias=ATTR_OTA_UPDATE_STATE)\n+ name: str | None = Field(alias=ATTR_NAME, default=None)\n+ created_at: int | None = Field(alias=ATTR_CREATED_AT, default=None)\n+ ota_update_state: int | None = Field(alias=ATTR_OTA_UPDATE_STATE, default=None)\n \n \n class ApiResource:\n--- pytradfri/smart_task.py\n+++ pytradfri/smart_task.py\n@@ -66,8 +66,8 @@\n class StartActionResponse(BaseResponse):\n \"\"\"Represent a start action response.\"\"\"\n \n- transition_time: int | None = Field(alias=ATTR_TRANSITION_TIME)\n- dimmer: int | None = Field(alias=ATTR_LIGHT_DIMMER)\n+ transition_time: int | None = Field(alias=ATTR_TRANSITION_TIME, default=None)\n+ dimmer: int | None = Field(alias=ATTR_LIGHT_DIMMER, default=None)\n \n \n class TimeIntervalResponse(BaseModel):\n", "reproduction_target_date": "2023-08-28", "reproduction_target_version": "3.11.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 home-assistant-libs__pytradfri .\n\nRUN bash /work/setup_home-assistant-libs__pytradfri.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_home-assistant-libs__pytradfri.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "aiocoap==0.4.14\nannotated-types==0.7.0\nastroid==3.3.11\nblack==25.1.0\ncfgv==3.4.0\nclick==8.2.1\ncoverage==7.10.1\ndill==0.4.0\ndistlib==0.4.0\nDTLSSocket==0.2.3\nfilelock==3.18.0\nidentify==2.6.12\niniconfig==2.1.0\nisort==6.0.1\nmccabe==0.7.0\nmypy==1.17.0\nmypy_extensions==1.1.0\nnodeenv==1.9.1\npackaging==25.0\npathspec==0.12.1\nplatformdirs==4.3.8\npluggy==1.6.0\npre_commit==4.2.0\npydantic==2.11.7\npydantic_core==2.33.2\nPygments==2.19.2\npylint==3.3.7\npylint-strict-informational==0.1\npytest==8.4.1\npytest-asyncio==1.1.0\npytest-cov==6.2.1\npytest-timeout==2.4.0\nPyYAML==6.0.2\ntomlkit==0.13.3\ntyping-inspection==0.4.1\ntyping_extensions==4.14.1\nvirtualenv==20.32.0\n", "test_type": "pytest", "test_files": "tests/test_mood.py, tests/test_signal_repeater.py, tests/test_air_purifiers.py, tests/test_color.py, tests/test_blinds.py, tests/test_util.py, tests/api/test_libcoap_api.py, tests/test_group.py, tests/test_smart_task.py, tests/test_gateway.py, tests/api/test_aiocoap_api.py, tests/test_device.py, tests/test_command.py, tests/test_light.py, tests/test_socket.py", "test_count": 169, "related_modules": "pydantic", "py_file_count": 54, "total_loc_python": 6494, "difficulty": "Medium", "license": "MIT"} {"repo_name": "lawlesst/vivo-rdflib-sparqlstore", "repo_url": "https://github.com/lawlesst/vivo-rdflib-sparqlstore", "commit_hash": "9e3a3d8efb8ab3a247c49cb64af639e2bdc2425b", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,3 +1,3 @@\n-SPARQLWrapper>=1.8\n-rdflib>=4.2.2\n-click>=5.0\n+SPARQLWrapper\n+rdflib\n+click\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,40 +1,4 @@\n from setuptools import setup, find_packages\n-\n description = 'RDFLib SPARQLStore and SPARQLUpdateStore implementation for VIVO.'\n-\n-long_description = \"\"\"\n-=======================\n-rdflib-vivo-sparqlstore\n-=======================\n-\n-A `RDFLib SPARQLStore implementation `_ for the\n-`VIVO `_ `SPARQL query and update `_ APIs.\n-\n-This library supports Python 2.7 and 3.5+.\n-\n-See `Github `_ for more details.\n-\n-\"\"\"\n-\n-setup(\n- name='vivo-rdflib-sparqlstore',\n- version='0.4',\n- url='https://github.com/lawlesst/rdflib-vivo-sparqlstore',\n- author='Ted Lawless',\n- author_email='lawlesst@gmail.com',\n- long_description=long_description,\n- python_requires='>=2.7',\n- packages=find_packages(),\n- install_requires=[\n- 'rdflib>=4.2',\n- 'SPARQLWrapper>=1.8',\n- 'click>=5.0'\n- ],\n- include_package_data=True,\n- description=description,\n- entry_points='''\n- [console_scripts]\n- vivoUpdate=scripts.command:process\n- '''\n-)\n-\n+long_description = '\\n=======================\\nrdflib-vivo-sparqlstore\\n=======================\\n\\nA `RDFLib SPARQLStore implementation `_ for the\\n`VIVO `_ `SPARQL query and update `_ APIs.\\n\\nThis library supports Python 2.7 and 3.5+.\\n\\nSee `Github `_ for more details.\\n\\n'\n+setup(name='vivo-rdflib-sparqlstore', version='0.4', url='https://github.com/lawlesst/rdflib-vivo-sparqlstore', author='Ted Lawless', author_email='lawlesst@gmail.com', long_description=long_description, python_requires='>=2.7', packages=find_packages(), install_requires=['rdflib', 'SPARQLWrapper', 'click'], include_package_data=True, description=description, entry_points='\\n [console_scripts]\\n vivoUpdate=scripts.command:process\\n ')\n\\ No newline at end of file\n--- setup_lawlesst__vivo-rdflib-sparqlstore.sh\n+++ setup_lawlesst__vivo-rdflib-sparqlstore.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_lawlesst__vivo-rdflib-sparqlstore.sh\n+++ test_lawlesst__vivo-rdflib-sparqlstore.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_graph_utils\n", "test_patch": "", "gold_patch": "--- vstore/graph_utils.py\n+++ vstore/graph_utils.py\n@@ -52,10 +52,10 @@\n for set_size, nt in self.nt_yielder(graph, size):\n if is_add is True:\n logger.info(\"Adding {} statements to <{}>.\".format(set_size, named_graph))\n- self.update(u'INSERT DATA { GRAPH %s { %s } }' % (context.n3(), nt.decode('utf-8')))\n+ self.update(u'INSERT DATA { GRAPH %s { %s } }' % (context.n3(), nt))\n else:\n logger.info(\"Removing {} statements from <{}>.\".format(set_size, named_graph))\n- self.update(u'DELETE DATA { GRAPH %s { %s } }' % (context.n3(), nt.decode('utf-8')))\n+ self.update(u'DELETE DATA { GRAPH %s { %s } }' % (context.n3(), nt))\n return total\n \n def bulk_add(self, named_graph, add, size=DEFAULT_CHUNK_SIZE):\n--- vstore/vstore.py\n+++ vstore/vstore.py\n@@ -8,12 +8,12 @@\n from rdflib.plugins.stores.sparqlstore import (\n SPARQLStore,\n SPARQLUpdateStore,\n- NSSPARQLWrapper,\n+ SPARQLConnector\n )\n \n from .graph_utils import VIVOUtilsGraph\n \n-class VIVOWrapper(NSSPARQLWrapper):\n+class VIVOWrapper(SPARQLConnector):\n def setQuery(self, query):\n \"\"\"\n Set the SPARQL query text and set the VIVO custom\n", "reproduction_target_date": "2018-09-02", "reproduction_target_version": "3.7.0", "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 lawlesst__vivo-rdflib-sparqlstore .\n\nRUN bash /work/setup_lawlesst__vivo-rdflib-sparqlstore.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_lawlesst__vivo-rdflib-sparqlstore.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "click==8.2.1\npyparsing==3.2.3\nrdflib==7.1.4\nSPARQLWrapper==2.0.0\n", "test_type": "unittest", "test_files": "tests/test_graph_utils.py", "test_count": 4, "related_modules": "rdflib", "py_file_count": 10, "total_loc_python": 425, "difficulty": "Medium", "license": "MIT"} {"repo_name": "dlebech/lyrics-generator", "repo_url": "https://github.com/dlebech/lyrics-generator", "commit_hash": "074a6edcaff7d4d524576ae6401e4c78ae18be8e", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,3 +1,3 @@\n -r requirements_base.txt\n-tensorflow==2.7.2\n-tensorflowjs==3.6.0\n+tensorflow\n+tensorflowjs\n\\ No newline at end of file\n--- requirements_base.txt\n+++ requirements_base.txt\n@@ -1,11 +1,11 @@\n-better-profanity==0.6.1\n-gensim==3.8.0\n-google-compute-engine==2.8.3\n-jmespath==0.9.4\n-pandas==1.1.5\n-scikit-learn==0.24.2\n-scipy==1.5.4\n-six==1.15.0\n-tensorflow-hub==0.9.0\n-tensorflow_text==2.7.3\n-urllib3==1.26.5\n+better-profanity\n+gensim\n+google-compute-engine\n+jmespath\n+pandas\n+scikit-learn\n+scipy\n+six\n+tensorflow-hub\n+tensorflow_text\n+urllib3\n\\ No newline at end of file\n--- requirements_dev.txt\n+++ requirements_dev.txt\n@@ -1,4 +1,4 @@\n -r requirements.txt\n-black==22.6.0\n-pytest==7.1.2\n-pytest-cov==3.0.0\n+black\n+pytest\n+pytest-cov\n\\ No newline at end of file\n--- setup_dlebech__lyrics-generator.sh\n+++ setup_dlebech__lyrics-generator.sh\n@@ -0,0 +1,7 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install -r requirements_dev.txt\n+pip install -r requirements_base.txt\n+pip install pytest\n--- test_dlebech__lyrics-generator.sh\n+++ test_dlebech__lyrics-generator.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "--- tests/embedding_test.py\n+++ tests/embedding_test.py\n@@ -22,7 +22,7 @@\n )\n \n # It excludes newlines for this example\n- assert len(w2v.wv.vocab) == 3\n+ assert len(w2v.wv) == 3\n assert len(w2v.wv[\"woof\"]) == 5\n \n with open(export_dir + \"/word2vec.txt\") as f:\n", "gold_patch": "--- lyrics/embedding.py\n+++ lyrics/embedding.py\n@@ -39,7 +39,7 @@\n )\n )\n now = datetime.datetime.now()\n- model = Word2Vec(sequences, size=embedding_dim, workers=_num_workers, min_count=1)\n+ model = Word2Vec(sequences, vector_size=embedding_dim, workers=_num_workers, min_count=1)\n print(\"Took {}\".format(datetime.datetime.now() - now))\n \n # Save the model both in the gensim format but also as a text file, similar\n@@ -47,7 +47,7 @@\n model.save(f\"{data_dir}/word2vec{name_suffix}.model\")\n with open(f\"{data_dir}/word2vec{name_suffix}.txt\", \"w\") as f:\n writer = csv.writer(f, delimiter=\" \", quoting=csv.QUOTE_MINIMAL)\n- for word in model.wv.vocab:\n+ for word in model.wv.index_to_key:\n word_vector = model.wv[word]\n writer.writerow([word] + [\"{:.5f}\".format(i) for i in word_vector])\n \n", "reproduction_target_date": "2022-07-02", "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 dlebech__lyrics-generator .\n\nRUN bash /work/setup_dlebech__lyrics-generator.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_dlebech__lyrics-generator.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "absl-py==2.3.1\naiofiles==24.1.0\nastunparse==1.6.3\nbetter-profanity==0.7.0\nblack==25.1.0\nboto==2.49.0\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\nchex==0.1.90\nclick==8.2.1\ncoverage==7.10.1\ndistro==1.9.0\netils==1.13.0\nflatbuffers==25.2.10\nflax==0.11.0\nfsspec==2025.7.0\ngast==0.6.0\ngensim==4.3.3\ngoogle-compute-engine==2.8.13\ngoogle-pasta==0.2.0\ngrpcio==1.74.0\nh5py==3.14.0\nhumanize==4.12.3\nidna==3.10\nimportlib_resources==6.5.2\niniconfig==2.1.0\njax==0.7.0\njaxlib==0.7.0\njmespath==1.0.1\njoblib==1.5.1\nkeras==3.11.0\nlibclang==18.1.1\nMarkdown==3.8.2\nmarkdown-it-py==3.0.0\nMarkupSafe==3.0.2\nmdurl==0.1.2\nml_dtypes==0.5.3\nmsgpack==1.1.1\nmypy_extensions==1.1.0\nnamex==0.1.0\nnest-asyncio==1.6.0\nnumpy==1.26.4\nopt_einsum==3.4.0\noptax==0.2.5\noptree==0.17.0\norbax-checkpoint==0.11.20\npackaging==23.2\npandas==2.3.1\npathspec==0.12.1\nplatformdirs==4.3.8\npluggy==1.6.0\nprotobuf==5.29.5\nPygments==2.19.2\npytest==8.4.1\npytest-cov==6.2.1\npython-dateutil==2.9.0.post0\npytz==2025.2\nPyYAML==6.0.2\nrequests==2.32.4\nrich==14.1.0\nscikit-learn==1.7.1\nscipy==1.13.1\nsetuptools==80.9.0\nsimplejson==3.20.1\nsix==1.17.0\nsmart_open==7.3.0.post1\ntensorboard==2.19.0\ntensorboard-data-server==0.7.2\ntensorflow==2.19.0\ntensorflow-hub==0.16.1\ntensorflow-text==2.19.0\ntensorflow_decision_forests==1.12.0\ntensorflowjs==4.22.0\ntensorstore==0.1.76\ntermcolor==3.1.0\ntf_keras==2.19.0\nthreadpoolctl==3.6.0\ntoolz==1.0.0\ntreescope==0.1.9\ntyping_extensions==4.14.1\ntzdata==2025.2\nurllib3==2.5.0\nWerkzeug==3.1.3\nwheel==0.45.1\nwrapt==1.17.2\nwurlitzer==3.1.1\nydf==0.13.0\nzipp==3.23.0\n", "test_type": "pytest", "test_files": "tests/embedding_test.py, tests/train_test.py, tests/util_test.py", "test_count": 21, "related_modules": "gensim", "py_file_count": 12, "total_loc_python": 1630, "difficulty": "Easy", "license": "MIT"} {"repo_name": "manicmaniac/sqlalchemy-repr", "repo_url": "https://github.com/manicmaniac/sqlalchemy-repr", "commit_hash": "a02c45b21e0ced3234e70ebfeec1b40070db6472", "patch": "--- setup.py\n+++ setup.py\n@@ -1,30 +1,2 @@\n from setuptools import setup\n-\n-setup(\n- name='sqlalchemy-repr',\n- version='0.1.0',\n- description='Automatically generates pretty repr of a SQLAlchemy model.',\n- long_description=open('README.rst').read(),\n- keywords='pprint pretty print repr sqlalchemy extension',\n- author='Ryosuke Ito',\n- author_email='rito.0305@gmail.com',\n- url='https://github.com/manicmaniac/sqlalchemy-repr',\n- classifiers=[\n- 'Development Status :: 4 - Beta',\n- 'Operating System :: OS Independent',\n- 'Programming Language :: Python',\n- 'Programming Language :: Python :: 2',\n- 'Programming Language :: Python :: 2.7',\n- 'Programming Language :: Python :: 3',\n- 'Programming Language :: Python :: 3.5',\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- 'Programming Language :: Python :: 3.10',\n- 'Topic :: Database :: Front-Ends',\n- ],\n- py_modules=['sqlalchemy_repr'],\n- install_requires=['SQLAlchemy'],\n- test_suite='tests',\n-)\n+setup(name='sqlalchemy-repr', version='0.1.0', description='Automatically generates pretty repr of a SQLAlchemy model.', long_description=open('README.rst').read(), keywords='pprint pretty print repr sqlalchemy extension', author='Ryosuke Ito', author_email='rito.0305@gmail.com', url='https://github.com/manicmaniac/sqlalchemy-repr', classifiers=['Development Status :: 4 - Beta', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Topic :: Database :: Front-Ends'], py_modules=['sqlalchemy_repr'], install_requires=['SQLAlchemy'], test_suite='tests')\n\\ No newline at end of file\n--- setup_manicmaniac__sqlalchemy-repr.sh\n+++ setup_manicmaniac__sqlalchemy-repr.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n--- test_manicmaniac__sqlalchemy-repr.sh\n+++ test_manicmaniac__sqlalchemy-repr.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_sqlalchemy_repr\n", "test_patch": "", "gold_patch": "--- sqlalchemy_repr.py\n+++ sqlalchemy_repr.py\n@@ -63,9 +63,10 @@\n def __init__(self, *args, **kwargs):\n indent = kwargs.pop('indent', None)\n if indent is None:\n- self.indent = ' ' * 4\n+ kwargs[\"indent\"] = ' ' * 4\n else:\n- self.indent = indent\n+ kwargs[\"indent\"] = indent\n+\n if sys.version_info < (3,):\n Repr.__init__(self, *args, **kwargs)\n else:\n", "reproduction_target_date": "2022-10-20", "reproduction_target_version": "3.10.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 manicmaniac__sqlalchemy-repr .\n\nRUN bash /work/setup_manicmaniac__sqlalchemy-repr.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_manicmaniac__sqlalchemy-repr.sh\"]\n", "version_source": "default", "script_source": "setup.py", "dependency_versions": "greenlet==3.2.3\nSQLAlchemy==2.0.42\nsqlalchemy-repr @ file:///work\ntyping_extensions==4.14.1\n", "test_type": "unittest", "test_files": "tests/test_sqlalchemy_repr.py", "test_count": 6, "related_modules": "builtin", "py_file_count": 5, "total_loc_python": 217, "difficulty": "Medium", "license": "MIT"} {"repo_name": "passaH2O/dorado", "repo_url": "https://github.com/passaH2O/dorado", "commit_hash": "8c90ac9043f9932a6e07559a7d6180d3b66bb652", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -2,4 +2,4 @@\n matplotlib\n scipy\n future\n-tqdm\n+tqdm\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,24 +1,3 @@\n import os\n from setuptools import setup, find_packages\n-\n-setup(\n- name = 'pydorado',\n- version = '2.5.3',\n- license = 'MIT',\n- description = 'dorado - Lagrangian particle routing routine via weighted random walks',\n- author = 'J. Hariharan, K. Wright, P. Passalacqua',\n- author_email = 'jayaram.hariharan@utexas.edu',\n- url = 'https://github.com/passaH2O/dorado',\n- packages = find_packages(exclude=['*.tests']),\n- package_data = {'' : ['*.txt', '*.npz']},\n- long_description = 'See project webpage for details: https://github.com/passaH2O/dorado',\n- classifiers = [\n- 'Programming Language :: Python :: 2.7',\n- 'Programming Language :: Python :: 3.7',\n- 'Programming Language :: Python :: 3.8',\n-\t'Programming Language :: Python :: 3.9',\n- 'Programming Language :: Python :: 3.10',\n- 'Programming Language :: Python :: 3.11'],\n- install_requires = ['numpy','matplotlib','scipy',\n- 'future','tqdm'],\n-)\n+setup(name='pydorado', version='2.5.3', license='MIT', description='dorado - Lagrangian particle routing routine via weighted random walks', author='J. Hariharan, K. Wright, P. Passalacqua', author_email='jayaram.hariharan@utexas.edu', url='https://github.com/passaH2O/dorado', packages=find_packages(exclude=['*.tests']), package_data={'': ['*.txt', '*.npz']}, long_description='See project webpage for details: https://github.com/passaH2O/dorado', classifiers=['Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11'], install_requires=['numpy', 'matplotlib', 'scipy', 'future', 'tqdm'])\n\\ No newline at end of file\n--- setup_passaH2O__dorado.sh\n+++ setup_passaH2O__dorado.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_passaH2O__dorado.sh\n+++ test_passaH2O__dorado.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- dorado/particle_track.py\n+++ dorado/particle_track.py\n@@ -1203,7 +1203,7 @@\n if k_nearest_neighbors == 1: # Only use nearest neighbor\n index_qFun = interpolate.NearestNDInterpolator(inputXY,\n np.arange(len(x), dtype='int64').transpose())\n- gridqInd = index_qFun(gridXY_array)\n+ gridqInd = index_qFun(gridXY_array).astype(np.int64)\n \n # Function to do the interpolation\n def interp_func(data):\n", "reproduction_target_date": "2023-06-20", "reproduction_target_version": "3.11.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 passaH2O__dorado .\n\nRUN bash /work/setup_passaH2O__dorado.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_passaH2O__dorado.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "contourpy==1.3.3\ncycler==0.12.1\nfonttools==4.59.0\nfuture==1.0.0\niniconfig==2.1.0\nkiwisolver==1.4.8\nmatplotlib==3.10.3\nnumpy==2.3.2\npackaging==25.0\npillow==11.3.0\npluggy==1.6.0\nPygments==2.19.2\npyparsing==3.2.3\npytest==8.4.1\npython-dateutil==2.9.0.post0\nscipy==1.16.1\nsix==1.17.0\ntqdm==4.67.1\n", "test_type": "pytest", "test_files": "tests/test_particle_track.py, tests/test_lagrangian_walker.py, tests/test_examplecases.py", "test_count": 91, "related_modules": "scipy", "py_file_count": 29, "total_loc_python": 5346, "difficulty": "Medium", "license": "MIT"} {"repo_name": "lccruz/helloflask", "repo_url": "https://github.com/lccruz/helloflask", "commit_hash": "b8a81d52992b1d1446c2237a91f15e164dbdefae", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,4 +1,4 @@\n-Flask==1.1.1\n-gunicorn==19.9.0\n-SQLAlchemy==1.2.16\n-Flask-SQLAlchemy==2.3.2\n+Flask\n+gunicorn\n+SQLAlchemy\n+Flask-SQLAlchemy\n\\ No newline at end of file\n--- setup_lccruz__helloflask.sh\n+++ setup_lccruz__helloflask.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_lccruz__helloflask.sh\n+++ test_lccruz__helloflask.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests\n", "test_patch": "", "gold_patch": "--- app.py\n+++ app.py\n@@ -4,13 +4,6 @@\n from models import ArtistModel\n \n \n-app = Flask(__name__, template_folder='templates')\n-app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db'\n-app.config[\"SQLALCHEMY_TRACK_MODIFICATIONS\"] = False\n-db.init_app(app)\n-\n-\n-@app.before_first_request\n def create_tables():\n db.drop_all()\n db.create_all()\n@@ -20,6 +13,21 @@\n fabiana.save_to_db()\n \n \n+def create_app():\n+ app = Flask(__name__, template_folder='templates')\n+ app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db'\n+ app.config[\"SQLALCHEMY_TRACK_MODIFICATIONS\"] = False\n+ db.init_app(app)\n+\n+ with app.app_context():\n+ create_tables()\n+\n+ return app\n+\n+\n+app = create_app()\n+\n+\n @app.route('/')\n def hello_world():\n message = \"Flask 4000\"\n", "reproduction_target_date": "2019-12-14", "reproduction_target_version": "3.7.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 lccruz__helloflask .\n\nRUN bash /work/setup_lccruz__helloflask.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_lccruz__helloflask.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "blinker==1.9.0\nclick==8.2.1\nFlask==3.1.1\nFlask-SQLAlchemy==3.1.1\ngreenlet==3.2.3\ngunicorn==23.0.0\nitsdangerous==2.2.0\nJinja2==3.1.6\nMarkupSafe==3.0.2\npackaging==25.0\nSQLAlchemy==2.0.42\ntyping_extensions==4.14.1\nWerkzeug==3.1.3\n", "test_type": "unittest", "test_files": "tests.py", "test_count": 2, "related_modules": "flask", "py_file_count": 5, "total_loc_python": 98, "difficulty": "Medium", "license": ""} {"repo_name": "mirandrom/PyS2", "repo_url": "https://github.com/mirandrom/PyS2", "commit_hash": "9bf44f0ad16d9ccdeadd4cff719eda2a8e42cc84", "patch": "--- setup.py\n+++ setup.py\n@@ -1,59 +1,7 @@\n from setuptools import setup, find_packages\n import pathlib\n import re\n-\n here = pathlib.Path(__file__).parent.resolve()\n-readme = (here / \"README.md\").read_text(encoding=\"utf-8\")\n-version = re.search(\n- '__version__ = \"([^\"]+)\"',\n- (here / \"s2/__init__.py\").read_text(encoding=\"utf-8\")\n-).group(1)\n-\n-setup(\n- name=\"pys2\",\n- version=version,\n- author=\"mirandrom\",\n- description=(\"PyS2 is a python wrapper for the Semantic Scholar (S2) API\"),\n-\n- long_description_content_type=\"text/markdown\",\n- long_description=readme,\n- keywords=\"semantic scholar, s2, scientific literature, citation graph\",\n- url=\"https://github.com/mirandrom/pys2/\",\n- project_urls={ \n- \"Bug Reports\": \"https://github.com/mirandrom/pys2/issues\",\n- \"Source\": \"https://github.com/mirandrom/pys2/\",\n- \"Docs\": \"https://pys2.readthedocs.org/\",\n- },\n- classifiers=[\n- \"Development Status :: 4 - Beta\",\n- \"Intended Audience :: Developers\",\n- \"Intended Audience :: Science/Research\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Natural Language :: English\",\n- \"Operating System :: OS Independent\",\n- \"Programming Language :: Python\",\n- \"Programming Language :: Python :: 3\",\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- \"Topic :: Utilities\",\n- ],\n-\n- python_requires=\">=3.6, <4\",\n- install_requires=[\n- \"requests >=2.6, <3.0\",\n- \"pydantic >=1.8, <2.0\",\n- ],\n- extras_require={\n- \"readthedocs\": [\n- \"sphinx >= 3, <4.0\",\n- \"sphinx-autodoc-typehints >= 1.11, <2.0 \"\n- ],\n- \"test\": [\n- \"betamax >=0.8, <0.9\",\n- \"pytest >=6, <7\",\n- ],\n- },\n- packages=find_packages(include=[\"s2\",\"s2.*\"]),\n-)\n\\ No newline at end of file\n+readme = (here / 'README.md').read_text(encoding='utf-8')\n+version = re.search('__version__ = \"([^\"]+)\"', (here / 's2/__init__.py').read_text(encoding='utf-8')).group(1)\n+setup(name='pys2', version=version, author='mirandrom', description='PyS2 is a python wrapper for the Semantic Scholar (S2) API', long_description_content_type='text/markdown', long_description=readme, keywords='semantic scholar, s2, scientific literature, citation graph', url='https://github.com/mirandrom/pys2/', project_urls={'Bug Reports': 'https://github.com/mirandrom/pys2/issues', 'Source': 'https://github.com/mirandrom/pys2/', 'Docs': 'https://pys2.readthedocs.org/'}, classifiers=['Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: MIT License', 'Natural Language :: English', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Topic :: Utilities'], python_requires='>=3.6', install_requires=['requests', 'pydantic'], extras_require={'readthedocs': ['sphinx', 'sphinx-autodoc-typehints'], 'test': ['betamax', 'pytest']}, packages=find_packages(include=['s2', 's2.*']))\n\\ No newline at end of file\n--- setup_mirandrom__PyS2.sh\n+++ setup_mirandrom__PyS2.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .[readthedocs,test]\n+pip install pytest\n--- test_mirandrom__PyS2.sh\n+++ test_mirandrom__PyS2.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- s2/models.py\n+++ s2/models.py\n@@ -17,9 +17,9 @@\n Semantic Scholar URL of the topic page with format\n https://www.semanticscholar.org/topic/topicId\n \"\"\"\n- topic: Optional[str]\n- topicId: Optional[str]\n- url: Optional[str]\n+ topic: Optional[str] = None\n+ topicId: Optional[str] = None\n+ url: Optional[str] = None\n \n \n class S2PaperAuthor(BaseModel):\n@@ -39,8 +39,8 @@\n but easily reconstructed as\n https://www.semanticscholar.org/author/authorId\n \"\"\"\n- authorId: Optional[str]\n- name: Optional[str]\n+ authorId: Optional[str] = None\n+ name: Optional[str] = None\n url: Optional[str] = None\n \n \n@@ -72,16 +72,16 @@\n year: (:obj:`int`, optional):\n Publication year of the paper\n \"\"\"\n- arxivId: Optional[str]\n- authors: Optional[List[S2PaperAuthor]]\n- doi: Optional[str]\n- intent: Optional[List[str]]\n- isInfluential: Optional[bool]\n- paperId: Optional[str]\n- title: Optional[str]\n- url: Optional[str]\n- venue: Optional[str]\n- year: Optional[int]\n+ arxivId: Optional[str] = None\n+ authors: Optional[List[S2PaperAuthor]] = None\n+ doi: Optional[str] = None\n+ intent: Optional[List[str]] = None\n+ isInfluential: Optional[bool] = None\n+ paperId: Optional[str] = None\n+ title: Optional[str] = None\n+ url: Optional[str] = None\n+ venue: Optional[str] = None\n+ year: Optional[int] = None\n \n \n class S2Paper(BaseModel):\n@@ -131,25 +131,25 @@\n UTC datetime when obtained from API (converted to and from\n ISO 8601 by pydantic in JSON (de)serialization)\n \"\"\"\n- abstract: Optional[str]\n- arxivId: Optional[str]\n- authors: Optional[List[S2PaperAuthor]]\n- citationVelocity: Optional[int]\n- citations: Optional[List[S2Reference]]\n- corpusId: Optional[int]\n- doi: Optional[str]\n- fieldsOfStudy: Optional[List[str]]\n- influentialCitationCount: Optional[int]\n- is_open_access: Optional[bool]\n- is_publisher_licensed: Optional[bool]\n- paperId: Optional[str]\n- references: Optional[List[S2Reference]]\n- title: Optional[str]\n- topics: Optional[List[S2Topic]]\n- url: Optional[str]\n- venue: Optional[str]\n- year: Optional[int]\n- obtained_utc: Optional[datetime]\n+ abstract: Optional[str] = None\n+ arxivId: Optional[str] = None\n+ authors: Optional[List[S2PaperAuthor]] = None\n+ citationVelocity: Optional[int] = None\n+ citations: Optional[List[S2Reference]] = None\n+ corpusId: Optional[int] = None\n+ doi: Optional[str] = None\n+ fieldsOfStudy: Optional[List[str]] = None\n+ influentialCitationCount: Optional[int] = None\n+ is_open_access: Optional[bool] = None\n+ is_publisher_licensed: Optional[bool] = None\n+ paperId: Optional[str] = None\n+ references: Optional[List[S2Reference]] = None\n+ title: Optional[str] = None\n+ topics: Optional[List[S2Topic]] = None\n+ url: Optional[str] = None\n+ venue: Optional[str] = None\n+ year: Optional[int] = None\n+ obtained_utc: Optional[datetime] = None\n \n \n class S2AuthorPaper(BaseModel):\n@@ -167,10 +167,10 @@\n Publication year of the paper\n \n \"\"\"\n- paperId: Optional[str]\n- title: Optional[str]\n- url: Optional[str]\n- year: Optional[int]\n+ paperId: Optional[str] = None\n+ title: Optional[str] = None\n+ url: Optional[str] = None\n+ year: Optional[int] = None\n \n \n class S2Author(BaseModel):\n@@ -195,10 +195,10 @@\n UTC datetime when obtained from API (converted to and from\n ISO 8601 by pydantic in JSON (de)serialization)\n \"\"\"\n- aliases: Optional[List[str]]\n- authorId: Optional[str]\n- influentialCitationCount: Optional[int]\n- name: Optional[str]\n- papers: Optional[List[S2AuthorPaper]]\n- url: Optional[str]\n- obtained_utc: Optional[datetime]\n+ aliases: Optional[List[str]] = None\n+ authorId: Optional[str] = None\n+ influentialCitationCount: Optional[int] = None\n+ name: Optional[str] = None\n+ papers: Optional[List[S2AuthorPaper]] = None\n+ url: Optional[str] = None\n+ obtained_utc: Optional[datetime] = None\n", "reproduction_target_date": "2021-04-07", "reproduction_target_version": "3.9.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 mirandrom__PyS2 .\n\nRUN bash /work/setup_mirandrom__PyS2.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_mirandrom__PyS2.sh\"]\n", "version_source": "setup.py", "script_source": "setup.py", "dependency_versions": "alabaster==1.0.0\nannotated-types==0.7.0\nbabel==2.17.0\nbetamax==0.9.0\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\ndocutils==0.21.2\nidna==3.10\nimagesize==1.4.1\niniconfig==2.1.0\nJinja2==3.1.6\nMarkupSafe==3.0.2\npackaging==25.0\npluggy==1.6.0\npydantic==2.11.7\npydantic_core==2.33.2\nPygments==2.19.2\npys2 @ file:///work\npytest==8.4.1\nrequests==2.32.4\nroman-numerals-py==3.1.0\nsnowballstemmer==3.0.1\nSphinx==8.2.3\nsphinx-autodoc-typehints==3.2.0\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\ntyping-inspection==0.4.1\ntyping_extensions==4.14.1\nurllib3==2.5.0\n", "test_type": "pytest", "test_files": "tests/db/test_json.py, tests/graph/test_builder.py, tests/test_api.py, tests/store/test_json.py, tests/graph/test_hopper.py", "test_count": 16, "related_modules": "pydantic", "py_file_count": 24, "total_loc_python": 1891, "difficulty": "Easy", "license": "MIT"} {"repo_name": "pyropy/exceliser", "repo_url": "https://github.com/pyropy/exceliser", "commit_hash": "2d2838b9673a947577cd536a85bd4e94d5ef4309", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,2 +1,2 @@\n-openpyxl>=2.6.3\n-pytest==5.4.1\n+openpyxl\n+pytest\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,34 +1,2 @@\n from setuptools import setup\n-\n-setup(\n- name=\"exceliser\",\n- packages=[\"exceliser\"],\n- version=\"0.0.3\",\n- license=\"MIT\",\n- description=\"Exceliser is a tool for helping you serialize your excel documents to json or deserialize json back to excel document.\",\n- author=\"Srdjan Stankovic\",\n- author_email=\"stankovic.srdjo@gmail.com\",\n- url=\"https://github.com/pyropy/exceliser\",\n- download_url=\"https://github.com/pyropy/exceliser/archive/0.0.2b.tar.gz\",\n- keywords=[\n- \"Excel\",\n- \"JSON\",\n- \"Excel to JSON\",\n- \"JSON to Excel\",\n- \"Serializer\",\n- \"Deserializer\",\n- ],\n- install_requires=[\"pytest==5.4.1\",\n- \"openpyxl>=2.6.3\"\n- ],\n- classifiers=[\n- \"Development Status :: 3 - Alpha\",\n- \"Intended Audience :: Developers\",\n- \"Topic :: Software Development :: Build Tools\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Programming Language :: Python :: 3\",\n- \"Programming Language :: Python :: 3.6\",\n- \"Programming Language :: Python :: 3.7\",\n- \"Programming Language :: Python :: 3.8\",\n- ],\n-)\n+setup(name='exceliser', packages=['exceliser'], version='0.0.3', license='MIT', description='Exceliser is a tool for helping you serialize your excel documents to json or deserialize json back to excel document.', author='Srdjan Stankovic', author_email='stankovic.srdjo@gmail.com', url='https://github.com/pyropy/exceliser', download_url='https://github.com/pyropy/exceliser/archive/0.0.2b.tar.gz', keywords=['Excel', 'JSON', 'Excel to JSON', 'JSON to Excel', 'Serializer', 'Deserializer'], install_requires=['pytest', 'openpyxl'], classifiers=['Development Status :: 3 - Alpha', 'Intended Audience :: Developers', 'Topic :: Software Development :: Build Tools', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8'])\n\\ No newline at end of file\n--- setup_pyropy__exceliser.sh\n+++ setup_pyropy__exceliser.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_pyropy__exceliser.sh\n+++ test_pyropy__exceliser.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- exceliser/serializer.py\n+++ exceliser/serializer.py\n@@ -57,7 +57,7 @@\n @staticmethod\n def _attr_is_callable(_object: Any, attr: str) -> bool:\n try:\n- return isinstance(getattr(_object, attr), collections.Callable)\n+ return isinstance(getattr(_object, attr), collections.abc.Callable)\n except NotImplementedError:\n return True\n \n", "reproduction_target_date": "2020-04-21", "reproduction_target_version": "3.8.2", "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 pyropy__exceliser .\n\nRUN bash /work/setup_pyropy__exceliser.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_pyropy__exceliser.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "et_xmlfile==2.0.0\niniconfig==2.1.0\nopenpyxl==3.1.5\npackaging==25.0\npluggy==1.6.0\nPygments==2.19.2\npytest==8.4.1\n", "test_type": "pytest", "test_files": "tests/test_woorkbook.py, tests/test_serializer.py", "test_count": 3, "related_modules": "builtin", "py_file_count": 9, "total_loc_python": 257, "difficulty": "Easy", "license": "MIT"} {"repo_name": "Ali-aqrabawi/piat", "repo_url": "https://github.com/Ali-aqrabawi/piat", "commit_hash": "3f6744490e846a3a5db32affad9f89439bf5b7f2", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1 +1 @@\n-pysnmp==4.4.9\n\\ No newline at end of file\n+pysnmp\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,25 +1,5 @@\n import setuptools\n from piat import __version__, __author__\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=\"piat\",\n- version=__version__,\n- author=__author__,\n- author_email=\"aaqrabaw@gmail.com\",\n- description=\"Syslog and Trap service API\",\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- url=\"https://github.com/Ali-aqrabawi/piat\",\n- packages=setuptools.find_packages(),\n- include_package_data=True,\n- install_requires=['pysnmp'],\n- classifiers=[\n- \"Development Status :: 4 - Beta\",\n- \"Programming Language :: Python :: 3\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Operating System :: OS Independent\",\n- ],\n-)\n+setuptools.setup(name='piat', version=__version__, author=__author__, author_email='aaqrabaw@gmail.com', description='Syslog and Trap service API', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/Ali-aqrabawi/piat', packages=setuptools.find_packages(), include_package_data=True, install_requires=['pysnmp'], classifiers=['Development Status :: 4 - Beta', 'Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent'])\n\\ No newline at end of file\n--- setup_Ali-aqrabawi__piat.sh\n+++ setup_Ali-aqrabawi__piat.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_Ali-aqrabawi__piat.sh\n+++ test_Ali-aqrabawi__piat.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest test.servers.test_syslog_server test.servers.test_trap_server test.servers.test_piat_server test.parsers.syslog.test_message test.parsers.syslog.test_vendors_descriptors test.parsers.traps.test_trap\n", "test_patch": "", "gold_patch": "--- piat/servers/trap_server.py\n+++ piat/servers/trap_server.py\n@@ -1,6 +1,6 @@\n import os\n from pysnmp.entity import engine, config\n-from pysnmp.carrier.asyncore.dgram import udp\n+from pysnmp.carrier.asyncio.dgram import udp\n from pysnmp.smi import view, builder\n from pysnmp.entity.rfc3413 import ntfrcv\n from piat.utils.threads import ThreadsManager\n", "reproduction_target_date": "2019-05-21", "reproduction_target_version": "3.6.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 Ali-aqrabawi__piat .\n\nRUN bash /work/setup_Ali-aqrabawi__piat.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_Ali-aqrabawi__piat.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "pyasn1==0.6.1\npysnmp==7.1.21\n", "test_type": "unittest", "test_files": "test/servers/test_piat_server.py, test/servers/test_trap_server.py, test/parsers/traps/test_trap.py, test/parsers/syslog/test_message.py, test/parsers/syslog/test_vendors_descriptors.py, test/servers/test_syslog_server.py", "test_count": 18, "related_modules": "pysnmp", "py_file_count": 30, "total_loc_python": 970, "difficulty": "Medium", "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": "Easy", "license": "MIT"} {"repo_name": "sfneal/PillowImage", "repo_url": "https://github.com/sfneal/PillowImage", "commit_hash": "a23973bbb07a7eddbe5e622dab395289265d072c", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,4 +1,4 @@\n-looptools>=1.2.3\n-Pillow>=7.2.0\n-PyBundle==1.0.6\n-reportlab>=3.5.49\n+looptools\n+Pillow\n+PyBundle\n+reportlab\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,14 +1,8 @@\n import os\n from setuptools import setup, find_packages\n-\n NAME = 'PillowImage'\n-\n DESCRIPTION = 'Pillow wrapper for quick image alterations.'\n-\n-LONG_DESCRIPTION = \"\"\"\n-Pure Python Pillow package wrapper.\n-\"\"\"\n-\n+LONG_DESCRIPTION = '\\nPure Python Pillow package wrapper.\\n'\n \n def get_version(package_name, version_file='_version.py'):\n \"\"\"\n@@ -21,23 +15,4 @@\n filename = os.path.join(os.path.dirname(__file__), package_name, version_file)\n with open(filename, 'rb') as fp:\n return fp.read().decode('utf8').split('=')[1].strip(\" \\n'\")\n-\n-\n-setup(\n- name=NAME,\n- version=get_version(NAME),\n- packages=find_packages(),\n- python_requires='>=3.6',\n- install_requires=[\n- 'reportlab>=3.5.19',\n- 'Pillow>=7.0',\n- 'PyBundle>=1.0.6',\n- ],\n- include_package_data=True,\n- url='https://github.com/sfneal/PillowImage',\n- license='MIT',\n- author='Stephen Neal',\n- author_email='stephen@stephenneal.net',\n- description=DESCRIPTION,\n- long_description=LONG_DESCRIPTION,\n-)\n+setup(name=NAME, version=get_version(NAME), packages=find_packages(), python_requires='>=3.6', install_requires=['reportlab', 'Pillow', 'PyBundle'], include_package_data=True, url='https://github.com/sfneal/PillowImage', license='MIT', author='Stephen Neal', author_email='stephen@stephenneal.net', description=DESCRIPTION, long_description=LONG_DESCRIPTION)\n\\ No newline at end of file\n--- setup_sfneal__PillowImage.sh\n+++ setup_sfneal__PillowImage.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_sfneal__PillowImage.sh\n+++ test_sfneal__PillowImage.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_PillowImage_jpeg tests.test_PillowImage_png tests.test_PillowImage_utils\n", "test_patch": "", "gold_patch": "--- PillowImage/pillow.py\n+++ PillowImage/pillow.py\n@@ -83,7 +83,7 @@\n :return: X coordinate value\n \"\"\"\n # ('Page Width' - 'Text Width') / 2\n- return (self.width - drawing.textsize(text, font=font_type)[0]) / 2\n+ return (self.width - drawing.textlength(text, font=font_type)) / 2\n \n def _text_centered_y(self, font_size):\n \"\"\"\n@@ -169,14 +169,14 @@\n \"\"\"Adjust an images width while proportionately scaling height.\"\"\"\n width_percent = (max_width / float(self.width))\n height_size = int((float(self.height)) * float(width_percent))\n- self.img = self.img.resize((max_width, height_size), Image.ANTIALIAS)\n+ self.img = self.img.resize((max_width, height_size), Image.LANCZOS)\n return self.img\n \n def resize_height(self, max_height):\n \"\"\"Adjust an images height while proportionately scaling width.\"\"\"\n height_percent = (max_height / float(self.height))\n width_size = int((float(self.width) * float(height_percent)))\n- self.img = self.img.resize((width_size, max_height), Image.ANTIALIAS)\n+ self.img = self.img.resize((width_size, max_height), Image.LANCZOS)\n return self.img\n \n def draw_text(self, text, x='center', y=140, font=FONT, font_size=40, opacity=25):\n", "reproduction_target_date": "2021-01-20", "reproduction_target_version": "3.9.1", "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 sfneal__PillowImage .\n\nRUN bash /work/setup_sfneal__PillowImage.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_sfneal__PillowImage.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "charset-normalizer==3.4.2\nlooptools==1.2.4\npillow==11.3.0\nPyBundle==1.0.6\nreportlab==4.4.3\n", "test_type": "unittest", "test_files": "tests/test_PillowImage_jpeg.py, tests/test_PillowImage_utils.py, tests/test_PillowImage_png.py", "test_count": 27, "related_modules": "pillow", "py_file_count": 11, "total_loc_python": 834, "difficulty": "Easy", "license": "Apache-2.0, MIT"} {"repo_name": "ovh/interpretability-engine", "repo_url": "https://github.com/ovh/interpretability-engine", "commit_hash": "e5ee87d6d7bcbc83730e71ec7a2657f26533dfa7", "patch": "--- requirements.dev.txt\n+++ requirements.dev.txt\n@@ -1,4 +1,4 @@\n pytest\n flake8\n pylint\n-pytest-cov\n+pytest-cov\n\\ No newline at end of file\n--- requirements.txt\n+++ requirements.txt\n@@ -1,6 +1,6 @@\n-scikit-learn>=0.22.1\n-requests>=2.22.0\n-matplotlib>=3.1.3\n-pandas>=1.0.1\n-python-swiftclient>=3.8.1\n-python-keystoneclient>=3.22.0\n+scikit-learn\n+requests\n+matplotlib\n+pandas\n+python-swiftclient\n+python-keystoneclient\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,21 +1,4 @@\n from setuptools import find_packages, setup\n-\n with open('requirements.txt') as f:\n required = f.read().splitlines()\n-\n-setup(\n- name='interpretability-engine',\n- version='0.1.0',\n- author='Parmentier Laurent',\n- author_email='laurent.parmentier@corp.ovh.com',\n- packages=find_packages(),\n- scripts=['bin/interpretability-engine'],\n- url='https://github.com/ovh/interpretability-engine',\n- description='Interpret Machine Learning black-box models deployed on Serving Engine',\n- classifiers=[\n- \"Programming Language :: Python :: 3\",\n- \"License :: OSI Approved :: BSD License\",\n- ],\n- install_requires=required,\n- include_package_data=True\n-)\n+setup(name='interpretability-engine', version='0.1.0', author='Parmentier Laurent', author_email='laurent.parmentier@corp.ovh.com', packages=find_packages(), scripts=['bin/interpretability-engine'], url='https://github.com/ovh/interpretability-engine', description='Interpret Machine Learning black-box models deployed on Serving Engine', classifiers=['Programming Language :: Python :: 3', 'License :: OSI Approved :: BSD License'], install_requires=required, include_package_data=True)\n\\ No newline at end of file\n--- setup_ovh__interpretability-engine.sh\n+++ setup_ovh__interpretability-engine.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install -r requirements.dev.txt\n+pip install pytest\n--- test_ovh__interpretability-engine.sh\n+++ test_ovh__interpretability-engine.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "--- tests/methods/test_pdp.py\n+++ tests/methods/test_pdp.py\n@@ -13,7 +13,7 @@\n \n \n class TestPdpInterpretability():\n- def setup(self):\n+ def setup_method(self):\n self.pdp = PdpInterpretability()\n \n def test_grid(self):\n@@ -47,10 +47,13 @@\n classifier = RandomForestClassifier(random_state=42)\n classifier.fit(X_train, y_train)\n \n- pdp, axes = partial_dependence(classifier, X, [0], response_method='predict_proba',\n+ pdp_results = partial_dependence(classifier, X, [0], response_method='predict_proba',\n percentiles=(0.05, 0.95), grid_resolution=100,\n method='brute')\n \n+ pdp = pdp_results[\"average\"]\n+ axes = pdp_results[\"grid_values\"]\n+\n # ensure original pdp implemtend by scikit learn works as expected\n assert pytest.approx(pdp[0][0]) == 0.34126667\n assert pytest.approx(pdp[0][-1]) == 0.29406667\n", "gold_patch": "--- interpretability_engine/methods/pdp.py\n+++ interpretability_engine/methods/pdp.py\n@@ -1,4 +1,4 @@\n-from sklearn.utils import _get_column_indices, _safe_indexing\n+from sklearn.utils._indexing import _get_column_indices, _safe_indexing\n from sklearn.inspection._partial_dependence import _grid_from_X\n \n import numpy as np\n@@ -14,9 +14,13 @@\n _get_column_indices(X, features), dtype=np.int32, order='C'\n ).ravel()\n \n+ is_categorical = [False] * features_indices.shape[0]\n grid, values = _grid_from_X(\n- _safe_indexing(X, features_indices, axis=1), percentiles,\n- grid_resolution\n+ X=_safe_indexing(X, features_indices, axis=1),\n+ percentiles=percentiles,\n+ is_categorical=is_categorical,\n+ grid_resolution=grid_resolution,\n+ custom_values={}\n )\n \n return grid, values\n", "reproduction_target_date": "2020-05-07", "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 ovh__interpretability-engine .\n\nRUN bash /work/setup_ovh__interpretability-engine.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_ovh__interpretability-engine.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "astroid==3.3.11\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\ncontourpy==1.3.3\ncoverage==7.10.1\ncycler==0.12.1\ndebtcollector==3.0.0\ndill==0.4.0\nflake8==7.3.0\nfonttools==4.59.0\nidna==3.10\niniconfig==2.1.0\niso8601==2.1.0\nisort==6.0.1\njoblib==1.5.1\nkeystoneauth1==5.11.1\nkiwisolver==1.4.8\nmatplotlib==3.10.3\nmccabe==0.7.0\nmsgpack==1.1.1\nnetaddr==1.3.0\nnumpy==2.3.2\nos-service-types==1.8.0\noslo.config==10.0.0\noslo.i18n==6.5.1\noslo.serialization==5.7.0\noslo.utils==9.0.0\npackaging==25.0\npandas==2.3.1\npbr==6.1.1\npillow==11.3.0\nplatformdirs==4.3.8\npluggy==1.6.0\npsutil==7.0.0\npycodestyle==2.14.0\npyflakes==3.4.0\nPygments==2.19.2\npylint==3.3.7\npyparsing==3.2.3\npytest==8.4.1\npytest-cov==6.2.1\npython-dateutil==2.9.0.post0\npython-keystoneclient==5.6.0\npython-swiftclient==4.8.0\npytz==2025.2\nPyYAML==6.0.2\nrequests==2.32.4\nrfc3986==2.0.0\nscikit-learn==1.7.1\nscipy==1.16.1\nsetuptools==80.9.0\nsix==1.17.0\nstevedore==5.4.1\nthreadpoolctl==3.6.0\ntomlkit==0.13.3\ntyping_extensions==4.14.1\ntzdata==2025.2\nurllib3==2.5.0\nwrapt==1.17.2\n", "test_type": "pytest", "test_files": "tests/methods/test_pdp.py", "test_count": 2, "related_modules": "scikit-learn", "py_file_count": 10, "total_loc_python": 446, "difficulty": "Medium", "license": "BSD-3-Clause"} {"repo_name": "n8henrie/icw", "repo_url": "https://github.com/n8henrie/icw", "commit_hash": "fdff9b9b566552b0f1bcbee7b3562e4210c755da", "patch": "--- pyproject.toml\n+++ pyproject.toml\n@@ -1,5 +1,5 @@\n [build-system]\n-requires = [\"setuptools>65\", \"setuptools_scm[toml]>=7\"]\n+requires = [\"setuptools\", \"setuptools_scm[toml]\"]\n build-backend = \"setuptools.build_meta\"\n \n [tool.black]\n@@ -23,37 +23,14 @@\n classifiers= [\n \"Programming Language :: Python :: 3.10\",\n ]\n-dependencies = [\n- \"chardet==2.3.0\",\n- \"Flask-Bootstrap==3.3.7.1\",\n- \"Flask-WTF==1.0.1\",\n- \"flask==2.2\",\n- \"gunicorn==20.1.0\",\n- \"icalendar==4.1.0\",\n- \"WTForms==2.0.2\",\n-]\n+dependencies = [\"chardet\", \"Flask-Bootstrap\", \"Flask-WTF\", \"flask\", \"gunicorn\", \"icalendar\", \"WTForms\"]\n \n [tool.setuptools]\n zip-safe = false\n \n [project.optional-dependencies]\n-test = [\n- \"black==22.8.0\",\n- \"flake8-docstrings==1.6.0\",\n- \"flake8-import-order==0.18.1\",\n- \"mypy==0.971\",\n- \"pep8-naming==0.13.2\",\n- \"pylint==2.15.0\",\n- \"pytest==7.1.3\",\n- \"tox==3.25.1\",\n-]\n-dev = [\n- \"build==0.8.0\",\n- \"myst-parser==0.18.0\",\n- \"sphinx-rtd-theme==1.0.0\",\n- \"Sphinx==5.0.2\",\n- \"twine==4.0.1\",\n-]\n+test = [\"black\", \"flake8-docstrings\", \"flake8-import-order\", \"mypy\", \"pep8-naming\", \"pylint\", \"pytest\", \"tox\"]\n+dev = [\"build\", \"myst-parser\", \"sphinx-rtd-theme\", \"Sphinx\", \"twine\"]\n \n [tool.setuptools.dynamic]\n version = {attr = \"icw.__version__\"}\n--- setup_n8henrie__icw.sh\n+++ setup_n8henrie__icw.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install setuptools\n+pip install -e .[test,dev]\n+pip install pytest\n--- test_n8henrie__icw.sh\n+++ test_n8henrie__icw.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- src/icw/converter.py\n+++ src/icw/converter.py\n@@ -8,14 +8,13 @@\n from datetime import datetime, timedelta\n \n import chardet\n-from icalendar import Calendar, Event, LocalTimezone\n+from icalendar import Calendar, Event\n from werkzeug.datastructures import FileStorage\n \n from icw import app\n \n app.logger.debug(\"Starting converter in debug mode.\")\n \n-\n class BaseICWError(Exception):\n \"\"\"Base class for icw errors.\"\"\"\n \n@@ -295,7 +294,7 @@\n event.add(tag, row[tag])\n \n event.add(\n- \"dtstamp\", datetime.replace(datetime.now(), tzinfo=LocalTimezone())\n+ \"dtstamp\", datetime.now().astimezone()\n )\n \n # n8henrie.com tag at the end not used for tracking, just\n", "reproduction_target_date": "2022-09-11", "reproduction_target_version": "3.10.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 n8henrie__icw .\n\nRUN bash /work/setup_n8henrie__icw.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_n8henrie__icw.sh\"]\n", "version_source": "pyproject.toml", "script_source": "pyproject.toml", "dependency_versions": "alabaster==1.0.0\nastroid==3.3.11\nbabel==2.17.0\nblack==25.1.0\nblinker==1.9.0\nbuild==1.2.2.post1\ncachetools==6.1.0\ncertifi==2025.7.14\ncffi==1.17.1\nchardet==5.2.0\ncharset-normalizer==3.4.2\nclick==8.2.1\ncolorama==0.4.6\ncryptography==45.0.5\ndill==0.4.0\ndistlib==0.4.0\ndocutils==0.21.2\ndominate==2.9.1\nfilelock==3.18.0\nflake8==7.3.0\nflake8-docstrings==1.7.0\nflake8_import_order==0.19.2\nFlask==3.1.1\nFlask-Bootstrap==3.3.7.1\nFlask-WTF==1.2.2\ngunicorn==23.0.0\nicalendar==6.3.1\n# Editable install with no version control (icw==2.0.0)\n-e /work\nid==1.5.0\nidna==3.10\nimagesize==1.4.1\niniconfig==2.1.0\nisort==6.0.1\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\nmccabe==0.7.0\nmdit-py-plugins==0.4.2\nmdurl==0.1.2\nmore-itertools==10.7.0\nmypy==1.17.0\nmypy_extensions==1.1.0\nmyst-parser==4.0.1\nnh3==0.3.0\npackaging==25.0\npathspec==0.12.1\npep8-naming==0.15.1\nplatformdirs==4.3.8\npluggy==1.6.0\npycodestyle==2.14.0\npycparser==2.22\npydocstyle==6.3.0\npyflakes==3.4.0\nPygments==2.19.2\npylint==3.3.7\npyproject-api==1.9.1\npyproject_hooks==1.2.0\npytest==8.4.1\npython-dateutil==2.9.0.post0\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\nroman-numerals-py==3.1.0\nSecretStorage==3.3.3\nsetuptools==80.9.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\ntomlkit==0.13.3\ntox==4.28.3\ntwine==6.1.0\ntyping_extensions==4.14.1\ntzdata==2025.2\nurllib3==2.5.0\nvirtualenv==20.32.0\nvisitor==0.1.3\nWerkzeug==3.1.3\nWTForms==3.2.1\n", "test_type": "pytest", "test_files": "tests/test_upload.py, tests/test_success.py, tests/test_config.py, tests/test_fail.py", "test_count": 7, "related_modules": "icalendar", "py_file_count": 13, "total_loc_python": 735, "difficulty": "Medium", "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": "Easy", "license": "BSD-3-Clause"} {"repo_name": "bguedj/pyrotor", "repo_url": "https://github.com/bguedj/pyrotor", "commit_hash": "dcef5d29fd5dedf63f4aadd26a1e5a912ac7c896", "patch": "--- setup.py\n+++ setup.py\n@@ -1,30 +1,5 @@\n import pathlib\n from setuptools import setup\n-\n HERE = pathlib.Path(__file__).parent\n-\n-README = (HERE / \"README.md\").read_text()\n-\n-setup(name='pyrotor',\n- version='1.0.4',\n- description='Trajectory optimization package based on data',\n- long_description=README,\n- long_description_content_type='text/markdown',\n- packages=['pyrotor'],\n- package_data={\n- \"pyrotor\": [\"toy_dataset/example_1/*.csv\",\n- \"toy_dataset/example_2/*.csv\"]\n- },\n- author_email=\"arthur.talpaert@isen.yncrea.fr\",\n- url=\"https://github.com/bguedj/pyrotor\",\n- license=\"MIT\",\n- install_requires=[\"cvxopt>=1.2.7\",\n- \"numpy>=1.24.1\",\n- \"pandas>=1.5.2\",\n- \"scipy>=1.5.4\",\n- \"mock\",\n- \"pytest\",\n- \"pickleshare>=0.7.5\",\n- \"scikit-learn>=1.2.0\",\n- \"sphinx\",\n- \"sphinx-rtd-theme\"])\n+README = (HERE / 'README.md').read_text()\n+setup(name='pyrotor', version='1.0.4', description='Trajectory optimization package based on data', long_description=README, long_description_content_type='text/markdown', packages=['pyrotor'], package_data={'pyrotor': ['toy_dataset/example_1/*.csv', 'toy_dataset/example_2/*.csv']}, author_email='arthur.talpaert@isen.yncrea.fr', url='https://github.com/bguedj/pyrotor', license='MIT', install_requires=['cvxopt', 'numpy', 'pandas', 'scipy', 'mock', 'pytest', 'pickleshare', 'scikit-learn', 'sphinx', 'sphinx-rtd-theme'])\n\\ No newline at end of file\n--- setup_bguedj__pyrotor.sh\n+++ setup_bguedj__pyrotor.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n+pip install pytest\n--- test_bguedj__pyrotor.sh\n+++ test_bguedj__pyrotor.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- pyrotor/cost_functions.py\n+++ pyrotor/cost_functions.py\n@@ -11,7 +11,7 @@\n \n from .projection import coef_to_trajectory\n \n-from scipy.integrate import trapz\n+from scipy.integrate import trapezoid\n \n \n def load_model(name):\n@@ -89,7 +89,7 @@\n # Compute instantaneous cost\n cost_inst = format_model.predict(traj)\n # Compute total cost using trapezoids method\n- g = trapz(cost_inst, np.linspace(start, end, points_nb))\n+ g = trapezoid(cost_inst, np.linspace(start, end, points_nb))\n # Else use quadratic formula\n else:\n W, Q = format_model[0], format_model[1]\n@@ -166,7 +166,7 @@\n end = independent_variable['end']\n points_nb = independent_variable['points_nb']\n \n- return trapz(cost_by_time, np.linspace(start, end, points_nb))\n+ return trapezoid(cost_by_time, np.linspace(start, end, points_nb))\n \n \n def compute_trajectories_cost(trajectories, model, independent_variable):\n--- pyrotor/optimization.py\n+++ pyrotor/optimization.py\n@@ -11,7 +11,7 @@\n from cvxopt import matrix\n \n from scipy.optimize import minimize, approx_fprime\n-from scipy.integrate import trapz\n+from scipy.integrate import trapezoid\n \n from .projection import coef_to_trajectory\n \n@@ -185,7 +185,7 @@\n basis_dimension)\n # Define the non-regularised cost\n cost_inst = kappa * model.predict(traj)\n- cost_tot = trapz(cost_inst, np.linspace(start, end, points_nb))\n+ cost_tot = trapezoid(cost_inst, np.linspace(start, end, points_nb))\n # Add regularisation\n cost_tot += np.linalg.multi_dot([x.T, sigma_inverse, x])\n cost_tot -= 2 * np.linalg.multi_dot([c_weight.T,\n", "reproduction_target_date": "2023-06-07", "reproduction_target_version": "3.10.12", "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 bguedj__pyrotor .\n\nRUN bash /work/setup_bguedj__pyrotor.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_bguedj__pyrotor.sh\"]\n", "version_source": "default", "script_source": "setup.py", "dependency_versions": "alabaster==1.0.0\nbabel==2.17.0\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\ncvxopt==1.3.2\ndocutils==0.21.2\nidna==3.10\nimagesize==1.4.1\niniconfig==2.1.0\nJinja2==3.1.6\njoblib==1.5.1\nMarkupSafe==3.0.2\nmock==5.2.0\nnumpy==2.3.2\npackaging==25.0\npandas==2.3.1\npickleshare==0.7.5\npluggy==1.6.0\nPygments==2.19.2\npyrotor @ file:///work\npytest==8.4.1\npython-dateutil==2.9.0.post0\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\nthreadpoolctl==3.6.0\ntzdata==2025.2\nurllib3==2.5.0\n", "test_type": "pytest", "test_files": "tests/test_objective_matrices.py, tests/test_data_analysis.py, tests/test_constraints.py, tests/test_projection.py, tests/test_iterations.py, tests/test_cost_functions.py, tests/test_linear_conditions.py, tests/test_basis.py, tests/test_optimization.py", "test_count": 35, "related_modules": "scipy", "py_file_count": 24, "total_loc_python": 3178, "difficulty": "Easy", "license": "MIT"} {"repo_name": "YavorPaunov/deepstreampy", "repo_url": "https://github.com/YavorPaunov/deepstreampy", "commit_hash": "3759144f6ea21152a3faeef6f55fbf98499fad44", "patch": "--- dev_requirements.txt\n+++ dev_requirements.txt\n@@ -1,4 +1,4 @@\n-pyee==1.0.2\n-tornado==4.4\n+pyee\n+tornado\n behave\n-mock\n+mock\n\\ No newline at end of file\n--- requirements.txt\n+++ requirements.txt\n@@ -1,2 +1,2 @@\n-pyee>=1.0.2\n-tornado>=4.4\n+pyee\n+tornado\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -8,15 +8,4 @@\n \n def read(fname):\n return open(os.path.join(os.path.dirname(__file__), fname)).read()\n-\n-setup(name='deepstreampy',\n- version='0.1.1',\n- author='Yavor Paunov',\n- author_email='contact@yavorpaunov.com',\n- description='A deepstream.io client.',\n- license='MIT',\n- url='https://www.github.com/YavorPaunov/deepstreampy',\n- packages=find_packages(),\n- install_requires=requirements(),\n- long_description=read('README.md'),\n- test_suite='tests')\n+setup(name='deepstreampy', version='0.1.1', author='Yavor Paunov', author_email='contact@yavorpaunov.com', description='A deepstream.io client.', license='MIT', url='https://www.github.com/YavorPaunov/deepstreampy', packages=find_packages(), install_requires=requirements(), long_description=read('README.md'), test_suite='tests')\n\\ No newline at end of file\n--- setup_YavorPaunov__deepstreampy.sh\n+++ setup_YavorPaunov__deepstreampy.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install -r dev_requirements.txt\n--- test_YavorPaunov__deepstreampy.sh\n+++ test_YavorPaunov__deepstreampy.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_message tests.test_presence tests.test_client tests.test_rpc tests.test_event tests.record_tests.test_record tests.record_tests.test_list tests.record_tests.test_jsonpath tests.record_tests.test_handler_record tests.record_tests.test_record_conflict tests.record_tests.test_record_listening tests.record_tests.test_list_change tests.record_tests.test_handler_list tests.record_tests.test_anonymous_record\n", "test_patch": "--- tests/record_tests/test_anonymous_record.py\n+++ tests/record_tests/test_anonymous_record.py\n@@ -63,7 +63,7 @@\n \n # Request a record when name is set\n anon_record.name = \"recordA\"\n- self.assertEquals(anon_record.name, \"recordA\")\n+ self.assertEqual(anon_record.name, \"recordA\")\n self.handler.write_message.assert_called_with(\n \"R{0}CR{0}recordA{1}\".format(chr(31), chr(30)).encode())\n \n@@ -77,7 +77,7 @@\n \"action\": \"R\",\n \"data\": [\"recordA\", 1, '{\"firstname\":\"Yavor\"}']})\n \n- self.assertEquals(self.ready_callback.call_count, 1)\n+ self.assertEqual(self.ready_callback.call_count, 1)\n self.firstname_callback.assert_called_once_with(\"Yavor\")\n self.general_callback.assert_called_once_with({\"firstname\": \"Yavor\"})\n \n@@ -90,22 +90,22 @@\n \"data\": [\n \"recordB\", 1, '{\"firstname\":\"John\", \"lastname\":\"Smith\"}']})\n \n- self.assertEquals(self.ready_callback.call_count, 1)\n+ self.assertEqual(self.ready_callback.call_count, 1)\n self.firstname_callback.assert_called_with(\"Yavor\")\n self.general_callback.assert_called_with({\"firstname\": \"Yavor\"})\n \n # Updates subscriptions when the record changes to an existing one\n anon_record.name = \"recordB\"\n- self.assertEquals(self.ready_callback.call_count, 2)\n+ self.assertEqual(self.ready_callback.call_count, 2)\n self.firstname_callback.assert_called_with(\"John\")\n self.general_callback.assert_called_with({\"firstname\": \"John\",\n \"lastname\": \"Smith\"})\n \n # Proxies calls through the underlying record\n recordB = yield self.record_handler.get_record(\"recordB\")\n- self.assertEquals(recordB.get(\"lastname\"), \"Smith\")\n+ self.assertEqual(recordB.get(\"lastname\"), \"Smith\")\n anon_record.set(\"Doe\", \"lastname\")\n- self.assertEquals(recordB.get(\"lastname\"), \"Doe\")\n+ self.assertEqual(recordB.get(\"lastname\"), \"Doe\")\n \n # No error thrown if record is reset after being destroyed\n anon_record._record.on(\"error\", self.error_callback)\n@@ -114,7 +114,7 @@\n \"action\": \"A\",\n \"data\": [\"D\", \"recordB\", 1]})\n \n- self.assertEquals(self.ready_callback.call_count, 2)\n+ self.assertEqual(self.ready_callback.call_count, 2)\n self.error_callback.assert_not_called()\n \n # Emits nameChanged when name is changed\n@@ -124,11 +124,11 @@\n self.name_changed_callback.assert_called_once_with(\"recordC\")\n \n # Emits an additional ready event once the new record becomes available\n- self.assertEquals(self.ready_callback.call_count, 2)\n+ self.assertEqual(self.ready_callback.call_count, 2)\n \n self.record_handler.handle(\n {\"topic\": \"R\",\n \"action\": \"R\",\n \"data\": [\n \"recordC\", 1, '{\"firstname\":\"Yavor\",\"lastname\":\"Paunov\"}']})\n- self.assertEquals(self.ready_callback.call_count, 3)\n+ self.assertEqual(self.ready_callback.call_count, 3)\n--- tests/record_tests/test_handler_list.py\n+++ tests/record_tests/test_handler_list.py\n@@ -78,6 +78,6 @@\n 'data': ['US', 'list_A']\n })\n \n- self.assertEquals(self.on_discard.call_count, 1)\n+ self.assertEqual(self.on_discard.call_count, 1)\n self.assertTrue(self.listA.is_destroyed)\n self.assertTrue(self.listA2.is_destroyed)\n--- tests/record_tests/test_handler_record.py\n+++ tests/record_tests/test_handler_record.py\n@@ -75,7 +75,7 @@\n self.record_A.discard()\n self.record_handler.handle({'topic': 'R', 'action': 'A',\n 'data': ['US', 'record_A']})\n- self.assertEquals(self.on_discard.call_count, 1)\n+ self.assertEqual(self.on_discard.call_count, 1)\n self.assertTrue(self.record_A.is_destroyed)\n \n def tearDown(self):\n@@ -134,14 +134,14 @@\n \n self._delete()\n \n- self.assertEquals(self.on_delete.call_count, 1)\n+ self.assertEqual(self.on_delete.call_count, 1)\n self.assertTrue(self.record_A.is_destroyed)\n \n def test_resubscribe(self):\n self._create_empty()\n self._delete()\n \n- self.assertEquals(self.on_delete.call_count, 1)\n+ self.assertEqual(self.on_delete.call_count, 1)\n self.assertTrue(self.record_A.is_destroyed)\n \n new_record = self.record_handler.get_record('record_A')\n--- tests/record_tests/test_jsonpath.py\n+++ tests/record_tests/test_jsonpath.py\n@@ -21,37 +21,37 @@\n \n def test_simple_path(self):\n value = jsonpath.get(self.test_data, 'firstname', False)\n- self.assertEquals(value, 'John')\n+ self.assertEqual(value, 'John')\n \n value = jsonpath.get(self.test_data, 'lastname', False)\n- self.assertEquals(value, 'Smith')\n+ self.assertEqual(value, 'Smith')\n \n def test_nested_path(self):\n value = jsonpath.get(self.test_data, 'address.street', False)\n- self.assertEquals(value, 'currentStreet')\n+ self.assertEqual(value, 'currentStreet')\n \n def test_other_array_entries(self):\n value = jsonpath.get(self.test_data, 'pastAddresses[0]', False)\n- self.assertEquals(value,\n+ self.assertEqual(value,\n {'street': 'firststreet', 'postCode': 1001})\n \n def test_array_entries(self):\n value = jsonpath.get(self.test_data, 'pastAddresses[1]', False)\n- self.assertEquals(value,\n+ self.assertEqual(value,\n {'street': 'secondstreet', 'postCode': 2002})\n \n def test_values_from_array(self):\n value = jsonpath.get(self.test_data, 'pastAddresses[0].postCode', False)\n- self.assertEquals(value, 1001)\n+ self.assertEqual(value, 1001)\n \n def test_handle_whitespace(self):\n value = jsonpath.get(self.test_data, 'pastAddresses[ 1 ].postCode',\n False)\n- self.assertEquals(value, 2002)\n+ self.assertEqual(value, 2002)\n \n def test_handle_integers(self):\n value = jsonpath.get(self.test_data, 1234, False)\n- self.assertEquals(value, 'integer index')\n+ self.assertEqual(value, 'integer index')\n \n def test_nonexisting_keys(self):\n value = jsonpath.get(self.test_data, 'does not exist', False)\n@@ -67,22 +67,22 @@\n \n def test_negative_array_index(self):\n value = jsonpath.get(self.test_data, 'pastAddresses[-1]', False)\n- self.assertEquals(value,\n+ self.assertEqual(value,\n {'street': 'secondstreet', 'postCode': 2002})\n \n def test_detect_changes(self):\n value = jsonpath.get(self.test_data, 'firstname', False)\n- self.assertEquals(value, 'John')\n+ self.assertEqual(value, 'John')\n self.test_data['firstname'] = 'Adam'\n value = jsonpath.get(self.test_data, 'firstname', False)\n- self.assertEquals(value, 'Adam')\n+ self.assertEqual(value, 'Adam')\n \n def test_detect_changes_to_arrays(self):\n value = jsonpath.get(self.test_data, 'pastAddresses[1].street', False)\n- self.assertEquals(value, 'secondstreet')\n+ self.assertEqual(value, 'secondstreet')\n self.test_data['pastAddresses'].pop()\n value = jsonpath.get(self.test_data, 'pastAddresses[1].street', False)\n- self.assertEquals(value, None)\n+ self.assertEqual(value, None)\n \n \n class TestSet(unittest.TestCase):\n@@ -105,7 +105,7 @@\n def test_arrays(self):\n jsonpath.set(self.test_data, 'pastAddresses[1].street', 'someStreet',\n False)\n- self.assertEquals(self.test_data, {\n+ self.assertEqual(self.test_data, {\n 'pastAddresses': [None, {'street': 'someStreet'}]\n })\n \n--- tests/record_tests/test_list.py\n+++ tests/record_tests/test_list.py\n@@ -54,7 +54,7 @@\n {'topic': 'R', 'action': 'R',\n 'data': ['someList', 1, '[\"entryA\", \"entryB\"]']})\n self.assertEqual(self.list.get(), ['entryA', 'entryB'])\n- self.assertEquals(self.ready_callback.call_count, 1)\n+ self.assertEqual(self.ready_callback.call_count, 1)\n self.change_callback.assert_called_with(['entryA', 'entryB'])\n self.assertFalse(self.list.is_empty)\n \n@@ -116,7 +116,7 @@\n 'action': 'R',\n 'data': ['someList', 2, '[\"x\",\"y\"]']})\n self.change_callback.assert_called_with(['x', 'y'])\n- self.assertEquals(self.list.version, 2)\n+ self.assertEqual(self.list.version, 2)\n self.assertEqual(self.list.get(), ['x', 'y'])\n \n def test_empty_list(self):\n--- tests/record_tests/test_record.py\n+++ tests/record_tests/test_record.py\n@@ -49,7 +49,7 @@\n .format(chr(31), chr(30)).encode())\n self.handler.write_message.assert_called_with(expected)\n self.assertEqual(self.record.get(), {'firstname': 'John'})\n- self.assertEquals(self.record.version, 1)\n+ self.assertEqual(self.record.version, 1)\n \n def test_send_patch_message(self):\n self.record.set('Smith', 'lastname')\n@@ -82,7 +82,7 @@\n .format(chr(31), chr(30)).encode())\n self.handler.write_message.assert_called_with(expected)\n self.assertEqual(self.record.get(), {'firstname': 'John'})\n- self.assertEquals(self.record.version, 1)\n+ self.assertEqual(self.record.version, 1)\n \n def test_send_patch_message_with_callback(self):\n callback = mock.Mock()\n--- tests/test_presence.py\n+++ tests/test_presence.py\n@@ -85,7 +85,7 @@\n self.wait()\n \n callback.assert_called_with(f)\n- self.assertEquals(f.result(), ['Marge', 'Homer', 'Bart'])\n+ self.assertEqual(f.result(), ['Marge', 'Homer', 'Bart'])\n \n \n # Unsubscribe to client logins\n--- tests/test_rpc.py\n+++ tests/test_rpc.py\n@@ -79,7 +79,7 @@\n # Register a provider for addTwo RPC\n rpchandler.provide('addTwo', self._add_two_callback)\n self.handler.write_message.assert_called_once_with(msg('P|S|addTwo+'))\n- self.assertEquals(self.rpc_calls, 0)\n+ self.assertEqual(self.rpc_calls, 0)\n \n # Timeout error emitted if no ack message received on time\n self.wait()\n@@ -158,7 +158,7 @@\n 'data': ['addTwo', u'1', 'N11']})\n \n result = yield f\n- self.assertEquals(result, 11)\n+ self.assertEqual(result, 11)\n \n # Make RPC for addTwo but receive an error\n self.assertTrue(self.handler.write_message.call_args[0][0] in\n@@ -173,7 +173,7 @@\n with self.assertRaises(rpc.RPCException) as ectx:\n yield f\n \n- self.assertEquals(str(ectx.exception), 'NO_PROVIDER')\n+ self.assertEqual(str(ectx.exception), 'NO_PROVIDER')\n \n # Make RPC for addTwo but receive no ack in time\n f = rpchandler.make('addTwo', {'numA': 3, 'numB': 8})\n@@ -184,7 +184,7 @@\n with self.assertRaises(rpc.RPCException) as ectx:\n yield f\n \n- self.assertEquals(str(ectx.exception), 'ACK_TIMEOUT')\n+ self.assertEqual(str(ectx.exception), 'ACK_TIMEOUT')\n \n \n class RPCResponseTest(testing.AsyncTestCase):\n", "gold_patch": "--- deepstreampy/message/connection.py\n+++ deepstreampy/message/connection.py\n@@ -58,7 +58,6 @@\n \n connect_future = websocket.websocket_connect(\n self._url,\n- self._io_loop,\n callback=self._on_open,\n on_message_callback=self._on_data)\n \n", "reproduction_target_date": "2019-01-26", "reproduction_target_version": "3.6.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 YavorPaunov__deepstreampy .\n\nRUN bash /work/setup_YavorPaunov__deepstreampy.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_YavorPaunov__deepstreampy.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "behave==1.2.6\nmock==5.2.0\nparse==1.20.2\nparse_type==0.6.4\npyee==13.0.0\nsix==1.17.0\ntornado==6.5.1\ntyping_extensions==4.14.1\n", "test_type": "unittest", "test_files": "tests/record_tests/test_handler_list.py, tests/test_presence.py, tests/test_rpc.py, tests/test_message.py, tests/record_tests/test_anonymous_record.py, tests/record_tests/test_handler_record.py, tests/record_tests/test_record_conflict.py, tests/record_tests/test_record_listening.py, tests/record_tests/test_record.py, tests/record_tests/test_jsonpath.py, tests/record_tests/test_list.py, tests/test_event.py, tests/record_tests/test_list_change.py, tests/test_client.py", "test_count": 107, "related_modules": "tornado", "py_file_count": 44, "total_loc_python": 6085, "difficulty": "Medium", "license": "MIT"} {"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": "Easy", "license": "MIT"} {"repo_name": "Kyligence/kylinpy", "repo_url": "https://github.com/Kyligence/kylinpy", "commit_hash": "813b427cc97d1e7f5289c54415a30b4e9f0db564", "patch": "--- requirements-dev.txt\n+++ requirements-dev.txt\n@@ -1,6 +1,6 @@\n-pytest==7.2.0\n-pytest-mock==3.10.0\n-pytest-cov==4.0.0\n-twine==4.0.2\n-sqlalchemy==1.4.46\n-sqlparse==0.4.3\n\\ No newline at end of file\n+pytest\n+pytest-mock\n+pytest-cov\n+twine\n+sqlalchemy\n+sqlparse\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,60 +1,20 @@\n-# -*- coding: utf-8 -*-\n from __future__ import absolute_import\n from __future__ import division\n from __future__ import print_function\n from __future__ import unicode_literals\n-\n import codecs\n import os.path\n import re\n-\n from setuptools import find_packages, setup\n-\n here = os.path.abspath(os.path.dirname(__file__))\n \n-\n def read(*parts):\n return codecs.open(os.path.join(here, *parts), 'r').read()\n \n-\n def find_version(*file_paths):\n version_file = read(*file_paths)\n- version_match = re.search(r\"^__version__ = ['\\\"]([^'\\\"]*)['\\\"]\",\n- version_file, re.M)\n+ version_match = re.search('^__version__ = [\\'\\\\\"]([^\\'\\\\\"]*)[\\'\\\\\"]', version_file, re.M)\n if version_match:\n return version_match.group(1)\n raise RuntimeError('Unable to find version string.')\n-\n-\n-setup(\n- name='kylinpy',\n- version=find_version('kylinpy', '__init__.py'),\n- author='Yongjie Zhao',\n- author_email='yongjie.zhao@kyligence.io',\n- maintainer='Yongjie Zhao',\n- maintainer_email='yongjie.zhao@kyligence.io',\n- packages=find_packages(),\n- url='https://github.com/Kyligence/kylinpy',\n- license='MIT License',\n- description='Apache Kylin Python Client Library',\n- long_description=open('README.rst').read(),\n- long_description_content_type='text/x-rst',\n- install_requires=[],\n- extras_require={\n- 'sqlalchemy': ['sqlalchemy>=1.1.0'],\n- },\n- keywords=['apache kylin', 'kylin', 'kap', 'kyligence',\n- 'kyligence enterprise', 'cli', 'sqlalchemy dialect'],\n- classifiers=[\n- 'Environment :: Console',\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: MIT License',\n- 'Operating System :: OS Independent',\n- 'Programming Language :: Python',\n- 'Programming Language :: Python :: 2.7',\n- 'Programming Language :: Python :: 3',\n- ],\n- entry_points={\n- 'sqlalchemy.dialects': ['kylin=kylinpy.sqla_dialect:KylinDialect'],\n- },\n-)\n+setup(name='kylinpy', version=find_version('kylinpy', '__init__.py'), author='Yongjie Zhao', author_email='yongjie.zhao@kyligence.io', maintainer='Yongjie Zhao', maintainer_email='yongjie.zhao@kyligence.io', packages=find_packages(), url='https://github.com/Kyligence/kylinpy', license='MIT License', description='Apache Kylin Python Client Library', long_description=open('README.rst').read(), long_description_content_type='text/x-rst', install_requires=[], extras_require={'sqlalchemy': ['sqlalchemy']}, keywords=['apache kylin', 'kylin', 'kap', 'kyligence', 'kyligence enterprise', 'cli', 'sqlalchemy dialect'], classifiers=['Environment :: Console', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3'], entry_points={'sqlalchemy.dialects': ['kylin=kylinpy.sqla_dialect:KylinDialect']})\n\\ No newline at end of file\n--- setup_Kyligence__kylinpy.sh\n+++ setup_Kyligence__kylinpy.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements-dev.txt\n+pip install -r requirements.txt\n+pip install pytest\n--- test_Kyligence__kylinpy.sh\n+++ test_Kyligence__kylinpy.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "--- tests/test_dialect.py\n+++ tests/test_dialect.py\n@@ -8,7 +8,7 @@\n import os\n import sys\n \n-from sqlalchemy import create_engine, inspect\n+from sqlalchemy import create_engine, inspect, text\n \n from kylinpy.utils.compat import as_unicode, quote_plus\n \n@@ -43,12 +43,14 @@\n \n def test_query(self, v1_api):\n engine = create_engine('kylin://ADMIN:KYLIN@sandbox/learn_kylin')\n- rp = engine.execute('select count(*) from kylin_sales')\n+ with engine.connect() as connection:\n+ rp = connection.execute(text('select count(*) from kylin_sales'))\n assert [row[0] for row in rp.fetchall()] == [10000]\n \n def test_table_names(self, v1_api):\n engine = create_engine('kylin://ADMIN:KYLIN@sandbox/learn_kylin')\n- assert engine.table_names() == [\n+ insp = inspect(engine)\n+ assert insp.get_table_names() == [\n 'KYLIN_ACCOUNT',\n 'KYLIN_CAL_DT',\n 'KYLIN_CATEGORY_GROUPINGS',\n", "gold_patch": "--- kylinpy/datasource/cube_source.py\n+++ kylinpy/datasource/cube_source.py\n@@ -225,7 +225,7 @@\n ):\n raise KylinCubeError('Unsupported invoke command for datasource: {}'.format(command))\n \n- eager_args = [arg for arg in inspect.getargspec(fn).args if arg != 'self']\n+ eager_args = [arg for arg in inspect.getfullargspec(fn).args if arg != 'self']\n args = {key: kwargs[key] for key in kwargs.keys() if key in eager_args}\n return fn(**args)\n \n--- kylinpy/sqla_dialect.py\n+++ kylinpy/sqla_dialect.py\n@@ -107,13 +107,11 @@\n super(KylinDialect, self).do_execute(cursor, statement, parameters, context)\n \n def get_table_names(self, connection, schema=None, **kw):\n- conn = connection.connect()\n- tables = conn.connection.connection.get_all_tables(schema)\n+ tables = connection.connection.get_all_tables(schema)\n return tables\n \n def get_schema_names(self, connection, schema=None, **kw):\n- conn = connection.connect()\n- schemas = conn.connection.connection.get_all_schemas()\n+ schemas = connection.connection.get_all_schemas()\n return schemas\n \n def has_table(self, connection, table_name, schema=None):\n@@ -124,9 +122,8 @@\n return False\n \n def get_columns(self, connection, table_name, schema=None, **kw):\n- conn = connection.connect()\n try:\n- columns = conn.connection.connection.get_table_source(table_name, schema).columns\n+ columns = connection.connection.get_table_source(table_name, schema).columns\n return [{\n 'name': col.name,\n 'type': kylin_to_sqla(col.datatype),\n", "reproduction_target_date": "2023-03-13", "reproduction_target_version": "3.10.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 Kyligence__kylinpy .\n\nRUN bash /work/setup_Kyligence__kylinpy.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_Kyligence__kylinpy.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "certifi==2025.7.14\ncffi==1.17.1\ncharset-normalizer==3.4.2\ncoverage==7.10.1\ncryptography==45.0.5\ndocutils==0.22\ngreenlet==3.2.3\nid==1.5.0\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\nmdurl==0.1.2\nmore-itertools==10.7.0\nnh3==0.3.0\npackaging==25.0\npluggy==1.6.0\npycparser==2.22\nPygments==2.19.2\npytest==8.4.1\npytest-cov==6.2.1\npytest-mock==3.14.1\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\nSQLAlchemy==2.0.42\nsqlparse==0.5.3\ntwine==6.1.0\ntyping_extensions==4.14.1\nurllib3==2.5.0\n", "test_type": "pytest", "test_files": "tests/test_kylinpy.py, tests/test_table_source.py, tests/test_kylin_service.py, tests/test_kylin_types.py, tests/test_dialect.py, tests/test_ke4_service.py, tests/test_compat.py, tests/test_ke4_model_source.py, tests/test_sqla_types.py, tests/test_cube_source.py, tests/test_ke3_service.py, tests/test_client.py", "test_count": 74, "related_modules": "builtin, SQLAlchemy", "py_file_count": 49, "total_loc_python": 4461, "difficulty": "Medium", "license": "MIT"} {"repo_name": "ricco386/django-faktura", "repo_url": "https://github.com/ricco386/django-faktura", "commit_hash": "03e94843e0f17e1c66db360784cb31615f829027", "patch": "--- requirements-test.txt\n+++ requirements-test.txt\n@@ -3,4 +3,4 @@\n tox\n flake8\n pytest-django\n-coverage\n+coverage\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,39 +1,7 @@\n import os\n from setuptools import find_packages, setup\n from faktura import __version__ as VERSION, __author__ as AUTHOR\n-\n-with open(os.path.join(os.path.dirname(__file__), \"README.rst\")) as readme:\n+with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:\n README = readme.read()\n-\n-# allow setup.py to be run from any path\n os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))\n-\n-setup(\n- name=\"django-faktura\",\n- version=VERSION,\n- install_requires=[\"django-wkhtmltopdf\"],\n- packages=find_packages(),\n- include_package_data=True,\n- setup_requires=[\"pytest-runner\"],\n- tests_require=[\"pytest\"],\n- license=\"MIT License\",\n- description=\"A simple Django app to create and manage invoices.\",\n- long_description=README,\n- long_description_content_type=\"text/x-rst\",\n- url=\"https://github.com/ricco386/django-faktura\",\n- author=AUTHOR,\n- classifiers=[\n- \"Environment :: Web Environment\",\n- \"Framework :: Django\",\n- \"Framework :: Django :: 2.1\",\n- \"Framework :: Django :: 2.2\",\n- \"Intended Audience :: Developers\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Operating System :: OS Independent\",\n- \"Programming Language :: Python\",\n- \"Programming Language :: Python :: 3.6\",\n- \"Programming Language :: Python :: 3.7\",\n- \"Topic :: Internet :: WWW/HTTP\",\n- \"Topic :: Internet :: WWW/HTTP :: Dynamic Content\",\n- ],\n-)\n+setup(name='django-faktura', version=VERSION, install_requires=['django-wkhtmltopdf'], packages=find_packages(), include_package_data=True, setup_requires=['pytest-runner'], tests_require=['pytest'], license='MIT License', description='A simple Django app to create and manage invoices.', long_description=README, long_description_content_type='text/x-rst', url='https://github.com/ricco386/django-faktura', author=AUTHOR, classifiers=['Environment :: Web Environment', 'Framework :: Django', 'Framework :: Django :: 2.1', 'Framework :: Django :: 2.2', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content'])\n\\ No newline at end of file\n--- setup_ricco386__django-faktura.sh\n+++ setup_ricco386__django-faktura.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements-test.txt\n+pip install pytest\n--- test_ricco386__django-faktura.sh\n+++ test_ricco386__django-faktura.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- base_urls.py\n+++ base_urls.py\n@@ -9,7 +9,8 @@\n if django.get_version()[0] == '2':\n from django.urls import include, path\n else:\n- from django.conf.urls import include, url as path\n+ from django.conf.urls import include\n+ from django.urls import re_path as path\n \n urlpatterns = [\n path(\"invoices/\", include(\"faktura.urls\")),\n", "reproduction_target_date": "2021-12-22", "reproduction_target_version": "3.7.12", "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 ricco386__django-faktura .\n\nRUN bash /work/setup_ricco386__django-faktura.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_ricco386__django-faktura.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "asgiref==3.9.1\ncachetools==6.1.0\nchardet==5.2.0\ncolorama==0.4.6\ncoverage==7.10.1\ndistlib==0.4.0\nDjango==5.2.4\ndjango-wkhtmltopdf==3.4.0\nfilelock==3.18.0\nflake8==7.3.0\niniconfig==2.1.0\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\npytest==8.4.1\npytest-django==4.11.1\nsix==1.17.0\nsqlparse==0.5.3\ntox==4.28.3\nvirtualenv==20.32.0\n", "test_type": "pytest", "test_files": "faktura/tests/test_views.py, faktura/tests/test_models.py", "test_count": 3, "related_modules": "Django", "py_file_count": 20, "total_loc_python": 936, "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"} {"repo_name": "ownaginatious/mixpanel-jql", "repo_url": "https://github.com/ownaginatious/mixpanel-jql", "commit_hash": "ef258541217d3f2ccbaf2aeb2e73380774888fff", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,4 +1,4 @@\n ijson\n jsbeautifier\n requests\n-six\n+six\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,29 +1,4 @@\n from setuptools import setup, find_packages\n from io import open\n import versioneer\n-\n-setup(\n- name='mixpanel-jql',\n- packages=find_packages(exclude=[\"tests\"]),\n- version=versioneer.get_version(),\n- cmdclass=versioneer.get_cmdclass(),\n- description='A streaming library for making JQL queries to Mixpanel',\n- long_description=open('README.rst').read(),\n- author='Dillon Dixon',\n- author_email='dillondixon@gmail.com',\n- url='https://github.com/ownaginatious/mixpanel-jql',\n- license='MIT',\n- keywords=['mixpanel', 'jql', 'stream'],\n- classifiers=[\n- 'License :: OSI Approved :: MIT License',\n- 'Programming Language :: Python :: 2.7',\n- 'Programming Language :: Python :: 3.3',\n- 'Programming Language :: Python :: 3.4',\n- 'Programming Language :: Python :: 3.5',\n- 'Programming Language :: Python :: 3.6'\n- ],\n- install_requires=[line.strip()\n- for line in open(\"requirements.txt\", \"r\",\n- encoding=\"utf-8\").readlines()],\n- test_suite=\"tests\"\n-)\n+setup(name='mixpanel-jql', packages=find_packages(exclude=['tests']), version=versioneer.get_version(), cmdclass=versioneer.get_cmdclass(), description='A streaming library for making JQL queries to Mixpanel', long_description=open('README.rst').read(), author='Dillon Dixon', author_email='dillondixon@gmail.com', url='https://github.com/ownaginatious/mixpanel-jql', license='MIT', keywords=['mixpanel', 'jql', 'stream'], classifiers=['License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6'], install_requires=[line.strip() for line in open('requirements.txt', 'r', encoding='utf-8').readlines()], test_suite='tests')\n\\ No newline at end of file\n--- setup_ownaginatious__mixpanel-jql.sh\n+++ setup_ownaginatious__mixpanel-jql.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_ownaginatious__mixpanel-jql.sh\n+++ test_ownaginatious__mixpanel-jql.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_converters tests.test_syntax tests.test_reducers tests.test_transformations\n", "test_patch": "", "gold_patch": "--- mixpanel_jql/query.py\n+++ mixpanel_jql/query.py\n@@ -215,7 +215,7 @@\n elif not isinstance(v, six.string_types):\n raise JQLSyntaxError('to_date must be datetime, datetime.date, or str')\n elif k == 'event_selectors':\n- if not isinstance(v, collections.Iterable):\n+ if not isinstance(v, collections.abc.Iterable):\n raise JQLSyntaxError(\"event_params['event_selectors'] must be iterable\")\n for i, e in enumerate(v):\n if not isinstance(e, dict):\n@@ -250,7 +250,7 @@\n for k, v in params.items():\n if k != 'user_selectors':\n raise JQLSyntaxError('\"%s\" is not a valid key in people_params' % k)\n- if not isinstance(v, collections.Iterable):\n+ if not isinstance(v, collections.abc.Iterable):\n raise JQLSyntaxError(\"people_params['user_selectors'] must be iterable\")\n for i, e in enumerate(v):\n for ek, ev in e.items():\n@@ -337,7 +337,7 @@\n % (v, ', '.join(self.VALID_JOIN_TYPES))\n )\n elif k == 'selectors':\n- if not isinstance(v, collections.Iterable):\n+ if not isinstance(v, collections.abc.Iterable):\n raise JQLSyntaxError(\"join_params['selectors'] must be iterable\")\n for i, e in enumerate(v):\n if not isinstance(e, dict):\n", "reproduction_target_date": "2018-10-05", "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 ownaginatious__mixpanel-jql .\n\nRUN bash /work/setup_ownaginatious__mixpanel-jql.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_ownaginatious__mixpanel-jql.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "certifi==2025.7.14\ncharset-normalizer==3.4.2\nEditorConfig==0.17.1\nidna==3.10\nijson==3.4.0\njsbeautifier==1.15.4\nrequests==2.32.4\nsix==1.17.0\nurllib3==2.5.0\n", "test_type": "unittest", "test_files": "tests/test_transformations.py, tests/test_reducers.py, tests/test_syntax.py, tests/test_converters.py", "test_count": 37, "related_modules": "builtin", "py_file_count": 11, "total_loc_python": 3133, "difficulty": "Easy", "license": "MIT"} {"repo_name": "jatinchowdhury18/audio_dspy", "repo_url": "https://github.com/jatinchowdhury18/audio_dspy", "commit_hash": "96ce0e223877cb5515f14da4f6d2ce8282d81f3c", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -2,4 +2,4 @@\n scipy\n matplotlib\n setuptools\n-sphinx\n+sphinx\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,24 +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=\"audio_dspy\",\n- version=\"0.0.4\",\n- author=\"Jatin Chowdhury\",\n- author_email=\"jatin@ccrma.stanford.edu\",\n- description=\"A package for audio DSP tools\",\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- url=\"https://github.com/jatinchowdhury18/audio_dspy\",\n- packages=setuptools.find_packages(),\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- test_suite='nose.collector',\n- tests_require=['nose']\n-)\n+setuptools.setup(name='audio_dspy', version='0.0.4', author='Jatin Chowdhury', author_email='jatin@ccrma.stanford.edu', description='A package for audio DSP tools', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/jatinchowdhury18/audio_dspy', packages=setuptools.find_packages(), classifiers=['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent'], python_requires='>=3.6', test_suite='nose.collector', tests_require=['nose'])\n\\ No newline at end of file\n--- setup_jatinchowdhury18__audio_dspy.sh\n+++ setup_jatinchowdhury18__audio_dspy.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_jatinchowdhury18__audio_dspy.sh\n+++ test_jatinchowdhury18__audio_dspy.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_tf tests.test_prony tests.test_level_detector tests.test_hysteresis tests.test_eq tests.test_delay_utils tests.test_sweeps tests.test_adaptive_filt tests.test_nonlinearities tests.test_modal tests.test_farina tests.test_eq_design\n", "test_patch": "", "gold_patch": "--- audio_dspy/prony.py\n+++ audio_dspy/prony.py\n@@ -26,12 +26,12 @@\n \"\"\"\n h = adsp.tf2minphase(x, False)\n k = len(h)-1\n- H = np.mat(linalg.toeplitz(np.array(h), np.append([1], np.zeros(k))))\n+ H = np.asmatrix(linalg.toeplitz(np.array(h), np.append([1], np.zeros(k))))\n H = H[:, 0:(na+1)]\n H1 = H[0:(nb+1), :]\n h1 = H[(nb+1):(k+1), 0]\n H2 = H[(nb+1):(k+1), 1:(na+1)]\n- a = np.vstack((np.mat(1), -H2.I * h1))\n+ a = np.vstack((np.asmatrix(1), -H2.I * h1))\n aT = a.T\n b = aT * H1.T\n \n", "reproduction_target_date": "2022-01-24", "reproduction_target_version": "3.10.2", "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 jatinchowdhury18__audio_dspy .\n\nRUN bash /work/setup_jatinchowdhury18__audio_dspy.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_jatinchowdhury18__audio_dspy.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "alabaster==1.0.0\nbabel==2.17.0\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\ncontourpy==1.3.3\ncycler==0.12.1\ndocutils==0.21.2\nfonttools==4.59.0\nidna==3.10\nimagesize==1.4.1\nJinja2==3.1.6\nkiwisolver==1.4.8\nMarkupSafe==3.0.2\nmatplotlib==3.10.3\nnumpy==2.3.2\npackaging==25.0\npillow==11.3.0\nPygments==2.19.2\npyparsing==3.2.3\npython-dateutil==2.9.0.post0\nrequests==2.32.4\nroman-numerals-py==3.1.0\nscipy==1.16.1\nsetuptools==80.9.0\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\nurllib3==2.5.0\n", "test_type": "unittest", "test_files": "tests/test_hysteresis.py, tests/test_eq_design.py, tests/test_delay_utils.py, tests/test_level_detector.py, tests/test_eq.py, tests/test_nonlinearities.py, tests/test_modal.py, tests/test_prony.py, tests/test_adaptive_filt.py, tests/test_farina.py, tests/test_tf.py, tests/test_sweeps.py", "test_count": 55, "related_modules": "numpy", "py_file_count": 35, "total_loc_python": 3504, "difficulty": "Easy", "license": "MIT"} {"repo_name": "RatJuggler/guinea-bot", "repo_url": "https://github.com/RatJuggler/guinea-bot", "commit_hash": "b44a51a422d94b9ec59b157493b6bec147b5a19e", "patch": "--- setup.py\n+++ setup.py\n@@ -1,54 +1,4 @@\n from setuptools import setup, find_packages\n-\n-with open(\"README.md\", \"r\") as fh:\n+with open('README.md', 'r') as fh:\n long_description = fh.read()\n-\n-setup(\n- name='guineabot',\n- version='0.3.0',\n- description='A guinea pig Twitter bot.',\n- long_description=long_description,\n- long_description_content_type='text/markdown',\n- author='John Chase',\n- author_email='ratteal@gmail.com',\n- python_requires='>=3.7',\n- url='https://github.com/RatJuggler/guinea-bot',\n- project_urls={\n- \"Documentation\": \"https://github.com/RatJuggler/guinea-bot\",\n- \"Code\": \"https://github.com/RatJuggler/guinea-bot\",\n- \"Issue tracker\": \"https://github.com/RatJuggler/guinea-bot/issues\",\n- },\n- packages=find_packages(exclude=['tests']),\n- package_data={\n- 'guineabot': ['guinea_pig_sayings.json'],\n- },\n- entry_points={\n- 'console_scripts': [\n- 'guineabot = guineabot.__main__:simulate_guinea_pig',\n- ]\n- },\n- install_requires=[\n- # Check latest releases on piwheels: https://www.piwheels.org/\n- 'click ==7.1.2',\n- 'environs ==9.3.0',\n- 'tweepy ==3.10.0',\n- 'prometheus_client ==0.9.0'\n- ],\n- test_suite='tests',\n- tests_require=[\n- 'coverage',\n- 'flake8',\n- 'testfixtures',\n- 'tox'\n- ],\n- license='MIT',\n- classifiers=[\n- # Trove classifiers\n- # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers\n- 'License :: OSI Approved :: MIT License',\n- 'Development Status :: 5 - Production/Stable',\n- 'Programming Language :: Python :: 3.7',\n- 'Operating System :: POSIX :: Linux',\n- 'Topic :: Games/Entertainment :: Simulation'\n- ]\n-)\n+setup(name='guineabot', version='0.3.0', description='A guinea pig Twitter bot.', long_description=long_description, long_description_content_type='text/markdown', author='John Chase', author_email='ratteal@gmail.com', python_requires='>=3.7', url='https://github.com/RatJuggler/guinea-bot', project_urls={'Documentation': 'https://github.com/RatJuggler/guinea-bot', 'Code': 'https://github.com/RatJuggler/guinea-bot', 'Issue tracker': 'https://github.com/RatJuggler/guinea-bot/issues'}, packages=find_packages(exclude=['tests']), package_data={'guineabot': ['guinea_pig_sayings.json']}, entry_points={'console_scripts': ['guineabot = guineabot.__main__:simulate_guinea_pig']}, install_requires=['click', 'environs', 'tweepy', 'prometheus_client'], test_suite='tests', tests_require=['coverage', 'flake8', 'testfixtures', 'tox'], license='MIT', classifiers=['License :: OSI Approved :: MIT License', 'Development Status :: 5 - Production/Stable', 'Programming Language :: Python :: 3.7', 'Operating System :: POSIX :: Linux', 'Topic :: Games/Entertainment :: Simulation'])\n\\ No newline at end of file\n--- setup_RatJuggler__guinea-bot.sh\n+++ setup_RatJuggler__guinea-bot.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n+pip install coverage flake8 testfixtures tox\n--- test_RatJuggler__guinea-bot.sh\n+++ test_RatJuggler__guinea-bot.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_twitter_api tests.test_sayings tests.test_guineapig_state tests.test_guineapig tests.test_main tests.test_photos tests.test_tweeter\n", "test_patch": "", "gold_patch": "--- guineabot/twitter_api.py\n+++ guineabot/twitter_api.py\n@@ -4,7 +4,8 @@\n \n from environs import Env\n from prometheus_client import Counter\n-from tweepy import API, Cursor, OAuthHandler, TweepError, User\n+from tweepy import API, Cursor, OAuthHandler, User\n+from tweepy.errors import TweepyException\n \n from .age_logging import age_logger\n \n@@ -142,7 +143,7 @@\n self.__api.update_status(message)\n age_logger.info(\"Tweeted: {0}\".format(message))\n TWEETS.labels('plain').inc()\n- except TweepError as error:\n+ except TweepyException as error:\n if error.api_code == 187:\n age_logger.warning(\"Duplicate tweet discarded!\")\n else:\n@@ -155,7 +156,7 @@\n self.__api.update_status(message, media_ids=[media.media_id])\n age_logger.info(\"Tweeted: {0} {1}\".format(message, photo_path))\n TWEETS.labels('photo').inc()\n- except TweepError as error:\n+ except TweepyException as error:\n if error.api_code == 187:\n age_logger.warning(\"Duplicate photo tweet discarded!\")\n else:\n", "reproduction_target_date": "2021-03-16", "reproduction_target_version": "3.9.2", "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 RatJuggler__guinea-bot .\n\nRUN bash /work/setup_RatJuggler__guinea-bot.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_RatJuggler__guinea-bot.sh\"]\n", "version_source": "setup.py", "script_source": "setup.py", "dependency_versions": "cachetools==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\nenvirons==14.2.0\nfilelock==3.18.0\nflake8==7.3.0\nguineabot @ file:///work\nidna==3.10\nmarshmallow==4.0.0\nmccabe==0.7.0\noauthlib==3.3.1\npackaging==25.0\nplatformdirs==4.3.8\npluggy==1.6.0\nprometheus_client==0.22.1\npycodestyle==2.14.0\npyflakes==3.4.0\npyproject-api==1.9.1\npython-dotenv==1.1.1\nrequests==2.32.4\nrequests-oauthlib==2.0.0\ntestfixtures==9.1.0\ntox==4.28.3\ntweepy==4.16.0\nurllib3==2.5.0\nvirtualenv==20.32.0\n", "test_type": "unittest", "test_files": "tests/test_sayings.py, tests/test_twitter_api.py, tests/test_main.py, tests/test_tweeter.py, tests/test_guineapig.py, tests/test_guineapig_state.py, tests/test_photos.py", "test_count": 36, "related_modules": "tweepy", "py_file_count": 21, "total_loc_python": 1454, "difficulty": "Easy", "license": "MIT"} {"repo_name": "CyberZHG/keras-adaptive-softmax", "repo_url": "https://github.com/CyberZHG/keras-adaptive-softmax", "commit_hash": "cba799ad5d465b15bd9306ff625cfed22526eb89", "patch": "--- requirements-dev.txt\n+++ requirements-dev.txt\n@@ -1,6 +1,6 @@\n-setuptools>=38.6.0\n-twine>=1.11.0\n-wheel>=0.31.0\n+setuptools\n+twine\n+wheel\n tensorflow\n nose\n pycodestyle\n--- 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@@ -2,43 +2,20 @@\n import re\n import codecs\n from setuptools import setup, find_packages\n-\n current_path = os.path.abspath(os.path.dirname(__file__))\n \n-\n def read_file(*parts):\n with codecs.open(os.path.join(current_path, *parts), 'r', 'utf8') as reader:\n return reader.read()\n \n-\n def get_requirements(*parts):\n with codecs.open(os.path.join(current_path, *parts), 'r', 'utf8') as reader:\n return list(map(lambda x: x.strip(), reader.readlines()))\n \n-\n def find_version(*file_paths):\n version_file = read_file(*file_paths)\n- version_match = re.search(r\"^__version__ = ['\\\"]([^'\\\"]*)['\\\"]\", version_file, re.M)\n+ version_match = re.search('^__version__ = [\\'\\\\\"]([^\\'\\\\\"]*)[\\'\\\\\"]', version_file, re.M)\n if version_match:\n return version_match.group(1)\n raise RuntimeError('Unable to find version string.')\n-\n-\n-setup(\n- name='keras-adaptive-softmax',\n- version=find_version('keras_adaptive_softmax', '__init__.py'),\n- packages=find_packages(),\n- url='https://github.com/CyberZHG/keras-adaptive-softmax',\n- license='MIT',\n- author='CyberZHG',\n- author_email='CyberZHG@users.noreply.github.com',\n- description='adaptive-softmax implemented in Keras',\n- long_description=read_file('README.md'),\n- long_description_content_type='text/markdown',\n- install_requires=get_requirements('requirements.txt'),\n- classifiers=(\n- \"Programming Language :: Python :: 3\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Operating System :: OS Independent\",\n- ),\n-)\n+setup(name='keras-adaptive-softmax', version=find_version('keras_adaptive_softmax', '__init__.py'), packages=find_packages(), url='https://github.com/CyberZHG/keras-adaptive-softmax', license='MIT', author='CyberZHG', author_email='CyberZHG@users.noreply.github.com', description='adaptive-softmax implemented in Keras', long_description=read_file('README.md'), long_description_content_type='text/markdown', install_requires=get_requirements('requirements.txt'), classifiers=('Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent'))\n\\ No newline at end of file\n--- setup_CyberZHG__keras-adaptive-softmax.sh\n+++ setup_CyberZHG__keras-adaptive-softmax.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements-dev.txt\n+pip install -r requirements.txt\n--- test_CyberZHG__keras-adaptive-softmax.sh\n+++ test_CyberZHG__keras-adaptive-softmax.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_softmax tests.test_embeddings\n", "test_patch": "--- tests/test_embeddings.py\n+++ tests/test_embeddings.py\n@@ -4,7 +4,6 @@\n \n import numpy as np\n from tensorflow import keras\n-from tensorflow.keras import backend as K\n \n from keras_adaptive_softmax import AdaptiveEmbedding\n \n@@ -19,8 +18,8 @@\n return_embeddings=True,\n return_projections=True,\n )(input_layer)\n- func = K.function([input_layer], embed_layer)\n- outputs = func([np.array([[0, 1, 2]])])\n+ model = keras.Model([input_layer], embed_layer)\n+ outputs = model([np.array([[0, 1, 2]])])\n self.assertTrue(np.allclose(outputs[0], outputs[1]))\n \n def test_single_projection(self):\n@@ -140,14 +139,14 @@\n return_embeddings=True,\n return_projections=True,\n )\n- func = K.function([input_layer], embed_layer(input_layer))\n+ model = keras.Model([input_layer], embed_layer(input_layer))\n embed_layer.set_weights([\n embed_0, proj_0,\n embed_1, proj_1,\n embed_2, proj_2,\n embed_3, proj_3,\n ])\n- outputs = func([np.array([list(range(30))])])\n+ outputs = model([np.array([list(range(30))])])\n expected = np.array([\n [-3.783413887023926, -0.9968423843383789, -4.223631381988525],\n [2.528728485107422, -6.659335613250732, -2.194012403488159],\n--- tests/test_softmax.py\n+++ tests/test_softmax.py\n@@ -443,10 +443,10 @@\n bind_embeddings=True,\n bind_projections=True,\n )\n- func = K.function([input_layer], [softmax_layer(append_layer(input_layer))])\n+ model = keras.Model([input_layer], [softmax_layer(append_layer(input_layer))])\n append_layer.set_weights(weights)\n softmax_layer.set_weights([cluster_kernel, cluster_bias, bias_0, bias_1, bias_2, bias_3])\n- predicted = func([inputs])[0]\n+ predicted = model([inputs])\n expected = np.array([\n [\n [\n", "gold_patch": "--- keras_adaptive_softmax/embedding.py\n+++ keras_adaptive_softmax/embedding.py\n@@ -130,7 +130,7 @@\n if not self.mask_zero:\n output_mask = None\n else:\n- output_mask = K.not_equal(inputs, 0)\n+ output_mask = keras.ops.not_equal(inputs, 0)\n if self.return_embeddings or self.return_projections:\n output_mask = [output_mask]\n if self.return_embeddings:\n", "reproduction_target_date": "2022-01-01", "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 CyberZHG__keras-adaptive-softmax .\n\nRUN bash /work/setup_CyberZHG__keras-adaptive-softmax.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_CyberZHG__keras-adaptive-softmax.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "absl-py==2.3.1\nastunparse==1.6.3\ncertifi==2025.7.14\ncffi==1.17.1\ncharset-normalizer==3.4.2\ncoverage==7.10.1\ncryptography==45.0.5\ndocutils==0.22\nflatbuffers==25.2.10\ngast==0.6.0\ngoogle-pasta==0.2.0\ngrpcio==1.74.0\nh5py==3.14.0\nid==1.5.0\nidna==3.10\njaraco.classes==3.4.0\njaraco.context==6.0.1\njaraco.functools==4.2.1\njeepney==0.9.0\nkeras==3.11.0\nkeyring==25.6.0\nlibclang==18.1.1\nMarkdown==3.8.2\nmarkdown-it-py==3.0.0\nMarkupSafe==3.0.2\nmdurl==0.1.2\nml_dtypes==0.5.3\nmore-itertools==10.7.0\nnamex==0.1.0\nnh3==0.3.0\nnose==1.3.7\nnumpy==2.1.3\nopt_einsum==3.4.0\noptree==0.17.0\npackaging==25.0\nprotobuf==5.29.5\npycodestyle==2.14.0\npycparser==2.22\nPygments==2.19.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\nsix==1.17.0\ntensorboard==2.19.0\ntensorboard-data-server==0.7.2\ntensorflow==2.19.0\ntermcolor==3.1.0\ntwine==6.1.0\ntyping_extensions==4.14.1\nurllib3==2.5.0\nWerkzeug==3.1.3\nwheel==0.45.1\nwrapt==1.17.2\n", "test_type": "unittest", "test_files": "tests/test_softmax.py, tests/test_embeddings.py", "test_count": 15, "related_modules": "tensorflow", "py_file_count": 7, "total_loc_python": 1310, "difficulty": "Medium", "license": "MIT"} {"repo_name": "gwaramadze/falguard", "repo_url": "https://github.com/gwaramadze/falguard", "commit_hash": "e1c234dc17086bf6026418495bfb597497f166aa", "patch": "--- setup.py\n+++ setup.py\n@@ -1,43 +1,2 @@\n from setuptools import setup\n-\n-setup(\n- name='falguard',\n- version='0.4',\n- author='Remy Gwaramadze',\n- author_email='remy@gwaramadze.com',\n- url='https://github.com/gwaramadze/falguard',\n- description='Falcon requests validation against OpenAPI (Swagger) schema',\n- long_description=open('README.rst').read(),\n- license='Apache 2.0',\n- py_modules=['falguard'],\n- install_requires=[\n- 'falcon>=1.1.0,<3.0.0',\n- 'bravado_core>=4.6.0,<6.0.0',\n-\n- # Required for Python 3.6 and 3.7\n- 'six>=1.12.0',\n- ],\n- extras_require={\n- 'tests': [\n- 'pytest',\n- 'pytest-cov',\n- 'pytest-flake8',\n- 'pytest-pylint',\n- ],\n- },\n- classifiers=[\n- 'Development Status :: 5 - Production/Stable',\n- 'Intended Audience :: Developers',\n- 'Operating System :: OS Independent',\n- 'Programming Language :: Python',\n- 'Programming Language :: Python :: 2',\n- 'Programming Language :: Python :: 2.7',\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- 'Programming Language :: Python :: 3.8',\n- 'Topic :: Software Development :: Libraries',\n- ]\n-)\n+setup(name='falguard', version='0.4', author='Remy Gwaramadze', author_email='remy@gwaramadze.com', url='https://github.com/gwaramadze/falguard', description='Falcon requests validation against OpenAPI (Swagger) schema', long_description=open('README.rst').read(), license='Apache 2.0', py_modules=['falguard'], install_requires=['falcon', 'bravado_core', 'six'], extras_require={'tests': ['pytest', 'pytest-cov', 'pytest-flake8', 'pytest-pylint']}, classifiers=['Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Topic :: Software Development :: Libraries'])\n\\ No newline at end of file\n--- setup_gwaramadze__falguard.sh\n+++ setup_gwaramadze__falguard.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .[tests]\n+pip install pytest\n--- test_gwaramadze__falguard.sh\n+++ test_gwaramadze__falguard.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- falguard.py\n+++ falguard.py\n@@ -76,7 +76,10 @@\n def __init__(self, spec_path):\n _, ext = os.path.splitext(spec_path)\n with open(spec_path, 'r') as f:\n- spec_dict = DESERIALIZERS[ext](f.read())\n+ if ext in {'.yaml', '.yml'}:\n+ spec_dict = DESERIALIZERS[ext](f.read(), Loader=yaml.Loader)\n+ else:\n+ spec_dict = DESERIALIZERS[ext](f.read())\n self._spec = Spec.from_dict(spec_dict, config={'use_models': False})\n \n def __call__(self, request, response, resource, params):\n", "reproduction_target_date": "2021-01-18", "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 gwaramadze__falguard .\n\nRUN bash /work/setup_gwaramadze__falguard.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_gwaramadze__falguard.sh\"]\n", "version_source": "setup.py", "script_source": "setup.py", "dependency_versions": "arrow==1.3.0\nastroid==3.3.11\nattrs==25.3.0\nbravado-core==6.1.1\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\ncoverage==7.10.1\ndill==0.4.0\nfalcon==4.0.2\nfalguard @ file:///work\nflake8==7.3.0\nfqdn==1.5.1\nidna==3.10\nimportlib_resources==6.5.2\niniconfig==2.1.0\nisoduration==20.11.0\nisort==6.0.1\njsonpointer==3.0.0\njsonref==1.1.0\njsonschema==4.25.0\njsonschema-specifications==2025.4.1\nlark==1.2.2\nmccabe==0.7.0\nmsgpack==1.1.1\npackaging==25.0\nplatformdirs==4.3.8\npluggy==1.6.0\npycodestyle==2.14.0\npyflakes==3.4.0\nPygments==2.19.2\npylint==3.3.7\npytest==8.4.1\npytest-cov==6.2.1\npytest-flake8==1.3.0\npytest-pylint==0.21.0\npython-dateutil==2.9.0.post0\npytz==2025.2\nPyYAML==6.0.2\nreferencing==0.36.2\nrequests==2.32.4\nrfc3339-validator==0.1.4\nrfc3986-validator==0.1.1\nrfc3987-syntax==1.1.0\nrpds-py==0.26.0\nsimplejson==3.20.1\nsix==1.17.0\nswagger-spec-validator==3.0.4\ntomlkit==0.13.3\ntypes-python-dateutil==2.9.0.20250708\ntyping_extensions==4.14.1\nuri-template==1.3.0\nurllib3==2.5.0\nwebcolors==24.11.1\n", "test_type": "pytest", "test_files": "tests/test_ok.py, tests/test_error.py", "test_count": 63, "related_modules": "PyYAML", "py_file_count": 5, "total_loc_python": 345, "difficulty": "Easy", "license": "Apache-2.0"} {"repo_name": "openstack/swift-bench", "repo_url": "https://github.com/openstack/swift-bench", "commit_hash": "5f803ae8fde7d5511e8b364ae7fd86fac09e48d3", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,3 +1,3 @@\n-python-swiftclient>=3.2.0\n-eventlet>=0.17.4 # MIT\n-six>=1.9.0\n+python-swiftclient\n+eventlet\n+six\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,55 +1,6 @@\n-#!/usr/bin/python\n-# Copyright (c) 2010-2012 OpenStack, LLC.\n-#\n-# Licensed under the Apache License, Version 2.0 (the \"License\");\n-# you may not use this file except in compliance with the License.\n-# You may obtain a copy of the License at\n-#\n-# http://www.apache.org/licenses/LICENSE-2.0\n-#\n-# Unless required by applicable law or agreed to in writing, software\n-# distributed under the License is distributed on an \"AS IS\" BASIS,\n-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n-# implied.\n-# See the License for the specific language governing permissions and\n-# limitations under the License.\n-\n from setuptools import setup, find_packages\n-\n from swiftbench import __version__ as version\n-\n-\n name = 'swift-bench'\n-\n with open('requirements.txt', 'r') as f:\n requires = [x.strip() for x in f if x.strip()]\n-\n-\n-setup(\n- name=name,\n- version=version,\n- description='Benchmark tool for OpenStack Swift',\n- license='Apache License (2.0)',\n- author='OpenStack',\n- author_email='openstack-discuss@lists.openstack.org',\n- url='http://openstack.org',\n- packages=find_packages(exclude=['test', 'bin']),\n- test_suite='nose.collector',\n- classifiers=[\n- 'Development Status :: 5 - Production/Stable',\n- 'License :: OSI Approved :: Apache Software License',\n- 'Operating System :: POSIX :: Linux',\n- 'Programming Language :: Python',\n- 'Programming Language :: Python :: 3',\n- 'Programming Language :: Python :: 3.6',\n- 'Programming Language :: Python :: 3.7',\n- 'Programming Language :: Python :: 3.8',\n- 'Environment :: No Input/Output (Daemon)',\n- 'Environment :: OpenStack',\n- ],\n- install_requires=requires,\n- scripts=[\n- 'bin/swift-bench',\n- 'bin/swift-bench-client',\n- ],\n-)\n+setup(name=name, version=version, description='Benchmark tool for OpenStack Swift', license='Apache License (2.0)', author='OpenStack', author_email='openstack-discuss@lists.openstack.org', url='http://openstack.org', packages=find_packages(exclude=['test', 'bin']), test_suite='nose.collector', classifiers=['Development Status :: 5 - Production/Stable', 'License :: OSI Approved :: Apache Software License', 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Environment :: No Input/Output (Daemon)', 'Environment :: OpenStack'], install_requires=requires, scripts=['bin/swift-bench', 'bin/swift-bench-client'])\n\\ No newline at end of file\n--- setup_openstack__swift-bench.sh\n+++ setup_openstack__swift-bench.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install -r test-requirements.txt\n--- test-requirements.txt\n+++ test-requirements.txt\n@@ -1,6 +1,6 @@\n-hacking>=0.10.0,<0.11\n+hacking\n \n-coverage>=3.6\n-mock>=1.0\n-stestr>=2.0.0 # Apache-2.0\n-testtools>=0.9.32\n+coverage\n+mock\n+stestr\n+testtools\n\\ No newline at end of file\n--- test_openstack__swift-bench.sh\n+++ test_openstack__swift-bench.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_cli tests.test_bench tests.test_utils\n", "test_patch": "", "gold_patch": "--- swiftbench/utils.py\n+++ swiftbench/utils.py\n@@ -45,7 +45,7 @@\n else:\n c = ConfigParser(defaults)\n if hasattr(conf_path, 'readline'):\n- c.readfp(conf_path)\n+ c.read_file(conf_path)\n else:\n success = c.read(conf_path)\n if not success:\n", "reproduction_target_date": "2023-07-10", "reproduction_target_version": "3.8.17", "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 openstack__swift-bench .\n\nRUN bash /work/setup_openstack__swift-bench.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_openstack__swift-bench.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "autopage==0.5.2\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\ncliff==4.10.0\ncmd2==2.7.0\ncoverage==7.10.1\ndnspython==2.7.0\neventlet==0.40.2\nfixtures==4.2.5\nflake8==7.1.2\ngreenlet==3.2.3\nhacking==7.0.0\nidna==3.10\niso8601==2.1.0\nmarkdown-it-py==3.0.0\nmccabe==0.7.0\nmdurl==0.1.2\nmock==5.2.0\npbr==6.1.1\nprettytable==3.16.0\npycodestyle==2.12.1\npyflakes==3.2.0\nPygments==2.19.2\npyperclip==1.9.0\npython-subunit==1.4.4\npython-swiftclient==4.8.0\nPyYAML==6.0.2\nrequests==2.32.4\nrich==14.1.0\nrich-argparse==1.7.1\nsetuptools==80.9.0\nsix==1.17.0\nstestr==4.2.0\nstevedore==5.4.1\ntesttools==2.7.2\ntomlkit==0.13.3\nurllib3==2.5.0\nvoluptuous==0.15.2\nwcwidth==0.2.13\n", "test_type": "unittest", "test_files": "tests/test_bench.py, tests/test_cli.py, tests/test_utils.py", "test_count": 10, "related_modules": "builtin", "py_file_count": 9, "total_loc_python": 1197, "difficulty": "Easy", "license": "Apache-2.0"} {"repo_name": "JWock82/PyNite", "repo_url": "https://github.com/JWock82/PyNite", "commit_hash": "2e43996278a590ba0681190bfea9d3dabe5470af", "patch": "--- setup.py\n+++ setup.py\n@@ -1,36 +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=\"PyNiteFEA\",\n- version=\"0.0.80\",\n- author=\"D. Craig Brinck, PE, SE\",\n- author_email=\"Building.Code@outlook.com\",\n- description=\"A simple elastic 3D structural finite element library for Python.\",\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- url=\"https://github.com/JWock82/PyNite.git\",\n- packages=setuptools.find_packages(include=['PyNite', 'Pynite.*']),\n- package_data = {'PyNite': ['*html', '*.css']},\n- classifiers=[\n- \"Programming Language :: Python :: 3\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Operating System :: OS Independent\",\n- ],\n- install_requires=[\n- 'numpy',\n- 'PrettyTable'\n- ],\n- extras_require = {\n- 'Sparse Solver': ['scipy'],\n- 'Plotting': ['matplotlib'],\n- 'Visualization': ['vtk'],\n- 'Visualization Screenshots': ['IPython'],\n- 'Reporting': ['pdfkit', 'Jinja2'],\n- 'Reviewing Derivations': ['jupyterlab', 'sympy']\n- },\n- include_package_data = True,\n- python_requires = '>=3.6',\n-)\n+setuptools.setup(name='PyNiteFEA', version='0.0.80', author='D. Craig Brinck, PE, SE', author_email='Building.Code@outlook.com', description='A simple elastic 3D structural finite element library for Python.', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/JWock82/PyNite.git', packages=setuptools.find_packages(include=['PyNite', 'Pynite.*']), package_data={'PyNite': ['*html', '*.css']}, classifiers=['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent'], install_requires=['numpy', 'PrettyTable'], extras_require={'Sparse Solver': ['scipy'], 'Plotting': ['matplotlib'], 'Visualization': ['vtk'], 'Visualization Screenshots': ['IPython'], 'Reporting': ['pdfkit', 'Jinja2'], 'Reviewing Derivations': ['jupyterlab', 'sympy']}, include_package_data=True, python_requires='>=3.6')\n\\ No newline at end of file\n--- setup_JWock82__PyNite.sh\n+++ setup_JWock82__PyNite.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_JWock82__PyNite.sh\n+++ test_JWock82__PyNite.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest Testing.test_tanks Testing.test_support_settlement Testing.test_axial_load Testing.test_end_releases Testing.test_plate_bending Testing.test_2D_frames Testing.test_shear_wall Testing.test_torsion Testing.test_unstable_structure Testing.test_sloped_beam Testing.test_springs Testing.test_spring_support Testing.test_AISC_PDelta_benchmarks Testing.test_reanalysis Testing.test_member_internal_results\n", "test_patch": "", "gold_patch": "--- PyNite/FixedEndReactions.py\n+++ PyNite/FixedEndReactions.py\n@@ -33,15 +33,15 @@\n \n # Populate the fixed end reaction vector\n if Direction == \"Fy\":\n- FER.itemset((1, 0), -P*b**2*(L+2*x)/L**3)\n- FER.itemset((5, 0), -P*x*b**2/L**2)\n- FER.itemset((7, 0), -P*x**2*(L+2*b)/L**3)\n- FER.itemset((11, 0), P*x**2*b/L**2)\n+ FER[1, 0] = -P*b**2*(L+2*x)/L**3\n+ FER[5, 0] = -P*x*b**2/L**2\n+ FER[7, 0] = -P*x**2*(L+2*b)/L**3\n+ FER[11, 0] = P*x**2*b/L**2\n elif Direction == \"Fz\":\n- FER.itemset((2, 0), -P*b**2*(L+2*x)/L**3)\n- FER.itemset((4, 0), P*x*b**2/L**2)\n- FER.itemset((8, 0), -P*x**2*(L+2*b)/L**3)\n- FER.itemset((10, 0), -P*x**2*b/L**2)\n+ FER[2, 0] = -P*b**2*(L+2*x)/L**3\n+ FER[4, 0] = P*x*b**2/L**2\n+ FER[8, 0] = -P*x**2*(L+2*b)/L**3\n+ FER[10, 0] = -P*x**2*b/L**2\n \n return FER\n \n@@ -70,15 +70,15 @@\n \n # Populate the fixed end reaction vector\n if Direction == \"Mz\":\n- FER.itemset((1, 0), 6*M*x*b/L**3)\n- FER.itemset((5, 0), M*b*(2*x-b)/L**2)\n- FER.itemset((7, 0), -6*M*x*b/L**3)\n- FER.itemset((11, 0), M*x*(2*b-x)/L**2)\n+ FER[1, 0] = 6*M*x*b/L**3\n+ FER[5, 0] = M*b*(2*x-b)/L**2\n+ FER[7, 0] = -6*M*x*b/L**3\n+ FER[11, 0] = M*x*(2*b-x)/L**2\n elif Direction == \"My\":\n- FER.itemset((2, 0), -6*M*x*b/L**3)\n- FER.itemset((4, 0), M*b*(2*x-b)/L**2)\n- FER.itemset((8, 0), 6*M*x*b/L**3)\n- FER.itemset((10, 0), M*x*(2*b-x)/L**2)\n+ FER[2, 0] = -6*M*x*b/L**3\n+ FER[4, 0] = M*b*(2*x-b)/L**2\n+ FER[8, 0] = 6*M*x*b/L**3\n+ FER[10, 0] = M*x*(2*b-x)/L**2\n return FER\n \n # %%\n@@ -90,15 +90,15 @@\n \n # Populate the fixed end reaction vector\n if Direction == 'Fy':\n- FER.itemset((1, 0), (x1 - x2)*(10*L**3*w1 + 10*L**3*w2 - 15*L*w1*x1**2 - 10*L*w1*x1*x2 - 5*L*w1*x2**2 - 5*L*w2*x1**2 - 10*L*w2*x1*x2 - 15*L*w2*x2**2 + 8*w1*x1**3 + 6*w1*x1**2*x2 + 4*w1*x1*x2**2 + 2*w1*x2**3 + 2*w2*x1**3 + 4*w2*x1**2*x2 + 6*w2*x1*x2**2 + 8*w2*x2**3)/(20*L**3))\n- FER.itemset((5, 0), (x1 - x2)*(20*L**2*w1*x1 + 10*L**2*w1*x2 + 10*L**2*w2*x1 + 20*L**2*w2*x2 - 30*L*w1*x1**2 - 20*L*w1*x1*x2 - 10*L*w1*x2**2 - 10*L*w2*x1**2 - 20*L*w2*x1*x2 - 30*L*w2*x2**2 + 12*w1*x1**3 + 9*w1*x1**2*x2 + 6*w1*x1*x2**2 + 3*w1*x2**3 + 3*w2*x1**3 + 6*w2*x1**2*x2 + 9*w2*x1*x2**2 + 12*w2*x2**3)/(60*L**2))\n- FER.itemset((7, 0), -(x1 - x2)*(-15*L*w1*x1**2 - 10*L*w1*x1*x2 - 5*L*w1*x2**2 - 5*L*w2*x1**2 - 10*L*w2*x1*x2 - 15*L*w2*x2**2 + 8*w1*x1**3 + 6*w1*x1**2*x2 + 4*w1*x1*x2**2 + 2*w1*x2**3 + 2*w2*x1**3 + 4*w2*x1**2*x2 + 6*w2*x1*x2**2 + 8*w2*x2**3)/(20*L**3))\n- FER.itemset((11, 0), (x1 - x2)*(-15*L*w1*x1**2 - 10*L*w1*x1*x2 - 5*L*w1*x2**2 - 5*L*w2*x1**2 - 10*L*w2*x1*x2 - 15*L*w2*x2**2 + 12*w1*x1**3 + 9*w1*x1**2*x2 + 6*w1*x1*x2**2 + 3*w1*x2**3 + 3*w2*x1**3 + 6*w2*x1**2*x2 + 9*w2*x1*x2**2 + 12*w2*x2**3)/(60*L**2))\n+ FER[1, 0] = (x1 - x2)*(10*L**3*w1 + 10*L**3*w2 - 15*L*w1*x1**2 - 10*L*w1*x1*x2 - 5*L*w1*x2**2 - 5*L*w2*x1**2 - 10*L*w2*x1*x2 - 15*L*w2*x2**2 + 8*w1*x1**3 + 6*w1*x1**2*x2 + 4*w1*x1*x2**2 + 2*w1*x2**3 + 2*w2*x1**3 + 4*w2*x1**2*x2 + 6*w2*x1*x2**2 + 8*w2*x2**3)/(20*L**3)\n+ FER[5, 0] = (x1 - x2)*(20*L**2*w1*x1 + 10*L**2*w1*x2 + 10*L**2*w2*x1 + 20*L**2*w2*x2 - 30*L*w1*x1**2 - 20*L*w1*x1*x2 - 10*L*w1*x2**2 - 10*L*w2*x1**2 - 20*L*w2*x1*x2 - 30*L*w2*x2**2 + 12*w1*x1**3 + 9*w1*x1**2*x2 + 6*w1*x1*x2**2 + 3*w1*x2**3 + 3*w2*x1**3 + 6*w2*x1**2*x2 + 9*w2*x1*x2**2 + 12*w2*x2**3)/(60*L**2)\n+ FER[7, 0] = -(x1 - x2)*(-15*L*w1*x1**2 - 10*L*w1*x1*x2 - 5*L*w1*x2**2 - 5*L*w2*x1**2 - 10*L*w2*x1*x2 - 15*L*w2*x2**2 + 8*w1*x1**3 + 6*w1*x1**2*x2 + 4*w1*x1*x2**2 + 2*w1*x2**3 + 2*w2*x1**3 + 4*w2*x1**2*x2 + 6*w2*x1*x2**2 + 8*w2*x2**3)/(20*L**3)\n+ FER[11, 0] = (x1 - x2)*(-15*L*w1*x1**2 - 10*L*w1*x1*x2 - 5*L*w1*x2**2 - 5*L*w2*x1**2 - 10*L*w2*x1*x2 - 15*L*w2*x2**2 + 12*w1*x1**3 + 9*w1*x1**2*x2 + 6*w1*x1*x2**2 + 3*w1*x2**3 + 3*w2*x1**3 + 6*w2*x1**2*x2 + 9*w2*x1*x2**2 + 12*w2*x2**3)/(60*L**2)\n elif Direction == 'Fz':\n- FER.itemset((2, 0), (x1 - x2)*(10*L**3*w1 + 10*L**3*w2 - 15*L*w1*x1**2 - 10*L*w1*x1*x2 - 5*L*w1*x2**2 - 5*L*w2*x1**2 - 10*L*w2*x1*x2 - 15*L*w2*x2**2 + 8*w1*x1**3 + 6*w1*x1**2*x2 + 4*w1*x1*x2**2 + 2*w1*x2**3 + 2*w2*x1**3 + 4*w2*x1**2*x2 + 6*w2*x1*x2**2 + 8*w2*x2**3)/(20*L**3))\n- FER.itemset((4, 0), -(x1 - x2)*(20*L**2*w1*x1 + 10*L**2*w1*x2 + 10*L**2*w2*x1 + 20*L**2*w2*x2 - 30*L*w1*x1**2 - 20*L*w1*x1*x2 - 10*L*w1*x2**2 - 10*L*w2*x1**2 - 20*L*w2*x1*x2 - 30*L*w2*x2**2 + 12*w1*x1**3 + 9*w1*x1**2*x2 + 6*w1*x1*x2**2 + 3*w1*x2**3 + 3*w2*x1**3 + 6*w2*x1**2*x2 + 9*w2*x1*x2**2 + 12*w2*x2**3)/(60*L**2))\n- FER.itemset((8, 0), -(x1 - x2)*(-15*L*w1*x1**2 - 10*L*w1*x1*x2 - 5*L*w1*x2**2 - 5*L*w2*x1**2 - 10*L*w2*x1*x2 - 15*L*w2*x2**2 + 8*w1*x1**3 + 6*w1*x1**2*x2 + 4*w1*x1*x2**2 + 2*w1*x2**3 + 2*w2*x1**3 + 4*w2*x1**2*x2 + 6*w2*x1*x2**2 + 8*w2*x2**3)/(20*L**3))\n- FER.itemset((10, 0), -(x1 - x2)*(-15*L*w1*x1**2 - 10*L*w1*x1*x2 - 5*L*w1*x2**2 - 5*L*w2*x1**2 - 10*L*w2*x1*x2 - 15*L*w2*x2**2 + 12*w1*x1**3 + 9*w1*x1**2*x2 + 6*w1*x1*x2**2 + 3*w1*x2**3 + 3*w2*x1**3 + 6*w2*x1**2*x2 + 9*w2*x1*x2**2 + 12*w2*x2**3)/(60*L**2))\n+ FER[2, 0] = (x1 - x2)*(10*L**3*w1 + 10*L**3*w2 - 15*L*w1*x1**2 - 10*L*w1*x1*x2 - 5*L*w1*x2**2 - 5*L*w2*x1**2 - 10*L*w2*x1*x2 - 15*L*w2*x2**2 + 8*w1*x1**3 + 6*w1*x1**2*x2 + 4*w1*x1*x2**2 + 2*w1*x2**3 + 2*w2*x1**3 + 4*w2*x1**2*x2 + 6*w2*x1*x2**2 + 8*w2*x2**3)/(20*L**3)\n+ FER[4, 0] = -(x1 - x2)*(20*L**2*w1*x1 + 10*L**2*w1*x2 + 10*L**2*w2*x1 + 20*L**2*w2*x2 - 30*L*w1*x1**2 - 20*L*w1*x1*x2 - 10*L*w1*x2**2 - 10*L*w2*x1**2 - 20*L*w2*x1*x2 - 30*L*w2*x2**2 + 12*w1*x1**3 + 9*w1*x1**2*x2 + 6*w1*x1*x2**2 + 3*w1*x2**3 + 3*w2*x1**3 + 6*w2*x1**2*x2 + 9*w2*x1*x2**2 + 12*w2*x2**3)/(60*L**2)\n+ FER[8, 0] = -(x1 - x2)*(-15*L*w1*x1**2 - 10*L*w1*x1*x2 - 5*L*w1*x2**2 - 5*L*w2*x1**2 - 10*L*w2*x1*x2 - 15*L*w2*x2**2 + 8*w1*x1**3 + 6*w1*x1**2*x2 + 4*w1*x1*x2**2 + 2*w1*x2**3 + 2*w2*x1**3 + 4*w2*x1**2*x2 + 6*w2*x1*x2**2 + 8*w2*x2**3)/(20*L**3)\n+ FER[10, 0] = -(x1 - x2)*(-15*L*w1*x1**2 - 10*L*w1*x1*x2 - 5*L*w1*x2**2 - 5*L*w2*x1**2 - 10*L*w2*x1*x2 - 15*L*w2*x2**2 + 12*w1*x1**3 + 9*w1*x1**2*x2 + 6*w1*x1*x2**2 + 3*w1*x2**3 + 3*w2*x1**3 + 6*w2*x1**2*x2 + 9*w2*x1*x2**2 + 12*w2*x2**3)/(60*L**2)\n \n return FER\n \n@@ -110,8 +110,8 @@\n FER = zeros((12, 1))\n \n # Populate the fixed end reaction vector\n- FER.itemset((0, 0), -P*(L-x)/L)\n- FER.itemset((6, 0), -P*x/L)\n+ FER[0, 0] = -P*(L-x)/L\n+ FER[6, 0] = -P*x/L\n \n return FER\n \n@@ -123,8 +123,8 @@\n FER = zeros((12, 1))\n \n # Populate the fixed end reaction vector\n- FER.itemset((0, 0), 1/(6*L)*(x1-x2)*(3*L*p1+3*L*p2-2*p1*x1-p1*x2-p2*x1-2*p2*x2))\n- FER.itemset((6, 0), 1/(6*L)*(x1-x2)*(2*p1*x1+p1*x2+p2*x1+2*p2*x2))\n+ FER[0, 0] = 1/(6*L)*(x1-x2)*(3*L*p1+3*L*p2-2*p1*x1-p1*x2-p2*x1-2*p2*x2)\n+ FER[6, 0] = 1/(6*L)*(x1-x2)*(2*p1*x1+p1*x2+p2*x1+2*p2*x2)\n \n return FER\n \n@@ -144,7 +144,7 @@\n FER = zeros((12, 1))\n \n # Populate the fixed end reaction vector\n- FER.itemset((3, 0), -T*(L - x)/L)\n- FER.itemset((9, 0), -T*x/L)\n+ FER[3, 0] = -T*(L - x)/L\n+ FER[9, 0] = -T*x/L\n \n return FER\n--- PyNite/Plate3D.py\n+++ PyNite/Plate3D.py\n@@ -404,33 +404,33 @@\n D = zeros((24, 1))\n \n # Read in the global displacements from the nodes\n- D.itemset((0, 0), self.i_node.DX[combo_name])\n- D.itemset((1, 0), self.i_node.DY[combo_name])\n- D.itemset((2, 0), self.i_node.DZ[combo_name])\n- D.itemset((3, 0), self.i_node.RX[combo_name])\n- D.itemset((4, 0), self.i_node.RY[combo_name])\n- D.itemset((5, 0), self.i_node.RZ[combo_name])\n+ D[0, 0] = self.i_node.DX[combo_name]\n+ D[1, 0] = self.i_node.DY[combo_name]\n+ D[2, 0] = self.i_node.DZ[combo_name]\n+ D[3, 0] = self.i_node.RX[combo_name]\n+ D[4, 0] = self.i_node.RY[combo_name]\n+ D[5, 0] = self.i_node.RZ[combo_name]\n \n- D.itemset((6, 0), self.j_node.DX[combo_name])\n- D.itemset((7, 0), self.j_node.DY[combo_name])\n- D.itemset((8, 0), self.j_node.DZ[combo_name])\n- D.itemset((9, 0), self.j_node.RX[combo_name])\n- D.itemset((10, 0), self.j_node.RY[combo_name])\n- D.itemset((11, 0), self.j_node.RZ[combo_name])\n+ D[6, 0] = self.j_node.DX[combo_name]\n+ D[7, 0] = self.j_node.DY[combo_name]\n+ D[8, 0] = self.j_node.DZ[combo_name]\n+ D[9, 0] = self.j_node.RX[combo_name]\n+ D[10, 0] = self.j_node.RY[combo_name]\n+ D[11, 0] = self.j_node.RZ[combo_name]\n \n- D.itemset((12, 0), self.m_node.DX[combo_name])\n- D.itemset((13, 0), self.m_node.DY[combo_name])\n- D.itemset((14, 0), self.m_node.DZ[combo_name])\n- D.itemset((15, 0), self.m_node.RX[combo_name])\n- D.itemset((16, 0), self.m_node.RY[combo_name])\n- D.itemset((17, 0), self.m_node.RZ[combo_name])\n+ D[12, 0] = self.m_node.DX[combo_name]\n+ D[13, 0] = self.m_node.DY[combo_name]\n+ D[14, 0] = self.m_node.DZ[combo_name]\n+ D[15, 0] = self.m_node.RX[combo_name]\n+ D[16, 0] = self.m_node.RY[combo_name]\n+ D[17, 0] = self.m_node.RZ[combo_name]\n \n- D.itemset((18, 0), self.n_node.DX[combo_name])\n- D.itemset((19, 0), self.n_node.DY[combo_name])\n- D.itemset((20, 0), self.n_node.DZ[combo_name])\n- D.itemset((21, 0), self.n_node.RX[combo_name])\n- D.itemset((22, 0), self.n_node.RY[combo_name])\n- D.itemset((23, 0), self.n_node.RZ[combo_name])\n+ D[18, 0] = self.n_node.DX[combo_name]\n+ D[19, 0] = self.n_node.DY[combo_name]\n+ D[20, 0] = self.n_node.DZ[combo_name]\n+ D[21, 0] = self.n_node.RX[combo_name]\n+ D[22, 0] = self.n_node.RY[combo_name]\n+ D[23, 0] = self.n_node.RZ[combo_name]\n \n # Return the global displacement vector\n return D\n", "reproduction_target_date": "2023-08-12", "reproduction_target_version": "3.11.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 JWock82__PyNite .\n\nRUN bash /work/setup_JWock82__PyNite.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_JWock82__PyNite.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "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\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\nparso==0.8.4\npexpect==4.9.0\npillow==11.3.0\nprettytable==3.16.0\nprompt_toolkit==3.0.51\nptyprocess==0.7.0\npure_eval==0.2.3\nPygments==2.19.2\npyparsing==3.2.3\npython-dateutil==2.9.0.post0\nscipy==1.16.1\nsix==1.17.0\nstack-data==0.6.3\ntraitlets==5.14.3\nvtk==9.5.0\nwcwidth==0.2.13\n", "test_type": "unittest", "test_files": "Testing/test_2D_frames.py, Testing/test_spring_support.py, Testing/test_axial_load.py, Testing/test_unstable_structure.py, Testing/test_reanalysis.py, Testing/test_plate_bending.py, Testing/test_tanks.py, Testing/test_torsion.py, Testing/test_end_releases.py, Testing/test_springs.py, Testing/test_AISC_PDelta_benchmarks.py, Testing/test_shear_wall.py, Testing/test_member_internal_results.py, Testing/test_support_settlement.py, Testing/test_sloped_beam.py", "test_count": 26, "related_modules": "numpy", "py_file_count": 51, "total_loc_python": 14991, "difficulty": "Easy", "license": "MIT"} {"repo_name": "jhags/routely", "repo_url": "https://github.com/jhags/routely", "commit_hash": "975c1fc4acdc916014b6cf9bd6ff64ad00fdec6b", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,4 +1,4 @@\n-numpy >= 1.20\n+numpy\n scipy\n matplotlib\n-pandas\n+pandas\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,30 +1,6 @@\n from setuptools import setup, find_packages\n-\n-# requirement file\n with open('requirements.txt') as f:\n required = f.read().splitlines()\n-\n-# readme file\n with open('README.rst') as f:\n readme = f.read()\n-\n-\n-setup(\n- name='routely',\n- version='0.1.4',\n- description='Common operations and transformations on routes represented by a 2D line in xy space and corresponding z-axis data.',\n- long_description=readme,\n- long_description_content_type=\"text/x-rst\",\n- url='https://github.com/jhags/routely',\n- author='J Hagstrom',\n- license='MIT',\n- classifiers=[\n- \"License :: OSI Approved :: MIT License\",\n- \"Programming Language :: Python :: 3\",\n- \"Programming Language :: Python :: 3.7\",\n- ],\n- packages=find_packages(include=['routely', 'routely.*']),\n- install_requires=required,\n- tests_require=['pytest', 'pytest-cov', 'coveralls'],\n- python_requires='>=3.7',\n-)\n+setup(name='routely', version='0.1.4', description='Common operations and transformations on routes represented by a 2D line in xy space and corresponding z-axis data.', long_description=readme, long_description_content_type='text/x-rst', url='https://github.com/jhags/routely', author='J Hagstrom', license='MIT', classifiers=['License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.7'], packages=find_packages(include=['routely', 'routely.*']), install_requires=required, tests_require=['pytest', 'pytest-cov', 'coveralls'], python_requires='>=3.7')\n\\ No newline at end of file\n--- setup_jhags__routely.sh\n+++ setup_jhags__routely.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_jhags__routely.sh\n+++ test_jhags__routely.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- routely/routely.py\n+++ routely/routely.py\n@@ -78,16 +78,16 @@\n \"\"\"\n # Check x, y and z are int or float dtypes\n # ie do not contain any unusable values like strings\n- if not (self.x.dtype in [np.int, np.float]):\n+ if not (self.x.dtype in [int, float]):\n raise TypeError(\"Route input 'x' must be either int or float dtypes\")\n \n- if not (self.y.dtype in [np.int, np.float]):\n+ if not (self.y.dtype in [int, float]):\n raise TypeError(\"Route input 'x' must be either int or float dtypes\")\n \n # Performs checks on z if not empty\n if self.z is not None:\n for v in self.z.values():\n- if not (v.dtype in [np.int, np.float]):\n+ if not (v.dtype in [int, float]):\n raise TypeError(\"Route input 'x' must be either int or float dtypes\")\n \n \n", "reproduction_target_date": "2021-02-15", "reproduction_target_version": "3.9.1", "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 jhags__routely .\n\nRUN bash /work/setup_jhags__routely.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_jhags__routely.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "contourpy==1.3.3\ncycler==0.12.1\nfonttools==4.59.0\niniconfig==2.1.0\nkiwisolver==1.4.8\nmatplotlib==3.10.3\nnumpy==2.3.2\npackaging==25.0\npandas==2.3.1\npillow==11.3.0\npluggy==1.6.0\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\nsix==1.17.0\ntzdata==2025.2\n", "test_type": "pytest", "test_files": "tests/routely_test.py", "test_count": 18, "related_modules": "numpy", "py_file_count": 6, "total_loc_python": 1009, "difficulty": "Easy", "license": "MIT"} {"repo_name": "connorworley/jsonschema-typed", "repo_url": "https://github.com/connorworley/jsonschema-typed", "commit_hash": "8748f59ca591fbd626e0e037d4bca227da184eae", "patch": "--- requirements-dev.txt\n+++ requirements-dev.txt\n@@ -1,2 +1,2 @@\n -e .\n-pytest\n+pytest\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,27 +1,7 @@\n \"\"\"Install jsonschema-typed.\"\"\"\n-\n from setuptools import setup, find_packages\n import os\n-\n dir = os.path.abspath(os.path.dirname(__file__))\n-\n with open(os.path.join(dir, 'README.md')) as f:\n description = f.read()\n-\n-setup(\n- name='jsonschema-typed2',\n- author='Connor Worley',\n- author_email='connorbworley@gmail.com',\n- url='https://github.com/connorworley/jsonschema-typed',\n- python_requires='~=3.6', # I think?\n- license='MIT',\n- version='0.3.1',\n- packages=['jsonschema_typed'],\n- zip_safe=False,\n- install_requires=[\n- 'jsonschema==3.0.1',\n- 'mypy>=0.701'\n- ],\n- long_description=description,\n- long_description_content_type='text/markdown'\n-)\n+setup(name='jsonschema-typed2', author='Connor Worley', author_email='connorbworley@gmail.com', url='https://github.com/connorworley/jsonschema-typed', python_requires='~=3.6', license='MIT', version='0.3.1', packages=['jsonschema_typed'], zip_safe=False, install_requires=['jsonschema', 'mypy'], long_description=description, long_description_content_type='text/markdown')\n\\ No newline at end of file\n--- setup_connorworley__jsonschema-typed.sh\n+++ setup_connorworley__jsonschema-typed.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements-dev.txt\n+pip install pytest\n--- test_connorworley__jsonschema-typed.sh\n+++ test_connorworley__jsonschema-typed.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- jsonschema_typed/plugin.py\n+++ jsonschema_typed/plugin.py\n@@ -18,11 +18,13 @@\n import mypy_extensions\n from jsonschema.validators import validator_for\n from jsonschema import RefResolver\n-from jsonschema.validators import _id_of as id_of\n \n from jsonschema_typed.types import JSONSchema\n from jsonschema_typed.types import JSONSchemaBase\n \n+import referencing.jsonschema\n+id_of = referencing.jsonschema.DRAFT202012.id_of\n+\n ISSUE_URL = 'https://github.com/erickpeirson/jsonschema-typed'\n \"\"\"Raise issues here.\"\"\"\n \n", "reproduction_target_date": "2019-09-26", "reproduction_target_version": "3.7.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 connorworley__jsonschema-typed .\n\nRUN bash /work/setup_connorworley__jsonschema-typed.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_connorworley__jsonschema-typed.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "attrs==25.3.0\niniconfig==2.1.0\njsonschema==4.25.0\njsonschema-specifications==2025.4.1\n# Editable install with no version control (jsonschema-typed2==0.3.1)\n-e /work\nmypy==1.17.0\nmypy_extensions==1.1.0\npackaging==25.0\npathspec==0.12.1\npluggy==1.6.0\nPygments==2.19.2\npytest==8.4.1\nreferencing==0.36.2\nrpds-py==0.26.0\ntyping_extensions==4.14.1\n", "test_type": "pytest", "test_files": "tests/plugin_test.py", "test_count": 3, "related_modules": "jsonschema", "py_file_count": 5, "total_loc_python": 634, "difficulty": "Medium", "license": "LicenseRef-scancode-warranty-disclaimer, MIT"} {"repo_name": "bovee/Aston", "repo_url": "https://github.com/bovee/Aston", "commit_hash": "3bfd589384ba180d8d632b3f28c312e8b1f2594b", "patch": "--- setup.py\n+++ setup.py\n@@ -1,51 +1,10 @@\n-#!/usr/bin/env python\n-\n from setuptools import setup\n import os\n-\n from aston import __version__\n \n-\n def read(fname):\n return open(os.path.join(os.path.dirname(__file__), fname)).read()\n-\n-# read in the version number\n with open('aston/__init__.py') as f:\n exec(f.read())\n-\n-options = {\n- 'name': 'Aston',\n- 'version': __version__,\n- 'description': 'Mass/UV Spectral Analysis Program',\n- 'author': 'Roderick Bovee',\n- 'author_email': 'rbovee@gmail.com',\n- 'url': 'https://github.com/bovee/aston',\n- 'license': 'BSD 3-Clause',\n- 'platforms': ['Any'],\n- 'classifiers': [\n- 'Development Status :: 4 - Beta',\n- 'Intended Audience :: Science/Research',\n- 'License :: OSI Approved :: BSD License',\n- 'Operating System :: OS Independent',\n- 'Topic :: Scientific/Engineering :: Chemistry'\n- ],\n- 'long_description': read('README.md'),\n- 'long_description_content_type': 'text/markdown',\n- 'packages': [\n- 'aston', 'aston.calibrations', 'aston.peak',\n- 'aston.spectra', 'aston.trace', 'aston.tracefile'\n- ],\n- 'scripts': [],\n- # 'data_files': matplotlib.get_py2exe_datafiles(),\n- 'package_data': {'aston': []},\n- 'include_package_data': True,\n- 'install_requires': ['numpy>=1.16.4', 'scipy>=1.2.0'],\n- 'setup_requires': ['pytest-runner'],\n- 'tests_require': ['pytest', 'coverage', 'pytest-cov'],\n- 'extras_require': {\n- 'plot': ['matplotlib', 'jupyter'],\n- }\n-}\n-\n-# all the magic happens right here\n-setup(**options)\n+options = {'name': 'Aston', 'version': __version__, 'description': 'Mass/UV Spectral Analysis Program', 'author': 'Roderick Bovee', 'author_email': 'rbovee@gmail.com', 'url': 'https://github.com/bovee/aston', 'license': 'BSD 3-Clause', 'platforms': ['Any'], 'classifiers': ['Development Status :: 4 - Beta', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Topic :: Scientific/Engineering :: Chemistry'], 'long_description': read('README.md'), 'long_description_content_type': 'text/markdown', 'packages': ['aston', 'aston.calibrations', 'aston.peak', 'aston.spectra', 'aston.trace', 'aston.tracefile'], 'scripts': [], 'package_data': {'aston': []}, 'include_package_data': True, 'install_requires': ['numpy', 'scipy'], 'setup_requires': ['pytest-runner'], 'tests_require': ['pytest', 'coverage', 'pytest-cov'], 'extras_require': {'plot': ['matplotlib', 'jupyter']}}\n+setup(**options)\n\\ No newline at end of file\n--- setup_bovee__Aston.sh\n+++ setup_bovee__Aston.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .[plot]\n+pip install pytest coverage pytest-cov\n--- test_bovee__Aston.sh\n+++ test_bovee__Aston.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest aston.test.test_peaks\n", "test_patch": "", "gold_patch": "--- aston/peak/peak.py\n+++ aston/peak/peak.py\n@@ -1,5 +1,5 @@\n import numpy as np\n-from scipy import convolve\n+from numpy import convolve\n from aston.spectra import Scan\n from aston.trace.trace import Trace\n # from aston.spectra.isotopes import delta13c_santrock, delta13c_craig\n", "reproduction_target_date": "2022-03-12", "reproduction_target_version": "3.9.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 bovee__Aston .\n\nRUN bash /work/setup_bovee__Aston.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_bovee__Aston.sh\"]\n", "version_source": "default", "script_source": "setup.py", "dependency_versions": "anyio==4.9.0\nargon2-cffi==25.1.0\nargon2-cffi-bindings==25.1.0\narrow==1.3.0\nAston @ file:///work\nasttokens==3.0.0\nasync-lru==2.0.5\nattrs==25.3.0\nbabel==2.17.0\nbeautifulsoup4==4.13.4\nbleach==6.2.0\ncertifi==2025.7.14\ncffi==1.17.1\ncharset-normalizer==3.4.2\ncomm==0.2.3\ncontourpy==1.3.3\ncoverage==7.10.1\ncycler==0.12.1\ndebugpy==1.8.15\ndecorator==5.2.1\ndefusedxml==0.7.1\nexecuting==2.2.0\nfastjsonschema==2.21.1\nfonttools==4.59.0\nfqdn==1.5.1\nh11==0.16.0\nhttpcore==1.0.9\nhttpx==0.28.1\nidna==3.10\niniconfig==2.1.0\nipykernel==6.30.0\nipython==9.4.0\nipython_pygments_lexers==1.1.1\nipywidgets==8.1.7\nisoduration==20.11.0\njedi==0.19.2\nJinja2==3.1.6\njson5==0.12.0\njsonpointer==3.0.0\njsonschema==4.25.0\njsonschema-specifications==2025.4.1\njupyter==1.1.1\njupyter-console==6.6.3\njupyter-events==0.12.0\njupyter-lsp==2.2.6\njupyter_client==8.6.3\njupyter_core==5.8.1\njupyter_server==2.16.0\njupyter_server_terminals==0.5.3\njupyterlab==4.4.5\njupyterlab_pygments==0.3.0\njupyterlab_server==2.27.3\njupyterlab_widgets==3.0.15\nkiwisolver==1.4.8\nlark==1.2.2\nMarkupSafe==3.0.2\nmatplotlib==3.10.3\nmatplotlib-inline==0.1.7\nmistune==3.1.3\nnbclient==0.10.2\nnbconvert==7.16.6\nnbformat==5.10.4\nnest-asyncio==1.6.0\nnotebook==7.4.4\nnotebook_shim==0.2.4\nnumpy==2.3.2\noverrides==7.7.0\npackaging==25.0\npandocfilters==1.5.1\nparso==0.8.4\npexpect==4.9.0\npillow==11.3.0\nplatformdirs==4.3.8\npluggy==1.6.0\nprometheus_client==0.22.1\nprompt_toolkit==3.0.51\npsutil==7.0.0\nptyprocess==0.7.0\npure_eval==0.2.3\npycparser==2.22\nPygments==2.19.2\npyparsing==3.2.3\npytest==8.4.1\npytest-cov==6.2.1\npython-dateutil==2.9.0.post0\npython-json-logger==3.3.0\nPyYAML==6.0.2\npyzmq==27.0.0\nreferencing==0.36.2\nrequests==2.32.4\nrfc3339-validator==0.1.4\nrfc3986-validator==0.1.1\nrfc3987-syntax==1.1.0\nrpds-py==0.26.0\nscipy==1.16.1\nSend2Trash==1.8.3\nsetuptools==80.9.0\nsix==1.17.0\nsniffio==1.3.1\nsoupsieve==2.7\nstack-data==0.6.3\nterminado==0.18.1\ntinycss2==1.4.0\ntornado==6.5.1\ntraitlets==5.14.3\ntypes-python-dateutil==2.9.0.20250708\ntyping_extensions==4.14.1\nuri-template==1.3.0\nurllib3==2.5.0\nwcwidth==0.2.13\nwebcolors==24.11.1\nwebencodings==0.5.1\nwebsocket-client==1.8.0\nwidgetsnbextension==4.0.14\n", "test_type": "unittest", "test_files": "aston/test/test_peaks.py", "test_count": 2, "related_modules": "scipy", "py_file_count": 47, "total_loc_python": 6251, "difficulty": "Easy", "license": "BSD-3-Clause"} {"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": "LedgerHQ/marshmallow_dataclass", "repo_url": "https://github.com/LedgerHQ/marshmallow_dataclass", "commit_hash": "b974a43d58ba2f6ebb952a722e9249e15b25409e", "patch": "--- setup.py\n+++ setup.py\n@@ -1,54 +1,6 @@\n from setuptools import setup, find_packages\n-\n-VERSION = \"7.5.2\"\n-\n-CLASSIFIERS = [\n- \"Development Status :: 4 - Beta\",\n- \"Environment :: Console\",\n- \"Operating System :: OS Independent\",\n- \"Programming Language :: Python\",\n- \"Programming Language :: Python :: 3.6\",\n- \"Programming Language :: Python :: 3.7\",\n- \"Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries\",\n-]\n-\n-EXTRAS_REQUIRE = {\n- \"enum\": [\"marshmallow-enum\"],\n- \"union\": [\"marshmallow-union\"],\n- ':python_version == \"3.6\"': [\"dataclasses\"],\n- \"lint\": [\"pre-commit~=1.18\"],\n- \"docs\": [\"sphinx\"],\n- \"tests\": [\n- \"pytest\",\n- # re: pypy: typed-ast (a dependency of mypy) fails to install on pypy\n- # https://github.com/python/typed_ast/issues/111\n- \"pytest-mypy-plugins>=1.2.0; implementation_name != 'pypy'\",\n- ],\n-}\n-EXTRAS_REQUIRE[\"dev\"] = (\n- EXTRAS_REQUIRE[\"enum\"]\n- + EXTRAS_REQUIRE[\"union\"]\n- + EXTRAS_REQUIRE[\"lint\"]\n- + EXTRAS_REQUIRE[\"docs\"]\n- + EXTRAS_REQUIRE[\"tests\"]\n-)\n-\n-setup(\n- name=\"marshmallow_dataclass\",\n- version=VERSION,\n- description=\"Python library to convert dataclasses into marshmallow schemas.\",\n- long_description=open(\"README.md\", \"r\").read(),\n- long_description_content_type=\"text/markdown\",\n- packages=find_packages(\n- include=[\"marshmallow_dataclass\", \"marshmallow_dataclass.*\"]\n- ),\n- author=\"Ophir LOJKINE\",\n- author_email=\"pere.jobs@gmail.com\",\n- url=\"https://github.com/lovasoa/marshmallow_dataclass\",\n- keywords=[\"marshmallow\", \"dataclass\", \"serialization\"],\n- classifiers=CLASSIFIERS,\n- python_requires=\">=3.6\",\n- install_requires=[\"marshmallow>=3.0.0,<4.0\", \"typing-inspect\"],\n- extras_require=EXTRAS_REQUIRE,\n- package_data={\"marshmallow_dataclass\": [\"py.typed\"]},\n-)\n+VERSION = '7.5.2'\n+CLASSIFIERS = ['Development Status :: 4 - Beta', 'Environment :: Console', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries']\n+EXTRAS_REQUIRE = {'enum': ['marshmallow-enum'], 'union': ['marshmallow-union'], ':python_version == \"3.6\"': ['dataclasses'], 'lint': ['pre-commit~=1.18'], 'docs': ['sphinx'], 'tests': ['pytest', \"pytest-mypy-plugins>=1.2.0; implementation_name != 'pypy'\"]}\n+EXTRAS_REQUIRE['dev'] = EXTRAS_REQUIRE['enum'] + EXTRAS_REQUIRE['union'] + EXTRAS_REQUIRE['lint'] + EXTRAS_REQUIRE['docs'] + EXTRAS_REQUIRE['tests']\n+setup(name='marshmallow_dataclass', version=VERSION, description='Python library to convert dataclasses into marshmallow schemas.', long_description=open('README.md', 'r').read(), long_description_content_type='text/markdown', packages=find_packages(include=['marshmallow_dataclass', 'marshmallow_dataclass.*']), author='Ophir LOJKINE', author_email='pere.jobs@gmail.com', url='https://github.com/lovasoa/marshmallow_dataclass', keywords=['marshmallow', 'dataclass', 'serialization'], classifiers=CLASSIFIERS, python_requires='>=3.6', install_requires=['marshmallow', 'typing-inspect'], extras_require=EXTRAS_REQUIRE, package_data={'marshmallow_dataclass': ['py.typed']})\n\\ No newline at end of file\n--- setup_LedgerHQ__marshmallow_dataclass.sh\n+++ setup_LedgerHQ__marshmallow_dataclass.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .[enum,union,lint,docs,tests,dev]\n--- test_LedgerHQ__marshmallow_dataclass.sh\n+++ test_LedgerHQ__marshmallow_dataclass.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_post_load tests.test_attribute_copy tests.test_city_building_examples tests.test_field_for_schema tests.test_class_schema\n", "test_patch": "--- tests/test_field_for_schema.py\n+++ tests/test_field_for_schema.py\n@@ -25,7 +25,7 @@\n def test_int(self):\n self.assertFieldsEqual(\n field_for_schema(int, default=9, metadata=dict(required=False)),\n- fields.Integer(default=9, missing=9, required=False),\n+ fields.Integer(dump_default=9, load_default=9, required=False),\n )\n \n def test_any(self):\n@@ -72,7 +72,7 @@\n def test_optional_str(self):\n self.assertFieldsEqual(\n field_for_schema(Optional[str]),\n- fields.String(allow_none=True, required=False, default=None, missing=None),\n+ fields.String(allow_none=True, required=False, dump_default=None, load_default=None),\n )\n \n def test_enum(self):\n@@ -101,7 +101,7 @@\n def test_newtype(self):\n self.assertFieldsEqual(\n field_for_schema(typing.NewType(\"UserId\", int), default=0),\n- fields.Integer(required=False, description=\"UserId\", default=0, missing=0),\n+ fields.Integer(required=False, dump_default=0, load_default=0, metadata={\"description\": \"UserId\"}),\n )\n \n def test_marshmallow_dataclass(self):\n", "gold_patch": "--- marshmallow_dataclass/__init__.py\n+++ marshmallow_dataclass/__init__.py\n@@ -56,6 +56,7 @@\n import dataclasses\n import marshmallow\n import typing_inspect\n+import typing\n \n __all__ = [\"dataclass\", \"add_schema\", \"class_schema\", \"field_for_schema\", \"NewType\"]\n \n@@ -352,10 +353,10 @@\n \n metadata = {} if metadata is None else dict(metadata)\n if default is not marshmallow.missing:\n- metadata.setdefault(\"default\", default)\n+ metadata.setdefault(\"dump_default\", default)\n # 'missing' must not be set for required fields.\n if not metadata.get(\"required\"):\n- metadata.setdefault(\"missing\", default)\n+ metadata.setdefault(\"load_default\", default)\n else:\n metadata.setdefault(\"required\", True)\n \n@@ -400,8 +401,8 @@\n elif typing_inspect.is_optional_type(typ):\n subtyp = next(t for t in arguments if t is not NoneType) # type: ignore\n # Treat optional types as types with a None default\n- metadata[\"default\"] = metadata.get(\"default\", None)\n- metadata[\"missing\"] = metadata.get(\"missing\", None)\n+ metadata[\"dump_default\"] = metadata.get(\"dump_default\", None)\n+ metadata[\"load_default\"] = metadata.get(\"load_default\", None)\n metadata[\"required\"] = False\n return field_for_schema(subtyp, metadata=metadata, base_schema=base_schema)\n elif typing_inspect.is_union_type(typ):\n@@ -415,13 +416,13 @@\n \n # typing.NewType returns a function with a __supertype__ attribute\n newtype_supertype = getattr(typ, \"__supertype__\", None)\n- if newtype_supertype and inspect.isfunction(typ):\n+ if newtype_supertype and isinstance(typ, typing.NewType):\n # Add the information coming our custom NewType implementation\n metadata = {\n- \"description\": typ.__name__,\n **getattr(typ, \"_marshmallow_args\", {}),\n **metadata,\n }\n+ metadata[\"metadata\"] = {\"description\": typ.__name__, **metadata.get(\"metadata\", {})}\n field = getattr(typ, \"_marshmallow_field\", None)\n if field:\n return field(**metadata)\n", "reproduction_target_date": "2020-05-02", "reproduction_target_version": "3.8.2", "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 LedgerHQ__marshmallow_dataclass .\n\nRUN bash /work/setup_LedgerHQ__marshmallow_dataclass.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_LedgerHQ__marshmallow_dataclass.sh\"]\n", "version_source": "setup.py", "script_source": "setup.py", "dependency_versions": "alabaster==1.0.0\naspy.yaml==1.3.0\nattrs==25.3.0\nbabel==2.17.0\ncertifi==2025.7.14\ncfgv==3.4.0\ncharset-normalizer==3.4.2\ndecorator==5.2.1\ndistlib==0.4.0\ndocutils==0.21.2\nfilelock==3.18.0\nidentify==2.6.12\nidna==3.10\nimagesize==1.4.1\niniconfig==2.1.0\nJinja2==3.1.6\njsonschema==4.25.0\njsonschema-specifications==2025.4.1\nMarkupSafe==3.0.2\nmarshmallow==4.0.0\nmarshmallow-enum==1.5.1\nmarshmallow-union==0.1.15.post1\nmarshmallow_dataclass @ file:///work\nmypy==1.17.0\nmypy_extensions==1.1.0\nnodeenv==1.9.1\npackaging==25.0\npathspec==0.12.1\nplatformdirs==4.3.8\npluggy==1.6.0\npre-commit==1.21.0\nPygments==2.19.2\npytest==8.4.1\npytest-mypy-plugins==3.2.0\nPyYAML==6.0.2\nreferencing==0.36.2\nregex==2025.7.33\nrequests==2.32.4\nroman-numerals-py==3.1.0\nrpds-py==0.26.0\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\ntoml==0.10.2\ntomlkit==0.13.3\ntyping-inspect==0.9.0\ntyping_extensions==4.14.1\nurllib3==2.5.0\nvirtualenv==20.32.0\n", "test_type": "unittest", "test_files": "tests/test_class_schema.py, tests/test_city_building_examples.py, tests/test_field_for_schema.py, tests/test_attribute_copy.py, tests/test_post_load.py", "test_count": 24, "related_modules": "marshmallow, builtin", "py_file_count": 11, "total_loc_python": 1133, "difficulty": "Hard", "license": "MIT"} {"repo_name": "bst-mug/acres", "repo_url": "https://github.com/bst-mug/acres", "commit_hash": "46875edbb5619862064cf2380c8e167a418c1cac", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,17 +1,17 @@\n-gensim==3.8.0\n-requests==2.22.0\n-html2text==2019.8.11\n-python-Levenshtein==0.12.0\n+gensim\n+requests\n+html2text\n+python-Levenshtein\n \n # jupyter notebooks\n-scikit-learn==0.24.2\n-matplotlib==3.1.1\n+scikit-learn\n+matplotlib\n \n # dev\n pylint\n-pytest>=4.6 # Required by pytest-cov>=2.10.0\n+pytest\n pytest-cov\n python-coveralls\n mypy\n-sphinx>=3.0 # Required by sphinx-autodoc-typehints>=1.11.0\n-sphinx-autodoc-typehints\n+sphinx\n+sphinx-autodoc-typehints\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,12 +1,2 @@\n from setuptools import setup\n-\n-setup(\n- name='acres',\n- version='1.0',\n- description='Acronym resolution',\n- url='https://github.com/bst-mug/acres',\n- author='Stefan Schulz',\n- author_email='stefan.schulz@medunigraz.at',\n- license='Apache License 2.0',\n- packages=['acres']\n-)\n+setup(name='acres', version='1.0', description='Acronym resolution', url='https://github.com/bst-mug/acres', author='Stefan Schulz', author_email='stefan.schulz@medunigraz.at', license='Apache License 2.0', packages=['acres'])\n\\ No newline at end of file\n--- setup_bst-mug__acres.sh\n+++ setup_bst-mug__acres.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_bst-mug__acres.sh\n+++ test_bst-mug__acres.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- acres/word2vec/test.py\n+++ acres/word2vec/test.py\n@@ -27,7 +27,7 @@\n \n # Check for out of vocabulary acronyms\n # TODO fallback to something, maybe clean the acronym?\n- if acronym not in model.wv.vocab:\n+ if acronym not in model.wv.index_to_key:\n logger.warning(\"'%s' not found in the vocabulary!\", acronym)\n return []\n \n--- acres/word2vec/train.py\n+++ acres/word2vec/train.py\n@@ -45,10 +45,10 @@\n # model.build_vocab(sentences=collocations)\n # model.train(sentences=collocations, total_examples=model.corpus_count, epochs=5)\n \n- model = Word2Vec(size=net_size, alpha=alpha, window=ngram_size - 1,\n+ model = Word2Vec(vector_size=net_size, alpha=alpha, window=ngram_size - 1,\n min_count=min_count, workers=WORKERS, sg=sg, hs=hs, negative=negative)\n- model.build_vocab(sentences=collocations)\n- model.train(sentences=collocations, total_examples=model.corpus_count, epochs=5)\n+ model.build_vocab(corpus_iterable=collocations)\n+ model.train(corpus_iterable=collocations, total_examples=model.corpus_count, epochs=5)\n \n return model\n \n", "reproduction_target_date": "2021-05-22", "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 bst-mug__acres .\n\nRUN bash /work/setup_bst-mug__acres.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_bst-mug__acres.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "alabaster==1.0.0\nastroid==3.3.11\nbabel==2.17.0\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\ncontourpy==1.3.3\ncoverage==7.10.1\ncycler==0.12.1\ndill==0.4.0\ndocutils==0.21.2\nfonttools==4.59.0\ngensim==4.3.3\nhtml2text==2025.4.15\nidna==3.10\nimagesize==1.4.1\niniconfig==2.1.0\nisort==6.0.1\nJinja2==3.1.6\njoblib==1.5.1\nkiwisolver==1.4.8\nLevenshtein==0.27.1\nMarkupSafe==3.0.2\nmatplotlib==3.10.3\nmccabe==0.7.0\nmypy==1.17.0\nmypy_extensions==1.1.0\nnumpy==1.26.4\npackaging==25.0\npathspec==0.12.1\npillow==11.3.0\nplatformdirs==4.3.8\npluggy==1.6.0\nPygments==2.19.2\npylint==3.3.7\npyparsing==3.2.3\npytest==8.4.1\npytest-cov==6.2.1\npython-coveralls==2.9.3\npython-dateutil==2.9.0.post0\npython-Levenshtein==0.27.1\nPyYAML==6.0.2\nRapidFuzz==3.13.0\nrequests==2.32.4\nroman-numerals-py==3.1.0\nscikit-learn==1.7.1\nscipy==1.13.1\nsix==1.17.0\nsmart_open==7.3.0.post1\nsnowballstemmer==3.0.1\nSphinx==8.2.3\nsphinx-autodoc-typehints==3.2.0\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\nthreadpoolctl==3.6.0\ntomlkit==0.13.3\ntyping_extensions==4.14.1\nurllib3==2.5.0\nwrapt==1.17.2\n", "test_type": "pytest", "test_files": "tests/model/test_ngrams.py, tests/fastngram/test_fastngram.py, tests/benchmark/test_benchmark.py, tests/stats/test_senses.py, tests/test_config.py, tests/rater/test_rater.py, tests/word2vec/test_word2vec.py, tests/model/test_detection_standard.py, tests/rater/test_expansion.py, tests/util/test_functions.py, tests/evaluation/test_evaluation.py, tests/preprocess/test_dumps.py, tests/util/test_text.py, tests/preprocess/test_resource_factory.py, tests/stats/test_dictionary.py, tests/util/test_acronym.py, tests/model/test_expansion_standard.py, tests/rater/test_full.py, tests/stats/test_stats.py, tests/model/test_topic_list.py", "test_count": 46, "related_modules": "gensim", "py_file_count": 63, "total_loc_python": 3921, "difficulty": "Easy", "license": "Apache-2.0"} {"repo_name": "lookandhate/Bugtracker", "repo_url": "https://github.com/lookandhate/Bugtracker", "commit_hash": "e2d5d5261b5549f2494e876de3fd928c60d47c42", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,17 +1,17 @@\n-werkzeug==0.16.1\n-flask~=1.1.1\n+werkzeug\n+flask\n flask_wtf\n flask_login\n flask_admin\n flask_restful\n-wtforms~=2.2.1\n+wtforms\n \n-sqlalchemy~=1.3.15\n+sqlalchemy\n sqlalchemy_serializer\n \n-aiohttp~=3.5.4\n-discord.py~=1.2.0\n-typing~=3.7.4.1\n-alembic~=1.4.2\n+aiohttp\n+discord.py\n+typing\n+alembic\n \n-pytest~=4.3.1\n+pytest\n\\ No newline at end of file\n--- setup_lookandhate__Bugtracker.sh\n+++ setup_lookandhate__Bugtracker.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_lookandhate__Bugtracker.sh\n+++ test_lookandhate__Bugtracker.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- api/resources.py\n+++ api/resources.py\n@@ -34,14 +34,16 @@\n Implements interaction with User entity by API\n \"\"\"\n # Arguments, requirement for API requests\n- user_parser = reqparse.RequestParser()\n- # Username and password requirement to POST query(registering new User)\n- user_parser.add_argument('username', required=False)\n- user_parser.add_argument('password', required=False)\n+ get_user_parser = reqparse.RequestParser()\n # API_KEY requirement for GET query(get some info about other or self User)\n- user_parser.add_argument('API_KEY', required=False)\n+ get_user_parser.add_argument('API_KEY', required=False, location='args')\n # user_id: Integer parameter that represent unique User id about who we want to get information\n- user_parser.add_argument('user_id', required=False)\n+ get_user_parser.add_argument('user_id', required=False, location='args')\n+\n+ post_user_parser = reqparse.RequestParser()\n+ # Username and password requirement to POST query(registering new User)\n+ post_user_parser.add_argument('username', required=False)\n+ post_user_parser.add_argument('password', required=False)\n \n def get(self):\n \"\"\"\n@@ -51,7 +53,7 @@\n \"\"\"\n \n # Get args and check if user_id been passed\n- args = self.user_parser.parse_args()\n+ args = self.get_user_parser.parse_args()\n if 'user_id' not in args.keys():\n app.logger.info(f'GET to UserResource, not user_id was not not passed')\n abort(400, message='You did not pass user_id argument')\n@@ -86,7 +88,7 @@\n Otherwise 409 if we got bad credentials or 409 if user with that username already exists\n \"\"\"\n \n- args = self.user_parser.parse_args()\n+ args = self.post_user_parser.parse_args()\n # Check if we have all necessary data\n if 'username' not in args.keys() or 'password' not in args.keys():\n app.logger.info(f'POST to UserResource, username or password have not been passed')\n@@ -148,15 +150,18 @@\n \"\"\"\n Implements interaction with Project entity by API\n \"\"\"\n- project_request_args = reqparse.RequestParser()\n- project_request_args.add_argument('API_KEY', required=True)\n- project_request_args.add_argument('project_id', required=False)\n- project_request_args.add_argument('project_name', required=False)\n- project_request_args.add_argument('description', required=False)\n- project_request_args.add_argument('short_tag', required=False)\n+ get_project_request_args = reqparse.RequestParser()\n+ get_project_request_args.add_argument('API_KEY', required=True, location='args')\n+ get_project_request_args.add_argument('project_id', required=False, location='args')\n+\n+ post_project_request_args = reqparse.RequestParser()\n+ post_project_request_args.add_argument('API_KEY', required=True, location='args')\n+ post_project_request_args.add_argument('project_name', required=False)\n+ post_project_request_args.add_argument('description', required=False)\n+ post_project_request_args.add_argument('short_tag', required=False)\n \n def get(self):\n- args = self.project_request_args.parse_args()\n+ args = self.get_project_request_args.parse_args()\n \n # Check if project_if in args\n if 'project_id' not in args.keys():\n@@ -202,7 +207,7 @@\n 409 If project with that project name or project tag already exist\n \"\"\"\n session = db_session.create_session()\n- args = self.project_request_args.parse_args()\n+ args = self.post_project_request_args.parse_args()\n # Check if project name and project description passed\n if 'project_name' not in args.keys() or 'description' not in args.keys():\n app.logger.info('POST to ProjectResource project_name or description have not been passed')\n@@ -296,16 +301,17 @@\n \"\"\"\n Implements interaction with Issue entity by API\n \"\"\"\n- issue_parser = reqparse.RequestParser()\n- issue_parser.add_argument('API_KEY', required=True)\n- issue_parser.add_argument('tag', required=False)\n-\n- issue_parser.add_argument('project_id', required=False)\n- issue_parser.add_argument('summary', required=False)\n- issue_parser.add_argument('steps_to_reproduce', required=False)\n- issue_parser.add_argument('description', required=False)\n- issue_parser.add_argument('state', required=False)\n- issue_parser.add_argument('priority', required=False)\n+ get_issue_parser = reqparse.RequestParser()\n+ get_issue_parser.add_argument('API_KEY', required=True, location='args')\n+ get_issue_parser.add_argument('tag', required=False, location='args')\n+\n+ post_issue_parser = reqparse.RequestParser()\n+ post_issue_parser.add_argument('project_id', required=False)\n+ post_issue_parser.add_argument('summary', required=False)\n+ post_issue_parser.add_argument('steps_to_reproduce', required=False)\n+ post_issue_parser.add_argument('description', required=False)\n+ post_issue_parser.add_argument('state', required=False)\n+ post_issue_parser.add_argument('priority', required=False)\n \n def get(self):\n \"\"\"\n@@ -316,7 +322,7 @@\n 401 if API key is incorrect\n 400 if one of necessary have not been passed\n \"\"\"\n- args = self.issue_parser.parse_args()\n+ args = self.get_issue_parser.parse_args()\n \n # Check if project_if in args\n if 'tag' not in args.keys():\n@@ -359,7 +365,7 @@\n \"\"\"\n \n session = db_session.create_session()\n- args = self.project_request_args.parse_args()\n+ args = self.post_project_request_args.parse_args()\n # Check if project name and project description passed\n if 'project_id' not in args.keys() or 'summary' not in args.keys() or 'steps_to_reproduce' not in args.keys() or 'description' not in args.keys() \\\n or 'state' not in args.keys() or 'priority' not in args.keys():\n@@ -417,8 +423,8 @@\n Implements get request to all Issues\n \"\"\"\n issues_list_parser = reqparse.RequestParser()\n- issues_list_parser.add_argument('API_KEY', required=True)\n- issues_list_parser.add_argument('project_id', required=False)\n+ issues_list_parser.add_argument('API_KEY', required=True, location='args')\n+ issues_list_parser.add_argument('project_id', required=False, location='args')\n \n def get(self):\n \"\"\"\n--- data/models.py\n+++ data/models.py\n@@ -79,10 +79,10 @@\n role = sqlalchemy.Column(sqlalchemy.String, default='User')\n API_KEY = sqlalchemy.Column(sqlalchemy.String(24))\n \n- issues = orm.relation('Issue',\n+ issues = orm.relationship('Issue',\n secondary=association_table_user_to_issue,\n backref='assignees')\n- projects = orm.relation('Project',\n+ projects = orm.relationship('Project',\n secondary=association_table_user_to_project,\n backref='members')\n \n@@ -205,7 +205,7 @@\n \n description = sqlalchemy.Column(sqlalchemy.String(256))\n short_project_tag = sqlalchemy.Column(sqlalchemy.String, unique=True)\n- issues = orm.relation('Issue', secondary=association_table_project_to_issue, backref='project')\n+ issues = orm.relationship('Issue', secondary=association_table_project_to_issue, backref='project')\n \n def __repr__(self):\n return f'Project name= {self.project_name}; id= {self.id}; root= {self.get_root().username}\\ndesc: {self.description}' \\\n@@ -221,7 +221,7 @@\n \n session = create_session()\n result = session.execute(\n- select([association_table_subsystems_to_project.c.subsystem]).where(\n+ select(association_table_subsystems_to_project.c.subsystem).where(\n association_table_subsystems_to_project.c.project_id == self.id\n )\n ).fetchall()\n@@ -247,7 +247,7 @@\n \"\"\"\n session = create_session()\n priorities_list = session.execute(\n- select([association_table_priority_to_project.c.priority]).where(\n+ select(association_table_priority_to_project.c.priority).where(\n association_table_priority_to_project.c.project_id == self.id\n )\n ).fetchall()\n@@ -274,12 +274,12 @@\n \"\"\"\n session = create_session()\n member_id = session.execute(\n- select([association_table_user_to_project.c.member_id]).where(\n+ select(association_table_user_to_project.c.member_id).where(\n association_table_user_to_project.c.project_id == self.id\n ).where(\n association_table_user_to_project.c.project_role == 'root'\n )\n- ).fetchone()\n+ ).mappings().fetchone()\n member_id = member_id['member_id']\n user = session.query(User).filter(User.id == member_id).first()\n session.close()\n", "reproduction_target_date": "2020-05-13", "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 lookandhate__Bugtracker .\n\nRUN bash /work/setup_lookandhate__Bugtracker.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_lookandhate__Bugtracker.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "aiohappyeyeballs==2.6.1\naiohttp==3.12.15\naiosignal==1.4.0\nalembic==1.16.4\naniso8601==10.0.1\nattrs==25.3.0\nblinker==1.9.0\nclick==8.2.1\ndiscord.py==2.5.2\nFlask==3.1.1\nFlask-Admin==1.6.1\nFlask-Login==0.6.3\nFlask-RESTful==0.3.10\nFlask-WTF==1.2.2\nfrozenlist==1.7.0\ngreenlet==3.2.3\nidna==3.10\niniconfig==2.1.0\nitsdangerous==2.2.0\nJinja2==3.1.6\nMako==1.3.10\nMarkupSafe==3.0.2\nmultidict==6.6.3\npackaging==25.0\npluggy==1.6.0\npropcache==0.3.2\npsycopg2-binary==2.9.9\nPygments==2.19.2\npytest==8.4.1\npytz==2024.2\nsetuptools==70.3.0\nsix==1.17.0\nSQLAlchemy==2.0.29\nsqlalchemy-serializer==1.4.22\ntyping==3.7.4.3\ntyping_extensions==4.14.1\nWerkzeug==3.1.3\nWTForms==3.2.1\nyarl==1.20.1\n", "test_type": "pytest", "test_files": "test_main_app.py", "test_count": 20, "related_modules": "SQLAlchemy, flask_restful", "py_file_count": 20, "total_loc_python": 2377, "difficulty": "Hard", "license": "MIT"} {"repo_name": "senaps/chosnale", "repo_url": "https://github.com/senaps/chosnale", "commit_hash": "3470abe047b954549f3009e3899aa322729f3ab2", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,29 +1,29 @@\n-asn1crypto==0.24.0\n-astroid==2.0.4\n-atomicwrites==1.2.1\n-attrs==18.2.0\n-cffi==1.11.5\n-Click==7.0\n-cryptography==2.4.1\n-Flask==1.1.1\n-Flask-SQLAlchemy==2.3.2\n-gunicorn==19.9.0\n-idna==2.7\n-isort==4.3.4\n-itsdangerous==1.1.0\n-Jinja2==2.10.3\n-lazy-object-proxy==1.3.1\n-MarkupSafe==1.1.0\n-mccabe==0.6.1\n-more-itertools==4.3.0\n-pluggy==0.8.0\n-py==1.7.0\n-pycparser==2.19\n-pylint==2.1.1\n-PyMySQL==0.9.2\n-pytest==4.0.0\n-six==1.11.0\n-SQLAlchemy==1.2.14\n-typed-ast==1.1.0\n-Werkzeug==0.16.0\n-wrapt==1.10.11\n+asn1crypto\n+astroid\n+atomicwrites\n+attrs\n+cffi\n+Click\n+cryptography\n+Flask\n+Flask-SQLAlchemy\n+gunicorn\n+idna\n+isort\n+itsdangerous\n+Jinja2\n+lazy-object-proxy\n+MarkupSafe\n+mccabe\n+more-itertools\n+pluggy\n+py\n+pycparser\n+pylint\n+PyMySQL\n+pytest\n+six\n+SQLAlchemy\n+typed-ast\n+Werkzeug\n+wrapt\n\\ No newline at end of file\n--- setup_senaps__chosnale.sh\n+++ setup_senaps__chosnale.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_senaps__chosnale.sh\n+++ test_senaps__chosnale.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- Chosnale/application.py\n+++ Chosnale/application.py\n@@ -8,7 +8,8 @@\n load_configs(app=app, **kwargs)\n load_blueprints(app)\n db.init_app(app)\n- db.create_all(app=app)\n+ with app.app_context():\n+ db.create_all()\n \n return app\n \n", "reproduction_target_date": "2019-11-29", "reproduction_target_version": "3.7.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 senaps__chosnale .\n\nRUN bash /work/setup_senaps__chosnale.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_senaps__chosnale.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "asn1crypto==1.5.1\nastroid==3.3.11\natomicwrites==1.4.1\nattrs==25.3.0\nblinker==1.9.0\ncffi==1.17.1\nclick==8.2.1\ncryptography==45.0.5\ndill==0.4.0\nFlask==3.1.1\nFlask-SQLAlchemy==3.1.1\ngreenlet==3.2.3\ngunicorn==23.0.0\nidna==3.10\niniconfig==2.1.0\nisort==6.0.1\nitsdangerous==2.2.0\nJinja2==3.1.6\nlazy-object-proxy==1.11.0\nMarkupSafe==3.0.2\nmccabe==0.7.0\nmore-itertools==10.7.0\npackaging==25.0\nplatformdirs==4.3.8\npluggy==1.6.0\npy==1.11.0\npycparser==2.22\nPygments==2.19.2\npylint==3.3.7\nPyMySQL==1.1.1\npytest==8.4.1\nsix==1.17.0\nSQLAlchemy==2.0.42\ntomlkit==0.13.3\ntyped_ast==1.5.5\ntyping_extensions==4.14.1\nWerkzeug==3.1.3\nwrapt==1.17.2\n", "test_type": "pytest", "test_files": "tests/test_chosnale.py", "test_count": 7, "related_modules": "flask", "py_file_count": 14, "total_loc_python": 284, "difficulty": "Easy", "license": "MIT"} {"repo_name": "redvox/Eliza", "repo_url": "https://github.com/redvox/Eliza", "commit_hash": "500d8c8a094935b14548f989222599128cc43273", "patch": "--- dev-requirements.txt\n+++ dev-requirements.txt\n@@ -1,2 +1,2 @@\n-nose==1.3.7\n-requests-mock==0.7.0\n\\ No newline at end of file\n+nose\n+requests-mock\n\\ No newline at end of file\n--- docs/requirements.txt\n+++ docs/requirements.txt\n@@ -1,3 +1,3 @@\n-Sphinx==1.3.4\n-sphinx-rtd-theme==0.1.9\n-sphinxcontrib-httpdomain==1.4.0\n+Sphinx\n+sphinx-rtd-theme\n+sphinxcontrib-httpdomain\n\\ No newline at end of file\n--- requirements.txt\n+++ requirements.txt\n@@ -1,3 +1,3 @@\n-hvac==0.5.0\n-PyYAML==5.4\n-requests==2.27.1\n+hvac\n+PyYAML\n+requests\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,33 +1,11 @@\n-#!./venv/bin/python3\n import os\n from version import __version__\n from setuptools import setup\n-\n-\n try:\n from setuptools import setup\n except ImportError:\n from distutils.core import setup\n-\n with open('requirements.txt') as f:\n dependencies = f.read().splitlines()\n-\n-version = '.'.join(str(x) for x in __version__)\n-\n-setup(\n- name='Eliza',\n- version=version,\n- description='Library with common features for Python (Flask) Microservices',\n- url='https://github.com/redvox/Eliza',\n- download_url = 'https://github.com/redvox/Eliza/tarball/'+version,\n- author='Jens Schaa',\n- author_email=\"jens.schaa@posteo.de\",\n- packages=[\n- 'eliza',\n- ],\n- package_data={},\n- license='Apache Software License',\n- install_requires=dependencies,\n- test_suite='test.test_data',\n- long_description=open('README.md').read()\n-)\n+version = '.'.join((str(x) for x in __version__))\n+setup(name='Eliza', version=version, description='Library with common features for Python (Flask) Microservices', url='https://github.com/redvox/Eliza', download_url='https://github.com/redvox/Eliza/tarball/' + version, author='Jens Schaa', author_email='jens.schaa@posteo.de', packages=['eliza'], package_data={}, license='Apache Software License', install_requires=dependencies, test_suite='test.test_data', long_description=open('README.md').read())\n\\ No newline at end of file\n--- setup_redvox__Eliza.sh\n+++ setup_redvox__Eliza.sh\n@@ -0,0 +1,6 @@\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 docs/requirements.txt\n--- test_redvox__Eliza.sh\n+++ test_redvox__Eliza.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest test.test_config\n", "test_patch": "", "gold_patch": "--- eliza/config.py\n+++ eliza/config.py\n@@ -79,7 +79,7 @@\n try:\n for env in environments:\n with open(path + env + '.yaml', 'r') as configFile:\n- env_config = yaml.load(configFile.read()) or {}\n+ env_config = yaml.load(configFile.read(), Loader=yaml.Loader) or {}\n config.update(env_config)\n if fill_with_defaults:\n if 'defaults' in config:\n", "reproduction_target_date": "2022-10-26", "reproduction_target_version": "3.10.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 redvox__Eliza .\n\nRUN bash /work/setup_redvox__Eliza.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_redvox__Eliza.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "alabaster==1.0.0\nbabel==2.17.0\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\ndocutils==0.21.2\nhvac==2.3.0\nidna==3.10\nimagesize==1.4.1\nJinja2==3.1.6\nMarkupSafe==3.0.2\nnose==1.3.7\npackaging==25.0\nPygments==2.19.2\nPyYAML==6.0.2\nrequests==2.32.4\nrequests-mock==1.12.1\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-httpdomain==1.8.1\nsphinxcontrib-jquery==4.1\nsphinxcontrib-jsmath==1.0.1\nsphinxcontrib-qthelp==2.0.0\nsphinxcontrib-serializinghtml==2.0.0\nurllib3==2.5.0\n", "test_type": "unittest", "test_files": "test/test_config.py", "test_count": 7, "related_modules": "PyYAML", "py_file_count": 8, "total_loc_python": 515, "difficulty": "Easy", "license": "Apache-2.0"} {"repo_name": "bmat/rice", "repo_url": "https://github.com/bmat/rice", "commit_hash": "346dad7608eec178c83a97f0eaf13cefee82c410", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,4 +1,3 @@\n-docutils==0.14\n-marshmallow==2.15.3\n-marshmallow-enum==1.4.1\n-\n+docutils\n+marshmallow\n+marshmallow-enum\n--- setup.py\n+++ setup.py\n@@ -1,19 +1,4 @@\n from setuptools import setup\n-\n with open('requirements.txt') as fp:\n install_requires = fp.read()\n-\n-setup(\n- name='rice',\n- packages=['rice'],\n- version='0.3',\n- description='Non intrusive serialization library',\n- author='BMAT developers',\n- author_email='tv-av@bmat.com',\n- url='https://github.com/bmat/rice',\n- download_url='https://github.com/bmat/rice/archive/master.zip',\n- keywords=['rice', 'serialization', 'deserialization', 'doc'],\n- classifiers=['Topic :: Adaptive Technologies', 'Topic :: Software Development', 'Topic :: System',\n- 'Topic :: Utilities'],\n- install_requires=install_requires\n-)\n+setup(name='rice', packages=['rice'], version='0.3', description='Non intrusive serialization library', author='BMAT developers', author_email='tv-av@bmat.com', url='https://github.com/bmat/rice', download_url='https://github.com/bmat/rice/archive/master.zip', keywords=['rice', 'serialization', 'deserialization', 'doc'], classifiers=['Topic :: Adaptive Technologies', 'Topic :: Software Development', 'Topic :: System', 'Topic :: Utilities'], install_requires=install_requires)\n\\ No newline at end of file\n--- setup_bmat__rice.sh\n+++ setup_bmat__rice.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_bmat__rice.sh\n+++ test_bmat__rice.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest rice.test.test\n", "test_patch": "", "gold_patch": "--- rice/serializer.py\n+++ rice/serializer.py\n@@ -125,7 +125,7 @@\n for i in schema.declared_fields.keys():\n data[i] = getattr(data_object, i, None)\n dump = schema.dump(data)\n- return formats[format].dumps(dump.data)\n+ return formats[format].dumps(dump)\n \n else:\n raise Exception(\"Format '{format}' not supported\".format(format=format))\n@@ -139,7 +139,7 @@\n \n if isinstance(string, str):\n data = formats[format].loads(string)\n- loaded_data = schema.load(data).data\n+ loaded_data = schema.load(data)\n else:\n loaded_data = string\n mod = importlib.import_module(object_class.__module__)\n", "reproduction_target_date": "2018-10-10", "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 bmat__rice .\n\nRUN bash /work/setup_bmat__rice.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_bmat__rice.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "docutils==0.22\nmarshmallow==4.0.0\nmarshmallow-enum==1.5.1\n", "test_type": "unittest", "test_files": "rice/test/test.py", "test_count": 5, "related_modules": "marshmallow", "py_file_count": 6, "total_loc_python": 354, "difficulty": "Easy", "license": "Apache-2.0"} {"repo_name": "emissions-api/sentinel5algorithms", "repo_url": "https://github.com/emissions-api/sentinel5algorithms", "commit_hash": "1f638bd65ee637a2ed743d81a3e58df20ccd54b2", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,4 +1,4 @@\n h3\n netCDF4\n numpy\n-pandas\n+pandas\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,34 +1,8 @@\n import os\n-\n from setuptools import setup, find_packages\n-\n path = os.path.abspath(os.path.dirname(__file__))\n \n-\n def read(filename):\n with open(os.path.join(path, filename), encoding='utf-8') as f:\n return f.read()\n-\n-\n-setup(\n- name='s5a',\n- version='0.4',\n- description='Sentinel-5 Algorithms',\n- author='Emissions API Developers',\n- license='MIT',\n- url='https://github.com/emissions-api/sentinel5algorithms',\n- packages=find_packages(),\n- classifiers=[\n- 'Development Status :: 3 - Alpha',\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: MIT License',\n- 'Programming Language :: Python :: 3',\n- 'Programming Language :: Python :: 3.6',\n- 'Programming Language :: Python :: 3.7',\n- 'Operating System :: OS Independent',\n- 'Topic :: Scientific/Engineering :: GIS',\n- ],\n- install_requires=read('requirements.txt').split(),\n- long_description=read('README.rst'),\n- long_description_content_type='text/x-rst',\n-)\n+setup(name='s5a', version='0.4', description='Sentinel-5 Algorithms', author='Emissions API Developers', license='MIT', url='https://github.com/emissions-api/sentinel5algorithms', packages=find_packages(), classifiers=['Development Status :: 3 - Alpha', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Operating System :: OS Independent', 'Topic :: Scientific/Engineering :: GIS'], install_requires=read('requirements.txt').split(), long_description=read('README.rst'), long_description_content_type='text/x-rst')\n\\ No newline at end of file\n--- setup_emissions-api__sentinel5algorithms.sh\n+++ setup_emissions-api__sentinel5algorithms.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_emissions-api__sentinel5algorithms.sh\n+++ test_emissions-api__sentinel5algorithms.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.__init__\n", "test_patch": "", "gold_patch": "--- s5a/__init__.py\n+++ s5a/__init__.py\n@@ -9,7 +9,7 @@\n import netCDF4\n import numpy\n import pandas\n-from h3 import h3\n+import h3\n \n \n # Logger\n@@ -109,7 +109,7 @@\n \n # create a new column 'h3' and fill it row-wise with\n # the converted longitudes and latitudes\n- dataframe['h3'] = [h3.geo_to_h3(lat, lon, resolution)\n+ dataframe['h3'] = [h3.latlng_to_cell(lat, lon, resolution)\n for lat, lon in\n zip(dataframe['latitude'], dataframe['longitude'])]\n \n@@ -126,7 +126,7 @@\n :type h3_column: str, optional\n \"\"\"\n lat_lon = numpy.array(\n- [h3.h3_to_geo(h3hexagon) for h3hexagon in dataframe['h3']])\n+ [h3.cell_to_latlng(h3hexagon) for h3hexagon in dataframe['h3']])\n dataframe['latitude'] = lat_lon[:, 0]\n dataframe['longitude'] = lat_lon[:, 1]\n return dataframe\n", "reproduction_target_date": "2021-10-02", "reproduction_target_version": "3.7.12", "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 emissions-api__sentinel5algorithms .\n\nRUN bash /work/setup_emissions-api__sentinel5algorithms.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_emissions-api__sentinel5algorithms.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "certifi==2025.7.14\ncftime==1.6.4.post1\nh3==4.3.0\nnetCDF4==1.7.2\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": "tests/__init__.py", "test_count": 2, "related_modules": "h3", "py_file_count": 4, "total_loc_python": 265, "difficulty": "Medium", "license": "MIT"} {"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": "aothman/hiscore", "repo_url": "https://github.com/aothman/hiscore", "commit_hash": "0b7960d04b5ada7b8fdc6197c4d0f1eeb545cfb4", "patch": "--- setup.py\n+++ setup.py\n@@ -1,36 +1,9 @@\n from setuptools import setup, find_packages\n-\n __author__ = 'Abraham Othman'\n __copyright__ = 'Copyright 2018, Abraham Othman'\n-\n __version__ = '1.6.0'\n __maintainer__ = 'Abraham Othman'\n __email__ = 'abrahamo@wharton.upenn.edu'\n-\n long_description = open('README.md').read()\n-\n-install_requires = [\n- 'numpy',\n- 'cvxpy>=1.0.0',\n- 'cvxopt'\n-]\n-\n-setup(\n- name = 'hiscore',\n- version = __version__,\n- author = __maintainer__,\n- author_email = __email__,\n- packages = find_packages(),\n- description = 'A simple and powerful engine for creating scores',\n- long_description=long_description,\n- install_requires=install_requires,\n- url = 'https://github.com/aothman/hiscore', # use the URL to the github repo\n- keywords = [],\n- classifiers =[\n- 'Development Status :: 5 - Production/Stable',\n- 'Intended Audience :: Science/Research',\n- 'License :: OSI Approved :: BSD License',\n- 'Programming Language :: Python :: 2',\n- 'Programming Language :: Python :: 3'\n- ]\n-)\n+install_requires = ['numpy', 'cvxpy', 'cvxopt']\n+setup(name='hiscore', version=__version__, author=__maintainer__, author_email=__email__, packages=find_packages(), description='A simple and powerful engine for creating scores', long_description=long_description, install_requires=install_requires, url='https://github.com/aothman/hiscore', keywords=[], classifiers=['Development Status :: 5 - Production/Stable', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: BSD License', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 3'])\n\\ No newline at end of file\n--- setup_aothman__hiscore.sh\n+++ setup_aothman__hiscore.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n+pip install pytest\n--- test_aothman__hiscore.sh\n+++ test_aothman__hiscore.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "--- test_hiscore.py\n+++ test_hiscore.py\n@@ -70,10 +70,10 @@\n \tdef test_value_bounds_inf(self):\n \t\tmydict = {(100,100,100): 50, (0,200,0): 50}\n \t\tmyfunc = create(mydict,[1,1,1])\n-\t\tself.assertEqual(myfunc.value_bounds((50,50,50)),(np.NINF,50))\n+\t\tself.assertEqual(myfunc.value_bounds((50,50,50)),(-np.inf,50))\n \t\tmyfunc = create(mydict,[-1,-1,-1])\n \t\tself.assertEqual(myfunc.value_bounds((50,50,50)),(50,np.inf))\n-\t\tself.assertEqual(myfunc.value_bounds((200,0,50)),(np.NINF,np.inf))\n+\t\tself.assertEqual(myfunc.value_bounds((200,0,50)),(-np.inf,np.inf))\n \n \tdef test_pickling(self):\n \t\tmydict = {(0,0): 0, (100,100): 100}\n", "gold_patch": "--- hiscore/engine.py\n+++ hiscore/engine.py\n@@ -151,7 +151,7 @@\n \"\"\"\n Returns the (lower_bound, upper_bound) tuple of a point implied by the reference set and the monotone relationship vector.\n Use it to improve and understand the reference set without triggering a MonotoneError.\n- Returns np.inf as the second argument if there is no upper bound and np.NINF as the first argument if there is no lower bound.\n+ Returns np.inf as the second argument if there is no upper bound and -np.inf as the first argument if there is no lower bound.\n \n Required argument:\n point -- Point at which to assess upper and lower bounds.\n@@ -160,7 +160,7 @@\n points_greater_than = filter(lambda x: np.allclose(x,padj) or self.__monotone_rel__(x,padj)==1, self.points.keys())\n points_less_than = filter(lambda x: np.allclose(x,padj) or self.__monotone_rel__(padj,x)==1, self.points.keys())\n gtbound = np.inf if self.maxval is None else self.maxval\n- ltbound = np.NINF if self.minval is None else self.minval\n+ ltbound = -np.inf if self.minval is None else self.minval\n for p in points_greater_than:\n gtbound = min(self.points[p],gtbound)\n for p in points_less_than:\n", "reproduction_target_date": "2020-04-30", "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 aothman__hiscore .\n\nRUN bash /work/setup_aothman__hiscore.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_aothman__hiscore.sh\"]\n", "version_source": "default", "script_source": "setup.py", "dependency_versions": "cffi==1.17.1\nclarabel==0.11.1\ncvxopt==1.3.2\ncvxpy==1.7.1\nhiscore @ file:///work\niniconfig==2.1.0\nJinja2==3.1.6\njoblib==1.5.1\nMarkupSafe==3.0.2\nnumpy==2.3.2\nosqp==1.0.4\npackaging==25.0\npluggy==1.6.0\npycparser==2.22\nPygments==2.19.2\npytest==8.4.1\nscipy==1.16.1\nscs==3.2.7.post2\nsetuptools==80.9.0\n", "test_type": "pytest", "test_files": "test_hiscore.py", "test_count": 15, "related_modules": "numpy", "py_file_count": 5, "total_loc_python": 361, "difficulty": "Easy", "license": "BSD-3-Clause"} {"repo_name": "serioeseGmbH/hackwork-gayson", "repo_url": "https://github.com/serioeseGmbH/hackwork-gayson", "commit_hash": "971e8cdef612701f721dc5bf4240277c542e5984", "patch": "--- Pipfile.lock\n+++ Pipfile.lock\n@@ -1,142 +0,0 @@\n-{\n- \"_meta\": {\n- \"hash\": {\n- \"sha256\": \"039203f61bda637906725e984e2013ae83d952fb9ae63258435fb1bda6b9def8\"\n- },\n- \"pipfile-spec\": 6,\n- \"requires\": {\n- \"python_version\": \"3.7\"\n- },\n- \"sources\": [\n- {\n- \"name\": \"pypi\",\n- \"url\": \"https://pypi.org/simple\",\n- \"verify_ssl\": true\n- }\n- ]\n- },\n- \"default\": {\n- \"atomicwrites\": {\n- \"hashes\": [\n- \"sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4\",\n- \"sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6\"\n- ],\n- \"version\": \"==1.3.0\"\n- },\n- \"attrs\": {\n- \"hashes\": [\n- \"sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79\",\n- \"sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399\"\n- ],\n- \"version\": \"==19.1.0\"\n- },\n- \"importlib-metadata\": {\n- \"hashes\": [\n- \"sha256:a9f185022cfa69e9ca5f7eabfd5a58b689894cb78a11e3c8c89398a8ccbb8e7f\",\n- \"sha256:df1403cd3aebeb2b1dcd3515ca062eecb5bd3ea7611f18cba81130c68707e879\"\n- ],\n- \"version\": \"==0.17\"\n- },\n- \"more-itertools\": {\n- \"hashes\": [\n- \"sha256:2112d2ca570bb7c3e53ea1a35cd5df42bb0fd10c45f0fb97178679c3c03d64c7\",\n- \"sha256:c3e4748ba1aad8dba30a4886b0b1a2004f9a863837b8654e7059eebf727afa5a\"\n- ],\n- \"markers\": \"python_version > '2.7'\",\n- \"version\": \"==7.0.0\"\n- },\n- \"packaging\": {\n- \"hashes\": [\n- \"sha256:0c98a5d0be38ed775798ece1b9727178c4469d9c3b4ada66e8e6b7849f8732af\",\n- \"sha256:9e1cbf8c12b1f1ce0bb5344b8d7ecf66a6f8a6e91bcb0c84593ed6d3ab5c4ab3\"\n- ],\n- \"version\": \"==19.0\"\n- },\n- \"pluggy\": {\n- \"hashes\": [\n- \"sha256:0825a152ac059776623854c1543d65a4ad408eb3d33ee114dff91e57ec6ae6fc\",\n- \"sha256:b9817417e95936bf75d85d3f8767f7df6cdde751fc40aed3bb3074cbcb77757c\"\n- ],\n- \"version\": \"==0.12.0\"\n- },\n- \"py\": {\n- \"hashes\": [\n- \"sha256:64f65755aee5b381cea27766a3a147c3f15b9b6b9ac88676de66ba2ae36793fa\",\n- \"sha256:dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53\"\n- ],\n- \"version\": \"==1.8.0\"\n- },\n- \"pyparsing\": {\n- \"hashes\": [\n- \"sha256:1873c03321fc118f4e9746baf201ff990ceb915f433f23b395f5580d1840cb2a\",\n- \"sha256:9b6323ef4ab914af344ba97510e966d64ba91055d6b9afa6b30799340e89cc03\"\n- ],\n- \"version\": \"==2.4.0\"\n- },\n- \"pytest\": {\n- \"hashes\": [\n- \"sha256:8304c2f6466cf48f24631263d60320a1996668acfd659d8fa5e5e8f28129e1cd\",\n- \"sha256:b68d84c7c01073ddf2a918a7504ab73849d52483d9f1f15f3875487011d09f71\"\n- ],\n- \"index\": \"pypi\",\n- \"version\": \"==4.6.1\"\n- },\n- \"python-rapidjson\": {\n- \"hashes\": [\n- \"sha256:0118e15a5420c1eb777da512b15e7cf7cddc599c5713d5c728fba1d9933ba1e6\",\n- \"sha256:022492d5fdb36cb424608cf891549149407c7aec672fe60ba461871850a46f1b\",\n- \"sha256:29508627db1dbb4b2bbca89d430528c9d270f631c6b1457ddb82f4b4f11fac05\",\n- \"sha256:2ef21fd3d8c18a278f6b2fd179ef102cb96a1e96161f64da4811a7ccfb8e6609\",\n- \"sha256:313e4287de28669d58eefdbbbf095170715b0729f5630aa7081799ab573f0426\",\n- \"sha256:387f0d3b86647f60b4a6331eebbfffe95b637ce0d568f098a4e6ae01ceb3c368\",\n- \"sha256:3ea01520ebe28d270c79120a836d251fbb2187227695461a310fe0293f348b2d\",\n- \"sha256:3eab4c2405c8a12ce57d005c771a758c12344e34793396e4d495644fb755f326\",\n- \"sha256:4685de2ce614aafbc69838eac90500416f576bf37c62c26d7a543fc828b6a265\",\n- \"sha256:475820d98d0a4e039f1185706c795e993f3a5b3bd2ff48b4d823bb9919a607db\",\n- \"sha256:4d7dea19ad185f6535683c2110554eb7e0f5d4573c7807242b7ec259c4fec2bb\",\n- \"sha256:525eebbb5e9e9957964c68c897a1181a2d42e69c109553e96ea43ba3dd78c360\",\n- \"sha256:5b0a38f42e65d43415b40394d8ff9a40f7114e4221573df79f3f6f4177773306\",\n- \"sha256:769c33a3aba0bec3b2b3721d05c5958879de70b22f0d73755f02386a39c84a5d\",\n- \"sha256:8b43817f46325df477245581d57639dd5c99e42c9f915b4251823b0a9ca58b3e\",\n- \"sha256:9d23b1336f5083f305d75430000b3f9d93b8898e7443c3ebf4ad48a5a2d3f19f\",\n- \"sha256:a6dbe9c4c66be952aec3ae81b45f4e34d02b7bd47e57568a99566ae344e9befc\",\n- \"sha256:e2492d01e49f642f3ccdea38581e824283147f28bfb4b3de9e5de1646cd156a3\",\n- \"sha256:ee2abb07820b80c7bf7c752fe51580c14e3d1e2ba75bb8fb7beaf69be56150f9\",\n- \"sha256:f4d349d25c4c92d193e892e8368d67e13dff9e1ceb70c4b1f5f112add860390e\",\n- \"sha256:f784416aff3babbb0aceec3ef12593c055749d64c24f0dbf546645cf8ac7cef4\"\n- ],\n- \"index\": \"pypi\",\n- \"version\": \"==0.7.1\"\n- },\n- \"pytz\": {\n- \"hashes\": [\n- \"sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda\",\n- \"sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141\"\n- ],\n- \"index\": \"pypi\",\n- \"version\": \"==2019.1\"\n- },\n- \"six\": {\n- \"hashes\": [\n- \"sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c\",\n- \"sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73\"\n- ],\n- \"version\": \"==1.12.0\"\n- },\n- \"wcwidth\": {\n- \"hashes\": [\n- \"sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e\",\n- \"sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c\"\n- ],\n- \"version\": \"==0.1.7\"\n- },\n- \"zipp\": {\n- \"hashes\": [\n- \"sha256:8c1019c6aad13642199fbe458275ad6a84907634cc9f0989877ccc4a2840139d\",\n- \"sha256:ca943a7e809cc12257001ccfb99e3563da9af99d52f261725e96dfe0f9275bc3\"\n- ],\n- \"version\": \"==0.5.1\"\n- }\n- },\n- \"develop\": {}\n-}\n--- setup.py\n+++ setup.py\n@@ -1,34 +1,6 @@\n import os\n from setuptools import find_packages, setup\n-\n with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:\n README = readme.read()\n-\n-# allow setup.py to be run from any path\n os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))\n-\n-setup(\n- name='hackwork_gayson',\n- version='0.0.3',\n- packages=find_packages(),\n- include_package_data=True,\n- license='MIT License',\n- description='A software package to help with persisting to and reading from DB for more Python objects',\n- long_description=README,\n- url='https://serioese.gmbh/',\n- author='Simon Welker',\n- author_email='simon@serioese.gmbh',\n- install_requires=[\n- 'pytz',\n- 'python-rapidjson'\n- ],\n- classifiers=[\n- 'Environment :: Web Environment',\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: MIT License',\n- 'Operating System :: OS Independent',\n- 'Programming Language :: Python :: 3.7',\n- 'Topic :: Internet :: WWW/HTTP',\n- 'Topic :: Internet :: WWW/HTTP :: Dynamic Content',\n- ],\n-)\n+setup(name='hackwork_gayson', version='0.0.3', packages=find_packages(), include_package_data=True, license='MIT License', description='A software package to help with persisting to and reading from DB for more Python objects', long_description=README, url='https://serioese.gmbh/', author='Simon Welker', author_email='simon@serioese.gmbh', install_requires=['pytz', 'python-rapidjson'], classifiers=['Environment :: Web Environment', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3.7', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content'])\n\\ No newline at end of file\n--- setup_serioeseGmbH__hackwork-gayson.sh\n+++ setup_serioeseGmbH__hackwork-gayson.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n--- test_serioeseGmbH__hackwork-gayson.sh\n+++ test_serioeseGmbH__hackwork-gayson.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest gayson.tests\n", "test_patch": "", "gold_patch": "--- gayson/convert.py\n+++ gayson/convert.py\n@@ -47,7 +47,7 @@\n return converter_cls.value_to_json(value)\n \n @classmethod\n- def json_to_value(mcs, json: collections.Mapping):\n+ def json_to_value(mcs, json: collections.abc.Mapping):\n key = json.get('__type__', None)\n value = json.get('value', None)\n if key is None:\n@@ -72,7 +72,7 @@\n \n @classmethod\n def loads_object_hook(mcs, json: Union[Dict, List, str, int, float, bool]):\n- if isinstance(json, collections.Mapping) and '__type__' in json:\n+ if isinstance(json, collections.abc.Mapping) and '__type__' in json:\n return mcs.json_to_value(json)\n else:\n return json\n", "reproduction_target_date": "2019-06-03", "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 serioeseGmbH__hackwork-gayson .\n\nRUN bash /work/setup_serioeseGmbH__hackwork-gayson.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_serioeseGmbH__hackwork-gayson.sh\"]\n", "version_source": "setup.py", "script_source": "setup.py", "dependency_versions": "hackwork_gayson @ file:///work\npython-rapidjson==1.21\npytz==2025.2\n", "test_type": "unittest", "test_files": "gayson/tests.py", "test_count": 8, "related_modules": "builtin", "py_file_count": 4, "total_loc_python": 309, "difficulty": "Easy", "license": "MIT"} {"repo_name": "nerandell/async_retrial", "repo_url": "https://github.com/nerandell/async_retrial", "commit_hash": "be655a89107bf280d8e3949cc868e1de22197a41", "patch": "--- setup.py\n+++ setup.py\n@@ -1,10 +1,2 @@\n from setuptools import setup, find_packages\n-\n-setup(name='async_retrial',\n- version='0.7',\n- author='Ankit Chandawala',\n- author_email='ankitchandawala@gmail.com',\n- url='https://github.com/nerandell/async_retrial',\n- description='asyncio retrial library',\n- packages=find_packages(exclude=['retrial.examples', 'tests']),\n- zip_safe=False)\n+setup(name='async_retrial', version='0.7', author='Ankit Chandawala', author_email='ankitchandawala@gmail.com', url='https://github.com/nerandell/async_retrial', description='asyncio retrial library', packages=find_packages(exclude=['retrial.examples', 'tests']), zip_safe=False)\n\\ No newline at end of file\n--- setup_nerandell__async_retrial.sh\n+++ setup_nerandell__async_retrial.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_nerandell__async_retrial.sh\n+++ test_nerandell__async_retrial.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- retrial/retrial/retry.py\n+++ retrial/retrial/retry.py\n@@ -58,37 +58,35 @@\n self._max_attempts = max_attempts\n self._strategy = strategy\n \n- @asyncio.coroutine\n- def run(self, func, *args, **kwargs):\n+ async def run(self, func, *args, **kwargs):\n if not asyncio.iscoroutinefunction(func):\n func = asyncio.coroutine(func)\n- return (yield from self._run_task(0, func, *args, **kwargs))\n+ return await self._run_task(0, func, *args, **kwargs)\n \n- @asyncio.coroutine\n- def _run_task(self, attempts_made, func, *args, **kwargs):\n+ async def _run_task(self, attempts_made, func, *args, **kwargs):\n if self._max_attempts is not None and attempts_made > self._max_attempts:\n return\n wait_time = self._get_wait_time(attempts_made)\n logger.info('Retrying %s after %s seconds', func.__name__, wait_time)\n- yield from asyncio.sleep(wait_time)\n+ await asyncio.sleep(wait_time)\n try:\n if self._timeout is None:\n- result = yield from func(*args, **kwargs)\n+ result = await func(*args, **kwargs)\n else:\n try:\n- result = yield from asyncio.wait_for(func(*args, **kwargs), self._timeout)\n+ result = await asyncio.wait_for(func(*args, **kwargs), self._timeout)\n except TimeoutError:\n- return (yield from self._run_task(attempts_made + 1, func, *args, **kwargs))\n+ return await self._run_task(attempts_made + 1, func, *args, **kwargs)\n logger.info('Result retrieved from %s is %s', func.__name__, result)\n if self._should_retry_for_result(result):\n- return (yield from self._run_task(attempts_made + 1, func, *args, **kwargs))\n+ return await self._run_task(attempts_made + 1, func, *args, **kwargs)\n else:\n return result\n \n except Exception as e:\n logger.exception('%s raised exception %s', func.__name__, e.__class__.__name__)\n if self._should_retry_for_exception(e):\n- yield from self._run_task(attempts_made + 1, func, *args, **kwargs)\n+ await self._run_task(attempts_made + 1, func, *args, **kwargs)\n else:\n raise\n \n", "reproduction_target_date": "2023-03-14", "reproduction_target_version": "3.10.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 nerandell__async_retrial .\n\nRUN bash /work/setup_nerandell__async_retrial.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_nerandell__async_retrial.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "iniconfig==2.1.0\npackaging==25.0\npluggy==1.6.0\nPygments==2.19.2\npytest==8.4.1\n", "test_type": "pytest", "test_files": "tests/test_retrial.py", "test_count": 1, "related_modules": "asyncio", "py_file_count": 10, "total_loc_python": 165, "difficulty": "Medium", "license": "BSD-2-Clause-Views, MIT"} {"repo_name": "andela-sjames/timed-lru-cache", "repo_url": "https://github.com/andela-sjames/timed-lru-cache", "commit_hash": "01f740159b723ecb346459749e18c338304065ae", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,17 +1,17 @@\n-autopep8==1.4.4\n-bleach==3.1.0\n-certifi==2019.3.9\n-chardet==3.0.4\n-docutils==0.14\n-idna==2.8\n-pkginfo==1.5.0.1\n-pycodestyle==2.5.0\n-Pygments==2.4.0\n-readme-renderer==24.0\n-requests==2.22.0\n-requests-toolbelt==0.9.1\n-six==1.12.0\n-tqdm==4.32.1\n-twine==1.13.0\n-urllib3==1.25.2\n-webencodings==0.5.1\n+autopep8\n+bleach\n+certifi\n+chardet\n+docutils\n+idna\n+pkginfo\n+pycodestyle\n+Pygments\n+readme-renderer\n+requests\n+requests-toolbelt\n+six\n+tqdm\n+twine\n+urllib3\n+webencodings\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -5,42 +5,10 @@\n https://packaging.python.org/en/latest/distributing.html\n https://github.com/pypa/sampleproject\n \"\"\"\n-\n from setuptools import setup, find_packages\n-\n from codecs import open\n from os import path\n-\n here = path.abspath(path.dirname(__file__))\n-\n-\n-# Get the long description from the README file\n with open(path.join(here, 'README.rst'), encoding='utf-8') as f:\n long_description = f.read()\n-\n-setup(\n- name='timedLruCache',\n- version='1.0.1',\n- description='A time constraint LRUCache Implementation',\n- long_description=long_description,\n- url='https://github.com/andela-sjames/timed-lru-cache',\n-\n- # Author details\n- author='Samuel James',\n- author_email='samuelvarejames@gmail.com',\n-\n- license='MIT',\n-\n- keywords='timed lru cache implementation',\n-\n- classifiers=[\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: MIT License',\n- 'Programming Language :: Python :: 3',\n- ],\n-\n- packages=find_packages(exclude=['contrib', 'docs', 'tests']),\n-\n- install_requires=[],\n- test_suite = \"tests.test_lru_cache\",\n-)\n+setup(name='timedLruCache', version='1.0.1', description='A time constraint LRUCache Implementation', long_description=long_description, url='https://github.com/andela-sjames/timed-lru-cache', author='Samuel James', author_email='samuelvarejames@gmail.com', license='MIT', keywords='timed lru cache implementation', classifiers=['Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3'], packages=find_packages(exclude=['contrib', 'docs', 'tests']), install_requires=[], test_suite='tests.test_lru_cache')\n\\ No newline at end of file\n--- setup_andela-sjames__timed-lru-cache.sh\n+++ setup_andela-sjames__timed-lru-cache.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_andela-sjames__timed-lru-cache.sh\n+++ test_andela-sjames__timed-lru-cache.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_lru_cache\n", "test_patch": "", "gold_patch": "--- lrucache/lru_cache.py\n+++ lrucache/lru_cache.py\n@@ -1,6 +1,6 @@\n import threading\n \n-from collections import MutableMapping\n+from collections.abc import MutableMapping\n from time import time\n \n from .utils.cache_doublylinkedlist import DoublylinkedList\n", "reproduction_target_date": "2019-05-26", "reproduction_target_version": "3.6.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 andela-sjames__timed-lru-cache .\n\nRUN bash /work/setup_andela-sjames__timed-lru-cache.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_andela-sjames__timed-lru-cache.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "autopep8==2.3.2\nbleach==6.2.0\ncertifi==2025.7.14\ncffi==1.17.1\nchardet==5.2.0\ncharset-normalizer==3.4.2\ncryptography==45.0.5\ndocutils==0.22\nid==1.5.0\nidna==3.10\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\nmdurl==0.1.2\nmore-itertools==10.7.0\nnh3==0.3.0\npackaging==25.0\npkginfo==1.12.1.2\npycodestyle==2.14.0\npycparser==2.22\nPygments==2.19.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\nsix==1.17.0\ntqdm==4.67.1\ntwine==6.1.0\nurllib3==2.5.0\nwebencodings==0.5.1\n", "test_type": "unittest", "test_files": "tests/test_lru_cache.py", "test_count": 13, "related_modules": "builtin", "py_file_count": 12, "total_loc_python": 644, "difficulty": "Easy", "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": "scrapedia/scrapy-httpcache", "repo_url": "https://github.com/scrapedia/scrapy-httpcache", "commit_hash": "8497a917e4b9a28cebfe56bc177ff19f70cf3eac", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,3 +1,3 @@\n Scrapy\n motor\n-pymongo\n+pymongo\n\\ No newline at end of file\n--- setup_scrapedia__scrapy-httpcache.sh\n+++ setup_scrapedia__scrapy-httpcache.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_scrapedia__scrapy-httpcache.sh\n+++ test_scrapedia__scrapy-httpcache.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_downloadermiddleware_httpcache\n", "test_patch": "--- tests/test_downloadermiddleware_httpcache.py\n+++ tests/test_downloadermiddleware_httpcache.py\n@@ -4,6 +4,7 @@\n import unittest\n import email.utils\n from contextlib import contextmanager\n+from twisted.internet import reactor\n \n from scrapy.http import Response, HtmlResponse, Request\n from scrapy.spiders import Spider\n", "gold_patch": "--- scrapy_httpcache/extensions/cache_storage/__init__.py\n+++ scrapy_httpcache/extensions/cache_storage/__init__.py\n@@ -5,7 +5,7 @@\n from typing import Optional\n \n from scrapy.settings import Settings\n-from scrapy.utils.request import request_fingerprint\n+from scrapy.utils.request import fingerprint\n \n from scrapy_httpcache import TRequest, TResponse, TSpider\n \n@@ -73,7 +73,7 @@\n :return:\n :rtype: str\n \"\"\"\n- return request_fingerprint(request)\n+ return fingerprint(request).hex()\n \n def delete_response(\n self, request: TRequest, response: TResponse, spider: TSpider, *args, **kwargs\n", "reproduction_target_date": "2020-08-22", "reproduction_target_version": "3.7.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 scrapedia__scrapy-httpcache .\n\nRUN bash /work/setup_scrapedia__scrapy-httpcache.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_scrapedia__scrapy-httpcache.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "attrs==25.3.0\nAutomat==25.4.16\ncertifi==2025.7.14\ncffi==1.17.1\ncharset-normalizer==3.4.2\nconstantly==23.10.4\ncryptography==45.0.5\ncssselect==1.3.0\ndefusedxml==0.7.1\ndnspython==2.7.0\nfilelock==3.18.0\nhyperlink==21.0.0\nidna==3.10\nincremental==24.7.2\nitemadapter==0.12.0\nitemloaders==1.3.2\njmespath==1.0.1\nlxml==6.0.0\nmotor==3.7.1\npackaging==25.0\nparsel==1.10.0\nProtego==0.5.0\npyasn1==0.6.1\npyasn1_modules==0.4.2\npycparser==2.22\nPyDispatcher==2.0.7\npymongo==4.13.2\npyOpenSSL==25.1.0\nqueuelib==1.8.0\nrequests==2.32.4\nrequests-file==2.1.0\nScrapy==2.13.3\nservice-identity==24.2.0\nsetuptools==80.9.0\ntldextract==5.3.0\nTwisted==25.5.0\ntyping_extensions==4.14.1\nurllib3==2.5.0\nw3lib==2.3.1\nzope.interface==7.2\n", "test_type": "unittest", "test_files": "tests/test_downloadermiddleware_httpcache.py", "test_count": 32, "related_modules": "scrapy", "py_file_count": 18, "total_loc_python": 1632, "difficulty": "Medium", "license": ""} {"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": "Easy", "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": "Easy", "license": "MIT"} {"repo_name": "fides-dev/fides", "repo_url": "https://github.com/fides-dev/fides", "commit_hash": "ed54c6bd1cb4d9366336045e70503587ea363203", "patch": "--- docs/requirements.txt\n+++ docs/requirements.txt\n@@ -1,13 +1,13 @@\n # Requirements just for building the docs (used by readthedocs, but also\n # helpful for building docs locally).\n-sphinx>=1.4\n-numpy>=1.19.2\n-scipy>=1.5.2\n-h5py>=3.5.0\n-numpydoc>=0.6\n-nbsphinx>=0.5.1\n-recommonmark>=0.6.0\n-sphinx_rtd_theme>=0.4.3\n-sphinx-autodoc-typehints>=1.10.3\n+sphinx\n+numpy\n+scipy\n+h5py\n+numpydoc\n+nbsphinx\n+recommonmark\n+sphinx_rtd_theme\n+sphinx-autodoc-typehints\n sphinxcontrib-napoleon\n-pygments==2.4.1\n\\ No newline at end of file\n+pygments\n\\ No newline at end of file\n--- pyproject.toml\n+++ pyproject.toml\n@@ -1,8 +1,5 @@\n [build-system]\n-requires = [\n- \"setuptools >= 52.0.0\",\n- \"wheel >= 0.36.2\",\n-]\n+requires = [\"setuptools\", \"wheel\"]\n build-backend = \"setuptools.build_meta\"\n \n [tool.black]\n--- setup_fides-dev__fides.sh\n+++ setup_fides-dev__fides.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install setuptools wheel\n+pip install -e .\n+pip install pytest\n--- test_fides-dev__fides.sh\n+++ test_fides-dev__fides.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- fides/minimize.py\n+++ fides/minimize.py\n@@ -762,8 +762,8 @@\n normg = norm(self.grad)\n \n min_ev_hess, max_ev_hess = _min_max_evs(self.hess)\n- min_ev_hess_update, max_ev_hess_update = np.NaN, np.NaN\n- min_ev_hess_supdate, max_ev_hess_supdate = np.NaN, np.NaN\n+ min_ev_hess_update, max_ev_hess_update = np.nan, np.nan\n+ min_ev_hess_supdate, max_ev_hess_supdate = np.nan, np.nan\n if self.hessian_update:\n if accepted:\n min_ev_hess_update, max_ev_hess_update = _min_max_evs(\n", "reproduction_target_date": "2023-06-02", "reproduction_target_version": "3.10.11", "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 fides-dev__fides .\n\nRUN bash /work/setup_fides-dev__fides.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_fides-dev__fides.sh\"]\n", "version_source": "default", "script_source": "pyproject.toml", "dependency_versions": "# Editable install with no version control (fides==0.7.8)\n-e /work\nh5py==3.14.0\niniconfig==2.1.0\nnumpy==2.3.2\npackaging==25.0\npluggy==1.6.0\nPygments==2.19.2\npytest==8.4.1\nscipy==1.16.1\nsetuptools==80.9.0\nwheel==0.45.1\n", "test_type": "pytest", "test_files": "tests/test_subproblem.py, tests/test_hessian_approximation.py, tests/test_minimize.py", "test_count": 1243, "related_modules": "numpy", "py_file_count": 15, "total_loc_python": 3905, "difficulty": "Easy", "license": "BSD-3-Clause"} {"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": "rebuy-de/ds-pub-utils", "repo_url": "https://github.com/rebuy-de/ds-pub-utils", "commit_hash": "49a14b9ee16960a76f2523429e192a5d5af37038", "patch": "--- setup.py\n+++ setup.py\n@@ -1,20 +1,2 @@\n from setuptools import setup\n-\n-setup(name='pubdsutils',\n- version='0.2',\n- description='Package of DS related public tools from reBuy.com',\n- author='reBuy.com',\n- author_email='datascience@rebuy.com',\n- packages=['pubdsutils'],\n- install_requires=[\n- 'flake8>=3.3.0',\n- 'numpy>=1.13.0',\n- 'pandas>=0.20.2',\n- 'pytest>=3.1.2',\n- 'pytest-cov>=2.3.1',\n- 'scikit-learn>=0.18.1',\n- 'scipy>=0.19.0',\n- 'pytest'\n- ],\n- python_requires='>=3',\n- zip_safe=False)\n+setup(name='pubdsutils', version='0.2', description='Package of DS related public tools from reBuy.com', author='reBuy.com', author_email='datascience@rebuy.com', packages=['pubdsutils'], install_requires=['flake8', 'numpy', 'pandas', 'pytest', 'pytest-cov', 'scikit-learn', 'scipy', 'pytest'], python_requires='>=3', zip_safe=False)\n\\ No newline at end of file\n--- setup_rebuy-de__ds-pub-utils.sh\n+++ setup_rebuy-de__ds-pub-utils.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n--- test_rebuy-de__ds-pub-utils.sh\n+++ test_rebuy-de__ds-pub-utils.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_calcs tests.test_feat_eng tests.test_feat_eng_pipelines tests.test_preprocessing\n", "test_patch": "--- tests/test_calcs.py\n+++ tests/test_calcs.py\n@@ -1,4 +1,5 @@\n import unittest\n+import numpy as np\n import pandas as pd\n from pandas.testing import assert_frame_equal\n from pubdsutils import calcs as ca\n@@ -10,8 +11,8 @@\n s = pd.Series([1, 2, 2, 2])\n expected = pd.concat(\n [\n- pd.Series([1 / 4, 3 / 4], index=pd.Int64Index([1, 2])),\n- pd.Series([1, 3], index=pd.Int64Index([1, 2]))\n+ pd.Series([1 / 4, 3 / 4], index=pd.Index([1, 2], dtype=np.int64)),\n+ pd.Series([1, 3], index=pd.Index([1, 2], dtype=np.int64))\n ],\n keys=['Ratio', 'Count'], axis=1\n ).sort_values('Ratio', ascending=False)\n@@ -24,8 +25,8 @@\n }, index=['foo', 'bar', 'hello', 'world'])\n expected = pd.concat(\n [\n- pd.Series([1 / 4, 3 / 4], index=pd.Int64Index([1, 2])),\n- pd.Series([1, 3], index=pd.Int64Index([1, 2]))\n+ pd.Series([1 / 4, 3 / 4], index=pd.Index([1, 2], dtype=np.int64)),\n+ pd.Series([1, 3], index=pd.Index([1, 2], dtype=np.int64))\n ],\n keys=['Ratio', 'Count'], axis=1\n ).sort_values('Ratio', ascending=False)\n--- tests/test_feat_eng.py\n+++ tests/test_feat_eng.py\n@@ -1,3 +1,4 @@\n+import datetime\n import unittest\n import pandas as pd\n import numpy as np\n@@ -190,14 +191,14 @@\n {\n \"v1\": [1, 2, 3],\n \"start\": [\n- pd.datetime(2017, 1, 1),\n- pd.datetime(2016, 12, 12),\n- pd.datetime(2017, 1, 10)\n+ datetime.datetime(2017, 1, 1),\n+ datetime.datetime(2016, 12, 12),\n+ datetime.datetime(2017, 1, 10)\n ],\n \"end\": [\n- pd.datetime(2017, 1, 10),\n- pd.datetime(2016, 12, 15),\n- pd.datetime(2017, 1, 10)\n+ datetime.datetime(2017, 1, 10),\n+ datetime.datetime(2016, 12, 15),\n+ datetime.datetime(2017, 1, 10)\n ]\n })\n )\n@@ -209,14 +210,14 @@\n {\n \"v1\": [1, 2, 3],\n \"start\": [\n- pd.datetime(2017, 1, 1),\n- pd.datetime(2016, 12, 12),\n- pd.datetime(2017, 1, 10)\n+ datetime.datetime(2017, 1, 1),\n+ datetime.datetime(2016, 12, 12),\n+ datetime.datetime(2017, 1, 10)\n ],\n \"end\": [\n- pd.datetime(2017, 1, 10),\n- pd.datetime(2016, 12, 15),\n- pd.datetime(2017, 1, 10)\n+ datetime.datetime(2017, 1, 10),\n+ datetime.datetime(2016, 12, 15),\n+ datetime.datetime(2017, 1, 10)\n ],\n \"DaysFrom_start_To_end\": pd.Series([9, 3, 0])\n })\n@@ -230,14 +231,14 @@\n {\n \"v1\": [1, 2, 3],\n \"start\": [\n- pd.datetime(2017, 1, 1),\n- pd.datetime(2016, 12, 12),\n- pd.datetime(2017, 1, 10)\n+ datetime.datetime(2017, 1, 1),\n+ datetime.datetime(2016, 12, 12),\n+ datetime.datetime(2017, 1, 10)\n ],\n \"end\": [\n- pd.datetime(2017, 1, 10),\n- pd.datetime(2016, 12, 15),\n- pd.datetime(2017, 1, 10)\n+ datetime.datetime(2017, 1, 10),\n+ datetime.datetime(2016, 12, 15),\n+ datetime.datetime(2017, 1, 10)\n ],\n \"foo\": pd.Series([9, 3, 0])\n })\n@@ -259,9 +260,9 @@\n {\n \"v1\": [1, 2, 3],\n \"date\": [\n- pd.datetime(2017, 6, 27),\n- pd.datetime(2017, 6, 26),\n- pd.datetime(2017, 6, 25)\n+ datetime.datetime(2017, 6, 27),\n+ datetime.datetime(2017, 6, 26),\n+ datetime.datetime(2017, 6, 25)\n ]\n }\n )\n@@ -274,9 +275,9 @@\n {\n \"v1\": [1, 2, 3],\n \"date\": [\n- pd.datetime(2017, 6, 27),\n- pd.datetime(2017, 6, 26),\n- pd.datetime(2017, 6, 25)\n+ datetime.datetime(2017, 6, 27),\n+ datetime.datetime(2017, 6, 26),\n+ datetime.datetime(2017, 6, 25)\n ],\n \"date_DayOfTheWeek\": pd.Series([1, 0, 6]).astype('category')\n }\n@@ -290,9 +291,9 @@\n {\n \"v1\": [1, 2, 3],\n \"date\": [\n- pd.datetime(2017, 6, 27),\n- pd.datetime(2017, 6, 26),\n- pd.datetime(2017, 6, 25)\n+ datetime.datetime(2017, 6, 27),\n+ datetime.datetime(2017, 6, 26),\n+ datetime.datetime(2017, 6, 25)\n ],\n \"foo\": pd.Series([1, 0, 6]).astype('category')\n }\n@@ -320,9 +321,9 @@\n {\n \"v1\": [1, 2, 3],\n \"date\": [\n- pd.datetime(2017, 6, 27, 10, 12, 52),\n- pd.datetime(2017, 6, 26, 23, 0, 12),\n- pd.datetime(2017, 6, 25, 8, 0, 0)\n+ datetime.datetime(2017, 6, 27, 10, 12, 52),\n+ datetime.datetime(2017, 6, 26, 23, 0, 12),\n+ datetime.datetime(2017, 6, 25, 8, 0, 0)\n ]\n }\n )\n@@ -335,9 +336,9 @@\n {\n \"v1\": [1, 2, 3],\n \"date\": [\n- pd.datetime(2017, 6, 27, 10, 12, 52),\n- pd.datetime(2017, 6, 26, 23, 0, 12),\n- pd.datetime(2017, 6, 25, 8, 0, 0)\n+ datetime.datetime(2017, 6, 27, 10, 12, 52),\n+ datetime.datetime(2017, 6, 26, 23, 0, 12),\n+ datetime.datetime(2017, 6, 25, 8, 0, 0)\n ],\n \"date_HourOfTheDay\": pd.Series([10, 23, 8]).astype('category')\n }\n@@ -351,9 +352,9 @@\n {\n \"v1\": [1, 2, 3],\n \"date\": [\n- pd.datetime(2017, 6, 27, 10, 12, 52),\n- pd.datetime(2017, 6, 26, 23, 0, 12),\n- pd.datetime(2017, 6, 25, 8, 0, 0)\n+ datetime.datetime(2017, 6, 27, 10, 12, 52),\n+ datetime.datetime(2017, 6, 26, 23, 0, 12),\n+ datetime.datetime(2017, 6, 25, 8, 0, 0)\n ],\n \"foo\": pd.Series([10, 23, 8]).astype('category')\n }\n--- tests/test_feat_eng_pipelines.py\n+++ tests/test_feat_eng_pipelines.py\n@@ -1,3 +1,4 @@\n+import datetime\n import unittest\n import pandas as pd\n from pandas.testing import assert_frame_equal\n@@ -14,14 +15,14 @@\n \"v1\": [2, 4, 6],\n \"v2\": [10, 20, 30],\n \"d1\": [\n- pd.datetime(2017, 6, 27),\n- pd.datetime(2017, 6, 24),\n- pd.datetime(2017, 5, 1)\n+ datetime.datetime(2017, 6, 27),\n+ datetime.datetime(2017, 6, 24),\n+ datetime.datetime(2017, 5, 1)\n ],\n \"d2\": [\n- pd.datetime(2017, 6, 20),\n- pd.datetime(2017, 6, 20),\n- pd.datetime(2017, 4, 30)\n+ datetime.datetime(2017, 6, 20),\n+ datetime.datetime(2017, 6, 20),\n+ datetime.datetime(2017, 4, 30)\n ]\n })\n )\n@@ -39,14 +40,14 @@\n \"v1\": [2, 4, 6],\n \"v2\": [10, 20, 30],\n \"d1\": [\n- pd.datetime(2017, 6, 27),\n- pd.datetime(2017, 6, 24),\n- pd.datetime(2017, 5, 1)\n+ datetime.datetime(2017, 6, 27),\n+ datetime.datetime(2017, 6, 24),\n+ datetime.datetime(2017, 5, 1)\n ],\n \"d2\": [\n- pd.datetime(2017, 6, 20),\n- pd.datetime(2017, 6, 20),\n- pd.datetime(2017, 4, 30)\n+ datetime.datetime(2017, 6, 20),\n+ datetime.datetime(2017, 6, 20),\n+ datetime.datetime(2017, 4, 30)\n ],\n 'v1_to_2': [1., 2., 3.],\n 'v2_to_v1': [5., 5., 5.]\n", "gold_patch": "--- pubdsutils/calcs.py\n+++ pubdsutils/calcs.py\n@@ -32,7 +32,13 @@\n \"\"\"\n res_norm = s.value_counts(sort=sort, ascending=ascending,\n normalize=True, bins=bins, dropna=dropna)\n+ res_norm.name = s.name\n+ res_norm.index.name = None\n+\n res_regu = s.value_counts(sort=sort, ascending=ascending,\n normalize=False, bins=bins, dropna=dropna)\n+ res_regu.name = s.name\n+ res_regu.index.name = None\n+\n result = pd.concat([res_norm, res_regu], axis=1, keys=['Ratio', 'Count'])\n return result\n--- pubdsutils/data_fetch.py\n+++ pubdsutils/data_fetch.py\n@@ -1,3 +1,4 @@\n+import datetime\n import pandas as pd\n from hashlib import sha256\n import pymssql\n@@ -104,7 +105,7 @@\n df_hash = sha256(df.to_json().encode()).hexdigest()\n base_filename = '{}_{}_{}'.format(\n prefix,\n- pd.datetime.now().isoformat().replace(\":\", \"-\").replace(\".\", \"-\"),\n+ datetime.datetime.now().isoformat().replace(\":\", \"-\").replace(\".\", \"-\"),\n df_hash)\n if path is not None:\n base_filename = path + base_filename\n--- pubdsutils/preprocessing.py\n+++ pubdsutils/preprocessing.py\n@@ -87,7 +87,7 @@\n pdu._is_cols_input_valid(cols)\n self.cols = cols\n self.n_values = n_values\n- self.ohe = OneHotEncoder(n_values=self.n_values)\n+ self.ohe = OneHotEncoder(categories=[range(self.n_values)] * len(self.cols))\n \n def transform(self, df, y=None, **trans_param):\n \"\"\"\n", "reproduction_target_date": "2017-10-25", "reproduction_target_version": "3.6.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 rebuy-de__ds-pub-utils .\n\nRUN bash /work/setup_rebuy-de__ds-pub-utils.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_rebuy-de__ds-pub-utils.sh\"]\n", "version_source": "setup.py", "script_source": "setup.py", "dependency_versions": "coverage==7.10.1\nflake8==7.3.0\niniconfig==2.1.0\njoblib==1.5.1\nmccabe==0.7.0\nnumpy==2.3.2\npackaging==25.0\npandas==2.3.1\npluggy==1.6.0\npubdsutils @ file:///work\npycodestyle==2.14.0\npyflakes==3.4.0\nPygments==2.19.2\npytest==8.4.1\npytest-cov==6.2.1\npython-dateutil==2.9.0.post0\npytz==2025.2\nscikit-learn==1.7.1\nscipy==1.16.1\nsix==1.17.0\nthreadpoolctl==3.6.0\ntzdata==2025.2\n", "test_type": "unittest", "test_files": "tests/test_feat_eng_pipelines.py, tests/test_feat_eng.py, tests/test_preprocessing.py, tests/test_calcs.py", "test_count": 38, "related_modules": "pandas, scikit-learn", "py_file_count": 13, "total_loc_python": 1793, "difficulty": "Hard", "license": "MIT"} {"repo_name": "jesseops/yact", "repo_url": "https://github.com/jesseops/yact", "commit_hash": "4dbe8bf815fe1383f098b29f246f203f23ebf383", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1 +1 @@\n-pyyaml\n+pyyaml\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,41 +1,10 @@\n from os import path\n from setuptools import setup\n-\n here = path.abspath(path.dirname(__file__))\n-\n-__version__ = \"0.5.1\"\n-__desc__ = \"\"\"Yet Another Config Tool\"\"\"\n-\n+__version__ = '0.5.1'\n+__desc__ = 'Yet Another Config Tool'\n with open(path.join(here, 'requirements.txt')) as r:\n __requires__ = [x.strip() for x in r.readlines() if not x.startswith('--')]\n-\n with open(path.join(here, 'readme.rst')) as f:\n __longdesc__ = f.read()\n-\n-setup(\n- name=\"yact\",\n- author=\"Jesse Roberts\",\n- author_email=\"jesse@hackedpotatoes.com\",\n- version=__version__,\n- url=\"https://github.com/jesseops/yact\",\n- install_requires=__requires__,\n- extras_require={'test': ['nosetests']},\n- packages=['yact'],\n- description=__desc__,\n- long_description=__longdesc__,\n- license='MIT',\n- keywords='yaml yact settings config parser configuration',\n- classifiers=[\n- 'Natural Language :: English',\n- 'Development Status :: 4 - Beta',\n- 'Intended Audience :: Developers',\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.3',\n- 'Programming Language :: Python :: 3.4',\n- 'Programming Language :: Python :: 3.5',\n- 'Programming Language :: Python :: 3.6',\n- ]\n-)\n+setup(name='yact', author='Jesse Roberts', author_email='jesse@hackedpotatoes.com', version=__version__, url='https://github.com/jesseops/yact', install_requires=__requires__, extras_require={'test': ['nosetests']}, packages=['yact'], description=__desc__, long_description=__longdesc__, license='MIT', keywords='yaml yact settings config parser configuration', classifiers=['Natural Language :: English', 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6'])\n\\ No newline at end of file\n--- setup_jesseops__yact.sh\n+++ setup_jesseops__yact.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_jesseops__yact.sh\n+++ test_jesseops__yact.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_yact\n", "test_patch": "", "gold_patch": "--- yact/config.py\n+++ yact/config.py\n@@ -114,7 +114,7 @@\n if not self.unsafe:\n self._data = yaml.safe_load(f)\n else:\n- self._data = yaml.load(f)\n+ self._data = yaml.load(f, Loader=yaml.Loader)\n self.ts_refreshed = datetime.now()\n self.ts_refreshed_utc = datetime.utcnow()\n except Exception as e: # TODO: Split out into handling file IO and parsing errors\n", "reproduction_target_date": "2019-10-17", "reproduction_target_version": "3.7.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 jesseops__yact .\n\nRUN bash /work/setup_jesseops__yact.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_jesseops__yact.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "PyYAML==6.0.2\n", "test_type": "unittest", "test_files": "tests/test_yact.py", "test_count": 14, "related_modules": "PyYAML", "py_file_count": 6, "total_loc_python": 682, "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 `_ , 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 `_ 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//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//Library/Enthought/Canopy/edm/envs/User/bin/ipython'\n- alias canopy-jupyter='/Users//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 `_ , 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 `_ 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//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//Library/Enthought/Canopy/edm/envs/User/bin/ipython'\\n alias canopy-jupyter='/Users//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": "uma-pi1/kge", "repo_url": "https://github.com/uma-pi1/kge", "commit_hash": "00de5127dd7fdc0d0d921a6dffda09a30dbd3d7d", "patch": "--- setup.py\n+++ setup.py\n@@ -1,35 +1,2 @@\n from setuptools import setup\n-\n-setup(\n- name=\"libkge\",\n- version=\"0.1\",\n- description=\"A knowledge graph embedding library\",\n- url=\"https://github.com/uma-pi1/kge\",\n- author=\"Universität Mannheim\",\n- author_email=\"rgemulla@uni-mannheim.de\",\n- packages=[\"kge\"],\n- install_requires=[\n- \"numpy>=1.19.0\",\n- \"torch>=1.7.1\",\n- \"pyyaml\",\n- \"pandas\",\n- \"argparse\",\n- \"path\",\n- # please check correct behaviour when updating ax platform version!!\n- \"ax-platform>=0.1.19\", \"botorch>=0.4.0\", \"gpytorch>=1.4.2\",\n- # sqlalchemy version restricted until ax supports sqlachemy 2\n- # see https://github.com/uma-pi1/kge/pull/269\n- \"sqlalchemy<2.0.0\",\n- \"torchviz\",\n- # LibKGE uses numba typed-dicts which is part of the experimental numba API\n- # see http://numba.pydata.org/numba-doc/0.50.1/reference/pysupported.html\n- \"numba>=0.50.0\",\n- \"hpbandster\",\n- \"ConfigSpace\",\n- \"pytest-shutil\",\n- \"igraph\",\n- ],\n- python_requires=\">=3.7\",\n- zip_safe=False,\n- entry_points={\"console_scripts\": [\"kge = kge.cli:main\",],},\n-)\n+setup(name='libkge', version='0.1', description='A knowledge graph embedding library', url='https://github.com/uma-pi1/kge', author='Universität Mannheim', author_email='rgemulla@uni-mannheim.de', packages=['kge'], install_requires=['numpy', 'torch', 'pyyaml', 'pandas', 'argparse', 'path', 'ax-platform', 'botorch', 'gpytorch', 'sqlalchemy', 'torchviz', 'numba', 'hpbandster', 'ConfigSpace', 'pytest-shutil', 'igraph'], python_requires='>=3.7', zip_safe=False, entry_points={'console_scripts': ['kge = kge.cli:main']})\n\\ No newline at end of file\n--- setup_uma-pi1__kge.sh\n+++ setup_uma-pi1__kge.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n--- test_uma-pi1__kge.sh\n+++ test_uma-pi1__kge.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_model tests.test_dataset tests.test_preprocess tests.test_train\n", "test_patch": "", "gold_patch": "--- kge/job/search_ax.py\n+++ kge/job/search_ax.py\n@@ -1,6 +1,6 @@\n from math import ceil\n \n-from ax import Models\n+from ax.modelbridge import Generators\n from ax.modelbridge.generation_strategy import GenerationStep, GenerationStrategy\n \n from kge.job import AutoSearchJob, Job\n@@ -35,13 +35,13 @@\n name=\"Sobol+GPEI\",\n steps=[\n GenerationStep(\n- model=Models.SOBOL,\n+ model=Generators.SOBOL,\n num_trials=self.num_sobol_trials,\n min_trials_observed=ceil(self.num_sobol_trials / 2),\n enforce_num_trials=True,\n model_kwargs={\"seed\": self.config.get(\"ax_search.sobol_seed\")},\n ),\n- GenerationStep(model=Models.GPEI, num_trials=-1, max_parallelism=3),\n+ GenerationStep(model=Generators.GPEI, num_trials=-1, max_parallelism=3),\n ],\n )\n # END: from /ax/service/utils/dispatch.py\n@@ -67,8 +67,8 @@\n \"ax search initialized with {}\".format(self.ax_client.generation_strategy)\n )\n \n- # Make sure sobol models are resumed correctly\n- if self.ax_client.generation_strategy._curr.model == Models.SOBOL:\n+ # Make sure sobol Generators are resumed correctly\n+ if self.ax_client.generation_strategy._curr.model == Generators.SOBOL:\n \n self.ax_client.generation_strategy.experiment = self.ax_client.experiment\n \n", "reproduction_target_date": "2023-05-05", "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 uma-pi1__kge .\n\nRUN bash /work/setup_uma-pi1__kge.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_uma-pi1__kge.sh\"]\n", "version_source": "setup.py", "script_source": "setup.py", "dependency_versions": "asttokens==3.0.0\nax-platform==1.0.0\nbotorch==0.14.0\ncomm==0.2.3\nConfigSpace==1.2.1\ndecorator==5.2.1\nexecnet==2.1.1\nexecuting==2.2.0\nfilelock==3.18.0\nfsspec==2025.7.0\ngpytorch==1.14\ngraphviz==0.21\ngreenlet==3.2.3\nhpbandster==0.7.4\nigraph==0.11.9\niniconfig==2.1.0\nipython==9.4.0\nipython_pygments_lexers==1.1.1\nipywidgets==8.1.7\njaxtyping==0.3.2\njedi==0.19.2\nJinja2==3.1.6\njoblib==1.5.1\njupyterlab_widgets==3.0.15\nlibkge @ file:///work\nlinear-operator==0.6\nllvmlite==0.44.0\nMarkdown==3.8.2\nMarkupSafe==3.0.2\nmatplotlib-inline==0.1.7\nmore-itertools==10.7.0\nmpmath==1.3.0\nmultipledispatch==1.0.0\nmypy_extensions==1.1.0\nnarwhals==2.0.1\nnetifaces==0.11.0\nnetworkx==3.5\nnumba==0.61.2\nnumpy==2.2.6\nnvidia-cublas-cu12==12.6.4.1\nnvidia-cuda-cupti-cu12==12.6.80\nnvidia-cuda-nvrtc-cu12==12.6.77\nnvidia-cuda-runtime-cu12==12.6.77\nnvidia-cudnn-cu12==9.5.1.17\nnvidia-cufft-cu12==11.3.0.4\nnvidia-cufile-cu12==1.11.1.6\nnvidia-curand-cu12==10.3.7.77\nnvidia-cusolver-cu12==11.7.1.2\nnvidia-cusparse-cu12==12.5.4.2\nnvidia-cusparselt-cu12==0.6.3\nnvidia-nccl-cu12==2.26.2\nnvidia-nvjitlink-cu12==12.6.85\nnvidia-nvtx-cu12==12.6.77\nopt_einsum==3.4.0\npackaging==25.0\npandas==2.3.1\nparso==0.8.4\npath==17.1.1\npatsy==1.0.1\npexpect==4.9.0\nplotly==6.2.0\npluggy==1.6.0\nprompt_toolkit==3.0.51\nptyprocess==0.7.0\npure_eval==0.2.3\nPygments==2.19.2\npyparsing==3.2.3\npyre-extensions==0.0.32\npyro-api==0.1.2\npyro-ppl==1.9.1\nPyro4==4.82\npytest==8.4.1\npytest-shutil==1.8.1\npython-dateutil==2.9.0.post0\npytz==2025.2\nPyYAML==6.0.2\nscikit-learn==1.7.1\nscipy==1.16.1\nserpent==1.41\nsetuptools==80.9.0\nsix==1.17.0\nSQLAlchemy==2.0.42\nstack-data==0.6.3\nstatsmodels==0.14.5\nsympy==1.14.0\ntermcolor==3.1.0\ntexttable==1.7.0\nthreadpoolctl==3.6.0\ntorch==2.7.1\ntorchviz==0.0.3\ntqdm==4.67.1\ntraitlets==5.14.3\ntriton==3.3.1\ntyping-inspect==0.9.0\ntyping_extensions==4.14.1\ntzdata==2025.2\nwadler_lindig==0.1.7\nwcwidth==0.2.13\nwidgetsnbextension==4.0.14\n", "test_type": "unittest", "test_files": "tests/test_model.py, tests/test_train.py, tests/test_dataset.py, tests/test_preprocess.py", "test_count": 22, "related_modules": "ax-platform", "py_file_count": 65, "total_loc_python": 12698, "difficulty": "Medium", "license": "MIT"} {"repo_name": "socialwifi/queue-messaging", "repo_url": "https://github.com/socialwifi/queue-messaging", "commit_hash": "c400108297823a126e4675fe5b3fb16838e4faaf", "patch": "--- base_requirements.txt\n+++ base_requirements.txt\n@@ -1,6 +1,6 @@\n cached_property\n google-cloud-core\n-google-cloud-pubsub>=0.35\n+google-cloud-pubsub\n marshmallow\n netaddr\n-tenacity\n+tenacity\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -4,29 +4,4 @@\n from pip.req import parse_requirements\n from setuptools import setup\n from setuptools import find_packages\n-\n-\n-setup(\n- name='queue-messaging',\n- version='0.3.6.dev0',\n- description='Python queue messaging library.',\n- author='Social WiFi',\n- author_email='it@socialwifi.com',\n- url='https://github.com/socialwifi/queue-messaging',\n- packages=find_packages(exclude=['tests']),\n- install_requires=[str(ir.req) for ir in parse_requirements('base_requirements.txt', session=False)],\n- setup_requires=['pytest-runner'],\n- tests_require=['pytest'],\n- license='BSD',\n- classifiers=[\n- 'Development Status :: 5 - Production/Stable',\n- 'Environment :: Console',\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: BSD License',\n- 'Operating System :: OS Independent',\n- 'Programming Language :: Python',\n- 'Programming Language :: Python :: 3',\n- 'Programming Language :: Python :: 3.5',\n- 'Programming Language :: Python :: 3.6',\n- ]\n-)\n+setup(name='queue-messaging', version='0.3.6.dev0', description='Python queue messaging library.', author='Social WiFi', author_email='it@socialwifi.com', url='https://github.com/socialwifi/queue-messaging', packages=find_packages(exclude=['tests']), install_requires=[str(ir.req) for ir in parse_requirements('base_requirements.txt', session=False)], setup_requires=['pytest-runner'], tests_require=['pytest'], license='BSD', classifiers=['Development Status :: 5 - Production/Stable', 'Environment :: Console', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6'])\n\\ No newline at end of file\n--- setup_socialwifi__queue-messaging.sh\n+++ setup_socialwifi__queue-messaging.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r base_requirements.txt\n+pip install pytest\n--- test_socialwifi__queue-messaging.sh\n+++ test_socialwifi__queue-messaging.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- queue_messaging/data/encoding.py\n+++ queue_messaging/data/encoding.py\n@@ -10,15 +10,12 @@\n def encode(model: structures.Model):\n try:\n serialization_result = model.Meta.schema().dumps(model)\n+ model.Meta.schema().loads(serialization_result)\n except AttributeError as e:\n raise exceptions.EncodingError(e)\n except marshmallow.ValidationError as e:\n raise exceptions.EncodingError(e.messages)\n- else:\n- if serialization_result.errors:\n- raise exceptions.EncodingError(serialization_result.errors)\n- else:\n- return serialization_result.data\n+ return serialization_result\n \n \n def decode_payload(header: structures.Header, encoded_data: str, message_config: dict):\n@@ -34,16 +31,13 @@\n \n def decode(type, encoded_data: str):\n try:\n- decoded_data = type.Meta.schema().loads(encoded_data)\n+ decoded_data = type.Meta.schema().loads(encoded_data, unknown=marshmallow.EXCLUDE)\n except (json.decoder.JSONDecodeError, TypeError, AttributeError):\n raise exceptions.DecodingError('Error while decoding.', encoded_data=encoded_data)\n except marshmallow.ValidationError as e:\n raise exceptions.DecodingError(e.messages)\n- else:\n- if decoded_data.errors:\n- raise exceptions.DecodingError(decoded_data.errors)\n- else:\n- return type(**decoded_data.data)\n+\n+ return type(**decoded_data)\n \n \n def create_attributes(model: structures.Model, now=None) -> dict:\n--- queue_messaging/data/fields.py\n+++ queue_messaging/data/fields.py\n@@ -15,7 +15,7 @@\n try:\n return str(self._to_python(value))\n except netaddr.AddrFormatError:\n- self.fail('format', input=value)\n+ raise self.make_error('format', input=value)\n \n def _deserialize(self, value, attr, data):\n if not value:\n@@ -23,7 +23,7 @@\n try:\n return self._to_python(value)\n except netaddr.AddrFormatError:\n- self.fail('format', input=value)\n+ raise self.make_error('format', input=value)\n \n def _to_python(self, value):\n eui = netaddr.EUI(value)\n", "reproduction_target_date": "2018-12-12", "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 socialwifi__queue-messaging .\n\nRUN bash /work/setup_socialwifi__queue-messaging.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_socialwifi__queue-messaging.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "cached-property==2.0.1\ncachetools==5.5.2\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\ngoogle-api-core==2.25.1\ngoogle-auth==2.40.3\ngoogle-cloud-core==2.4.3\ngoogle-cloud-pubsub==2.31.1\ngoogleapis-common-protos==1.70.0\ngrpc-google-iam-v1==0.14.2\ngrpcio==1.74.0\ngrpcio-status==1.74.0\nidna==3.10\nimportlib_metadata==8.7.0\niniconfig==2.1.0\nmarshmallow==4.0.0\nnetaddr==1.3.0\nopentelemetry-api==1.36.0\nopentelemetry-sdk==1.36.0\nopentelemetry-semantic-conventions==0.57b0\npackaging==25.0\npluggy==1.6.0\nproto-plus==1.26.1\nprotobuf==6.31.1\npyasn1==0.6.1\npyasn1_modules==0.4.2\nPygments==2.19.2\npytest==8.4.1\nrequests==2.32.4\nrsa==4.9.1\ntenacity==9.1.2\ntyping_extensions==4.14.1\nurllib3==2.5.0\nzipp==3.23.0\n", "test_type": "pytest", "test_files": "tests/test_integration.py, tests/data/test_fields.py, tests/services/test_pubsub.py, tests/data/test_encoding.py, tests/data/test_structures.py", "test_count": 48, "related_modules": "marshmallow", "py_file_count": 23, "total_loc_python": 1216, "difficulty": "Hard", "license": "BSD-3-Clause"} {"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": "Gunnstein/fatpack", "repo_url": "https://github.com/Gunnstein/fatpack", "commit_hash": "cc80744d3896bb79655d2ee82694c65b9f0d6a57", "patch": "--- pyproject.toml\n+++ pyproject.toml\n@@ -16,9 +16,7 @@\n \"Programming Language :: Python\",\n \"Topic :: Scientific/Engineering\",\n ]\n-dependencies = [\n- \"numpy\",\n-]\n+dependencies = [\"numpy\"]\n dynamic = [\"version\"]\n \n [project.urls]\n--- setup_Gunnstein__fatpack.sh\n+++ setup_Gunnstein__fatpack.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install setuptools\n+pip install -e .\n--- test_Gunnstein__fatpack.sh\n+++ test_Gunnstein__fatpack.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest fatpack.test\n", "test_patch": "", "gold_patch": "--- fatpack/endurance.py\n+++ fatpack/endurance.py\n@@ -17,7 +17,7 @@\n if x_is_float_or_int:\n xm = np.array([x])\n else:\n- xm = np.asfarray(x)\n+ xm = np.asarray(x, dtype=float)\n ym = method(self, xm)\n if x_is_float_or_int:\n ym = ym[0]\n@@ -123,7 +123,7 @@\n \n \"\"\"\n \n- Sr = np.asfarray(S)\n+ Sr = np.asarray(S, dtype=float)\n shape = Sr.shape\n if len(shape) == 1:\n miner_sum = np.sum(1. / self.get_endurance(Sr))\n", "reproduction_target_date": "2023-05-01", "reproduction_target_version": "3.10.11", "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 Gunnstein__fatpack .\n\nRUN bash /work/setup_Gunnstein__fatpack.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_Gunnstein__fatpack.sh\"]\n", "version_source": "default", "script_source": "pyproject.toml", "dependency_versions": "# Editable install with no version control (fatpack==0.7.7)\n-e /work\nnumpy==2.3.2\nsetuptools==80.9.0\n", "test_type": "unittest", "test_files": "fatpack/test.py", "test_count": 52, "related_modules": "numpy", "py_file_count": 7, "total_loc_python": 1988, "difficulty": "Easy", "license": "ISC"} {"repo_name": "flatironinstitute/inferelator", "repo_url": "https://github.com/flatironinstitute/inferelator", "commit_hash": "5fd992e9ac22bd11f9df0d8ed352aa7d86e0866c", "patch": "--- requirements-multiprocessing.txt\n+++ requirements-multiprocessing.txt\n@@ -1,3 +1,3 @@\n dask[complete]\n-dask_jobqueue >= 0.8.0\n+dask_jobqueue\n joblib\n\\ No newline at end of file\n--- requirements-test.txt\n+++ requirements-test.txt\n@@ -1,4 +1,4 @@\n coverage\n pytest\n bio-test-artifacts\n-tables\n+tables\n\\ No newline at end of file\n--- requirements.txt\n+++ requirements.txt\n@@ -1,6 +1,6 @@\n-numpy >=1.14.0\n-matplotlib >=1.5.1\n-scipy >=0.9\n+numpy\n+matplotlib\n+scipy\n scikit-learn\n-pandas >=0.24.0\n-anndata >=0.7.4\n\\ No newline at end of file\n+pandas\n+anndata\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,47 +1,7 @@\n import os\n from setuptools import setup, find_packages\n-\n-# Current Inferelator Version Number\n-version = \"0.6.2\"\n-\n-\n-# Description from README.md\n+version = '0.6.2'\n base_dir = os.path.dirname(os.path.abspath(__file__))\n-long_description = \"\\n\\n\".join([open(os.path.join(base_dir, \"README.md\"), \"r\").read()])\n-\n-# Required packages\n-requires = [\n- \"numpy >=1.14.0\",\n- \"scipy >=0.9\",\n- \"pandas >=0.24.0\",\n- \"scikit-learn\",\n- \"matplotlib >=1.5.1\",\n- \"anndata >=0.9.0 \"\n-]\n-\n-setup(\n- name=\"inferelator\",\n- version=version,\n- description=\"Inferelator: Network Inference\",\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- url=\"https://github.com/flatironinstitute/inferelator\",\n- project_urls={\n- \"Documentation\": \"https://inferelator.readthedocs.io/\",\n- },\n- author=\"Chris Jackson\",\n- author_email=\"cj59@nyu.edu\",\n- maintainer=\"Chris Jackson\",\n- maintainer_email=\"cj59@nyu.edu\",\n- packages=find_packages(include=[\"inferelator\", \"inferelator.*\"], exclude=[\"tests\", \"*.tests\"]),\n- zip_safe=False,\n- install_requires=requires,\n- python_requires=\">=3.5\",\n- tests_require=[\"coverage\", \"pytest\", \"bio-test-artifacts\", \"tables\"],\n- classifiers=[\n- \"Programming Language :: Python :: 3\",\n- \"License :: OSI Approved :: BSD License\",\n- \"Operating System :: OS Independent\",\n- \"Development Status :: 4 - Beta\"\n- ]\n-)\n+long_description = '\\n\\n'.join([open(os.path.join(base_dir, 'README.md'), 'r').read()])\n+requires = ['numpy', 'scipy', 'pandas', 'scikit-learn', 'matplotlib', 'anndata']\n+setup(name='inferelator', version=version, description='Inferelator: Network Inference', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/flatironinstitute/inferelator', project_urls={'Documentation': 'https://inferelator.readthedocs.io/'}, author='Chris Jackson', author_email='cj59@nyu.edu', maintainer='Chris Jackson', maintainer_email='cj59@nyu.edu', packages=find_packages(include=['inferelator', 'inferelator.*'], exclude=['tests', '*.tests']), zip_safe=False, install_requires=requires, python_requires='>=3.5', tests_require=['coverage', 'pytest', 'bio-test-artifacts', 'tables'], classifiers=['Programming Language :: Python :: 3', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Development Status :: 4 - Beta'])\n\\ No newline at end of file\n--- setup_flatironinstitute__inferelator.sh\n+++ setup_flatironinstitute__inferelator.sh\n@@ -0,0 +1,7 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements-multiprocessing.txt\n+pip install -r requirements.txt\n+pip install -r requirements-test.txt\n+pip install -r docs/requirements.txt\n--- test_flatironinstitute__inferelator.sh\n+++ test_flatironinstitute__inferelator.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest inferelator.tests.test_results_processor inferelator.tests.test_noising_data inferelator.tests.test_bayes_stats inferelator.tests.test_bbsr inferelator.tests.test_design_response inferelator.tests.test_workflow_base inferelator.tests.test_mi inferelator.tests.test_priors inferelator.tests.test_workflow_multitask inferelator.tests.test_base_regression inferelator.tests.test_regression inferelator.tests.test_elasticnet_python inferelator.tests.test_workflow_tfa inferelator.tests.test_amusr inferelator.tests.test_crossvalidation_wrapper inferelator.tests.test_data_loader inferelator.tests.test_single_cell inferelator.tests.test_utils inferelator.tests.test_data_wrapper inferelator.tests.test_data_normalization inferelator.tests.test_tfa inferelator.tests.test_workflow_velocity inferelator.tests.test_mpcontrol inferelator.tests.test_homology\n", "test_patch": "--- inferelator/tests/test_data_loader.py\n+++ inferelator/tests/test_data_loader.py\n@@ -49,7 +49,7 @@\n self.worker.set_expression_file(mtx=file1, mtx_feature=file2, mtx_barcode=file3)\n self.worker.read_expression()\n \n- npt.assert_array_almost_equal(data.values, self.worker.data.expression_data.A)\n+ npt.assert_array_almost_equal(data.values, self.worker.data.expression_data.toarray())\n \n def test_10x(self):\n (file1, file2, file3), data = test_prebuilt.counts_yeast_single_cell_chr01(filetype='mtx')\n@@ -62,7 +62,7 @@\n self.worker.set_expression_file(tenx_path=txdir)\n self.worker.read_expression()\n \n- npt.assert_array_almost_equal(data.values, self.worker.data.expression_data.A)\n+ npt.assert_array_almost_equal(data.values, self.worker.data.expression_data.toarray())\n \n def test_10x_ranger3(self):\n (file1, file2, file3), data = test_prebuilt.counts_yeast_single_cell_chr01(filetype='mtx', gzip=True)\n@@ -75,7 +75,7 @@\n self.worker.set_expression_file(tenx_path=txdir)\n self.worker.read_expression()\n \n- npt.assert_array_almost_equal(data.values, self.worker.data.expression_data.A)\n+ npt.assert_array_almost_equal(data.values, self.worker.data.expression_data.toarray())\n \n def test_df_decode(self):\n idx = pd.Index(['str1', b'str2', b'str3', 'str4', 5, 17.4, np.inf, ('str1',)])\n--- inferelator/tests/test_data_normalization.py\n+++ inferelator/tests/test_data_normalization.py\n@@ -258,7 +258,7 @@\n design = PreprocessData.preprocess_design(self.adata_sparse)\n design_sklearn = RobustScaler(with_centering=False).fit_transform(self.expr)\n npt.assert_almost_equal(\n- design.values.A,\n+ design.values.toarray(),\n design_sklearn\n )\n \n@@ -286,7 +286,7 @@\n design_sklearn[design_sklearn < -1] = -1\n \n npt.assert_almost_equal(\n- design.values.A,\n+ design.values.toarray(),\n design_sklearn\n )\n \n@@ -339,7 +339,7 @@\n def test_no_limit_s(self):\n design = PreprocessData.preprocess_design(self.adata_sparse)\n npt.assert_almost_equal(\n- design.values.A,\n+ design.values.toarray(),\n self.expr\n )\n \n@@ -359,7 +359,7 @@\n )\n design = PreprocessData.preprocess_design(self.adata_sparse)\n npt.assert_almost_equal(\n- design.values.A,\n+ design.values.toarray(),\n self.expr\n )\n \n--- inferelator/tests/test_data_wrapper.py\n+++ inferelator/tests/test_data_wrapper.py\n@@ -214,7 +214,7 @@\n \n def test_transform_log2_s(self):\n self.adata_sparse.transform(np.log2, add_pseudocount=True)\n- npt.assert_array_almost_equal(self.adata_sparse.expression_data.A,\n+ npt.assert_array_almost_equal(self.adata_sparse.expression_data.toarray(),\n np.log2(self.expr.loc[:, self.adata.gene_names].values + 1))\n \n def test_apply_log2_d(self):\n@@ -240,7 +240,7 @@\n lambda x: StandardScaler(with_mean=False).fit_transform(x)\n )\n npt.assert_array_almost_equal(\n- self.adata_sparse.expression_data.A,\n+ self.adata_sparse.expression_data.toarray(),\n StandardScaler(with_mean=False).fit_transform(\n self.expr.loc[:, self.adata.gene_names].values\n )\n@@ -260,24 +260,24 @@\n npt.assert_array_almost_equal(dot3, eye_expr)\n \n def test_dot_sparse(self):\n- inv_expr = np.asarray(linalg.pinv(self.adata_sparse.expression_data.A), order=\"C\")\n+ inv_expr = np.asarray(linalg.pinv(self.adata_sparse.expression_data.toarray()), order=\"C\")\n eye_expr = np.eye(self.adata_sparse.shape[1])\n \n sdot1a = self.adata_sparse.dot(eye_expr)\n- sdot1b = self.adata_sparse.dot(sparse.csr_matrix(eye_expr)).A\n+ sdot1b = self.adata_sparse.dot(sparse.csr_matrix(eye_expr)).toarray()\n npt.assert_array_almost_equal(sdot1a, sdot1b)\n \n- original_data = self.expr_sparse[:, TestDataSingleCellLike.expression_matrix.index.isin(CORRECT_GENES_NZ_VAR)].A\n- npt.assert_array_almost_equal(self.adata_sparse.expression_data.A, original_data)\n+ original_data = self.expr_sparse[:, TestDataSingleCellLike.expression_matrix.index.isin(CORRECT_GENES_NZ_VAR)].toarray()\n+ npt.assert_array_almost_equal(self.adata_sparse.expression_data.toarray(), original_data)\n npt.assert_array_almost_equal(sdot1b, original_data)\n \n sdot2a = self.adata_sparse.dot(inv_expr, other_is_right_side=False)\n- sdot2b = self.adata_sparse.dot(sparse.csr_matrix(inv_expr), other_is_right_side=False).A\n+ sdot2b = self.adata_sparse.dot(sparse.csr_matrix(inv_expr), other_is_right_side=False).toarray()\n npt.assert_array_almost_equal(sdot2a, sdot2b)\n npt.assert_array_almost_equal(sdot2b, eye_expr)\n \n def test_dot_force_dense(self):\n- inv_expr = np.asarray(linalg.pinv(self.adata_sparse.expression_data.A), order=\"C\")\n+ inv_expr = np.asarray(linalg.pinv(self.adata_sparse.expression_data.toarray()), order=\"C\")\n eye_expr = np.eye(self.adata_sparse.shape[1])\n \n sdot1 = self.adata_sparse.dot(inv_expr, other_is_right_side=False, force_dense=True)\n@@ -336,12 +336,12 @@\n \n def test_divide_sparse(self):\n self.adata_sparse.divide(0.5, axis=None)\n- npt.assert_array_almost_equal(self.adata_sparse.expression_data.A,\n+ npt.assert_array_almost_equal(self.adata_sparse.expression_data.toarray(),\n self.expr.loc[:, self.adata_sparse.gene_names].values.astype(float) * 2)\n \n self.adata_sparse.divide(self.adata_sparse.sample_counts, axis=1)\n \n- npt.assert_array_almost_equal(np.sum(self.adata_sparse.expression_data.A, axis=1),\n+ npt.assert_array_almost_equal(np.sum(self.adata_sparse.expression_data.toarray(), axis=1),\n np.ones(self.adata_sparse.num_obs, dtype=float))\n \n with self.assertRaises(ValueError):\n@@ -364,12 +364,12 @@\n \n def test_multiply_sparse(self):\n self.adata_sparse.multiply(2, axis=None)\n- npt.assert_array_almost_equal(self.adata_sparse.expression_data.A,\n+ npt.assert_array_almost_equal(self.adata_sparse.expression_data.toarray(),\n self.expr.loc[:, self.adata_sparse.gene_names].values.astype(float) / 0.5)\n \n self.adata_sparse.multiply(1 / self.adata_sparse.sample_counts, axis=1)\n \n- npt.assert_array_almost_equal(np.sum(self.adata_sparse.expression_data.A, axis=1),\n+ npt.assert_array_almost_equal(np.sum(self.adata_sparse.expression_data.toarray(), axis=1),\n np.ones(self.adata_sparse.num_obs, dtype=float))\n \n with self.assertRaises(ValueError):\n--- inferelator/tests/test_noising_data.py\n+++ inferelator/tests/test_noising_data.py\n@@ -45,7 +45,7 @@\n simulate_data.make_data_noisy(noise_data, random_seed=100)\n \n with self.assertRaises(AssertionError):\n- npt.assert_array_almost_equal(self.data.expression_data, noise_data.expression_data.A)\n+ npt.assert_array_almost_equal(self.data.expression_data, noise_data.expression_data.toarray())\n \n self.assertTrue(noise_data.is_sparse)\n \n@@ -60,7 +60,7 @@\n self.assertFalse(noise_data.is_sparse)\n \n with self.assertRaises(AssertionError):\n- npt.assert_array_almost_equal(float_data.expression_data.A, noise_data.expression_data)\n+ npt.assert_array_almost_equal(float_data.expression_data.toarray(), noise_data.expression_data)\n \n \n class NoiseWorkflowData(unittest.TestCase):\n--- inferelator/tests/test_results_processor.py\n+++ inferelator/tests/test_results_processor.py\n@@ -150,7 +150,7 @@\n full_model_var_exp=self.beta_resc\n )\n \n- adata = ad.read(os.path.join(\n+ adata = ad.read_h5ad(os.path.join(\n td, result.model_file_name\n ))\n \n--- inferelator/tests/test_workflow_base.py\n+++ inferelator/tests/test_workflow_base.py\n@@ -296,7 +296,7 @@\n \n data = ad.read_h5ad(sname)\n self.assertTrue(sps.isspmatrix_csr(data.X))\n- npt.assert_array_almost_equal_nulp(data.X.A, self.workflow.data.values.A)\n+ npt.assert_array_almost_equal_nulp(data.X.toarray(), self.workflow.data.values.toarray())\n os.remove(sname)\n \n \n", "gold_patch": "--- inferelator/postprocessing/model_performance.py\n+++ inferelator/postprocessing/model_performance.py\n@@ -219,11 +219,14 @@\n col_name=REGULATOR_COLUMN\n )\n \n+ confidence_data[\"confidence_idx\"] = range(len(confidence_data))\n+ gold_standard[\"gold_idx\"] = range(len(gold_standard))\n+\n return confidence_data.join(\n gold_standard,\n how='outer',\n on=[TARGET_COLUMN, REGULATOR_COLUMN]\n- )\n+ ).sort_values([\"confidence_idx\", \"gold_idx\"]).drop(columns=[\"confidence_idx\", \"gold_idx\"])\n \n @staticmethod\n def compute_combined_confidences(rankable_data):\n@@ -307,7 +310,7 @@\n \n # Stick confusion results back onto the data and return it\n for col in [TP, FP, TN, FN]:\n- data[col] = np.NaN\n+ data[col] = np.nan\n data.loc[valid_gs_idx, col] = df[col].astype(data[col].dtype)\n \n if _reindex is not None:\n--- inferelator/predict/static.py\n+++ inferelator/predict/static.py\n@@ -61,7 +61,7 @@\n if isinstance(model, ad.AnnData):\n self.model = model.copy()\n else:\n- self.model = ad.read(model)\n+ self.model = ad.read_h5ad(model)\n \n self._extract_model_values()\n PreprocessData.set_preprocessing_method(\n--- inferelator/preprocessing/data_normalization.py\n+++ inferelator/preprocessing/data_normalization.py\n@@ -300,7 +300,7 @@\n \n # Convert a sparse vector to a dense vector\n if sparse.isspmatrix(vec):\n- vec = vec.A.ravel()\n+ vec = vec.toarray().ravel()\n \n # Return 0s if the variance is 0\n if np.var(vec) == 0:\n--- inferelator/preprocessing/velocity.py\n+++ inferelator/preprocessing/velocity.py\n@@ -311,6 +311,6 @@\n \"\"\"\n \n if sparse.isspmatrix(x) or sparse.isspmatrix(y):\n- return (x + y).A\n+ return (x + y).toarray()\n else:\n return np.add(x, y)\n--- inferelator/regression/mi.py\n+++ inferelator/regression/mi.py\n@@ -96,7 +96,7 @@\n \n # Discretize the input matrix y\n y = _make_array_discrete(\n- y.A if sps.isspmatrix(y) else y,\n+ y.toarray() if sps.isspmatrix(y) else y,\n bins,\n axis=0\n )\n@@ -131,7 +131,7 @@\n with np.errstate(divide='ignore', invalid='ignore'):\n \n discrete_X = _make_discrete(\n- x.A.ravel() if sps.isspmatrix(x) else x.ravel(),\n+ x.toarray().ravel() if sps.isspmatrix(x) else x.ravel(),\n bins\n )\n \n--- inferelator/tfa/ridge_tfa.py\n+++ inferelator/tfa/ridge_tfa.py\n@@ -26,7 +26,7 @@\n if issparse(expression_data):\n ridge_regressor.fit(\n prior,\n- expression_data.A.T\n+ expression_data.toarray().T\n )\n else:\n ridge_regressor.fit(\n--- inferelator/utils/data.py\n+++ inferelator/utils/data.py\n@@ -27,10 +27,10 @@\n :rtype: np.ndarray, sp.sparse.csr_matrix\n \"\"\"\n if sparse.isspmatrix(a) and sparse.isspmatrix(b):\n- return a.dot(b).A if dense else a.dot(b)\n+ return a.dot(b).toarray() if dense else a.dot(b)\n elif sparse.isspmatrix(a) and dense:\n _arr = a.dot(b)\n- return _arr.A if sparse.isspmatrix(_arr) else _arr\n+ return _arr.toarray() if sparse.isspmatrix(_arr) else _arr\n elif sparse.isspmatrix(a) or sparse.isspmatrix(b):\n return a @ b\n else:\n@@ -368,7 +368,7 @@\n if axis == 0:\n for i in range(array.shape[1]):\n out_arr[:, i] = func(\n- array[:, i].A.ravel(),\n+ array[:, i].toarray().ravel(),\n *args,\n **kwargs\n )\n@@ -376,7 +376,7 @@\n elif axis == 1:\n for i in range(array.shape[0]):\n out_arr[i, :] = func(\n- array[i, :].A.ravel(),\n+ array[i, :].toarray().ravel(),\n *args,\n **kwargs\n )\n--- inferelator/utils/inferelator_data.py\n+++ inferelator/utils/inferelator_data.py\n@@ -465,7 +465,7 @@\n \n if remove_constant_genes:\n nz_var = self.values.max(axis=0) - self.values.min(axis=0)\n- nz_var = nz_var.A.flatten() if self.is_sparse else nz_var\n+ nz_var = nz_var.toarray().flatten() if self.is_sparse else nz_var\n \n if np.any(np.isnan(nz_var)):\n raise ValueError(\n@@ -520,7 +520,7 @@\n labels = x.var_names\n \n if (force_dense or to_df) and self.is_sparse:\n- x = x.X.A\n+ x = x.X.toarray()\n \n else:\n # Copy is necessary to get the numpy array\n@@ -552,7 +552,7 @@\n labels = x.obs_names\n \n if (force_dense or to_df) and self.is_sparse:\n- x = x.X.A\n+ x = x.X.toarray()\n else:\n x = x.X\n \n@@ -992,7 +992,7 @@\n def to_dense(self):\n \n if self.is_sparse:\n- self._adata.X = self._adata.X.A\n+ self._adata.X = self._adata.X.toarray()\n \n def to_sparse(self, mode=\"csr\"):\n \n@@ -1035,13 +1035,13 @@\n \n def _counts(self, axis=None):\n if self.is_sparse:\n- return self._adata.X.sum(axis=axis).A.flatten()\n+ return np.array(self._adata.X.sum(axis=axis)).flatten()\n else:\n return self._adata.X.sum(axis=axis)\n \n def _means(self, axis=None):\n if self.is_sparse:\n- return self._adata.X.mean(axis=axis).A.flatten()\n+ return np.array(self._adata.X.mean(axis=axis)).flatten()\n else:\n return self._adata.X.mean(axis=axis)\n \n", "reproduction_target_date": "2023-06-28", "reproduction_target_version": "3.11.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 flatironinstitute__inferelator .\n\nRUN bash /work/setup_flatironinstitute__inferelator.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_flatironinstitute__inferelator.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "alabaster==1.0.0\nanndata==0.12.1\narray-api-compat==1.12.0\nbabel==2.17.0\nbio-test-artifacts==0.1.0\nblosc2==3.6.1\nbokeh==3.7.3\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\nclick==8.2.1\ncloudpickle==3.1.1\ncontourpy==1.3.3\ncoverage==7.10.1\ncrc32c==2.7.1\ncycler==0.12.1\ndask==2025.7.0\ndask-jobqueue==0.9.0\ndistributed==2025.7.0\ndocutils==0.21.2\ndonfig==0.8.1.post1\nfonttools==4.59.0\nfsspec==2025.7.0\nh5py==3.14.0\nidna==3.10\nimagesize==1.4.1\niniconfig==2.1.0\nJinja2==3.1.6\njoblib==1.5.1\nkiwisolver==1.4.8\nlegacy-api-wrap==1.4.1\nlocket==1.0.0\nlz4==4.4.4\nm2r2==0.3.4\nMarkupSafe==3.0.2\nmatplotlib==3.10.3\nmistune==0.8.4\nmsgpack==1.1.1\nnarwhals==2.0.1\nnatsort==8.4.0\nndindex==1.10.0\nnumcodecs==0.16.1\nnumexpr==2.11.0\nnumpy==2.3.2\npackaging==25.0\npandas==2.3.1\npartd==1.4.2\npillow==11.3.0\nplatformdirs==4.3.8\npluggy==1.6.0\npsutil==7.0.0\npy-cpuinfo==9.0.0\npyarrow==21.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\nroman-numerals-py==3.1.0\nscikit-learn==1.7.1\nscipy==1.16.1\nsix==1.17.0\nsnowballstemmer==3.0.1\nsortedcontainers==2.4.0\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\ntables==3.10.2\ntblib==3.1.0\nthreadpoolctl==3.6.0\ntoolz==1.0.0\ntornado==6.5.1\ntyping_extensions==4.14.1\ntzdata==2025.2\nurllib3==2.5.0\nxyzservices==2025.4.0\nzarr==3.1.1\nzict==3.0.0\n", "test_type": "unittest", "test_files": "inferelator/tests/test_noising_data.py, inferelator/tests/test_amusr.py, inferelator/tests/test_single_cell.py, inferelator/tests/test_utils.py, inferelator/tests/test_crossvalidation_wrapper.py, inferelator/tests/test_homology.py, inferelator/tests/test_base_regression.py, inferelator/tests/test_design_response.py, inferelator/tests/test_bbsr.py, inferelator/tests/test_regression.py, inferelator/tests/test_workflow_multitask.py, inferelator/tests/test_workflow_base.py, inferelator/tests/test_elasticnet_python.py, inferelator/tests/test_mpcontrol.py, inferelator/tests/test_workflow_tfa.py, inferelator/tests/test_mi.py, inferelator/tests/test_priors.py, inferelator/tests/test_data_loader.py, inferelator/tests/test_bayes_stats.py, inferelator/tests/test_workflow_velocity.py, inferelator/tests/test_tfa.py, inferelator/tests/test_results_processor.py, inferelator/tests/test_data_normalization.py, inferelator/tests/test_data_wrapper.py", "test_count": 412, "related_modules": "numpy, scipy, anndata, pandas", "py_file_count": 100, "total_loc_python": 24008, "difficulty": "Hard", "license": "BSD-2-Clause"} {"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": "Easy", "license": "MIT"} {"repo_name": "PennState/canvasapi", "repo_url": "https://github.com/PennState/canvasapi", "commit_hash": "077cbd51516484a5c44834c8aa3d0c4425e4ffcf", "patch": "--- dev_requirements.txt\n+++ dev_requirements.txt\n@@ -1,4 +1,4 @@\n -r tests_requirements.txt\n \n Sphinx\n-sphinx-rtd-theme\n+sphinx-rtd-theme\n\\ No newline at end of file\n--- requirements.txt\n+++ requirements.txt\n@@ -1,3 +1,3 @@\n pytz\n requests\n-six\n+six\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,43 +1,8 @@\n from __future__ import absolute_import, division, print_function, unicode_literals\n import re\n from setuptools import setup\n-\n-# get version number\n with open('canvasapi/__init__.py', 'r') as fd:\n- version = re.search(\n- r'^__version__\\s*=\\s*[\\'\"]([^\\'\"]*)[\\'\"]',\n- fd.read(),\n- re.MULTILINE\n- ).group(1)\n-\n+ version = re.search('^__version__\\\\s*=\\\\s*[\\\\\\'\"]([^\\\\\\'\"]*)[\\\\\\'\"]', fd.read(), re.MULTILINE).group(1)\n if not version:\n raise RuntimeError('Cannot find version information')\n-\n-setup(\n- name='canvasapi',\n- version=version,\n- description='API wrapper for the Canvas LMS',\n- url='https://github.com/ucfopen/canvasapi',\n- author='University of Central Florida - Center for Distributed Learning',\n- author_email='techrangers@ucf.edu',\n- license='MIT License',\n- packages=['canvasapi'],\n- include_package_data=True,\n- install_requires=['pytz', 'requests', 'six'],\n- zip_safe=False,\n- classifiers=[\n- 'Development Status :: 3 - Alpha',\n- 'Intended Audience :: Developers',\n- 'Intended Audience :: Education',\n- 'Intended Audience :: Information Technology',\n- 'License :: OSI Approved :: MIT License',\n- 'Operating System :: OS Independent',\n- 'Programming Language :: Python',\n- 'Programming Language :: Python :: 2.7',\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- 'Topic :: Software Development :: Libraries',\n- ],\n-)\n+setup(name='canvasapi', version=version, description='API wrapper for the Canvas LMS', url='https://github.com/ucfopen/canvasapi', author='University of Central Florida - Center for Distributed Learning', author_email='techrangers@ucf.edu', license='MIT License', packages=['canvasapi'], include_package_data=True, install_requires=['pytz', 'requests', 'six'], zip_safe=False, classifiers=['Development Status :: 3 - Alpha', 'Intended Audience :: Developers', 'Intended Audience :: Education', 'Intended Audience :: Information Technology', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Topic :: Software Development :: Libraries'])\n\\ No newline at end of file\n--- setup_PennState__canvasapi.sh\n+++ setup_PennState__canvasapi.sh\n@@ -0,0 +1,6 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n+pip install -r tests_requirements.txt\n+pip install -r dev_requirements.txt\n--- test_PennState__canvasapi.sh\n+++ test_PennState__canvasapi.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_quiz tests.test_uploader tests.test_page_view tests.test_submission tests.test_util tests.test_appointment_group tests.test_account tests.test_login tests.test_authentication_providers tests.test_quiz_group tests.test_assignment tests.test_bookmark tests.test_page tests.test_file tests.test_current_user tests.test_grading_standard tests.test_folder tests.test_validate_docstrings tests.test_enrollment tests.test_section tests.test_notification_preference tests.test_module tests.test_canvas_object tests.test_group tests.test_conversation tests.test_content_migration tests.test_communication_channel tests.test_external_tool tests.test_rubric tests.test_enrollment_term tests.test_calendar_event tests.test_paginated_list tests.test_course tests.test_canvas tests.test_requester tests.test_outcome tests.test_progress tests.test_user tests.test_tab tests.test_discussion_topic tests.test_external_feed\n--- tests_requirements.txt\n+++ tests_requirements.txt\n@@ -2,4 +2,4 @@\n \n coverage\n flake8\n-requests-mock\n+requests-mock\n\\ No newline at end of file\n", "test_patch": "", "gold_patch": "--- canvasapi/util.py\n+++ canvasapi/util.py\n@@ -1,6 +1,6 @@\n from __future__ import absolute_import, division, print_function, unicode_literals\n \n-from collections import Iterable\n+from collections.abc import Iterable\n from six import binary_type, string_types, text_type\n \n \n", "reproduction_target_date": "2019-02-25", "reproduction_target_version": "3.6.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 PennState__canvasapi .\n\nRUN bash /work/setup_PennState__canvasapi.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_PennState__canvasapi.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "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\nflake8==7.3.0\nidna==3.10\nimagesize==1.4.1\nJinja2==3.1.6\nMarkupSafe==3.0.2\nmccabe==0.7.0\npackaging==25.0\npycodestyle==2.14.0\npyflakes==3.4.0\nPygments==2.19.2\npytz==2025.2\nrequests==2.32.4\nrequests-mock==1.12.1\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\nurllib3==2.5.0\n", "test_type": "unittest", "test_files": "tests/test_appointment_group.py, tests/test_requester.py, tests/test_external_feed.py, tests/test_bookmark.py, tests/test_enrollment_term.py, tests/test_folder.py, tests/test_account.py, tests/test_util.py, tests/test_content_migration.py, tests/test_group.py, tests/test_external_tool.py, tests/test_current_user.py, tests/test_user.py, tests/test_file.py, tests/test_paginated_list.py, tests/test_notification_preference.py, tests/test_page_view.py, tests/test_quiz.py, tests/test_authentication_providers.py, tests/test_assignment.py, tests/test_page.py, tests/test_enrollment.py, tests/test_quiz_group.py, tests/test_tab.py, tests/test_uploader.py, tests/test_module.py, tests/test_discussion_topic.py, tests/test_validate_docstrings.py, tests/test_progress.py, tests/test_communication_channel.py, tests/test_course.py, tests/test_section.py, tests/test_submission.py, tests/test_rubric.py, tests/test_grading_standard.py, tests/test_conversation.py, tests/test_login.py, tests/test_outcome.py, tests/test_canvas.py, tests/test_calendar_event.py, tests/test_canvas_object.py", "test_count": 749, "related_modules": "builtin", "py_file_count": 91, "total_loc_python": 22069, "difficulty": "Easy", "license": "MIT"} {"repo_name": "naftulikay/ansible-role-degoss", "repo_url": "https://github.com/naftulikay/ansible-role-degoss", "commit_hash": "437f107c1dc0d647d19a0353707b4346bd42cd4e", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,5 +1,5 @@\n ansible\n guzzle_sphinx_theme\n mock\n-sphinx==1.6.6\n-sphinx-reload\n+sphinx\n+sphinx-reload\n\\ No newline at end of file\n--- setup_naftulikay__ansible-role-degoss.sh\n+++ setup_naftulikay__ansible-role-degoss.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements.txt\n--- test_naftulikay__ansible-role-degoss.sh\n+++ test_naftulikay__ansible-role-degoss.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests\n", "test_patch": "", "gold_patch": "--- library/degoss.py\n+++ library/degoss.py\n@@ -5,6 +5,7 @@\n \n from ansible.module_utils import six\n from ansible.module_utils.basic import *\n+from ansible.module_utils.six import string_types\n \n import json\n import logging\n@@ -363,7 +364,7 @@\n self.facts = self.deserialize_dict(self.facts)\n \n # ansible_facts strips the leading ansible_ prefix from variables, restore it to avoid collisions\n- for key in self.facts.keys():\n+ for key in list(self.facts.keys()):\n if not key.startswith(\"ansible_\"):\n self.facts[\"ansible_{}\".format(key)] = self.facts.pop(key)\n \n", "reproduction_target_date": "2020-03-11", "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 naftulikay__ansible-role-degoss .\n\nRUN bash /work/setup_naftulikay__ansible-role-degoss.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_naftulikay__ansible-role-degoss.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "alabaster==1.0.0\nansible==11.8.0\nansible-core==2.18.7\nbabel==2.17.0\ncertifi==2025.7.14\ncffi==1.17.1\ncharset-normalizer==3.4.2\ncryptography==45.0.5\ndocutils==0.21.2\nguzzle_sphinx_theme==0.7.11\nidna==3.10\nimagesize==1.4.1\nJinja2==3.1.6\nlivereload==2.7.1\nMarkupSafe==3.0.2\nmock==5.2.0\npackaging==25.0\npycparser==2.22\nPygments==2.19.2\nPyYAML==6.0.2\nrequests==2.32.4\nresolvelib==1.0.1\nroman-numerals-py==3.1.0\nsnowballstemmer==3.0.1\nSphinx==8.2.3\nsphinx-reload==0.2.0\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\ntornado==6.5.1\nurllib3==2.5.0\n", "test_type": "unittest", "test_files": "tests.py", "test_count": 23, "related_modules": "ansible", "py_file_count": 6, "total_loc_python": 1360, "difficulty": "Easy", "license": "Apache-2.0, MIT"} {"repo_name": "anadolski/armmwave", "repo_url": "https://github.com/anadolski/armmwave", "commit_hash": "84eecb45fcc138847c1c95efbe928ade6ae0e1eb", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,2 +1,2 @@\n-numpy>=1.16\n-scipy>=1.3\n+numpy\n+scipy\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,34 +1,6 @@\n-#!/usr/bin/env python\n-\n from setuptools import setup\n-\n with open('README.md', 'r') as f:\n long_desc = f.read()\n-\n with open('requirements.txt', 'r') as f:\n install_reqs = f.read().splitlines()\n-\n-setup(\n- name='armmwave',\n- version='0.1.0',\n- author='Andrew Nadolski',\n- author_email='andrew.nadolski@gmail.com',\n- description='Calculate mm-wave transmittance and reflectance of materials',\n- long_description=long_desc,\n- long_description_content_type='text/markdown',\n- platforms=['Linux', 'MacOS X'],\n- url='https://github.com/anadolski/armmwave',\n- install_requires=install_reqs,\n- python_requires='>=3.5',\n- package_dir={'armmwave': 'armmwave'},\n- packages=['armmwave'],\n- tests_require=['pytest'],\n- license='MIT',\n- classifiers=[\n- 'Programming Language :: Python :: 3',\n- 'License :: OSI Approved :: MIT License',\n- 'Operating System :: MacOS :: MacOS X',\n- 'Operating System :: POSIX :: Linux',\n- 'Development Status :: 5 - Production/Stable',\n- ],\n- )\n+setup(name='armmwave', version='0.1.0', author='Andrew Nadolski', author_email='andrew.nadolski@gmail.com', description='Calculate mm-wave transmittance and reflectance of materials', long_description=long_desc, long_description_content_type='text/markdown', platforms=['Linux', 'MacOS X'], url='https://github.com/anadolski/armmwave', install_requires=install_reqs, python_requires='>=3.5', package_dir={'armmwave': 'armmwave'}, packages=['armmwave'], tests_require=['pytest'], license='MIT', classifiers=['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: MacOS :: MacOS X', 'Operating System :: POSIX :: Linux', 'Development Status :: 5 - Production/Stable'])\n\\ No newline at end of file\n--- setup_anadolski__armmwave.sh\n+++ setup_anadolski__armmwave.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_anadolski__armmwave.sh\n+++ test_anadolski__armmwave.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- armmwave/core.py\n+++ armmwave/core.py\n@@ -345,10 +345,10 @@\n The phase difference\n \"\"\"\n # Turn off 'invalid multiplication' error; it's just the 'inf' boundaries\n- olderr = sp.seterr(invalid='ignore')\n+ olderr = np.seterr(invalid='ignore')\n delta = k * d * np.cos(theta)\n # Now turn the error back on\n- sp.seterr(**olderr)\n+ np.seterr(**olderr)\n return delta\n \n def refract(n, theta0):\n", "reproduction_target_date": "2020-04-16", "reproduction_target_version": "3.8.2", "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 anadolski__armmwave .\n\nRUN bash /work/setup_anadolski__armmwave.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_anadolski__armmwave.sh\"]\n", "version_source": "setup.py", "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\nscipy==1.16.1\n", "test_type": "pytest", "test_files": "test/test_core.py, test/test_model.py, test/test_layer.py", "test_count": 66, "related_modules": "scipy", "py_file_count": 9, "total_loc_python": 1377, "difficulty": "Medium", "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": "rclement/flask-language", "repo_url": "https://github.com/rclement/flask-language", "commit_hash": "c21f8f63bc8f3010d26a0cf922a94623507be301", "patch": "--- Pipfile.lock\n+++ Pipfile.lock\n@@ -1,378 +0,0 @@\n-{\n- \"_meta\": {\n- \"hash\": {\n- \"sha256\": \"8c80814d56e3dca6815864501543b6a5499e95ab8010ec489896328cd1b24a82\"\n- },\n- \"pipfile-spec\": 6,\n- \"requires\": {\n- \"python_version\": \"3.6\"\n- },\n- \"sources\": [\n- {\n- \"name\": \"pypi\",\n- \"url\": \"https://pypi.python.org/simple\",\n- \"verify_ssl\": true\n- }\n- ]\n- },\n- \"default\": {\n- \"click\": {\n- \"hashes\": [\n- \"sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d\",\n- \"sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b\"\n- ],\n- \"version\": \"==6.7\"\n- },\n- \"flask\": {\n- \"hashes\": [\n- \"sha256:0749df235e3ff61ac108f69ac178c9770caeaccad2509cb762ce1f65570a8856\",\n- \"sha256:49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1\"\n- ],\n- \"version\": \"==0.12.2\"\n- },\n- \"itsdangerous\": {\n- \"hashes\": [\n- \"sha256:cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519\"\n- ],\n- \"version\": \"==0.24\"\n- },\n- \"jinja2\": {\n- \"hashes\": [\n- \"sha256:74c935a1b8bb9a3947c50a54766a969d4846290e1e788ea44c1392163723c3bd\",\n- \"sha256:f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4\"\n- ],\n- \"version\": \"==2.10\"\n- },\n- \"markupsafe\": {\n- \"hashes\": [\n- \"sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665\"\n- ],\n- \"version\": \"==1.0\"\n- },\n- \"werkzeug\": {\n- \"hashes\": [\n- \"sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c\",\n- \"sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b\"\n- ],\n- \"version\": \"==0.14.1\"\n- }\n- },\n- \"develop\": {\n- \"alabaster\": {\n- \"hashes\": [\n- \"sha256:2eef172f44e8d301d25aff8068fddd65f767a3f04b5f15b0f4922f113aa1c732\",\n- \"sha256:37cdcb9e9954ed60912ebc1ca12a9d12178c26637abdf124e3cde2341c257fe0\"\n- ],\n- \"version\": \"==0.7.10\"\n- },\n- \"attrs\": {\n- \"hashes\": [\n- \"sha256:1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9\",\n- \"sha256:a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450\"\n- ],\n- \"version\": \"==17.4.0\"\n- },\n- \"babel\": {\n- \"hashes\": [\n- \"sha256:8ce4cb6fdd4393edd323227cba3a077bceb2a6ce5201c902c65e730046f41f14\",\n- \"sha256:ad209a68d7162c4cff4b29cdebe3dec4cef75492df501b0049a9433c96ce6f80\"\n- ],\n- \"version\": \"==2.5.3\"\n- },\n- \"certifi\": {\n- \"hashes\": [\n- \"sha256:14131608ad2fd56836d33a71ee60fa1c82bc9d2c8d98b7bdbc631fe1b3cd1296\",\n- \"sha256:edbc3f203427eef571f79a7692bb160a2b0f7ccaa31953e99bd17e307cf63f7d\"\n- ],\n- \"version\": \"==2018.1.18\"\n- },\n- \"chardet\": {\n- \"hashes\": [\n- \"sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae\",\n- \"sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691\"\n- ],\n- \"version\": \"==3.0.4\"\n- },\n- \"click\": {\n- \"hashes\": [\n- \"sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d\",\n- \"sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b\"\n- ],\n- \"version\": \"==6.7\"\n- },\n- \"colorama\": {\n- \"hashes\": [\n- \"sha256:463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda\",\n- \"sha256:48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1\"\n- ],\n- \"markers\": \"sys_platform == 'win32'\",\n- \"version\": \"==0.3.9\"\n- },\n- \"coverage\": {\n- \"hashes\": [\n- \"sha256:03481e81d558d30d230bc12999e3edffe392d244349a90f4ef9b88425fac74ba\",\n- \"sha256:0b136648de27201056c1869a6c0d4e23f464750fd9a9ba9750b8336a244429ed\",\n- \"sha256:104ab3934abaf5be871a583541e8829d6c19ce7bde2923b2751e0d3ca44db60a\",\n- \"sha256:15b111b6a0f46ee1a485414a52a7ad1d703bdf984e9ed3c288a4414d3871dcbd\",\n- \"sha256:198626739a79b09fa0a2f06e083ffd12eb55449b5f8bfdbeed1df4910b2ca640\",\n- \"sha256:1c383d2ef13ade2acc636556fd544dba6e14fa30755f26812f54300e401f98f2\",\n- \"sha256:28b2191e7283f4f3568962e373b47ef7f0392993bb6660d079c62bd50fe9d162\",\n- \"sha256:2eb564bbf7816a9d68dd3369a510be3327f1c618d2357fa6b1216994c2e3d508\",\n- \"sha256:337ded681dd2ef9ca04ef5d93cfc87e52e09db2594c296b4a0a3662cb1b41249\",\n- \"sha256:3a2184c6d797a125dca8367878d3b9a178b6fdd05fdc2d35d758c3006a1cd694\",\n- \"sha256:3c79a6f7b95751cdebcd9037e4d06f8d5a9b60e4ed0cd231342aa8ad7124882a\",\n- \"sha256:3d72c20bd105022d29b14a7d628462ebdc61de2f303322c0212a054352f3b287\",\n- \"sha256:3eb42bf89a6be7deb64116dd1cc4b08171734d721e7a7e57ad64cc4ef29ed2f1\",\n- \"sha256:4635a184d0bbe537aa185a34193898eee409332a8ccb27eea36f262566585000\",\n- \"sha256:56e448f051a201c5ebbaa86a5efd0ca90d327204d8b059ab25ad0f35fbfd79f1\",\n- \"sha256:5a13ea7911ff5e1796b6d5e4fbbf6952381a611209b736d48e675c2756f3f74e\",\n- \"sha256:69bf008a06b76619d3c3f3b1983f5145c75a305a0fea513aca094cae5c40a8f5\",\n- \"sha256:6bc583dc18d5979dc0f6cec26a8603129de0304d5ae1f17e57a12834e7235062\",\n- \"sha256:701cd6093d63e6b8ad7009d8a92425428bc4d6e7ab8d75efbb665c806c1d79ba\",\n- \"sha256:7608a3dd5d73cb06c531b8925e0ef8d3de31fed2544a7de6c63960a1e73ea4bc\",\n- \"sha256:76ecd006d1d8f739430ec50cc872889af1f9c1b6b8f48e29941814b09b0fd3cc\",\n- \"sha256:7aa36d2b844a3e4a4b356708d79fd2c260281a7390d678a10b91ca595ddc9e99\",\n- \"sha256:7d3f553904b0c5c016d1dad058a7554c7ac4c91a789fca496e7d8347ad040653\",\n- \"sha256:7e1fe19bd6dce69d9fd159d8e4a80a8f52101380d5d3a4d374b6d3eae0e5de9c\",\n- \"sha256:8c3cb8c35ec4d9506979b4cf90ee9918bc2e49f84189d9bf5c36c0c1119c6558\",\n- \"sha256:9d6dd10d49e01571bf6e147d3b505141ffc093a06756c60b053a859cb2128b1f\",\n- \"sha256:9e112fcbe0148a6fa4f0a02e8d58e94470fc6cb82a5481618fea901699bf34c4\",\n- \"sha256:ac4fef68da01116a5c117eba4dd46f2e06847a497de5ed1d64bb99a5fda1ef91\",\n- \"sha256:b8815995e050764c8610dbc82641807d196927c3dbed207f0a079833ffcf588d\",\n- \"sha256:be6cfcd8053d13f5f5eeb284aa8a814220c3da1b0078fa859011c7fffd86dab9\",\n- \"sha256:c1bb572fab8208c400adaf06a8133ac0712179a334c09224fb11393e920abcdd\",\n- \"sha256:de4418dadaa1c01d497e539210cb6baa015965526ff5afc078c57ca69160108d\",\n- \"sha256:e05cb4d9aad6233d67e0541caa7e511fa4047ed7750ec2510d466e806e0255d6\",\n- \"sha256:e4d96c07229f58cb686120f168276e434660e4358cc9cf3b0464210b04913e77\",\n- \"sha256:f3f501f345f24383c0000395b26b726e46758b71393267aeae0bd36f8b3ade80\",\n- \"sha256:f8a923a85cb099422ad5a2e345fe877bbc89a8a8b23235824a93488150e45f6e\"\n- ],\n- \"version\": \"==4.5.1\"\n- },\n- \"docutils\": {\n- \"hashes\": [\n- \"sha256:02aec4bd92ab067f6ff27a38a38a41173bf01bed8f89157768c1573f53e474a6\",\n- \"sha256:51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274\",\n- \"sha256:7a4bd47eaf6596e1295ecb11361139febe29b084a87bf005bf899f9a42edc3c6\"\n- ],\n- \"version\": \"==0.14\"\n- },\n- \"e1839a8\": {\n- \"editable\": true,\n- \"path\": \".\"\n- },\n- \"flake8\": {\n- \"hashes\": [\n- \"sha256:7253265f7abd8b313e3892944044a365e3f4ac3fcdcfb4298f55ee9ddf188ba0\",\n- \"sha256:c7841163e2b576d435799169b78703ad6ac1bbb0f199994fc05f700b2a90ea37\"\n- ],\n- \"version\": \"==3.5.0\"\n- },\n- \"flask\": {\n- \"hashes\": [\n- \"sha256:0749df235e3ff61ac108f69ac178c9770caeaccad2509cb762ce1f65570a8856\",\n- \"sha256:49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1\"\n- ],\n- \"version\": \"==0.12.2\"\n- },\n- \"flask-sphinx-themes\": {\n- \"hashes\": [\n- \"sha256:bb23d7dd1a8ad9f47315bcb0439373c7feb24bcb0a1f8c52bb075f06489bb285\",\n- \"sha256:d00ac0c04947b8325e13be862ef604b60b71aae50e79e30b9df3560f3536cb8e\"\n- ],\n- \"version\": \"==1.0.2\"\n- },\n- \"funcsigs\": {\n- \"hashes\": [\n- \"sha256:330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca\",\n- \"sha256:a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50\"\n- ],\n- \"version\": \"==1.0.2\"\n- },\n- \"idna\": {\n- \"hashes\": [\n- \"sha256:2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f\",\n- \"sha256:8c7309c718f94b3a625cb648ace320157ad16ff131ae0af362c9f21b80ef6ec4\"\n- ],\n- \"version\": \"==2.6\"\n- },\n- \"imagesize\": {\n- \"hashes\": [\n- \"sha256:3620cc0cadba3f7475f9940d22431fc4d407269f1be59ec9b8edcca26440cf18\",\n- \"sha256:5b326e4678b6925158ccc66a9fa3122b6106d7c876ee32d7de6ce59385b96315\"\n- ],\n- \"version\": \"==1.0.0\"\n- },\n- \"itsdangerous\": {\n- \"hashes\": [\n- \"sha256:cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519\"\n- ],\n- \"version\": \"==0.24\"\n- },\n- \"jinja2\": {\n- \"hashes\": [\n- \"sha256:74c935a1b8bb9a3947c50a54766a969d4846290e1e788ea44c1392163723c3bd\",\n- \"sha256:f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4\"\n- ],\n- \"version\": \"==2.10\"\n- },\n- \"markupsafe\": {\n- \"hashes\": [\n- \"sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665\"\n- ],\n- \"version\": \"==1.0\"\n- },\n- \"mccabe\": {\n- \"hashes\": [\n- \"sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42\",\n- \"sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f\"\n- ],\n- \"version\": \"==0.6.1\"\n- },\n- \"packaging\": {\n- \"hashes\": [\n- \"sha256:e9215d2d2535d3ae866c3d6efc77d5b24a0192cce0ff20e42896cc0664f889c0\",\n- \"sha256:f019b770dd64e585a99714f1fd5e01c7a8f11b45635aa953fd41c689a657375b\"\n- ],\n- \"version\": \"==17.1\"\n- },\n- \"pluggy\": {\n- \"hashes\": [\n- \"sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff\"\n- ],\n- \"version\": \"==0.6.0\"\n- },\n- \"py\": {\n- \"hashes\": [\n- \"sha256:8cca5c229d225f8c1e3085be4fcf306090b00850fefad892f9d96c7b6e2f310f\",\n- \"sha256:ca18943e28235417756316bfada6cd96b23ce60dd532642690dcfdaba988a76d\"\n- ],\n- \"version\": \"==1.5.2\"\n- },\n- \"pycodestyle\": {\n- \"hashes\": [\n- \"sha256:682256a5b318149ca0d2a9185d365d8864a768a28db66a84a2ea946bcc426766\",\n- \"sha256:6c4245ade1edfad79c3446fadfc96b0de2759662dc29d07d80a6f27ad1ca6ba9\"\n- ],\n- \"version\": \"==2.3.1\"\n- },\n- \"pyflakes\": {\n- \"hashes\": [\n- \"sha256:08bd6a50edf8cffa9fa09a463063c425ecaaf10d1eb0335a7e8b1401aef89e6f\",\n- \"sha256:8d616a382f243dbf19b54743f280b80198be0bca3a5396f1d2e1fca6223e8805\"\n- ],\n- \"version\": \"==1.6.0\"\n- },\n- \"pygments\": {\n- \"hashes\": [\n- \"sha256:78f3f434bcc5d6ee09020f92ba487f95ba50f1e3ef83ae96b9d5ffa1bab25c5d\",\n- \"sha256:dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc\"\n- ],\n- \"version\": \"==2.2.0\"\n- },\n- \"pyparsing\": {\n- \"hashes\": [\n- \"sha256:0832bcf47acd283788593e7a0f542407bd9550a55a8a8435214a1960e04bcb04\",\n- \"sha256:281683241b25fe9b80ec9d66017485f6deff1af5cde372469134b56ca8447a07\",\n- \"sha256:8f1e18d3fd36c6795bb7e02a39fd05c611ffc2596c1e0d995d34d67630426c18\",\n- \"sha256:9e8143a3e15c13713506886badd96ca4b579a87fbdf49e550dbfc057d6cb218e\",\n- \"sha256:b8b3117ed9bdf45e14dcc89345ce638ec7e0e29b2b579fa1ecf32ce45ebac8a5\",\n- \"sha256:e4d45427c6e20a59bf4f88c639dcc03ce30d193112047f94012102f235853a58\",\n- \"sha256:fee43f17a9c4087e7ed1605bd6df994c6173c1e977d7ade7b651292fab2bd010\"\n- ],\n- \"version\": \"==2.2.0\"\n- },\n- \"pytest\": {\n- \"hashes\": [\n- \"sha256:062027955bccbc04d2fcd5d79690947e018ba31abe4c90b2c6721abec734261b\",\n- \"sha256:117bad36c1a787e1a8a659df35de53ba05f9f3398fb9e4ac17e80ad5903eb8c5\"\n- ],\n- \"version\": \"==3.4.2\"\n- },\n- \"pytest-cov\": {\n- \"hashes\": [\n- \"sha256:03aa752cf11db41d281ea1d807d954c4eda35cfa1b21d6971966cc041bbf6e2d\",\n- \"sha256:890fe5565400902b0c78b5357004aab1c814115894f4f21370e2433256a3eeec\"\n- ],\n- \"version\": \"==2.5.1\"\n- },\n- \"pytz\": {\n- \"hashes\": [\n- \"sha256:07edfc3d4d2705a20a6e99d97f0c4b61c800b8232dc1c04d87e8554f130148dd\",\n- \"sha256:3a47ff71597f821cd84a162e71593004286e5be07a340fd462f0d33a760782b5\",\n- \"sha256:410bcd1d6409026fbaa65d9ed33bf6dd8b1e94a499e32168acfc7b332e4095c0\",\n- \"sha256:5bd55c744e6feaa4d599a6cbd8228b4f8f9ba96de2c38d56f08e534b3c9edf0d\",\n- \"sha256:61242a9abc626379574a166dc0e96a66cd7c3b27fc10868003fa210be4bff1c9\",\n- \"sha256:887ab5e5b32e4d0c86efddd3d055c1f363cbaa583beb8da5e22d2fa2f64d51ef\",\n- \"sha256:ba18e6a243b3625513d85239b3e49055a2f0318466e0b8a92b8fb8ca7ccdf55f\",\n- \"sha256:ed6509d9af298b7995d69a440e2822288f2eca1681b8cce37673dbb10091e5fe\",\n- \"sha256:f93ddcdd6342f94cea379c73cddb5724e0d6d0a1c91c9bdef364dc0368ba4fda\"\n- ],\n- \"version\": \"==2018.3\"\n- },\n- \"requests\": {\n- \"hashes\": [\n- \"sha256:6a1b267aa90cac58ac3a765d067950e7dbbf75b1da07e895d1f594193a40a38b\",\n- \"sha256:9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e\"\n- ],\n- \"version\": \"==2.18.4\"\n- },\n- \"six\": {\n- \"hashes\": [\n- \"sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9\",\n- \"sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb\"\n- ],\n- \"version\": \"==1.11.0\"\n- },\n- \"snowballstemmer\": {\n- \"hashes\": [\n- \"sha256:919f26a68b2c17a7634da993d91339e288964f93c274f1343e3bbbe2096e1128\",\n- \"sha256:9f3bcd3c401c3e862ec0ebe6d2c069ebc012ce142cce209c098ccb5b09136e89\"\n- ],\n- \"version\": \"==1.2.1\"\n- },\n- \"sphinx\": {\n- \"hashes\": [\n- \"sha256:41ae26acc6130ccf6ed47e5cca73742b80d55a134f0ab897c479bba8d3640b8e\",\n- \"sha256:da987de5fcca21a4acc7f67a86a363039e67ac3e8827161e61b91deb131c0ee8\"\n- ],\n- \"version\": \"==1.7.1\"\n- },\n- \"sphinxcontrib-websupport\": {\n- \"hashes\": [\n- \"sha256:7a85961326aa3a400cd4ad3c816d70ed6f7c740acd7ce5d78cd0a67825072eb9\",\n- \"sha256:f4932e95869599b89bf4f80fc3989132d83c9faa5bf633e7b5e0c25dffb75da2\"\n- ],\n- \"version\": \"==1.0.1\"\n- },\n- \"tox\": {\n- \"hashes\": [\n- \"sha256:752f5ec561c6c08c5ecb167d3b20f4f4ffc158c0ab78855701a75f5cef05f4b8\",\n- \"sha256:8af30fd835a11f3ff8e95176ccba5a4e60779df4d96a9dfefa1a1704af263225\"\n- ],\n- \"version\": \"==2.9.1\"\n- },\n- \"urllib3\": {\n- \"hashes\": [\n- \"sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b\",\n- \"sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f\"\n- ],\n- \"version\": \"==1.22\"\n- },\n- \"virtualenv\": {\n- \"hashes\": [\n- \"sha256:02f8102c2436bb03b3ee6dede1919d1dac8a427541652e5ec95171ec8adbc93a\",\n- \"sha256:39d88b533b422825d644087a21e78c45cf5af0ef7a99a1fc9fbb7b481e5c85b0\"\n- ],\n- \"markers\": \"python_version != '3.2'\",\n- \"version\": \"==15.1.0\"\n- },\n- \"werkzeug\": {\n- \"hashes\": [\n- \"sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c\",\n- \"sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b\"\n- ],\n- \"version\": \"==0.14.1\"\n- }\n- }\n-}\n--- requirements-dev.txt\n+++ requirements-dev.txt\n@@ -1,39 +1,39 @@\n # -e .\n-alabaster==0.7.10 --hash=sha256:2eef172f44e8d301d25aff8068fddd65f767a3f04b5f15b0f4922f113aa1c732 --hash=sha256:37cdcb9e9954ed60912ebc1ca12a9d12178c26637abdf124e3cde2341c257fe0\n-attrs==17.4.0 --hash=sha256:1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9 --hash=sha256:a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450\n-babel==2.5.3 --hash=sha256:8ce4cb6fdd4393edd323227cba3a077bceb2a6ce5201c902c65e730046f41f14 --hash=sha256:ad209a68d7162c4cff4b29cdebe3dec4cef75492df501b0049a9433c96ce6f80\n-certifi==2018.1.18 --hash=sha256:14131608ad2fd56836d33a71ee60fa1c82bc9d2c8d98b7bdbc631fe1b3cd1296 --hash=sha256:edbc3f203427eef571f79a7692bb160a2b0f7ccaa31953e99bd17e307cf63f7d\n-chardet==3.0.4 --hash=sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae --hash=sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691\n-click==6.7 --hash=sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d --hash=sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b\n-colorama==0.3.9; sys_platform == 'win32' --hash=sha256:463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda --hash=sha256:48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1\n-coverage==4.5.1 --hash=sha256:03481e81d558d30d230bc12999e3edffe392d244349a90f4ef9b88425fac74ba --hash=sha256:0b136648de27201056c1869a6c0d4e23f464750fd9a9ba9750b8336a244429ed --hash=sha256:104ab3934abaf5be871a583541e8829d6c19ce7bde2923b2751e0d3ca44db60a --hash=sha256:15b111b6a0f46ee1a485414a52a7ad1d703bdf984e9ed3c288a4414d3871dcbd --hash=sha256:198626739a79b09fa0a2f06e083ffd12eb55449b5f8bfdbeed1df4910b2ca640 --hash=sha256:1c383d2ef13ade2acc636556fd544dba6e14fa30755f26812f54300e401f98f2 --hash=sha256:28b2191e7283f4f3568962e373b47ef7f0392993bb6660d079c62bd50fe9d162 --hash=sha256:2eb564bbf7816a9d68dd3369a510be3327f1c618d2357fa6b1216994c2e3d508 --hash=sha256:337ded681dd2ef9ca04ef5d93cfc87e52e09db2594c296b4a0a3662cb1b41249 --hash=sha256:3a2184c6d797a125dca8367878d3b9a178b6fdd05fdc2d35d758c3006a1cd694 --hash=sha256:3c79a6f7b95751cdebcd9037e4d06f8d5a9b60e4ed0cd231342aa8ad7124882a --hash=sha256:3d72c20bd105022d29b14a7d628462ebdc61de2f303322c0212a054352f3b287 --hash=sha256:3eb42bf89a6be7deb64116dd1cc4b08171734d721e7a7e57ad64cc4ef29ed2f1 --hash=sha256:4635a184d0bbe537aa185a34193898eee409332a8ccb27eea36f262566585000 --hash=sha256:56e448f051a201c5ebbaa86a5efd0ca90d327204d8b059ab25ad0f35fbfd79f1 --hash=sha256:5a13ea7911ff5e1796b6d5e4fbbf6952381a611209b736d48e675c2756f3f74e --hash=sha256:69bf008a06b76619d3c3f3b1983f5145c75a305a0fea513aca094cae5c40a8f5 --hash=sha256:6bc583dc18d5979dc0f6cec26a8603129de0304d5ae1f17e57a12834e7235062 --hash=sha256:701cd6093d63e6b8ad7009d8a92425428bc4d6e7ab8d75efbb665c806c1d79ba --hash=sha256:7608a3dd5d73cb06c531b8925e0ef8d3de31fed2544a7de6c63960a1e73ea4bc --hash=sha256:76ecd006d1d8f739430ec50cc872889af1f9c1b6b8f48e29941814b09b0fd3cc --hash=sha256:7aa36d2b844a3e4a4b356708d79fd2c260281a7390d678a10b91ca595ddc9e99 --hash=sha256:7d3f553904b0c5c016d1dad058a7554c7ac4c91a789fca496e7d8347ad040653 --hash=sha256:7e1fe19bd6dce69d9fd159d8e4a80a8f52101380d5d3a4d374b6d3eae0e5de9c --hash=sha256:8c3cb8c35ec4d9506979b4cf90ee9918bc2e49f84189d9bf5c36c0c1119c6558 --hash=sha256:9d6dd10d49e01571bf6e147d3b505141ffc093a06756c60b053a859cb2128b1f --hash=sha256:9e112fcbe0148a6fa4f0a02e8d58e94470fc6cb82a5481618fea901699bf34c4 --hash=sha256:ac4fef68da01116a5c117eba4dd46f2e06847a497de5ed1d64bb99a5fda1ef91 --hash=sha256:b8815995e050764c8610dbc82641807d196927c3dbed207f0a079833ffcf588d --hash=sha256:be6cfcd8053d13f5f5eeb284aa8a814220c3da1b0078fa859011c7fffd86dab9 --hash=sha256:c1bb572fab8208c400adaf06a8133ac0712179a334c09224fb11393e920abcdd --hash=sha256:de4418dadaa1c01d497e539210cb6baa015965526ff5afc078c57ca69160108d --hash=sha256:e05cb4d9aad6233d67e0541caa7e511fa4047ed7750ec2510d466e806e0255d6 --hash=sha256:e4d96c07229f58cb686120f168276e434660e4358cc9cf3b0464210b04913e77 --hash=sha256:f3f501f345f24383c0000395b26b726e46758b71393267aeae0bd36f8b3ade80 --hash=sha256:f8a923a85cb099422ad5a2e345fe877bbc89a8a8b23235824a93488150e45f6e\n-docutils==0.14 --hash=sha256:02aec4bd92ab067f6ff27a38a38a41173bf01bed8f89157768c1573f53e474a6 --hash=sha256:51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274 --hash=sha256:7a4bd47eaf6596e1295ecb11361139febe29b084a87bf005bf899f9a42edc3c6\n-flake8==3.5.0 --hash=sha256:7253265f7abd8b313e3892944044a365e3f4ac3fcdcfb4298f55ee9ddf188ba0 --hash=sha256:c7841163e2b576d435799169b78703ad6ac1bbb0f199994fc05f700b2a90ea37\n-flask-sphinx-themes==1.0.2 --hash=sha256:bb23d7dd1a8ad9f47315bcb0439373c7feb24bcb0a1f8c52bb075f06489bb285 --hash=sha256:d00ac0c04947b8325e13be862ef604b60b71aae50e79e30b9df3560f3536cb8e\n-flask==0.12.2 --hash=sha256:0749df235e3ff61ac108f69ac178c9770caeaccad2509cb762ce1f65570a8856 --hash=sha256:49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1\n-funcsigs==1.0.2 --hash=sha256:330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca --hash=sha256:a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50\n-idna==2.6 --hash=sha256:2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f --hash=sha256:8c7309c718f94b3a625cb648ace320157ad16ff131ae0af362c9f21b80ef6ec4\n-imagesize==1.0.0 --hash=sha256:3620cc0cadba3f7475f9940d22431fc4d407269f1be59ec9b8edcca26440cf18 --hash=sha256:5b326e4678b6925158ccc66a9fa3122b6106d7c876ee32d7de6ce59385b96315\n-itsdangerous==0.24 --hash=sha256:cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519\n-jinja2==2.10 --hash=sha256:74c935a1b8bb9a3947c50a54766a969d4846290e1e788ea44c1392163723c3bd --hash=sha256:f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4\n-markupsafe==1.0 --hash=sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665\n-mccabe==0.6.1 --hash=sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42 --hash=sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f\n-packaging==17.1 --hash=sha256:e9215d2d2535d3ae866c3d6efc77d5b24a0192cce0ff20e42896cc0664f889c0 --hash=sha256:f019b770dd64e585a99714f1fd5e01c7a8f11b45635aa953fd41c689a657375b\n-pluggy==0.6.0 --hash=sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff\n-py==1.5.2 --hash=sha256:8cca5c229d225f8c1e3085be4fcf306090b00850fefad892f9d96c7b6e2f310f --hash=sha256:ca18943e28235417756316bfada6cd96b23ce60dd532642690dcfdaba988a76d\n-pycodestyle==2.3.1 --hash=sha256:682256a5b318149ca0d2a9185d365d8864a768a28db66a84a2ea946bcc426766 --hash=sha256:6c4245ade1edfad79c3446fadfc96b0de2759662dc29d07d80a6f27ad1ca6ba9\n-pyflakes==1.6.0 --hash=sha256:08bd6a50edf8cffa9fa09a463063c425ecaaf10d1eb0335a7e8b1401aef89e6f --hash=sha256:8d616a382f243dbf19b54743f280b80198be0bca3a5396f1d2e1fca6223e8805\n-pygments==2.2.0 --hash=sha256:78f3f434bcc5d6ee09020f92ba487f95ba50f1e3ef83ae96b9d5ffa1bab25c5d --hash=sha256:dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc\n-pyparsing==2.2.0 --hash=sha256:0832bcf47acd283788593e7a0f542407bd9550a55a8a8435214a1960e04bcb04 --hash=sha256:281683241b25fe9b80ec9d66017485f6deff1af5cde372469134b56ca8447a07 --hash=sha256:8f1e18d3fd36c6795bb7e02a39fd05c611ffc2596c1e0d995d34d67630426c18 --hash=sha256:9e8143a3e15c13713506886badd96ca4b579a87fbdf49e550dbfc057d6cb218e --hash=sha256:b8b3117ed9bdf45e14dcc89345ce638ec7e0e29b2b579fa1ecf32ce45ebac8a5 --hash=sha256:e4d45427c6e20a59bf4f88c639dcc03ce30d193112047f94012102f235853a58 --hash=sha256:fee43f17a9c4087e7ed1605bd6df994c6173c1e977d7ade7b651292fab2bd010\n-pytest-cov==2.5.1 --hash=sha256:03aa752cf11db41d281ea1d807d954c4eda35cfa1b21d6971966cc041bbf6e2d --hash=sha256:890fe5565400902b0c78b5357004aab1c814115894f4f21370e2433256a3eeec\n-pytest==3.4.2 --hash=sha256:062027955bccbc04d2fcd5d79690947e018ba31abe4c90b2c6721abec734261b --hash=sha256:117bad36c1a787e1a8a659df35de53ba05f9f3398fb9e4ac17e80ad5903eb8c5\n-pytz==2018.3 --hash=sha256:07edfc3d4d2705a20a6e99d97f0c4b61c800b8232dc1c04d87e8554f130148dd --hash=sha256:3a47ff71597f821cd84a162e71593004286e5be07a340fd462f0d33a760782b5 --hash=sha256:410bcd1d6409026fbaa65d9ed33bf6dd8b1e94a499e32168acfc7b332e4095c0 --hash=sha256:5bd55c744e6feaa4d599a6cbd8228b4f8f9ba96de2c38d56f08e534b3c9edf0d --hash=sha256:61242a9abc626379574a166dc0e96a66cd7c3b27fc10868003fa210be4bff1c9 --hash=sha256:887ab5e5b32e4d0c86efddd3d055c1f363cbaa583beb8da5e22d2fa2f64d51ef --hash=sha256:ba18e6a243b3625513d85239b3e49055a2f0318466e0b8a92b8fb8ca7ccdf55f --hash=sha256:ed6509d9af298b7995d69a440e2822288f2eca1681b8cce37673dbb10091e5fe --hash=sha256:f93ddcdd6342f94cea379c73cddb5724e0d6d0a1c91c9bdef364dc0368ba4fda\n-requests==2.18.4 --hash=sha256:6a1b267aa90cac58ac3a765d067950e7dbbf75b1da07e895d1f594193a40a38b --hash=sha256:9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e\n-six==1.11.0 --hash=sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9 --hash=sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb\n-snowballstemmer==1.2.1 --hash=sha256:919f26a68b2c17a7634da993d91339e288964f93c274f1343e3bbbe2096e1128 --hash=sha256:9f3bcd3c401c3e862ec0ebe6d2c069ebc012ce142cce209c098ccb5b09136e89\n-sphinx==1.7.1 --hash=sha256:41ae26acc6130ccf6ed47e5cca73742b80d55a134f0ab897c479bba8d3640b8e --hash=sha256:da987de5fcca21a4acc7f67a86a363039e67ac3e8827161e61b91deb131c0ee8\n-sphinxcontrib-websupport==1.0.1 --hash=sha256:7a85961326aa3a400cd4ad3c816d70ed6f7c740acd7ce5d78cd0a67825072eb9 --hash=sha256:f4932e95869599b89bf4f80fc3989132d83c9faa5bf633e7b5e0c25dffb75da2\n-tox==2.9.1 --hash=sha256:752f5ec561c6c08c5ecb167d3b20f4f4ffc158c0ab78855701a75f5cef05f4b8 --hash=sha256:8af30fd835a11f3ff8e95176ccba5a4e60779df4d96a9dfefa1a1704af263225\n-urllib3==1.22 --hash=sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b --hash=sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f\n-virtualenv==15.1.0; python_version != '3.2' --hash=sha256:02f8102c2436bb03b3ee6dede1919d1dac8a427541652e5ec95171ec8adbc93a --hash=sha256:39d88b533b422825d644087a21e78c45cf5af0ef7a99a1fc9fbb7b481e5c85b0\n-werkzeug==0.14.1 --hash=sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c --hash=sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b\n+alabaster\n+attrs\n+babel\n+certifi\n+chardet\n+click\n+colorama\n+coverage\n+docutils\n+flake8\n+flask-sphinx-themes\n+flask\n+funcsigs\n+idna\n+imagesize\n+itsdangerous\n+jinja2\n+markupsafe\n+mccabe\n+packaging\n+pluggy\n+py\n+pycodestyle\n+pyflakes\n+pygments\n+pyparsing\n+pytest-cov\n+pytest\n+pytz\n+requests\n+six\n+snowballstemmer\n+sphinx\n+sphinxcontrib-websupport\n+tox\n+urllib3\n+virtualenv\n+werkzeug\n\\ No newline at end of file\n--- requirements.txt\n+++ requirements.txt\n@@ -1,6 +1,6 @@\n-click==6.7 --hash=sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d --hash=sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b\n-flask==0.12.2 --hash=sha256:0749df235e3ff61ac108f69ac178c9770caeaccad2509cb762ce1f65570a8856 --hash=sha256:49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1\n-itsdangerous==0.24 --hash=sha256:cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519\n-jinja2==2.10 --hash=sha256:74c935a1b8bb9a3947c50a54766a969d4846290e1e788ea44c1392163723c3bd --hash=sha256:f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4\n-markupsafe==1.0 --hash=sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665\n-werkzeug==0.14.1 --hash=sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c --hash=sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b\n+click\n+flask\n+itsdangerous\n+jinja2\n+markupsafe\n+werkzeug\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,35 +1,20 @@\n import os\n import sys\n-\n from setuptools import setup\n from setuptools.command.test import test as TestCommand\n from codecs import open\n-\n-\n here = os.path.abspath(os.path.dirname(__file__))\n-\n modules = ['flask_language']\n-\n-requires = [\n- 'flask',\n-]\n-\n-tests_require = [\n- 'docutils',\n- 'tox'\n-]\n-\n+requires = ['flask']\n+tests_require = ['docutils', 'tox']\n about = {}\n with open(os.path.join(here, '__about__.py'), 'r', 'utf-8') as f:\n exec(f.read(), about)\n-\n with open('README.rst', 'r', 'utf-8') as f:\n readme = f.read()\n-\n with open('HISTORY.rst', 'r', 'utf-8') as f:\n history = f.read()\n \n-\n class ToxTest(TestCommand):\n \n def finalize_options(self):\n@@ -38,40 +23,7 @@\n self.test_suite = True\n \n def run_tests(self):\n- # import here, cause outside the eggs aren't loaded\n import tox\n errcode = tox.cmdline(self.test_args)\n sys.exit(errcode)\n-\n-\n-setup(\n- name=about['__title__'],\n- version=about['__version__'],\n- description=about['__description__'],\n- author=about['__author__'],\n- author_email=about['__author_email__'],\n- url=about['__url__'],\n- license=about['__license__'],\n- long_description=readme + '\\n\\n' + history,\n- py_modules=modules,\n- install_requires=requires,\n- tests_require=tests_require,\n- cmdclass={'test': ToxTest},\n- zip_safe=False,\n- include_package_data=True,\n- platforms='any',\n- classifiers=[\n- 'Environment :: Web Environment',\n- 'Intended Audience :: Developers',\n- 'License :: OSI Approved :: MIT License',\n- 'Operating System :: OS Independent',\n- 'Programming Language :: Python',\n- 'Programming Language :: Python :: 2',\n- 'Programming Language :: Python :: 2.7',\n- 'Programming Language :: Python :: 3',\n- 'Programming Language :: Python :: 3.6',\n- 'Programming Language :: Python :: Implementation :: CPython',\n- 'Topic :: Internet :: WWW/HTTP :: Dynamic Content',\n- 'Topic :: Software Development :: Libraries :: Python Modules'\n- ]\n-)\n+setup(name=about['__title__'], version=about['__version__'], description=about['__description__'], author=about['__author__'], author_email=about['__author_email__'], url=about['__url__'], license=about['__license__'], long_description=readme + '\\n\\n' + history, py_modules=modules, install_requires=requires, tests_require=tests_require, cmdclass={'test': ToxTest}, zip_safe=False, include_package_data=True, platforms='any', classifiers=['Environment :: Web Environment', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: Implementation :: CPython', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', 'Topic :: Software Development :: Libraries :: Python Modules'])\n\\ No newline at end of file\n--- setup_rclement__flask-language.sh\n+++ setup_rclement__flask-language.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install -r requirements-dev.txt\n+pip install -r requirements.txt\n--- test_rclement__flask-language.sh\n+++ test_rclement__flask-language.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m unittest tests.test_language\n", "test_patch": "", "gold_patch": "--- flask_language.py\n+++ flask_language.py\n@@ -15,7 +15,7 @@\n \n from datetime import timedelta\n \n-from flask import _request_ctx_stack as stack, request\n+from flask import g, request, has_request_context\n from werkzeug.local import LocalProxy\n \n \n@@ -28,17 +28,15 @@\n \n \n def _set_language(language):\n- ctx = stack.top\n- if ctx is None:\n+ if not has_request_context():\n raise RuntimeError(_ctx_err_msg)\n- setattr(ctx, 'language', language)\n+ setattr(g, 'language', language)\n \n \n def _find_language():\n- ctx = stack.top\n- if ctx is None:\n+ if not has_request_context():\n raise RuntimeError(_ctx_err_msg)\n- return getattr(ctx, 'language', None)\n+ return getattr(g, 'language', None)\n \n \n current_language = LocalProxy(_find_language)\n", "reproduction_target_date": "2018-03-08", "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 rclement__flask-language .\n\nRUN bash /work/setup_rclement__flask-language.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_rclement__flask-language.sh\"]\n", "version_source": "default", "script_source": "requirements.txt", "dependency_versions": "alabaster==1.0.0\nattrs==25.3.0\nbabel==2.17.0\nblinker==1.9.0\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.21.2\nfilelock==3.18.0\nflake8==7.3.0\nFlask==3.1.1\nFlask-Sphinx-Themes==1.0.2\nfuncsigs==1.0.2\nidna==3.10\nimagesize==1.4.1\niniconfig==2.1.0\nitsdangerous==2.2.0\nJinja2==3.1.6\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\npyparsing==3.2.3\npyproject-api==1.9.1\npytest==8.4.1\npytest-cov==6.2.1\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\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\ntox==4.28.3\nurllib3==2.5.0\nvirtualenv==20.32.0\nWerkzeug==3.1.3\n", "test_type": "unittest", "test_files": "tests/test_language.py", "test_count": 3, "related_modules": "flask", "py_file_count": 6, "total_loc_python": 535, "difficulty": "Easy", "license": "MIT"} {"repo_name": "blockchain-etl/icon-etl", "repo_url": "https://github.com/blockchain-etl/icon-etl", "commit_hash": "0bd93cc316c60ff1479fcd751e68bd12600b21ca", "patch": "--- setup.py\n+++ setup.py\n@@ -1,54 +1,7 @@\n import os\n-\n from setuptools import find_packages, setup\n \n-\n def read(fname):\n return open(os.path.join(os.path.dirname(__file__), fname)).read()\n-\n-\n-long_description = read(\"README.md\") if os.path.isfile(\"README.md\") else \"\"\n-\n-setup(\n- name=\"icon-etl\",\n- version=\"0.1.3\",\n- packages=find_packages(exclude=[\"schemas\", \"tests\"]),\n- url=\"https://github.com/insight-icon/icon-etl\",\n- author=\"Richard Mah\",\n- author_email=\"richard@richardmah.com\",\n- description=\"Tools for exporting ICON blockchain data to CSV or JSON\",\n- long_description=long_description,\n- long_description_content_type=\"text/markdown\",\n- python_requires=\">=3.6.0,<3.8.0\",\n- install_requires=[\n- \"blockchain-etl-common==1.3.0\",\n- \"requests>=2.20.0\",\n- \"python-dateutil>=2.7.0\",\n- \"click==7.0\",\n- \"iconsdk >= 1.3.2\",\n- \"web3 >= 5.5.0\",\n- ],\n- extras_require={\n- \"streaming\": [\n- \"timeout-decorator==0.4.1\",\n- \"sqlalchemy==1.3.13\",\n- ],\n- \"dev\": [\"pytest~=4.3.0\"],\n- },\n- project_urls={\n- \"Bug Reports\": \"https://github.com/insight-icon/icon-etl/issues\",\n- \"Source\": \"https://github.com/insight-icon/icon-etl\",\n- },\n- classifiers=[\n- \"Intended Audience :: Developers\",\n- \"License :: OSI Approved :: MIT License\",\n- \"Programming Language :: Python :: 3\",\n- \"Programming Language :: Python :: 3.6\",\n- \"Programming Language :: Python :: 3.7\",\n- ],\n- entry_points={\n- \"console_scripts\": [\n- \"iconetl=iconetl.cli:cli\",\n- ],\n- },\n-)\n+long_description = read('README.md') if os.path.isfile('README.md') else ''\n+setup(name='icon-etl', version='0.1.3', packages=find_packages(exclude=['schemas', 'tests']), url='https://github.com/insight-icon/icon-etl', author='Richard Mah', author_email='richard@richardmah.com', description='Tools for exporting ICON blockchain data to CSV or JSON', long_description=long_description, long_description_content_type='text/markdown', python_requires='>=3.6.0', install_requires=['blockchain-etl-common', 'requests', 'python-dateutil', 'click', 'iconsdk', 'web3'], extras_require={'streaming': ['timeout-decorator', 'sqlalchemy'], 'dev': ['pytest']}, project_urls={'Bug Reports': 'https://github.com/insight-icon/icon-etl/issues', 'Source': 'https://github.com/insight-icon/icon-etl'}, classifiers=['Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7'], entry_points={'console_scripts': ['iconetl=iconetl.cli:cli']})\n\\ No newline at end of file\n--- setup_blockchain-etl__icon-etl.sh\n+++ setup_blockchain-etl__icon-etl.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .[streaming,dev]\n+pip install pytest\n--- test_blockchain-etl__icon-etl.sh\n+++ test_blockchain-etl__icon-etl.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- iconetl/providers/rpc.py\n+++ iconetl/providers/rpc.py\n@@ -21,7 +21,9 @@\n \n \n from web3 import HTTPProvider\n-from web3._utils.request import make_post_request\n+from web3._utils.http_session_manager import HTTPSessionManager\n+\n+http_session_manager = HTTPSessionManager()\n \n \n class BatchHTTPProvider(HTTPProvider):\n@@ -30,7 +32,7 @@\n \"Making request HTTP. URI: %s, Request: %s\", self.endpoint_uri, text\n )\n request_data = text.encode(\"utf-8\")\n- raw_response = make_post_request(\n+ raw_response = http_session_manager.json_make_post_request(\n self.endpoint_uri, request_data, **self.get_request_kwargs()\n )\n response = self.decode_rpc_response(raw_response)\n", "reproduction_target_date": "2020-11-06", "reproduction_target_version": "3.7.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 blockchain-etl__icon-etl .\n\nRUN bash /work/setup_blockchain-etl__icon-etl.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_blockchain-etl__icon-etl.sh\"]\n", "version_source": "setup.py", "script_source": "setup.py", "dependency_versions": "aiohappyeyeballs==2.6.1\naiohttp==3.12.15\naiosignal==1.4.0\nannotated-types==0.7.0\nattrs==25.3.0\nbitarray==3.6.0\nblockchain-etl-common==1.7.1\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\nckzg==2.1.1\nclick==8.2.1\ncoincurve==21.0.0\ncytoolz==1.0.1\neth-account==0.13.3\neth-hash==0.7.1\neth-keyfile==0.9.1\neth-keys==0.7.0\neth-rlp==2.2.0\neth-typing==5.2.1\neth-utils==5.3.0\neth_abi==5.2.0\nfrozenlist==1.7.0\ngreenlet==3.2.3\nhexbytes==1.3.1\nicon-etl @ file:///work\niconsdk==2.6.0\nidna==3.10\niniconfig==2.1.0\nmultidict==6.6.3\nmultimethod==2.0\npackaging==25.0\nparsimonious==0.10.0\npluggy==1.6.0\npropcache==0.3.2\npy-ecc==8.0.0\npycryptodome==3.23.0\npydantic==2.11.7\npydantic_core==2.33.2\nPygments==2.19.2\npytest==8.4.1\npython-dateutil==2.9.0.post0\npyunormalize==16.0.0\nregex==2025.7.33\nrequests==2.32.4\nrlp==4.1.0\nsix==1.17.0\nSQLAlchemy==2.0.42\ntimeout-decorator==0.5.0\ntoolz==1.0.0\ntypes-requests==2.32.4.20250611\ntyping-inspection==0.4.1\ntyping_extensions==4.14.1\nurllib3==2.5.0\nweb3==7.10.0\nwebsocket-client==1.8.0\nwebsockets==15.0.1\nyarl==1.20.1\n", "test_type": "pytest", "test_files": "tests/iconetl/service/test_icx_service.py, tests/iconetl/job/test_export_blocks_job.py, tests/iconetl/job/test_export_receipts_job.py", "test_count": 9, "related_modules": "web3", "py_file_count": 54, "total_loc_python": 2687, "difficulty": "Medium", "license": "MIT"} {"repo_name": "demorest/sdmpy", "repo_url": "https://github.com/demorest/sdmpy", "commit_hash": "a57ef70f6c5b5727ef35c651fa535b6550c9206a", "patch": "--- setup.py\n+++ setup.py\n@@ -1,27 +1,2 @@\n-#!/usr/bin/env python\n-# -*- coding: utf-8 -*-\n-\n-# Note: To use the 'upload' functionality of this file, you must:\n-# $ pip install twine\n-\n from setuptools import setup, find_packages\n-\n-setup(\n- name='sdmpy',\n- version='1.71.1',\n- description='Python for ALMA/VLA Science Data Model',\n- author='Paul Demorest',\n- author_email='pdemores@nrao.edu',\n- url='http://github.com/demorest/sdmpy',\n- packages=find_packages(), # get all python scripts in realtime\n- install_requires=['lxml', 'numpy', 'future', 'progressbar2'],\n- package_data={'sdmpy': ['xsd/*.xsd']},\n- scripts=['scripts/bdf_average.py',\n- 'scripts/bdf_bin_split.py',\n- 'scripts/bdf_dedisperse_cut.py',\n- 'scripts/bdf_to_psrfits.py',\n- 'scripts/realfast_sdm_fix.py',\n- 'scripts/realfast_sdm_fix_20A-346.py',\n- 'scripts/y1swpow.py',\n- ]\n-)\n+setup(name='sdmpy', version='1.71.1', description='Python for ALMA/VLA Science Data Model', author='Paul Demorest', author_email='pdemores@nrao.edu', url='http://github.com/demorest/sdmpy', packages=find_packages(), install_requires=['lxml', 'numpy', 'future', 'progressbar2'], package_data={'sdmpy': ['xsd/*.xsd']}, scripts=['scripts/bdf_average.py', 'scripts/bdf_bin_split.py', 'scripts/bdf_dedisperse_cut.py', 'scripts/bdf_to_psrfits.py', 'scripts/realfast_sdm_fix.py', 'scripts/realfast_sdm_fix_20A-346.py', 'scripts/y1swpow.py'])\n\\ No newline at end of file\n--- setup_demorest__sdmpy.sh\n+++ setup_demorest__sdmpy.sh\n@@ -0,0 +1,5 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+pip install .\n+pip install pytest\n--- test_demorest__sdmpy.sh\n+++ test_demorest__sdmpy.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- sdmpy/bdf.py\n+++ sdmpy/bdf.py\n@@ -459,7 +459,7 @@\n def dsize(self, type):\n \"\"\"Return size of data array for this spectral window, in number of\n data elements (real for auto, complex for cross).\"\"\"\n- return numpy.product(self.dshape(type))\n+ return numpy.prod(self.dshape(type))\n \n def mshape(self, corr):\n \"\"\"Return shape tuple of metadata array for this spectral window\n@@ -469,7 +469,7 @@\n def msize(self, corr):\n \"\"\"Return size of metadata array for this spectral window and\n correlation type (cross or auto).\"\"\"\n- return numpy.product(self.mshape(corr))\n+ return numpy.prod(self.mshape(corr))\n \n @staticmethod\n def dims_match(spwlist, type):\n--- sdmpy/bintab.py\n+++ sdmpy/bintab.py\n@@ -104,7 +104,7 @@\n return val\n dsize = unpack.size\n if ndim:\n- ntot = numpy.product(dims)\n+ ntot = numpy.prod(dims)\n return numpy.array([unpack.unpack_from(self._readtab(dsize))[0]\n for i in range(ntot)]).reshape(dims)\n else:\n", "reproduction_target_date": "2023-07-12", "reproduction_target_version": "3.10.12", "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 demorest__sdmpy .\n\nRUN bash /work/setup_demorest__sdmpy.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_demorest__sdmpy.sh\"]\n", "version_source": "default", "script_source": "setup.py", "dependency_versions": "future==1.0.0\niniconfig==2.1.0\nlxml==6.0.0\nnumpy==2.3.2\npackaging==25.0\npluggy==1.6.0\nprogressbar2==4.5.0\nPygments==2.19.2\npytest==8.4.1\npython-utils==3.9.1\nsdmpy @ file:///work\ntyping_extensions==4.14.1\n", "test_type": "pytest", "test_files": "tests/test_write.py, tests/test_sdm.py", "test_count": 10, "related_modules": "numpy", "py_file_count": 18, "total_loc_python": 3739, "difficulty": "Easy", "license": ""} {"repo_name": "joway/lemon", "repo_url": "https://github.com/joway/lemon", "commit_hash": "94f4ae05ac5aa6291c41186e845dc821a85a9296", "patch": "--- requirements.txt\n+++ requirements.txt\n@@ -1,14 +1,14 @@\n # production\n-uvicorn==0.14.0\n-kua==0.2\n-werkzeug==1.0.1\n+uvicorn\n+kua\n+werkzeug\n \n # dev\n-pytest==6.2.4\n-pytest-runner==5.3.1\n-pytest-asyncio==0.15.1\n-coveralls==3.3.1\n-pycodestyle==2.9.1\n-sphinx-rtd-theme==1.0.0\n-sphinx==5.3.0\n-mypy==0.942\n+pytest\n+pytest-runner\n+pytest-asyncio\n+coveralls\n+pycodestyle\n+sphinx-rtd-theme\n+sphinx\n+mypy\n\\ No newline at end of file\n--- setup.py\n+++ setup.py\n@@ -1,36 +1,5 @@\n from setuptools import setup\n-\n PACKAGE_VERSION = '0.6.3'\n-PACKAGE_REQUIRES = [\n- 'uvicorn==0.14.0',\n- 'kua==0.2',\n- 'werkzeug==1.0.1',\n-]\n+PACKAGE_REQUIRES = ['uvicorn', 'kua', 'werkzeug']\n DEVELOPMENT_STATUS = '5 - Production/Stable'\n-\n-setup(\n- name='pylemon',\n- version=PACKAGE_VERSION,\n- description='An async and lightweight API framework for python .',\n- url='https://github.com/joway/lemon',\n- author='Joway Wang',\n- author_email='joway.w@gmail.com',\n- license='MIT',\n- packages=['lemon'],\n- keywords='lemon restful api async python',\n- setup_requires=['pytest-runner'],\n- tests_require=['pytest'],\n- install_requires=PACKAGE_REQUIRES,\n- classifiers=[\n- 'Development Status :: %s' % DEVELOPMENT_STATUS,\n- 'Framework :: AsyncIO',\n- 'License :: OSI Approved :: MIT License',\n- 'Natural Language :: English',\n- 'Topic :: Software Development :: Libraries :: Application Frameworks',\n- 'Intended Audience :: Developers',\n- 'Intended Audience :: Information Technology',\n- 'Operating System :: OS Independent',\n- 'Programming Language :: Python',\n- 'Programming Language :: Python :: 3.6',\n- ],\n-)\n+setup(name='pylemon', version=PACKAGE_VERSION, description='An async and lightweight API framework for python .', url='https://github.com/joway/lemon', author='Joway Wang', author_email='joway.w@gmail.com', license='MIT', packages=['lemon'], keywords='lemon restful api async python', setup_requires=['pytest-runner'], tests_require=['pytest'], install_requires=PACKAGE_REQUIRES, classifiers=['Development Status :: %s' % DEVELOPMENT_STATUS, 'Framework :: AsyncIO', 'License :: OSI Approved :: MIT License', 'Natural Language :: English', 'Topic :: Software Development :: Libraries :: Application Frameworks', 'Intended Audience :: Developers', 'Intended Audience :: Information Technology', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3.6'])\n\\ No newline at end of file\n--- setup_joway__lemon.sh\n+++ setup_joway__lemon.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_joway__lemon.sh\n+++ test_joway__lemon.sh\n@@ -0,0 +1,4 @@\n+#!/bin/bash\n+set -euo pipefail\n+\n+python -m pytest .\n", "test_patch": "", "gold_patch": "--- lemon/parsers.py\n+++ lemon/parsers.py\n@@ -5,7 +5,7 @@\n from werkzeug.datastructures import ImmutableMultiDict\n from werkzeug.formparser import FormDataParser\n from werkzeug.http import parse_options_header\n-from werkzeug.urls import url_decode\n+from urllib.parse import parse_qs\n \n from lemon.const import MIME_TYPES\n from lemon.exception import RequestHeadersParserError, RequestBodyParserError\n@@ -40,7 +40,7 @@\n \n \n def url_encoded_parser(body: bytes, *args) -> ImmutableMultiDict:\n- return url_decode(body, cls=ImmutableMultiDict)\n+ return ImmutableMultiDict(parse_qs(body.decode(\"utf-8\")))\n \n \n def multi_part_parser(body: bytes, headers: dict = {}) -> ImmutableMultiDict:\n", "reproduction_target_date": "2022-10-18", "reproduction_target_version": "3.6.15", "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 joway__lemon .\n\nRUN bash /work/setup_joway__lemon.sh\n\nENTRYPOINT [\"bash\"]\nCMD [\"/work/test_joway__lemon.sh\"]\n", "version_source": "setup.py", "script_source": "requirements.txt", "dependency_versions": "alabaster==1.0.0\nbabel==2.17.0\ncertifi==2025.7.14\ncharset-normalizer==3.4.2\nclick==8.2.1\ncoverage==7.10.1\ncoveralls==4.0.1\ndocopt==0.6.2\ndocutils==0.21.2\nh11==0.16.0\nidna==3.10\nimagesize==1.4.1\niniconfig==2.1.0\nJinja2==3.1.6\nkua==0.2\nMarkupSafe==3.0.2\nmypy==1.17.0\nmypy_extensions==1.1.0\npackaging==25.0\npathspec==0.12.1\npluggy==1.6.0\npycodestyle==2.14.0\nPygments==2.19.2\npytest==8.4.1\npytest-asyncio==1.1.0\npytest-runner==6.0.1\nrequests==2.32.4\nroman-numerals-py==3.1.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\ntyping_extensions==4.14.1\nurllib3==2.5.0\nuvicorn==0.35.0\nWerkzeug==3.1.3\n", "test_type": "pytest", "test_files": "tests/test_middleware.py, tests/test_basic.py, tests/test_cors.py, tests/test_router.py", "test_count": 30, "related_modules": "werkzeug", "py_file_count": 34, "total_loc_python": 2232, "difficulty": "Easy", "license": "MIT"}