migratron / src /data /migrationData.ts
amrithanandini's picture
updated UI
6d6193f
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"},
];