File size: 110,352 Bytes
1b35d41
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{"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": "Hard", "license": "MIT"}
{"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": "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": "Medium", "license": "Apache-2.0, 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": "Medium", "license": "Apache-2.0, 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": "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": "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": "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": "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": "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": "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": "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": "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": "Medium", "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": "Medium", "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": "Medium", "license": "Apache-2.0"}
{"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": "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": "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": "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": "Hard", "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"}