File size: 27,319 Bytes
6d6193f
 
 
 
 
1
2
3
4
5
6
export const migrationData = [
{"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"},
];