prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  [DOC] Clarify Python version requirements
  # Brief Description of Fix
  
  I was looking through documentation (for users and contributors), and it was unclear to me which python versions we actually support. It seems that we support python 3.6 + 3.7. This arose as I was updating the `pyproject.toml` file to avoid the warning:
  ```
  --py36 is deprecated and will be removed in a future version. Use --target-version py36 instead.
  ```
  
  Our current locations of explicit python versions are in:
  - `pyproject.toml`
      - `py36 = true`
  - `environment-dev.yml`
      - `- python >= 3.6`
  - `.azure-pipelines/pipeline-master.yml`
      - `python.version: "3.7"`
  
  # Proposed Fix
  
  If `pyjanitor` is in fact meant to function on 3.6+, we should
  - Explicitly inform contributors that their code should be 3.6+ compatible
  - Inform users which python versions the package requires, on the documentation site, PyPI etc
  - Add `python_requires=">=3.6"` to `setup.py`
  
  
  </issue>
  <code>
  [start of setup.py]
  1 from setuptools import setup
  2 
  3 
  4 def requirements():
  5     with open("requirements.txt", "r+") as f:
  6         return f.read()
  7 
  8 
  9 setup(
  10     name="pyjanitor",
  11     version="0.18.0",
  12     description="Tools for cleaning pandas DataFrames",
  13     author="Eric J. Ma",
  14     author_email="ericmajinglong@gmail.com",
  15     url="https://github.com/ericmjl/pyjanitor",
  16     packages=["janitor"],
  17     install_requires=requirements(),
  18 )
  19
  [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
  @@ -15,4 +15,5 @@
       url="https://github.com/ericmjl/pyjanitor",
       packages=["janitor"],
       install_requires=requirements(),
  +    python_requires=">=3.6",
   )
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -15,4 +15,5 @@\n     url=\"https://github.com/ericmjl/pyjanitor\",\n     packages=[\"janitor\"],\n     install_requires=requirements(),\n+    python_requires=\">=3.6\",\n )\n", "issue": "[DOC] Clarify Python version requirements\n# Brief Description of Fix\r\n\r\nI was looking through documentation (for users and contributors), and it was unclear to me which python versions we actually support. It seems that we support python 3.6 + 3.7. This arose as I was updating the `pyproject.toml` file to avoid the warning:\r\n```\r\n--py36 is deprecated and will be removed in a future version. Use --target-version py36 instead.\r\n```\r\n\r\nOur current locations of explicit python versions are in:\r\n- `pyproject.toml`\r\n    - `py36 = true`\r\n- `environment-dev.yml`\r\n    - `- python >= 3.6`\r\n- `.azure-pipelines/pipeline-master.yml`\r\n    - `python.version: \"3.7\"`\r\n\r\n# Proposed Fix\r\n\r\nIf `pyjanitor` is in fact meant to function on 3.6+, we should\r\n- Explicitly inform contributors that their code should be 3.6+ compatible\r\n- Inform users which python versions the package requires, on the documentation site, PyPI etc\r\n- Add `python_requires=\">=3.6\"` to `setup.py`\r\n\n", "before_files": [{"content": "from setuptools import setup\n\n\ndef requirements():\n    with open(\"requirements.txt\", \"r+\") as f:\n        return f.read()\n\n\nsetup(\n    name=\"pyjanitor\",\n    version=\"0.18.0\",\n    description=\"Tools for cleaning pandas DataFrames\",\n    author=\"Eric J. Ma\",\n    author_email=\"ericmajinglong@gmail.com\",\n    url=\"https://github.com/ericmjl/pyjanitor\",\n    packages=[\"janitor\"],\n    install_requires=requirements(),\n)\n", "path": "setup.py"}]}