prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  checkov fails with junit-xml==1.8
  **Describe the bug**
  checkov fails with junit-xml==1.8
  
  **To Reproduce**
  Steps to reproduce the behavior:
  1. pip3 install junit-xml==1.8
  2. checkov -d .
  3. See error: 
  
  ```
  Traceback (most recent call last):
    File "/usr/local/bin/checkov", line 2, in <module>
      from checkov.main import run
    File "/opt/rh/rh-python38/root/usr/local/lib/python3.8/site-packages/checkov/main.py", line 12, in <module>
      from checkov.arm.runner import Runner as arm_runner
    File "/opt/rh/rh-python38/root/usr/local/lib/python3.8/site-packages/checkov/arm/runner.py", line 7, in <module>
      from checkov.common.output.report import Report
    File "/opt/rh/rh-python38/root/usr/local/lib/python3.8/site-packages/checkov/common/output/report.py", line 5, in <module>
      from junit_xml import TestCase, TestSuite, to_xml_report_string
  ImportError: cannot import name 'to_xml_report_string' from 'junit_xml' (/opt/rh/rh-python38/root/usr/local/lib/python3.8/site-packages/junit_xml/__init__.py)
  ```
  
  **Expected behavior**
  checkov runs fine with junit-xml==1.9 so a reasonable fix would be to pin that version (or greater) in setup.py install_requires.
  
  **Screenshots**
  If applicable, add screenshots to help explain your problem.
  
  **Desktop (please complete the following information):**
   - OS: RHEL 7
   - Checkov Version [e.g. 22]: 2.0.350
  
  **Additional context**
  Add any other context about the problem here (e.g. code snippets).
  
  
  </issue>
  <code>
  [start of setup.py]
  1 #!/usr/bin/env python
  2 import logging
  3 import os
  4 from importlib import util
  5 from os import path
  6 
  7 import setuptools
  8 from setuptools import setup
  9 
  10 # read the contents of your README file
  11 this_directory = path.abspath(path.dirname(__file__))
  12 with open(path.join(this_directory, "README.md"), encoding="utf-8") as f:
  13     long_description = f.read()
  14 
  15 logger = logging.getLogger(__name__)
  16 spec = util.spec_from_file_location(
  17     "checkov.version", os.path.join("checkov", "version.py")
  18 )
  19 # noinspection PyUnresolvedReferences
  20 mod = util.module_from_spec(spec)
  21 spec.loader.exec_module(mod)  # type: ignore
  22 version = mod.version  # type: ignore
  23 
  24 setup(
  25     extras_require={
  26         "dev": [
  27             "pytest==5.3.1",
  28             "coverage",
  29             "coverage-badge",
  30             "GitPython==3.1.7",
  31             "bandit",
  32             "jsonschema",
  33         ]
  34     },
  35     install_requires=[
  36         "bc-python-hcl2>=0.3.18",
  37         "cloudsplaining>=0.4.1",
  38         "deep_merge",
  39         "tabulate",
  40         "colorama",
  41         "termcolor",
  42         "junit-xml",
  43         "dpath>=1.5.0,<2",
  44         "pyyaml>=5.4.1",
  45         "boto3==1.17.*",
  46         "GitPython",
  47         "six==1.15.0",
  48         "jmespath",
  49         "tqdm",
  50         "update_checker",
  51         "semantic_version",
  52         "packaging",
  53         "networkx",
  54         "dockerfile-parse",
  55         "docker",
  56         "configargparse",
  57         "detect-secrets",
  58         "policyuniverse",
  59         "typing-extensions",
  60     ],
  61     license="Apache License 2.0",
  62     name="checkov",
  63     version=version,
  64     python_requires=">=3.7",
  65     description="Infrastructure as code static analysis",
  66     author="bridgecrew",
  67     author_email="meet@bridgecrew.io",
  68     url="https://github.com/bridgecrewio/checkov",
  69     packages=setuptools.find_packages(exclude=["tests*", "integration_tests*"]),
  70     include_package_data=True,
  71     package_dir={
  72         "checkov.terraform.checks.graph_checks": "checkov/terraform/checks/graph_checks"
  73     },
  74     package_data={
  75         "checkov.terraform.checks.graph_checks": [
  76             "aws/*.yaml",
  77             "gcp/*.yaml",
  78             "azure/*.yaml",
  79         ]
  80     },
  81     scripts=["bin/checkov", "bin/checkov.cmd"],
  82     long_description=long_description,
  83     long_description_content_type="text/markdown",
  84     classifiers=[
  85         "Environment :: Console",
  86         "Intended Audience :: Developers",
  87         "Intended Audience :: System Administrators",
  88         "Programming Language :: Python :: 3.7",
  89         "Programming Language :: Python :: 3.8",
  90         "Programming Language :: Python :: 3.9",
  91         "Topic :: Security",
  92         "Topic :: Software Development :: Build Tools",
  93     ],
  94 )
  95
  [end of setup.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/setup.py b/setup.py
  --- a/setup.py
  +++ b/setup.py
  @@ -39,7 +39,7 @@
           "tabulate",
           "colorama",
           "termcolor",
  -        "junit-xml",
  +        "junit-xml>=1.9",
           "dpath>=1.5.0,<2",
           "pyyaml>=5.4.1",
           "boto3==1.17.*",
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -39,7 +39,7 @@\n         \"tabulate\",\n         \"colorama\",\n         \"termcolor\",\n-        \"junit-xml\",\n+        \"junit-xml>=1.9\",\n         \"dpath>=1.5.0,<2\",\n         \"pyyaml>=5.4.1\",\n         \"boto3==1.17.*\",\n", "issue": "checkov fails with junit-xml==1.8\n**Describe the bug**\r\ncheckov fails with junit-xml==1.8\r\n\r\n**To Reproduce**\r\nSteps to reproduce the behavior:\r\n1. pip3 install junit-xml==1.8\r\n2. checkov -d .\r\n3. See error: \r\n\r\n```\r\nTraceback (most recent call last):\r\n  File \"/usr/local/bin/checkov\", line 2, in <module>\r\n    from checkov.main import run\r\n  File \"/opt/rh/rh-python38/root/usr/local/lib/python3.8/site-packages/checkov/main.py\", line 12, in <module>\r\n    from checkov.arm.runner import Runner as arm_runner\r\n  File \"/opt/rh/rh-python38/root/usr/local/lib/python3.8/site-packages/checkov/arm/runner.py\", line 7, in <module>\r\n    from checkov.common.output.report import Report\r\n  File \"/opt/rh/rh-python38/root/usr/local/lib/python3.8/site-packages/checkov/common/output/report.py\", line 5, in <module>\r\n    from junit_xml import TestCase, TestSuite, to_xml_report_string\r\nImportError: cannot import name 'to_xml_report_string' from 'junit_xml' (/opt/rh/rh-python38/root/usr/local/lib/python3.8/site-packages/junit_xml/__init__.py)\r\n```\r\n\r\n**Expected behavior**\r\ncheckov runs fine with junit-xml==1.9 so a reasonable fix would be to pin that version (or greater) in setup.py install_requires.\r\n\r\n**Screenshots**\r\nIf applicable, add screenshots to help explain your problem.\r\n\r\n**Desktop (please complete the following information):**\r\n - OS: RHEL 7\r\n - Checkov Version [e.g. 22]: 2.0.350\r\n\r\n**Additional context**\r\nAdd any other context about the problem here (e.g. code snippets).\r\n\n", "before_files": [{"content": "#!/usr/bin/env python\nimport logging\nimport os\nfrom importlib import util\nfrom os import path\n\nimport setuptools\nfrom setuptools import setup\n\n# read the contents of your README file\nthis_directory = path.abspath(path.dirname(__file__))\nwith open(path.join(this_directory, \"README.md\"), encoding=\"utf-8\") as f:\n    long_description = f.read()\n\nlogger = logging.getLogger(__name__)\nspec = util.spec_from_file_location(\n    \"checkov.version\", os.path.join(\"checkov\", \"version.py\")\n)\n# noinspection PyUnresolvedReferences\nmod = util.module_from_spec(spec)\nspec.loader.exec_module(mod)  # type: ignore\nversion = mod.version  # type: ignore\n\nsetup(\n    extras_require={\n        \"dev\": [\n            \"pytest==5.3.1\",\n            \"coverage\",\n            \"coverage-badge\",\n            \"GitPython==3.1.7\",\n            \"bandit\",\n            \"jsonschema\",\n        ]\n    },\n    install_requires=[\n        \"bc-python-hcl2>=0.3.18\",\n        \"cloudsplaining>=0.4.1\",\n        \"deep_merge\",\n        \"tabulate\",\n        \"colorama\",\n        \"termcolor\",\n        \"junit-xml\",\n        \"dpath>=1.5.0,<2\",\n        \"pyyaml>=5.4.1\",\n        \"boto3==1.17.*\",\n        \"GitPython\",\n        \"six==1.15.0\",\n        \"jmespath\",\n        \"tqdm\",\n        \"update_checker\",\n        \"semantic_version\",\n        \"packaging\",\n        \"networkx\",\n        \"dockerfile-parse\",\n        \"docker\",\n        \"configargparse\",\n        \"detect-secrets\",\n        \"policyuniverse\",\n        \"typing-extensions\",\n    ],\n    license=\"Apache License 2.0\",\n    name=\"checkov\",\n    version=version,\n    python_requires=\">=3.7\",\n    description=\"Infrastructure as code static analysis\",\n    author=\"bridgecrew\",\n    author_email=\"meet@bridgecrew.io\",\n    url=\"https://github.com/bridgecrewio/checkov\",\n    packages=setuptools.find_packages(exclude=[\"tests*\", \"integration_tests*\"]),\n    include_package_data=True,\n    package_dir={\n        \"checkov.terraform.checks.graph_checks\": \"checkov/terraform/checks/graph_checks\"\n    },\n    package_data={\n        \"checkov.terraform.checks.graph_checks\": [\n            \"aws/*.yaml\",\n            \"gcp/*.yaml\",\n            \"azure/*.yaml\",\n        ]\n    },\n    scripts=[\"bin/checkov\", \"bin/checkov.cmd\"],\n    long_description=long_description,\n    long_description_content_type=\"text/markdown\",\n    classifiers=[\n        \"Environment :: Console\",\n        \"Intended Audience :: Developers\",\n        \"Intended Audience :: System Administrators\",\n        \"Programming Language :: Python :: 3.7\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Programming Language :: Python :: 3.9\",\n        \"Topic :: Security\",\n        \"Topic :: Software Development :: Build Tools\",\n    ],\n)\n", "path": "setup.py"}]}