prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Request for tar file for lib in pypi.
  _(Note, you don't have to fill out every section here. They're just here for guidance. That said, nicely detailed feature requests are more likely to get eng attention sooner)_
  
  ### Problem
  
  As of now for streamlit , we have only wheels file in pypi. Can the streamlit team add tar file as well. 
  
  https://pypi.org/project/streamlit/#files 
  
  ### Solution
  
  Create a sdist ( tar ) of the package and make it avaliable in pypi
  https://realpython.com/pypi-publish-python-package/ 
  
  ### Additional context
  
  Add any other context or screenshots about the feature request here. For example, did this FR come from https://discuss.streamlit.io or another site? Link the original source here!
  
  
  </issue>
  <code>
  [start of lib/setup.py]
  1 import os
  2 import platform
  3 import setuptools
  4 import subprocess
  5 import sys
  6 
  7 from pipenv.project import Project
  8 from pipenv.utils import convert_deps_to_pip
  9 from setuptools.command.install import install
  10 
  11 VERSION = "0.69.2"  # PEP-440
  12 
  13 NAME = "streamlit"
  14 
  15 DESCRIPTION = "The fastest way to build data apps in Python"
  16 
  17 LONG_DESCRIPTION = (
  18     "Streamlit's open-source app framework is the easiest way "
  19     "for data scientists and machine learning engineers to "
  20     "create beautiful, performant apps in only a few hours! "
  21     "All in pure Python. All for free."
  22 )
  23 
  24 pipfile = Project(chdir=False).parsed_pipfile
  25 
  26 packages = pipfile["packages"].copy()
  27 requirements = convert_deps_to_pip(packages, r=False)
  28 
  29 # Check whether xcode tools are available before making watchdog a
  30 # dependency (only if the current system is a Mac).
  31 if platform.system() == "Darwin":
  32     has_xcode = subprocess.call(["xcode-select", "--version"], shell=False) == 0
  33     has_gcc = subprocess.call(["gcc", "--version"], shell=False) == 0
  34 
  35     if not (has_xcode and has_gcc):
  36         try:
  37             requirements.remove("watchdog")
  38         except ValueError:
  39             pass
  40 
  41 
  42 class VerifyVersionCommand(install):
  43     """Custom command to verify that the git tag matches our version"""
  44 
  45     description = "verify that the git tag matches our version"
  46 
  47     def run(self):
  48         tag = os.getenv("CIRCLE_TAG")
  49 
  50         if tag != VERSION:
  51             info = "Git tag: {0} does not match the version of this app: {1}".format(
  52                 tag, VERSION
  53             )
  54             sys.exit(info)
  55 
  56 
  57 setuptools.setup(
  58     name=NAME,
  59     version=VERSION,
  60     description=DESCRIPTION,
  61     long_description=LONG_DESCRIPTION,
  62     url="https://streamlit.io",
  63     author="Streamlit Inc",
  64     author_email="hello@streamlit.io",
  65     python_requires=">=3.6",
  66     license="Apache 2",
  67     packages=setuptools.find_packages(exclude=["tests", "tests.*"]),
  68     # Requirements
  69     install_requires=requirements,
  70     zip_safe=False,  # install source files not egg
  71     include_package_data=True,  # copy html and friends
  72     entry_points={"console_scripts": ["streamlit = streamlit.cli:main"]},
  73     # For Windows so that streamlit * commands work ie.
  74     # - streamlit version
  75     # - streamlit hello
  76     scripts=["bin/streamlit.cmd"],
  77     cmdclass={
  78         "verify": VerifyVersionCommand,
  79     },
  80 )
  81
  [end of lib/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/lib/setup.py b/lib/setup.py
  --- a/lib/setup.py
  +++ b/lib/setup.py
  @@ -4,10 +4,17 @@
   import subprocess
   import sys
   
  -from pipenv.project import Project
  -from pipenv.utils import convert_deps_to_pip
   from setuptools.command.install import install
   
  +try:
  +    from pipenv.project import Project
  +    from pipenv.utils import convert_deps_to_pip
  +except:
  +    exit_msg = (
  +        "pipenv is required to package Streamlit. Please install pipenv and try again"
  +    )
  +    sys.exit(exit_msg)
  +
   VERSION = "0.69.2"  # PEP-440
   
   NAME = "streamlit"
  
verification_info: {"golden_diff": "diff --git a/lib/setup.py b/lib/setup.py\n--- a/lib/setup.py\n+++ b/lib/setup.py\n@@ -4,10 +4,17 @@\n import subprocess\n import sys\n \n-from pipenv.project import Project\n-from pipenv.utils import convert_deps_to_pip\n from setuptools.command.install import install\n \n+try:\n+    from pipenv.project import Project\n+    from pipenv.utils import convert_deps_to_pip\n+except:\n+    exit_msg = (\n+        \"pipenv is required to package Streamlit. Please install pipenv and try again\"\n+    )\n+    sys.exit(exit_msg)\n+\n VERSION = \"0.69.2\"  # PEP-440\n \n NAME = \"streamlit\"\n", "issue": "Request for tar file for lib in pypi.\n_(Note, you don't have to fill out every section here. They're just here for guidance. That said, nicely detailed feature requests are more likely to get eng attention sooner)_\r\n\r\n### Problem\r\n\r\nAs of now for streamlit , we have only wheels file in pypi. Can the streamlit team add tar file as well. \r\n\r\nhttps://pypi.org/project/streamlit/#files \r\n\r\n### Solution\r\n\r\nCreate a sdist ( tar ) of the package and make it avaliable in pypi\r\nhttps://realpython.com/pypi-publish-python-package/ \r\n\r\n### Additional context\r\n\r\nAdd any other context or screenshots about the feature request here. For example, did this FR come from https://discuss.streamlit.io or another site? Link the original source here!\r\n\n", "before_files": [{"content": "import os\nimport platform\nimport setuptools\nimport subprocess\nimport sys\n\nfrom pipenv.project import Project\nfrom pipenv.utils import convert_deps_to_pip\nfrom setuptools.command.install import install\n\nVERSION = \"0.69.2\"  # PEP-440\n\nNAME = \"streamlit\"\n\nDESCRIPTION = \"The fastest way to build data apps in Python\"\n\nLONG_DESCRIPTION = (\n    \"Streamlit's open-source app framework is the easiest way \"\n    \"for data scientists and machine learning engineers to \"\n    \"create beautiful, performant apps in only a few hours! \"\n    \"All in pure Python. All for free.\"\n)\n\npipfile = Project(chdir=False).parsed_pipfile\n\npackages = pipfile[\"packages\"].copy()\nrequirements = convert_deps_to_pip(packages, r=False)\n\n# Check whether xcode tools are available before making watchdog a\n# dependency (only if the current system is a Mac).\nif platform.system() == \"Darwin\":\n    has_xcode = subprocess.call([\"xcode-select\", \"--version\"], shell=False) == 0\n    has_gcc = subprocess.call([\"gcc\", \"--version\"], shell=False) == 0\n\n    if not (has_xcode and has_gcc):\n        try:\n            requirements.remove(\"watchdog\")\n        except ValueError:\n            pass\n\n\nclass VerifyVersionCommand(install):\n    \"\"\"Custom command to verify that the git tag matches our version\"\"\"\n\n    description = \"verify that the git tag matches our version\"\n\n    def run(self):\n        tag = os.getenv(\"CIRCLE_TAG\")\n\n        if tag != VERSION:\n            info = \"Git tag: {0} does not match the version of this app: {1}\".format(\n                tag, VERSION\n            )\n            sys.exit(info)\n\n\nsetuptools.setup(\n    name=NAME,\n    version=VERSION,\n    description=DESCRIPTION,\n    long_description=LONG_DESCRIPTION,\n    url=\"https://streamlit.io\",\n    author=\"Streamlit Inc\",\n    author_email=\"hello@streamlit.io\",\n    python_requires=\">=3.6\",\n    license=\"Apache 2\",\n    packages=setuptools.find_packages(exclude=[\"tests\", \"tests.*\"]),\n    # Requirements\n    install_requires=requirements,\n    zip_safe=False,  # install source files not egg\n    include_package_data=True,  # copy html and friends\n    entry_points={\"console_scripts\": [\"streamlit = streamlit.cli:main\"]},\n    # For Windows so that streamlit * commands work ie.\n    # - streamlit version\n    # - streamlit hello\n    scripts=[\"bin/streamlit.cmd\"],\n    cmdclass={\n        \"verify\": VerifyVersionCommand,\n    },\n)\n", "path": "lib/setup.py"}]}