Backup-bdg's picture
Upload 964 files
51ff9e5 verified
raw
history blame
47.4 kB
from enum import Enum
from pathlib import Path
from typing import Any, TypedDict
# Constants - Evaluation Log Directories
BASE_IMAGE_BUILD_DIR = Path('logs/build_images/base')
ENV_IMAGE_BUILD_DIR = Path('logs/build_images/env')
INSTANCE_IMAGE_BUILD_DIR = Path('logs/build_images/instances')
RUN_EVALUATION_LOG_DIR = Path('logs/run_evaluation')
# Constants - Task Instance Class
class TestGenEvalInstance(TypedDict):
repo: str
base_commit: str
version: str
instance_id: str
patch: str
test_patch: str
preds_context: dict
code_src: str
test_src: str
code_file: str
test_file: str
local_imports: list
id: str
baseline_covs: dict
class TestStatus(Enum):
FAILED = 'FAILED'
PASSED = 'PASSED'
SKIPPED = 'SKIPPED'
ERROR = 'ERROR'
XFAIL = 'XFAIL'
FAIL_TO_PASS = 'FAIL_TO_PASS'
FAIL_TO_FAIL = 'FAIL_TO_FAIL'
PASS_TO_PASS = 'PASS_TO_PASS'
PASS_TO_FAIL = 'PASS_TO_FAIL'
TEST_PYTEST = 'coverage run -m pytest --no-header -rA --tb=no -p no:cacheprovider'
TEST_PYTEST_VERBOSE = 'coverage run -m pytest -rA --tb=long -p no:cacheprovider'
TEST_ASTROPY_PYTEST = (
'coverage run -m pytest -rA -vv -o console_output_style=classic --tb=no'
)
TEST_DJANGO = (
'coverage run ./tests/runtests.py --verbosity 2 --settings=test_sqlite --parallel 1'
)
TEST_DJANGO_NO_PARALLEL = 'coverage run ./tests/runtests.py --verbosity 2'
TEST_SEABORN = 'coverage run -m pytest --no-header -rA'
TEST_SEABORN_VERBOSE = 'coverage run -m pytest -rA --tb=long'
TEST_PYTEST = 'coverage run -m pytest -rA'
TEST_PYTEST_VERBOSE = 'coverage run -m pytest -rA --tb=long'
TEST_SPHINX = 'tox --current-env -epy39 -v --'
TEST_SYMPY = "PYTHONWARNINGS='ignore::UserWarning,ignore::SyntaxWarning' coverage run bin/test -C --verbose"
TEST_SYMPY_VERBOSE = 'coverage run bin/test -C --verbose'
# Constants - Installation Specifications
SPECS_SKLEARN = {
k: {
'python': '3.6',
'packages': 'numpy scipy cython pytest pandas matplotlib',
'install': 'python -m pip install -v --no-use-pep517 --no-build-isolation -e .',
'pip_packages': [
'cython',
'numpy==1.19.2',
'setuptools',
'scipy==1.5.2',
],
'test_cmd': TEST_PYTEST,
}
for k in ['0.20', '0.21', '0.22']
}
SPECS_SKLEARN.update(
{
k: {
'python': '3.9',
'packages': "'numpy==1.19.2' 'scipy==1.5.2' 'cython==3.0.10' pytest 'pandas<2.0.0' 'matplotlib<3.9.0' setuptools pytest joblib threadpoolctl",
'install': 'python -m pip install -v --no-use-pep517 --no-build-isolation -e .',
'pip_packages': ['cython', 'setuptools', 'numpy', 'scipy'],
'test_cmd': TEST_PYTEST,
}
for k in ['1.3', '1.4', '1.5', '1.6']
}
)
SPECS_FLASK = {
'2.0': {
'python': '3.9',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'pip_packages': [
'setuptools==70.0.0',
'Werkzeug==2.3.7',
'Jinja2==3.0.1',
'itsdangerous==2.1.2',
'click==8.0.1',
'MarkupSafe==2.1.3',
],
'test_cmd': TEST_PYTEST,
},
'2.1': {
'python': '3.10',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'pip_packages': [
'click==8.1.3',
'itsdangerous==2.1.2',
'Jinja2==3.1.2',
'MarkupSafe==2.1.1',
'Werkzeug==2.3.7',
],
'test_cmd': TEST_PYTEST,
},
}
SPECS_FLASK.update(
{
k: {
'python': '3.11',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'pip_packages': [
'click==8.1.3',
'itsdangerous==2.1.2',
'Jinja2==3.1.2',
'MarkupSafe==2.1.1',
'Werkzeug==2.3.7',
],
'test_cmd': TEST_PYTEST,
}
for k in ['2.2', '2.3', '3.0', '3.1']
}
)
SPECS_DJANGO = {
k: {
'python': '3.5',
'packages': 'requirements.txt',
'pre_install': [
'apt-get update && apt-get install -y locales',
"echo 'en_US UTF-8' > /etc/locale.gen",
'locale-gen en_US.UTF-8',
],
'install': 'python setup.py install',
'pip_packages': ['setuptools'],
'eval_commands': [
'export LANG=en_US.UTF-8',
'export LC_ALL=en_US.UTF-8',
'export PYTHONIOENCODING=utf8',
'export LANGUAGE=en_US:en',
],
'test_cmd': TEST_DJANGO,
}
for k in ['1.7', '1.8', '1.9', '1.10', '1.11', '2.0', '2.1', '2.2']
}
SPECS_DJANGO.update(
{
k: {
'python': '3.5',
'install': 'python setup.py install',
'test_cmd': TEST_DJANGO,
}
for k in ['1.4', '1.5', '1.6']
}
)
SPECS_DJANGO.update(
{
k: {
'python': '3.6',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'eval_commands': [
"sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen",
'export LANG=en_US.UTF-8',
'export LANGUAGE=en_US:en',
'export LC_ALL=en_US.UTF-8',
],
'test_cmd': TEST_DJANGO,
}
for k in ['3.0', '3.1', '3.2']
}
)
SPECS_DJANGO.update(
{
k: {
'python': '3.8',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'test_cmd': TEST_DJANGO,
}
for k in ['4.0']
}
)
SPECS_DJANGO.update(
{
k: {
'python': '3.9',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'test_cmd': TEST_DJANGO,
}
for k in ['4.1', '4.2']
}
)
SPECS_DJANGO.update(
{
k: {
'python': '3.11',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'test_cmd': TEST_DJANGO,
}
for k in ['5.0', '5.1', '5.2']
}
)
SPECS_DJANGO['1.9']['test_cmd'] = TEST_DJANGO_NO_PARALLEL
SPECS_REQUESTS = {
k: {
'python': '3.9',
'packages': 'pytest',
'install': 'python -m pip install .',
'test_cmd': TEST_PYTEST,
}
for k in ['0.7', '0.8', '0.9', '0.11', '0.13', '0.14', '1.1', '1.2', '2.0', '2.2']
+ ['2.3', '2.4', '2.5', '2.7', '2.8', '2.9', '2.10', '2.11', '2.12', '2.17']
+ ['2.18', '2.19', '2.22', '2.26', '2.25', '2.27', '2.31', '3.0']
}
SPECS_SEABORN = {
k: {
'python': '3.9',
'install': 'python -m pip install -e .',
'pip_packages': [
'contourpy==1.1.0',
'cycler==0.11.0',
'fonttools==4.42.1',
'importlib-resources==6.0.1',
'kiwisolver==1.4.5',
'matplotlib==3.7.2',
'numpy==1.25.2',
'packaging==23.1',
'pandas==1.3.5', # 2.0.3
'pillow==10.0.0',
'pyparsing==3.0.9',
'pytest',
'python-dateutil==2.8.2',
'pytz==2023.3.post1',
'scipy==1.11.2',
'six==1.16.0',
'tzdata==2023.1',
'zipp==3.16.2',
],
'test_cmd': TEST_SEABORN,
}
for k in ['0.11']
}
SPECS_SEABORN.update(
{
k: {
'python': '3.9',
'install': 'python -m pip install -e .[dev]',
'pip_packages': [
'contourpy==1.1.0',
'cycler==0.11.0',
'fonttools==4.42.1',
'importlib-resources==6.0.1',
'kiwisolver==1.4.5',
'matplotlib==3.7.2',
'numpy==1.25.2',
'packaging==23.1',
'pandas==2.0.0',
'pillow==10.0.0',
'pyparsing==3.0.9',
'pytest',
'python-dateutil==2.8.2',
'pytz==2023.3.post1',
'scipy==1.11.2',
'six==1.16.0',
'tzdata==2023.1',
'zipp==3.16.2',
],
'test_cmd': TEST_SEABORN,
}
for k in ['0.12', '0.13', '0.14']
}
)
SPECS_PYTEST = {
k: {
'python': '3.9',
'install': 'python -m pip install -e .',
'test_cmd': TEST_PYTEST,
}
for k in [
'4.4',
'4.5',
'4.6',
'5.0',
'5.1',
'5.2',
'5.3',
'5.4',
'6.0',
'6.2',
'6.3',
'7.0',
'7.1',
'7.2',
'7.4',
'8.0',
'8.1',
'8.2',
'8.3',
'8.4',
]
}
SPECS_PYTEST['4.4']['pip_packages'] = [
'atomicwrites==1.4.1',
'attrs==23.1.0',
'more-itertools==10.1.0',
'pluggy==0.13.1',
'py==1.11.0',
'setuptools==68.0.0',
'six==1.16.0',
]
SPECS_PYTEST['4.5']['pip_packages'] = [
'atomicwrites==1.4.1',
'attrs==23.1.0',
'more-itertools==10.1.0',
'pluggy==0.11.0',
'py==1.11.0',
'setuptools==68.0.0',
'six==1.16.0',
'wcwidth==0.2.6',
]
SPECS_PYTEST['4.6']['pip_packages'] = [
'atomicwrites==1.4.1',
'attrs==23.1.0',
'more-itertools==10.1.0',
'packaging==23.1',
'pluggy==0.13.1',
'py==1.11.0',
'six==1.16.0',
'wcwidth==0.2.6',
]
for k in ['5.0', '5.1', '5.2']:
SPECS_PYTEST[k]['pip_packages'] = [
'atomicwrites==1.4.1',
'attrs==23.1.0',
'more-itertools==10.1.0',
'packaging==23.1',
'pluggy==0.13.1',
'py==1.11.0',
'wcwidth==0.2.6',
]
SPECS_PYTEST['5.3']['pip_packages'] = [
'attrs==23.1.0',
'more-itertools==10.1.0',
'packaging==23.1',
'pluggy==0.13.1',
'py==1.11.0',
'wcwidth==0.2.6',
]
SPECS_PYTEST['5.4']['pip_packages'] = [
'py==1.11.0',
'packaging==23.1',
'attrs==23.1.0',
'more-itertools==10.1.0',
'pluggy==0.13.1',
]
SPECS_PYTEST['6.0']['pip_packages'] = [
'attrs==23.1.0',
'iniconfig==2.0.0',
'more-itertools==10.1.0',
'packaging==23.1',
'pluggy==0.13.1',
'py==1.11.0',
'toml==0.10.2',
]
for k in ['6.2', '6.3']:
SPECS_PYTEST[k]['pip_packages'] = [
'attrs==23.1.0',
'iniconfig==2.0.0',
'packaging==23.1',
'pluggy==0.13.1',
'py==1.11.0',
'toml==0.10.2',
]
SPECS_PYTEST['7.0']['pip_packages'] = [
'attrs==23.1.0',
'iniconfig==2.0.0',
'packaging==23.1',
'pluggy==0.13.1',
'py==1.11.0',
]
for k in ['7.1', '7.2']:
SPECS_PYTEST[k]['pip_packages'] = [
'attrs==23.1.0',
'iniconfig==2.0.0',
'packaging==23.1',
'pluggy==0.13.1',
'py==1.11.0',
'tomli==2.0.1',
]
for k in ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4']:
SPECS_PYTEST[k]['pip_packages'] = [
'iniconfig==2.0.0',
'packaging==23.1',
'pluggy==1.3.0',
'exceptiongroup==1.1.3',
'tomli==2.0.1',
]
SPECS_MATPLOTLIB = {
k: {
'python': '3.11',
'packages': 'environment.yml',
'install': 'python -m pip install -e .',
'pre_install': [
'apt-get -y update && apt-get -y upgrade && DEBIAN_FRONTEND=noninteractive apt-get install -y imagemagick ffmpeg texlive texlive-latex-extra texlive-fonts-recommended texlive-xetex texlive-luatex cm-super dvipng'
],
'pip_packages': [
'contourpy==1.1.0',
'cycler==0.11.0',
'fonttools==4.42.1',
'ghostscript',
'kiwisolver==1.4.5',
'numpy==1.25.2',
'packaging==23.1',
'pillow==10.0.0',
'pikepdf',
'pyparsing==3.0.9',
'python-dateutil==2.8.2',
'six==1.16.0',
'setuptools==68.1.2',
'setuptools-scm==7.1.0',
'typing-extensions==4.7.1',
],
'test_cmd': TEST_PYTEST,
}
for k in ['3.5', '3.6', '3.7', '3.8', '3.9']
}
SPECS_MATPLOTLIB.update(
{
k: {
'python': '3.8',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'pre_install': [
'apt-get -y update && apt-get -y upgrade && DEBIAN_FRONTEND=noninteractive apt-get install -y imagemagick ffmpeg libfreetype6-dev pkg-config texlive texlive-latex-extra texlive-fonts-recommended texlive-xetex texlive-luatex cm-super'
],
'pip_packages': ['pytest', 'ipython'],
'test_cmd': TEST_PYTEST,
}
for k in ['3.1', '3.2', '3.3', '3.4']
}
)
SPECS_MATPLOTLIB.update(
{
k: {
'python': '3.7',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'pre_install': [
'apt-get -y update && apt-get -y upgrade && apt-get install -y imagemagick ffmpeg libfreetype6-dev pkg-config'
],
'pip_packages': ['pytest'],
'test_cmd': TEST_PYTEST,
}
for k in ['3.0']
}
)
SPECS_MATPLOTLIB.update(
{
k: {
'python': '3.5',
'install': 'python setup.py build; python setup.py install',
'pre_install': [
'apt-get -y update && apt-get -y upgrade && && apt-get install -y imagemagick ffmpeg'
],
'pip_packages': ['pytest'],
'execute_test_as_nonroot': True,
'test_cmd': TEST_PYTEST,
}
for k in ['2.0', '2.1', '2.2', '1.0', '1.1', '1.2', '1.3', '1.4', '1.5']
}
)
for k in ['3.8', '3.9']:
SPECS_MATPLOTLIB[k]['install'] = (
'python -m pip install --no-build-isolation -e ".[dev]"'
)
SPECS_SPHINX = {
k: {
'python': '3.9',
'pip_packages': ['tox==4.16.0', 'tox-current-env==0.0.11'],
'install': 'python -m pip install -e .[test]',
'pre_install': ["sed -i 's/pytest/pytest -rA/' tox.ini"],
'test_cmd': TEST_SPHINX,
}
for k in ['1.5', '1.6', '1.7', '1.8', '2.0', '2.1', '2.2', '2.3', '2.4', '3.0']
+ ['3.1', '3.2', '3.3', '3.4', '3.5', '4.0', '4.1', '4.2', '4.3', '4.4']
+ ['4.5', '5.0', '5.1', '5.2', '5.3', '6.0', '6.2', '7.0', '7.1', '7.2']
+ ['7.3', '7.4', '8.0', '8.1']
}
for k in ['3.0', '3.1', '3.2', '3.3', '3.4', '3.5', '4.0', '4.1', '4.2', '4.3', '4.4']:
SPECS_SPHINX[k]['pre_install'].extend(
[
"sed -i 's/Jinja2>=2.3/Jinja2<3.0/' setup.py",
"sed -i 's/sphinxcontrib-applehelp/sphinxcontrib-applehelp<=1.0.7/' setup.py",
"sed -i 's/sphinxcontrib-devhelp/sphinxcontrib-devhelp<=1.0.5/' setup.py",
"sed -i 's/sphinxcontrib-qthelp/sphinxcontrib-qthelp<=1.0.6/' setup.py",
"sed -i 's/alabaster>=0.7,<0.8/alabaster>=0.7,<0.7.12/' setup.py",
"sed -i \"s/'packaging',/'packaging', 'markupsafe<=2.0.1',/\" setup.py",
]
)
if k in ['4.2', '4.3', '4.4']:
SPECS_SPHINX[k]['pre_install'].extend(
[
"sed -i 's/sphinxcontrib-htmlhelp>=2.0.0/sphinxcontrib-htmlhelp>=2.0.0,<=2.0.4/' setup.py",
"sed -i 's/sphinxcontrib-serializinghtml>=1.1.5/sphinxcontrib-serializinghtml>=1.1.5,<=1.1.9/' setup.py",
]
)
elif k == '4.1':
SPECS_SPHINX[k]['pre_install'].extend(
[
(
"grep -q 'sphinxcontrib-htmlhelp>=2.0.0' setup.py && "
"sed -i 's/sphinxcontrib-htmlhelp>=2.0.0/sphinxcontrib-htmlhelp>=2.0.0,<=2.0.4/' setup.py || "
"sed -i 's/sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp<=2.0.4/' setup.py"
),
(
"grep -q 'sphinxcontrib-serializinghtml>=1.1.5' setup.py && "
"sed -i 's/sphinxcontrib-serializinghtml>=1.1.5/sphinxcontrib-serializinghtml>=1.1.5,<=1.1.9/' setup.py || "
"sed -i 's/sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml<=1.1.9/' setup.py"
),
]
)
else:
SPECS_SPHINX[k]['pre_install'].extend(
[
"sed -i 's/sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp<=2.0.4/' setup.py",
"sed -i 's/sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml<=1.1.9/' setup.py",
]
)
for k in ['7.2', '7.3', '7.4', '8.0', '8.1']:
SPECS_SPHINX[k]['pre_install'] += ['apt-get update && apt-get install -y graphviz']
for k in ['8.0', '8.1']:
SPECS_SPHINX[k]['python'] = '3.10'
SPECS_ASTROPY = {
k: {
'python': '3.9',
'install': 'python -m pip install -e .[test] --verbose',
'pip_packages': [
'attrs==23.1.0',
'exceptiongroup==1.1.3',
'execnet==2.0.2',
'hypothesis==6.82.6',
'iniconfig==2.0.0',
'numpy==1.25.2',
'packaging==23.1',
'pluggy==1.3.0',
'psutil==5.9.5',
'pyerfa==2.0.0.3',
'pytest-arraydiff==0.5.0',
'pytest-astropy-header==0.2.2',
'pytest-astropy==0.10.0',
'pytest-cov==4.1.0',
'pytest-doctestplus==1.0.0',
'pytest-filter-subpackage==0.1.2',
'pytest-mock==3.11.1',
'pytest-openfiles==0.5.0',
'pytest-remotedata==0.4.0',
'pytest-xdist==3.3.1',
'pytest==7.4.0',
'PyYAML==6.0.1',
'setuptools==68.0.0',
'sortedcontainers==2.4.0',
'tomli==2.0.1',
],
'test_cmd': TEST_PYTEST,
}
for k in ['3.0', '3.1', '3.2', '4.1', '4.2', '4.3', '5.0', '5.1', '5.2', 'v5.3']
}
SPECS_ASTROPY.update(
{
k: {
'python': '3.6',
'install': 'python -m pip install -e .[test] --verbose',
'packages': 'setuptools==38.2.4',
'pip_packages': [
'attrs==17.3.0',
'exceptiongroup==0.0.0a0',
'execnet==1.5.0',
'hypothesis==3.44.2',
'cython==0.27.3',
'jinja2==2.10',
'MarkupSafe==1.0',
'numpy==1.16.0',
'packaging==16.8',
'pluggy==0.6.0',
'psutil==5.4.2',
'pyerfa==1.7.0',
'pytest-arraydiff==0.1',
'pytest-astropy-header==0.1',
'pytest-astropy==0.2.1',
'pytest-cov==2.5.1',
'pytest-doctestplus==0.1.2',
'pytest-filter-subpackage==0.1',
'pytest-forked==0.2',
'pytest-mock==1.6.3',
'pytest-openfiles==0.2.0',
'pytest-remotedata==0.2.0',
'pytest-xdist==1.20.1',
'pytest==3.3.1',
'PyYAML==3.12',
'sortedcontainers==1.5.9',
'tomli==0.2.0',
],
'test_cmd': TEST_ASTROPY_PYTEST,
}
for k in ['0.1', '0.2', '0.3', '0.4', '1.1', '1.2', '1.3']
}
)
for k in ['4.1', '4.2', '4.3', '5.0', '5.1', '5.2', 'v5.3']:
SPECS_ASTROPY[k]['pre_install'] = [
'sed -i \'s/requires = \\["setuptools",/requires = \\["setuptools==68.0.0",/\' pyproject.toml'
]
for k in ['v5.3']:
SPECS_ASTROPY[k]['python'] = '3.10'
SPECS_SYMPY = {
k: {
'python': '3.9',
'packages': 'mpmath flake8',
'pip_packages': ['mpmath==1.3.0', 'flake8-comprehensions'],
'install': 'python -m pip install -e .',
'test_cmd': TEST_SYMPY,
}
for k in ['0.7', '1.0', '1.1', '1.10', '1.11', '1.12', '1.2', '1.4', '1.5', '1.6']
+ ['1.7', '1.8', '1.9']
+ ['1.10', '1.11', '1.12', '1.13', '1.14']
}
SPECS_SYMPY.update(
{
k: {
'python': '3.9',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'pip_packages': ['mpmath==1.3.0'],
'test_cmd': TEST_SYMPY,
}
for k in ['1.13', '1.14']
}
)
SPECS_PYLINT = {
k: {
'python': '3.9',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'test_cmd': TEST_PYTEST,
}
for k in [
'2.10',
'2.11',
'2.13',
'2.14',
'2.15',
'2.16',
'2.17',
'2.8',
'2.9',
'3.0',
'3.1',
'3.2',
'3.3',
'4.0',
]
}
SPECS_PYLINT['2.8']['pip_packages'] = ['pyenchant==3.2']
SPECS_PYLINT['2.8']['pre_install'] = [
'apt-get update && apt-get install -y libenchant-2-dev hunspell-en-us'
]
SPECS_PYLINT.update(
{
k: {
**SPECS_PYLINT[k],
'pip_packages': ['astroid==3.0.0a6', 'setuptools'],
}
for k in ['3.0', '3.1', '3.2', '3.3', '4.0']
}
)
for v in ['2.14', '2.15', '2.17', '3.0', '3.1', '3.2', '3.3', '4.0']:
SPECS_PYLINT[v]['nano_cpus'] = int(2e9)
SPECS_XARRAY = {
k: {
'python': '3.10',
'packages': 'environment.yml',
'install': 'python -m pip install -e .',
'pip_packages': [
'numpy==1.23.0',
'packaging==23.1',
'pandas==1.5.3',
'pytest==7.4.0',
'python-dateutil==2.8.2',
'pytz==2023.3',
'six==1.16.0',
'scipy==1.11.1',
'setuptools==68.0.0',
'dask==2022.8.1',
],
'no_use_env': True,
'test_cmd': TEST_PYTEST,
}
for k in [
'0.12',
'0.18',
'0.19',
'0.20',
'2022.03',
'2022.06',
'2022.09',
'2023.07',
'2024.05',
]
}
SPECS_SQLFLUFF = {
k: {
'python': '3.9',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'test_cmd': TEST_PYTEST,
}
for k in [
'0.10',
'0.11',
'0.12',
'0.13',
'0.4',
'0.5',
'0.6',
'0.8',
'0.9',
'1.0',
'1.1',
'1.2',
'1.3',
'1.4',
'2.0',
'2.1',
'2.2',
]
}
SPECS_DBT_CORE = {
k: {
'python': '3.9',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
}
for k in [
'0.13',
'0.14',
'0.15',
'0.16',
'0.17',
'0.18',
'0.19',
'0.20',
'0.21',
'1.0',
'1.1',
'1.2',
'1.3',
'1.4',
'1.5',
'1.6',
'1.7',
]
}
SPECS_PYVISTA = {
k: {
'python': '3.9',
'install': 'python -m pip install -e .',
'pip_packages': ['pytest'],
'test_cmd': TEST_PYTEST,
}
for k in ['0.20', '0.21', '0.22', '0.23']
}
SPECS_PYVISTA.update(
{
k: {
'python': '3.9',
'packages': 'requirements.txt',
'install': 'python -m pip install -e .',
'pip_packages': ['pytest'],
'test_cmd': TEST_PYTEST,
}
for k in [
'0.24',
'0.25',
'0.26',
'0.27',
'0.28',
'0.29',
'0.30',
'0.31',
'0.32',
'0.33',
'0.34',
'0.35',
'0.36',
'0.37',
'0.38',
'0.39',
'0.40',
'0.41',
'0.42',
'0.43',
]
}
)
SPECS_ASTROID = {
k: {
'python': '3.9',
'install': 'python -m pip install -e .',
'pip_packages': ['pytest'],
'test_cmd': TEST_PYTEST,
}
for k in [
'2.10',
'2.12',
'2.13',
'2.14',
'2.15',
'2.16',
'2.5',
'2.6',
'2.7',
'2.8',
'2.9',
'3.0',
]
}
SPECS_MARSHMALLOW = {
k: {
'python': '3.9',
'install': "python -m pip install -e '.[dev]'",
'test_cmd': TEST_PYTEST,
}
for k in [
'2.18',
'2.19',
'2.20',
'3.0',
'3.1',
'3.10',
'3.11',
'3.12',
'3.13',
'3.15',
'3.16',
'3.19',
'3.2',
'3.4',
'3.8',
'3.9',
]
}
SPECS_PVLIB = {
k: {
'python': '3.9',
'install': 'python -m pip install -e .[all]',
'packages': 'pandas scipy',
'pip_packages': ['jupyter', 'ipython', 'matplotlib', 'pytest', 'flake8'],
'test_cmd': TEST_PYTEST,
}
for k in ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9']
}
SPECS_PYDICOM = {
k: {
'python': '3.6',
'install': 'python -m pip install -e .',
'packages': 'numpy',
'pip_packages': ['pytest'],
'test_cmd': TEST_PYTEST,
}
for k in [
'1.0',
'1.1',
'1.2',
'1.3',
'1.4',
'2.0',
'2.1',
'2.2',
'2.3',
'2.4',
'3.0',
]
}
SPECS_PYDICOM.update({k: {**SPECS_PYDICOM[k], 'python': '3.8'} for k in ['1.4', '2.0']})
SPECS_PYDICOM.update({k: {**SPECS_PYDICOM[k], 'python': '3.9'} for k in ['2.1', '2.2']})
SPECS_PYDICOM.update({k: {**SPECS_PYDICOM[k], 'python': '3.10'} for k in ['2.3']})
SPECS_PYDICOM.update(
{k: {**SPECS_PYDICOM[k], 'python': '3.11'} for k in ['2.4', '3.0']}
)
SPECS_HUMANEVAL = {k: {'python': '3.9', 'test_cmd': 'python'} for k in ['1.0']}
# Constants - Task Instance Instllation Environment
MAP_REPO_VERSION_TO_SPECS: dict[str, dict[str, Any]] = {
'astropy/astropy': SPECS_ASTROPY,
'dbt-labs/dbt-core': SPECS_DBT_CORE,
'django/django': SPECS_DJANGO,
'matplotlib/matplotlib': SPECS_MATPLOTLIB,
'marshmallow-code/marshmallow': SPECS_MARSHMALLOW,
'mwaskom/seaborn': SPECS_SEABORN,
'pallets/flask': SPECS_FLASK,
'psf/requests': SPECS_REQUESTS,
'pvlib/pvlib-python': SPECS_PVLIB,
'pydata/xarray': SPECS_XARRAY,
'pydicom/pydicom': SPECS_PYDICOM,
'pylint-dev/astroid': SPECS_ASTROID,
'pylint-dev/pylint': SPECS_PYLINT,
'pytest-dev/pytest': SPECS_PYTEST,
'pyvista/pyvista': SPECS_PYVISTA,
'scikit-learn/scikit-learn': SPECS_SKLEARN,
'sphinx-doc/sphinx': SPECS_SPHINX,
'sqlfluff/sqlfluff': SPECS_SQLFLUFF,
'swe-bench/humaneval': SPECS_HUMANEVAL,
'sympy/sympy': SPECS_SYMPY,
}
# Constants - Repository Specific Installation Instructions
MAP_REPO_TO_INSTALL = {}
# Constants - Task Instance Requirements File Paths
MAP_REPO_TO_REQS_PATHS = {
'dbt-labs/dbt-core': ['dev-requirements.txt', 'dev_requirements.txt'],
'django/django': ['tests/requirements/py3.txt'],
'matplotlib/matplotlib': [
'requirements/dev/dev-requirements.txt',
'requirements/testing/travis_all.txt',
],
'pallets/flask': ['requirements/dev.txt'],
'pylint-dev/pylint': ['requirements_test.txt'],
'pyvista/pyvista': ['requirements_test.txt', 'requirements.txt'],
'sqlfluff/sqlfluff': ['requirements_dev.txt'],
'sympy/sympy': ['requirements-dev.txt', 'requirements-test.txt'],
}
# Constants - Task Instance environment.yml File Paths
MAP_REPO_TO_ENV_YML_PATHS = {
'matplotlib/matplotlib': ['environment.yml'],
'pydata/xarray': ['ci/requirements/environment.yml', 'environment.yml'],
}
# Constants - Evaluation Keys
KEY_INSTANCE_ID = 'instance_id'
KEY_MODEL = 'model_name_or_path'
KEY_PREDICTION = 'model_patch'
# Constants - Logging
APPLY_PATCH_FAIL = '>>>>> Patch Apply Failed'
APPLY_PATCH_PASS = '>>>>> Applied Patch'
INSTALL_FAIL = '>>>>> Init Failed'
INSTALL_PASS = '>>>>> Init Succeeded'
INSTALL_TIMEOUT = '>>>>> Init Timed Out'
RESET_FAILED = '>>>>> Reset Failed'
TESTS_ERROR = '>>>>> Tests Errored'
TESTS_FAILED = '>>>>> Some Tests Failed'
TESTS_PASSED = '>>>>> All Tests Passed'
TESTS_TIMEOUT = '>>>>> Tests Timed Out'
COVERAGE_PREFIX = '>>>>> Coverage'
TESTS_SUFFIX = '>>>>> Tests Finished'
# Constants - Patch Types
class PatchType(Enum):
PATCH_GOLD = 'gold'
PATCH_PRED = 'pred'
PATCH_PRED_TRY = 'pred_try'
PATCH_PRED_MINIMAL = 'pred_minimal'
PATCH_PRED_MINIMAL_TRY = 'pred_minimal_try'
PATCH_TEST = 'test'
def __str__(self):
return self.value
# Constants - Miscellaneous
NON_TEST_EXTS = [
'.json',
'.png',
'csv',
'.txt',
'.md',
'.jpg',
'.jpeg',
'.pkl',
'.yml',
'.yaml',
'.toml',
]
SWE_BENCH_URL_RAW = 'https://raw.githubusercontent.com/'
USE_X86 = {
'astropy__astropy-7973',
'django__django-10087',
'django__django-10097',
'django__django-10213',
'django__django-10301',
'django__django-10316',
'django__django-10426',
'django__django-11383',
'django__django-12185',
'django__django-12497',
'django__django-13121',
'django__django-13417',
'django__django-13431',
'django__django-13447',
'django__django-14155',
'django__django-14164',
'django__django-14169',
'django__django-14170',
'django__django-15180',
'django__django-15199',
'django__django-15280',
'django__django-15292',
'django__django-15474',
'django__django-15682',
'django__django-15689',
'django__django-15695',
'django__django-15698',
'django__django-15781',
'django__django-15925',
'django__django-15930',
'django__django-5158',
'django__django-5470',
'django__django-7188',
'django__django-7475',
'django__django-7530',
'django__django-8326',
'django__django-8961',
'django__django-9003',
'django__django-9703',
'django__django-9871',
'matplotlib__matplotlib-13983',
'matplotlib__matplotlib-13984',
'matplotlib__matplotlib-13989',
'matplotlib__matplotlib-14043',
'matplotlib__matplotlib-14471',
'matplotlib__matplotlib-22711',
'matplotlib__matplotlib-22719',
'matplotlib__matplotlib-22734',
'matplotlib__matplotlib-22767',
'matplotlib__matplotlib-22815',
'matplotlib__matplotlib-22835',
'matplotlib__matplotlib-22865',
'matplotlib__matplotlib-22871',
'matplotlib__matplotlib-22883',
'matplotlib__matplotlib-22926',
'matplotlib__matplotlib-22929',
'matplotlib__matplotlib-22931',
'matplotlib__matplotlib-22945',
'matplotlib__matplotlib-22991',
'matplotlib__matplotlib-23031',
'matplotlib__matplotlib-23047',
'matplotlib__matplotlib-23049',
'matplotlib__matplotlib-23057',
'matplotlib__matplotlib-23088',
'matplotlib__matplotlib-23111',
'matplotlib__matplotlib-23140',
'matplotlib__matplotlib-23174',
'matplotlib__matplotlib-23188',
'matplotlib__matplotlib-23198',
'matplotlib__matplotlib-23203',
'matplotlib__matplotlib-23266',
'matplotlib__matplotlib-23267',
'matplotlib__matplotlib-23288',
'matplotlib__matplotlib-23299',
'matplotlib__matplotlib-23314',
'matplotlib__matplotlib-23332',
'matplotlib__matplotlib-23348',
'matplotlib__matplotlib-23412',
'matplotlib__matplotlib-23476',
'matplotlib__matplotlib-23516',
'matplotlib__matplotlib-23562',
'matplotlib__matplotlib-23563',
'matplotlib__matplotlib-23573',
'matplotlib__matplotlib-23740',
'matplotlib__matplotlib-23742',
'matplotlib__matplotlib-23913',
'matplotlib__matplotlib-23964',
'matplotlib__matplotlib-23987',
'matplotlib__matplotlib-24013',
'matplotlib__matplotlib-24026',
'matplotlib__matplotlib-24088',
'matplotlib__matplotlib-24111',
'matplotlib__matplotlib-24149',
'matplotlib__matplotlib-24177',
'matplotlib__matplotlib-24189',
'matplotlib__matplotlib-24224',
'matplotlib__matplotlib-24250',
'matplotlib__matplotlib-24257',
'matplotlib__matplotlib-24265',
'matplotlib__matplotlib-24334',
'matplotlib__matplotlib-24362',
'matplotlib__matplotlib-24403',
'matplotlib__matplotlib-24431',
'matplotlib__matplotlib-24538',
'matplotlib__matplotlib-24570',
'matplotlib__matplotlib-24604',
'matplotlib__matplotlib-24619',
'matplotlib__matplotlib-24627',
'matplotlib__matplotlib-24637',
'matplotlib__matplotlib-24691',
'matplotlib__matplotlib-24749',
'matplotlib__matplotlib-24768',
'matplotlib__matplotlib-24849',
'matplotlib__matplotlib-24870',
'matplotlib__matplotlib-24912',
'matplotlib__matplotlib-24924',
'matplotlib__matplotlib-24970',
'matplotlib__matplotlib-24971',
'matplotlib__matplotlib-25027',
'matplotlib__matplotlib-25052',
'matplotlib__matplotlib-25079',
'matplotlib__matplotlib-25085',
'matplotlib__matplotlib-25122',
'matplotlib__matplotlib-25126',
'matplotlib__matplotlib-25129',
'matplotlib__matplotlib-25238',
'matplotlib__matplotlib-25281',
'matplotlib__matplotlib-25287',
'matplotlib__matplotlib-25311',
'matplotlib__matplotlib-25332',
'matplotlib__matplotlib-25334',
'matplotlib__matplotlib-25340',
'matplotlib__matplotlib-25346',
'matplotlib__matplotlib-25404',
'matplotlib__matplotlib-25405',
'matplotlib__matplotlib-25425',
'matplotlib__matplotlib-25430',
'matplotlib__matplotlib-25433',
'matplotlib__matplotlib-25442',
'matplotlib__matplotlib-25479',
'matplotlib__matplotlib-25498',
'matplotlib__matplotlib-25499',
'matplotlib__matplotlib-25515',
'matplotlib__matplotlib-25547',
'matplotlib__matplotlib-25551',
'matplotlib__matplotlib-25565',
'matplotlib__matplotlib-25624',
'matplotlib__matplotlib-25631',
'matplotlib__matplotlib-25640',
'matplotlib__matplotlib-25651',
'matplotlib__matplotlib-25667',
'matplotlib__matplotlib-25712',
'matplotlib__matplotlib-25746',
'matplotlib__matplotlib-25772',
'matplotlib__matplotlib-25775',
'matplotlib__matplotlib-25779',
'matplotlib__matplotlib-25785',
'matplotlib__matplotlib-25794',
'matplotlib__matplotlib-25859',
'matplotlib__matplotlib-25960',
'matplotlib__matplotlib-26011',
'matplotlib__matplotlib-26020',
'matplotlib__matplotlib-26024',
'matplotlib__matplotlib-26078',
'matplotlib__matplotlib-26089',
'matplotlib__matplotlib-26101',
'matplotlib__matplotlib-26113',
'matplotlib__matplotlib-26122',
'matplotlib__matplotlib-26160',
'matplotlib__matplotlib-26184',
'matplotlib__matplotlib-26208',
'matplotlib__matplotlib-26223',
'matplotlib__matplotlib-26232',
'matplotlib__matplotlib-26249',
'matplotlib__matplotlib-26278',
'matplotlib__matplotlib-26285',
'matplotlib__matplotlib-26291',
'matplotlib__matplotlib-26300',
'matplotlib__matplotlib-26311',
'matplotlib__matplotlib-26341',
'matplotlib__matplotlib-26342',
'matplotlib__matplotlib-26399',
'matplotlib__matplotlib-26466',
'matplotlib__matplotlib-26469',
'matplotlib__matplotlib-26472',
'matplotlib__matplotlib-26479',
'matplotlib__matplotlib-26532',
'pydata__xarray-2905',
'pydata__xarray-2922',
'pydata__xarray-3095',
'pydata__xarray-3114',
'pydata__xarray-3151',
'pydata__xarray-3156',
'pydata__xarray-3159',
'pydata__xarray-3239',
'pydata__xarray-3302',
'pydata__xarray-3305',
'pydata__xarray-3338',
'pydata__xarray-3364',
'pydata__xarray-3406',
'pydata__xarray-3520',
'pydata__xarray-3527',
'pydata__xarray-3631',
'pydata__xarray-3635',
'pydata__xarray-3637',
'pydata__xarray-3649',
'pydata__xarray-3677',
'pydata__xarray-3733',
'pydata__xarray-3812',
'pydata__xarray-3905',
'pydata__xarray-3976',
'pydata__xarray-3979',
'pydata__xarray-3993',
'pydata__xarray-4075',
'pydata__xarray-4094',
'pydata__xarray-4098',
'pydata__xarray-4182',
'pydata__xarray-4184',
'pydata__xarray-4248',
'pydata__xarray-4339',
'pydata__xarray-4356',
'pydata__xarray-4419',
'pydata__xarray-4423',
'pydata__xarray-4442',
'pydata__xarray-4493',
'pydata__xarray-4510',
'pydata__xarray-4629',
'pydata__xarray-4683',
'pydata__xarray-4684',
'pydata__xarray-4687',
'pydata__xarray-4695',
'pydata__xarray-4750',
'pydata__xarray-4758',
'pydata__xarray-4759',
'pydata__xarray-4767',
'pydata__xarray-4802',
'pydata__xarray-4819',
'pydata__xarray-4827',
'pydata__xarray-4879',
'pydata__xarray-4911',
'pydata__xarray-4939',
'pydata__xarray-4940',
'pydata__xarray-4966',
'pydata__xarray-4994',
'pydata__xarray-5033',
'pydata__xarray-5126',
'pydata__xarray-5131',
'pydata__xarray-5180',
'pydata__xarray-5187',
'pydata__xarray-5233',
'pydata__xarray-5362',
'pydata__xarray-5365',
'pydata__xarray-5455',
'pydata__xarray-5580',
'pydata__xarray-5662',
'pydata__xarray-5682',
'pydata__xarray-5731',
'pydata__xarray-6135',
'pydata__xarray-6386',
'pydata__xarray-6394',
'pydata__xarray-6400',
'pydata__xarray-6461',
'pydata__xarray-6548',
'pydata__xarray-6598',
'pydata__xarray-6599',
'pydata__xarray-6601',
'pydata__xarray-6721',
'pydata__xarray-6744',
'pydata__xarray-6798',
'pydata__xarray-6804',
'pydata__xarray-6823',
'pydata__xarray-6857',
'pydata__xarray-6882',
'pydata__xarray-6889',
'pydata__xarray-6938',
'pydata__xarray-6971',
'pydata__xarray-6992',
'pydata__xarray-6999',
'pydata__xarray-7003',
'pydata__xarray-7019',
'pydata__xarray-7052',
'pydata__xarray-7089',
'pydata__xarray-7101',
'pydata__xarray-7105',
'pydata__xarray-7112',
'pydata__xarray-7120',
'pydata__xarray-7147',
'pydata__xarray-7150',
'pydata__xarray-7179',
'pydata__xarray-7203',
'pydata__xarray-7229',
'pydata__xarray-7233',
'pydata__xarray-7347',
'pydata__xarray-7391',
'pydata__xarray-7393',
'pydata__xarray-7400',
'pydata__xarray-7444',
'pytest-dev__pytest-10482',
'scikit-learn__scikit-learn-10198',
'scikit-learn__scikit-learn-10297',
'scikit-learn__scikit-learn-10306',
'scikit-learn__scikit-learn-10331',
'scikit-learn__scikit-learn-10377',
'scikit-learn__scikit-learn-10382',
'scikit-learn__scikit-learn-10397',
'scikit-learn__scikit-learn-10427',
'scikit-learn__scikit-learn-10428',
'scikit-learn__scikit-learn-10443',
'scikit-learn__scikit-learn-10452',
'scikit-learn__scikit-learn-10459',
'scikit-learn__scikit-learn-10471',
'scikit-learn__scikit-learn-10483',
'scikit-learn__scikit-learn-10495',
'scikit-learn__scikit-learn-10508',
'scikit-learn__scikit-learn-10558',
'scikit-learn__scikit-learn-10577',
'scikit-learn__scikit-learn-10581',
'scikit-learn__scikit-learn-10687',
'scikit-learn__scikit-learn-10774',
'scikit-learn__scikit-learn-10777',
'scikit-learn__scikit-learn-10803',
'scikit-learn__scikit-learn-10844',
'scikit-learn__scikit-learn-10870',
'scikit-learn__scikit-learn-10881',
'scikit-learn__scikit-learn-10899',
'scikit-learn__scikit-learn-10908',
'scikit-learn__scikit-learn-10913',
'scikit-learn__scikit-learn-10949',
'scikit-learn__scikit-learn-10982',
'scikit-learn__scikit-learn-10986',
'scikit-learn__scikit-learn-11040',
'scikit-learn__scikit-learn-11042',
'scikit-learn__scikit-learn-11043',
'scikit-learn__scikit-learn-11151',
'scikit-learn__scikit-learn-11160',
'scikit-learn__scikit-learn-11206',
'scikit-learn__scikit-learn-11235',
'scikit-learn__scikit-learn-11243',
'scikit-learn__scikit-learn-11264',
'scikit-learn__scikit-learn-11281',
'scikit-learn__scikit-learn-11310',
'scikit-learn__scikit-learn-11315',
'scikit-learn__scikit-learn-11333',
'scikit-learn__scikit-learn-11346',
'scikit-learn__scikit-learn-11391',
'scikit-learn__scikit-learn-11496',
'scikit-learn__scikit-learn-11542',
'scikit-learn__scikit-learn-11574',
'scikit-learn__scikit-learn-11578',
'scikit-learn__scikit-learn-11585',
'scikit-learn__scikit-learn-11596',
'scikit-learn__scikit-learn-11635',
'scikit-learn__scikit-learn-12258',
'scikit-learn__scikit-learn-12421',
'scikit-learn__scikit-learn-12443',
'scikit-learn__scikit-learn-12462',
'scikit-learn__scikit-learn-12471',
'scikit-learn__scikit-learn-12486',
'scikit-learn__scikit-learn-12557',
'scikit-learn__scikit-learn-12583',
'scikit-learn__scikit-learn-12585',
'scikit-learn__scikit-learn-12625',
'scikit-learn__scikit-learn-12626',
'scikit-learn__scikit-learn-12656',
'scikit-learn__scikit-learn-12682',
'scikit-learn__scikit-learn-12704',
'scikit-learn__scikit-learn-12733',
'scikit-learn__scikit-learn-12758',
'scikit-learn__scikit-learn-12760',
'scikit-learn__scikit-learn-12784',
'scikit-learn__scikit-learn-12827',
'scikit-learn__scikit-learn-12834',
'scikit-learn__scikit-learn-12860',
'scikit-learn__scikit-learn-12908',
'scikit-learn__scikit-learn-12938',
'scikit-learn__scikit-learn-12961',
'scikit-learn__scikit-learn-12973',
'scikit-learn__scikit-learn-12983',
'scikit-learn__scikit-learn-12989',
'scikit-learn__scikit-learn-13010',
'scikit-learn__scikit-learn-13013',
'scikit-learn__scikit-learn-13017',
'scikit-learn__scikit-learn-13046',
'scikit-learn__scikit-learn-13087',
'scikit-learn__scikit-learn-13124',
'scikit-learn__scikit-learn-13135',
'scikit-learn__scikit-learn-13142',
'scikit-learn__scikit-learn-13143',
'scikit-learn__scikit-learn-13157',
'scikit-learn__scikit-learn-13165',
'scikit-learn__scikit-learn-13174',
'scikit-learn__scikit-learn-13221',
'scikit-learn__scikit-learn-13241',
'scikit-learn__scikit-learn-13253',
'scikit-learn__scikit-learn-13280',
'scikit-learn__scikit-learn-13283',
'scikit-learn__scikit-learn-13302',
'scikit-learn__scikit-learn-13313',
'scikit-learn__scikit-learn-13328',
'scikit-learn__scikit-learn-13333',
'scikit-learn__scikit-learn-13363',
'scikit-learn__scikit-learn-13368',
'scikit-learn__scikit-learn-13392',
'scikit-learn__scikit-learn-13436',
'scikit-learn__scikit-learn-13439',
'scikit-learn__scikit-learn-13447',
'scikit-learn__scikit-learn-13454',
'scikit-learn__scikit-learn-13467',
'scikit-learn__scikit-learn-13472',
'scikit-learn__scikit-learn-13485',
'scikit-learn__scikit-learn-13496',
'scikit-learn__scikit-learn-13497',
'scikit-learn__scikit-learn-13536',
'scikit-learn__scikit-learn-13549',
'scikit-learn__scikit-learn-13554',
'scikit-learn__scikit-learn-13584',
'scikit-learn__scikit-learn-13618',
'scikit-learn__scikit-learn-13620',
'scikit-learn__scikit-learn-13628',
'scikit-learn__scikit-learn-13641',
'scikit-learn__scikit-learn-13704',
'scikit-learn__scikit-learn-13726',
'scikit-learn__scikit-learn-13779',
'scikit-learn__scikit-learn-13780',
'scikit-learn__scikit-learn-13828',
'scikit-learn__scikit-learn-13864',
'scikit-learn__scikit-learn-13877',
'scikit-learn__scikit-learn-13910',
'scikit-learn__scikit-learn-13915',
'scikit-learn__scikit-learn-13933',
'scikit-learn__scikit-learn-13960',
'scikit-learn__scikit-learn-13974',
'scikit-learn__scikit-learn-13983',
'scikit-learn__scikit-learn-14012',
'scikit-learn__scikit-learn-14024',
'scikit-learn__scikit-learn-14053',
'scikit-learn__scikit-learn-14067',
'scikit-learn__scikit-learn-14087',
'scikit-learn__scikit-learn-14092',
'scikit-learn__scikit-learn-14114',
'scikit-learn__scikit-learn-14125',
'scikit-learn__scikit-learn-14141',
'scikit-learn__scikit-learn-14237',
'scikit-learn__scikit-learn-14309',
'scikit-learn__scikit-learn-14430',
'scikit-learn__scikit-learn-14450',
'scikit-learn__scikit-learn-14458',
'scikit-learn__scikit-learn-14464',
'scikit-learn__scikit-learn-14496',
'scikit-learn__scikit-learn-14520',
'scikit-learn__scikit-learn-14544',
'scikit-learn__scikit-learn-14591',
'scikit-learn__scikit-learn-14629',
'scikit-learn__scikit-learn-14704',
'scikit-learn__scikit-learn-14706',
'scikit-learn__scikit-learn-14710',
'scikit-learn__scikit-learn-14732',
'scikit-learn__scikit-learn-14764',
'scikit-learn__scikit-learn-14806',
'scikit-learn__scikit-learn-14869',
'scikit-learn__scikit-learn-14878',
'scikit-learn__scikit-learn-14890',
'scikit-learn__scikit-learn-14894',
'scikit-learn__scikit-learn-14898',
'scikit-learn__scikit-learn-14908',
'scikit-learn__scikit-learn-14983',
'scikit-learn__scikit-learn-14999',
'scikit-learn__scikit-learn-15028',
'scikit-learn__scikit-learn-15084',
'scikit-learn__scikit-learn-15086',
'scikit-learn__scikit-learn-15094',
'scikit-learn__scikit-learn-15096',
'scikit-learn__scikit-learn-15100',
'scikit-learn__scikit-learn-15119',
'scikit-learn__scikit-learn-15120',
'scikit-learn__scikit-learn-15138',
'scikit-learn__scikit-learn-15393',
'scikit-learn__scikit-learn-15495',
'scikit-learn__scikit-learn-15512',
'scikit-learn__scikit-learn-15524',
'scikit-learn__scikit-learn-15535',
'scikit-learn__scikit-learn-15625',
'scikit-learn__scikit-learn-3840',
'scikit-learn__scikit-learn-7760',
'scikit-learn__scikit-learn-8554',
'scikit-learn__scikit-learn-9274',
'scikit-learn__scikit-learn-9288',
'scikit-learn__scikit-learn-9304',
'scikit-learn__scikit-learn-9775',
'scikit-learn__scikit-learn-9939',
'sphinx-doc__sphinx-11311',
'sphinx-doc__sphinx-7910',
'sympy__sympy-12812',
'sympy__sympy-14248',
'sympy__sympy-15222',
'sympy__sympy-19201',
}
MUTATION_TEMPLATE = """[cosmic-ray]
module-path = "{source_fp}"
timeout = {timeout}
excluded-modules = []
test-command = "{test_cmd}"
[cosmic-ray.distributor]
name = "local"
"""
MUTATION_TIMEOUT = 3600
MUTATION_BUFFER = 500
UPDATE_TOX = r"""
add_coverage_tox() {
local config_file="$1"
# Check if the file exists
if [[ ! -f "$config_file" ]]; then
echo "Error: File $config_file does not exist."
return 1
fi
# Check if the [testenv] section exists
if ! grep -q "^\[testenv\]" "$config_file"; then
echo "Error: [testenv] section not found in $config_file."
return 1
fi
# Modify the commands in the [testenv] section
awk '
BEGIN { in_testenv = 0; commands_modified = 0 }
/^\[testenv\]/ { in_testenv = 1 }
in_testenv && /^commands\s*=/ {
# Start modifying commands
print $0
while (getline > 0) {
if ($0 ~ /^[[:space:]]*$/) break # Stop at the next empty line
if ($0 ~ /pytest/ && $0 !~ /--cov/) {
# Add --cov to pytest commands
sub(/pytest/, "pytest --cov sphinx", $0)
}
print " " $0
}
# Add coverage json command after pytest
if (commands_modified == 0) {
print " coverage json -o coverage.json"
commands_modified = 1
}
next
}
{ print }
' "$config_file" > "${config_file}.tmp" && mv "${config_file}.tmp" "$config_file"
echo ">> Coverage commands successfully added to $config_file."
}
"""