prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  PEP 561 compatibility
  Hi,
  
  Would it be possible to make hydra-zen compliant with [PEP 561](https://www.python.org/dev/peps/pep-0561) by distributing a `py.typed` file with the package?
  
  Currently I'm getting `Skipping analyzing "hydra_zen": found module but no type hints or library stubs` when I run mypy on a test file. Here are steps to reproduce this error:
  ```text
  $ pip install hydra-zen mypy
  ...
  Successfully installed PyYAML-5.4.1 antlr4-python3-runtime-4.8 hydra-core-1.1.1 hydra-zen-0.2.0 mypy-0.910 mypy-extensions-0.4.3 omegaconf-2.1.1 toml-0.10.2 typing-extensions-3.10.0.2
  ...
  $ echo "from hydra_zen import builds" > tmp.py
  $ mypy tmp.py
  tmp.py:1: error: Skipping analyzing "hydra_zen": found module but no type hints or library stubs
  tmp.py:1: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
  Found 1 error in 1 file (checked 1 source file)
  ```
  
  I believe that adding an empty `py.typed` file to the `src/hydra_zen` directory (and modifying `setup.py` so that the `py.typed` file is distributed with the `hydra-zen` package) would make it possible for type checkers following PEP 561 to discover the type hints in `src`.
  (I'd be happy to submit a PR to this effect.)
  
  </issue>
  <code>
  [start of setup.py]
  1 # Copyright (c) 2021 Massachusetts Institute of Technology
  2 # SPDX-License-Identifier: MIT
  3 
  4 from setuptools import find_packages, setup
  5 
  6 import versioneer
  7 
  8 DISTNAME = "hydra_zen"
  9 LICENSE = "MIT"
  10 AUTHOR = "Justin Goodwin, Ryan Soklaski"
  11 AUTHOR_EMAIL = "ryan.soklaski@ll.mit.edu"
  12 URL = "https://github.com/mit-ll-responsible-ai/hydra_zen"
  13 CLASSIFIERS = [
  14     "Development Status :: 4 - Beta",
  15     "License :: OSI Approved :: MIT License",
  16     "Operating System :: OS Independent",
  17     "Intended Audience :: Science/Research",
  18     "Programming Language :: Python :: 3.6",
  19     "Programming Language :: Python :: 3.7",
  20     "Programming Language :: Python :: 3.8",
  21     "Programming Language :: Python :: 3.9",
  22     "Topic :: Scientific/Engineering",
  23 ]
  24 KEYWORDS = "machine learning research configuration scalable reproducible"
  25 INSTALL_REQUIRES = [
  26     "hydra-core >= 1.1.0",
  27     "typing-extensions >= 3.7.4.1",
  28 ]
  29 TESTS_REQUIRE = [
  30     "pytest >= 3.8",
  31     "hypothesis >= 5.32.0",
  32 ]
  33 
  34 DESCRIPTION = "Utilities for making hydra scale to ML workflows"
  35 LONG_DESCRIPTION = """
  36 hydra-zen helps you configure your project using the power of Hydra, while enjoying the Zen of Python!
  37 
  38 hydra-zen eliminates the boilerplate code that you write to configure, orchestrate, and organize the results of large-scale projects, such as machine learning experiments. It does so by providing Hydra-compatible tools that dynamically generate "structured configurations" of your code, and enables Python-centric workflows for running configured instances of your code.
  39 
  40 hydra-zen offers:
  41 
  42     - Functions for automatically and dynamically generating structured configs that can be used to fully or partially instantiate objects in your application.
  43     - The ability to launch Hydra jobs, complete with parameter sweeps and multi-run configurations, from within a notebook or any other Python environment.
  44     - Incisive type annotations that provide enriched context about your project's configurations to IDEs, type checkers, and other tooling.
  45     - Runtime validation of configurations to catch mistakes before your application launches.
  46     - Equal support for both object-oriented libraries (e.g., torch.nn) and functional ones (e.g., jax and numpy).
  47 
  48 These functions and capabilities can be used to great effect alongside PyTorch Lightning to design boilerplate-free machine learning projects!
  49 """
  50 
  51 
  52 setup(
  53     name=DISTNAME,
  54     version=versioneer.get_version(),
  55     cmdclass=versioneer.get_cmdclass(),
  56     license=LICENSE,
  57     author=AUTHOR,
  58     author_email=AUTHOR_EMAIL,
  59     classifiers=CLASSIFIERS,
  60     keywords=KEYWORDS,
  61     description=DESCRIPTION,
  62     long_description=LONG_DESCRIPTION,
  63     install_requires=INSTALL_REQUIRES,
  64     tests_require=TESTS_REQUIRE,
  65     url=URL,
  66     download_url="https://github.com/mit-ll-responsible-ai/hydra-zen/tarball/"
  67     + versioneer.get_version(),
  68     python_requires=">=3.6",
  69     packages=find_packages(where="src", exclude=["tests", "tests.*"]),
  70     package_dir={"": "src"},
  71 )
  72
  [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
  @@ -68,4 +68,5 @@
       python_requires=">=3.6",
       packages=find_packages(where="src", exclude=["tests", "tests.*"]),
       package_dir={"": "src"},
  +    package_data={"hydra_zen": ["py.typed"]}
   )
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -68,4 +68,5 @@\n     python_requires=\">=3.6\",\n     packages=find_packages(where=\"src\", exclude=[\"tests\", \"tests.*\"]),\n     package_dir={\"\": \"src\"},\n+    package_data={\"hydra_zen\": [\"py.typed\"]}\n )\n", "issue": "PEP 561 compatibility\nHi,\r\n\r\nWould it be possible to make hydra-zen compliant with [PEP 561](https://www.python.org/dev/peps/pep-0561) by distributing a `py.typed` file with the package?\r\n\r\nCurrently I'm getting `Skipping analyzing \"hydra_zen\": found module but no type hints or library stubs` when I run mypy on a test file. Here are steps to reproduce this error:\r\n```text\r\n$ pip install hydra-zen mypy\r\n...\r\nSuccessfully installed PyYAML-5.4.1 antlr4-python3-runtime-4.8 hydra-core-1.1.1 hydra-zen-0.2.0 mypy-0.910 mypy-extensions-0.4.3 omegaconf-2.1.1 toml-0.10.2 typing-extensions-3.10.0.2\r\n...\r\n$ echo \"from hydra_zen import builds\" > tmp.py\r\n$ mypy tmp.py\r\ntmp.py:1: error: Skipping analyzing \"hydra_zen\": found module but no type hints or library stubs\r\ntmp.py:1: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports\r\nFound 1 error in 1 file (checked 1 source file)\r\n```\r\n\r\nI believe that adding an empty `py.typed` file to the `src/hydra_zen` directory (and modifying `setup.py` so that the `py.typed` file is distributed with the `hydra-zen` package) would make it possible for type checkers following PEP 561 to discover the type hints in `src`.\r\n(I'd be happy to submit a PR to this effect.)\n", "before_files": [{"content": "# Copyright (c) 2021 Massachusetts Institute of Technology\n# SPDX-License-Identifier: MIT\n\nfrom setuptools import find_packages, setup\n\nimport versioneer\n\nDISTNAME = \"hydra_zen\"\nLICENSE = \"MIT\"\nAUTHOR = \"Justin Goodwin, Ryan Soklaski\"\nAUTHOR_EMAIL = \"ryan.soklaski@ll.mit.edu\"\nURL = \"https://github.com/mit-ll-responsible-ai/hydra_zen\"\nCLASSIFIERS = [\n    \"Development Status :: 4 - Beta\",\n    \"License :: OSI Approved :: MIT License\",\n    \"Operating System :: OS Independent\",\n    \"Intended Audience :: Science/Research\",\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    \"Topic :: Scientific/Engineering\",\n]\nKEYWORDS = \"machine learning research configuration scalable reproducible\"\nINSTALL_REQUIRES = [\n    \"hydra-core >= 1.1.0\",\n    \"typing-extensions >= 3.7.4.1\",\n]\nTESTS_REQUIRE = [\n    \"pytest >= 3.8\",\n    \"hypothesis >= 5.32.0\",\n]\n\nDESCRIPTION = \"Utilities for making hydra scale to ML workflows\"\nLONG_DESCRIPTION = \"\"\"\nhydra-zen helps you configure your project using the power of Hydra, while enjoying the Zen of Python!\n\nhydra-zen eliminates the boilerplate code that you write to configure, orchestrate, and organize the results of large-scale projects, such as machine learning experiments. It does so by providing Hydra-compatible tools that dynamically generate \"structured configurations\" of your code, and enables Python-centric workflows for running configured instances of your code.\n\nhydra-zen offers:\n\n    - Functions for automatically and dynamically generating structured configs that can be used to fully or partially instantiate objects in your application.\n    - The ability to launch Hydra jobs, complete with parameter sweeps and multi-run configurations, from within a notebook or any other Python environment.\n    - Incisive type annotations that provide enriched context about your project's configurations to IDEs, type checkers, and other tooling.\n    - Runtime validation of configurations to catch mistakes before your application launches.\n    - Equal support for both object-oriented libraries (e.g., torch.nn) and functional ones (e.g., jax and numpy).\n\nThese functions and capabilities can be used to great effect alongside PyTorch Lightning to design boilerplate-free machine learning projects!\n\"\"\"\n\n\nsetup(\n    name=DISTNAME,\n    version=versioneer.get_version(),\n    cmdclass=versioneer.get_cmdclass(),\n    license=LICENSE,\n    author=AUTHOR,\n    author_email=AUTHOR_EMAIL,\n    classifiers=CLASSIFIERS,\n    keywords=KEYWORDS,\n    description=DESCRIPTION,\n    long_description=LONG_DESCRIPTION,\n    install_requires=INSTALL_REQUIRES,\n    tests_require=TESTS_REQUIRE,\n    url=URL,\n    download_url=\"https://github.com/mit-ll-responsible-ai/hydra-zen/tarball/\"\n    + versioneer.get_version(),\n    python_requires=\">=3.6\",\n    packages=find_packages(where=\"src\", exclude=[\"tests\", \"tests.*\"]),\n    package_dir={\"\": \"src\"},\n)\n", "path": "setup.py"}]}