prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Bug: Running `starlite run` after installing starlite[cli] gives error about missing cryptography package
  The error is here:
  ```
  Traceback (most recent call last):
    File "C:\Users\hanne\Documents\Programme\analyze-wiktionary\.venv\lib\site-packages\starlite\middleware\session\cookie_backend.py", line 20, 
  in <module>
      from cryptography.exceptions import InvalidTag
  ModuleNotFoundError: No module named 'cryptography'
  
  The above exception was the direct cause of the following exception:
  
  Traceback (most recent call last):
    File "C:\Python310\lib\runpy.py", line 196, in _run_module_as_main
      return _run_code(code, main_globals, None,
    File "C:\Python310\lib\runpy.py", line 86, in _run_code
      exec(code, run_globals)
    File "C:\Users\hanne\Documents\Programme\analyze-wiktionary\.venv\Scripts\starlite.exe\__main__.py", line 4, in <module>
    File "C:\Users\hanne\Documents\Programme\analyze-wiktionary\.venv\lib\site-packages\starlite\cli.py", line 41, in <module>
      from starlite.middleware.session import SessionMiddleware
    File "C:\Users\hanne\Documents\Programme\analyze-wiktionary\.venv\lib\site-packages\starlite\middleware\session\__init__.py", line 2, in <module>
      from .cookie_backend import (
    File "C:\Users\hanne\Documents\Programme\analyze-wiktionary\.venv\lib\site-packages\starlite\middleware\session\cookie_backend.py", line 23, 
  in <module>
      raise MissingDependencyException("cryptography is not installed") from e
  starlite.exceptions.base_exceptions.MissingDependencyException: cryptography is not installed
  ```
  
  I thought it might be a good idea to install the package automatically with the CLI extra. (Or to update the [docs](https://starlite-api.github.io/starlite/usage/19-cli/?h=uvicorn) if I'm missing something).
  
  My versions: Windows, Python 3.10, starlite 1.46.0 
  
  PS: Thank you all for the great amount of effort you spend on this project!
  
  </issue>
  <code>
  [start of starlite/middleware/session/__init__.py]
  1 from .base import SessionMiddleware
  2 from .cookie_backend import (
  3     CookieBackendConfig as SessionCookieConfig,  # backwards compatible export
  4 )
  5 
  6 __all__ = [
  7     "SessionMiddleware",
  8     "SessionCookieConfig",
  9 ]
  10
  [end of starlite/middleware/session/__init__.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/starlite/middleware/session/__init__.py b/starlite/middleware/session/__init__.py
  --- a/starlite/middleware/session/__init__.py
  +++ b/starlite/middleware/session/__init__.py
  @@ -1,9 +1,27 @@
  +from typing import Any
  +
  +from starlite.utils import warn_deprecation
  +
   from .base import SessionMiddleware
  -from .cookie_backend import (
  -    CookieBackendConfig as SessionCookieConfig,  # backwards compatible export
  -)
  -
  -__all__ = [
  -    "SessionMiddleware",
  -    "SessionCookieConfig",
  -]
  +
  +
  +def __getattr__(name: str) -> Any:
  +    """Provide lazy importing as per https://peps.python.org/pep-0562/"""
  +
  +    if name != "SessionCookieConfig":
  +        raise AttributeError(f"Module {__package__} has no attribute {name}")
  +
  +    from .cookie_backend import CookieBackendConfig
  +
  +    warn_deprecation(
  +        deprecated_name=f"{name} from {__package__}",
  +        kind="import",
  +        alternative="'from startlite.middleware.sessions.cookie_backend import CookieBackendConfig'",
  +        version="1.47.0",
  +    )
  +
  +    globals()[name] = CookieBackendConfig
  +    return CookieBackendConfig
  +
  +
  +__all__ = ["SessionMiddleware"]
  
verification_info: {"golden_diff": "diff --git a/starlite/middleware/session/__init__.py b/starlite/middleware/session/__init__.py\n--- a/starlite/middleware/session/__init__.py\n+++ b/starlite/middleware/session/__init__.py\n@@ -1,9 +1,27 @@\n+from typing import Any\n+\n+from starlite.utils import warn_deprecation\n+\n from .base import SessionMiddleware\n-from .cookie_backend import (\n-    CookieBackendConfig as SessionCookieConfig,  # backwards compatible export\n-)\n-\n-__all__ = [\n-    \"SessionMiddleware\",\n-    \"SessionCookieConfig\",\n-]\n+\n+\n+def __getattr__(name: str) -> Any:\n+    \"\"\"Provide lazy importing as per https://peps.python.org/pep-0562/\"\"\"\n+\n+    if name != \"SessionCookieConfig\":\n+        raise AttributeError(f\"Module {__package__} has no attribute {name}\")\n+\n+    from .cookie_backend import CookieBackendConfig\n+\n+    warn_deprecation(\n+        deprecated_name=f\"{name} from {__package__}\",\n+        kind=\"import\",\n+        alternative=\"'from startlite.middleware.sessions.cookie_backend import CookieBackendConfig'\",\n+        version=\"1.47.0\",\n+    )\n+\n+    globals()[name] = CookieBackendConfig\n+    return CookieBackendConfig\n+\n+\n+__all__ = [\"SessionMiddleware\"]\n", "issue": "Bug: Running `starlite run` after installing starlite[cli] gives error about missing cryptography package\nThe error is here:\r\n```\r\nTraceback (most recent call last):\r\n  File \"C:\\Users\\hanne\\Documents\\Programme\\analyze-wiktionary\\.venv\\lib\\site-packages\\starlite\\middleware\\session\\cookie_backend.py\", line 20, \r\nin <module>\r\n    from cryptography.exceptions import InvalidTag\r\nModuleNotFoundError: No module named 'cryptography'\r\n\r\nThe above exception was the direct cause of the following exception:\r\n\r\nTraceback (most recent call last):\r\n  File \"C:\\Python310\\lib\\runpy.py\", line 196, in _run_module_as_main\r\n    return _run_code(code, main_globals, None,\r\n  File \"C:\\Python310\\lib\\runpy.py\", line 86, in _run_code\r\n    exec(code, run_globals)\r\n  File \"C:\\Users\\hanne\\Documents\\Programme\\analyze-wiktionary\\.venv\\Scripts\\starlite.exe\\__main__.py\", line 4, in <module>\r\n  File \"C:\\Users\\hanne\\Documents\\Programme\\analyze-wiktionary\\.venv\\lib\\site-packages\\starlite\\cli.py\", line 41, in <module>\r\n    from starlite.middleware.session import SessionMiddleware\r\n  File \"C:\\Users\\hanne\\Documents\\Programme\\analyze-wiktionary\\.venv\\lib\\site-packages\\starlite\\middleware\\session\\__init__.py\", line 2, in <module>\r\n    from .cookie_backend import (\r\n  File \"C:\\Users\\hanne\\Documents\\Programme\\analyze-wiktionary\\.venv\\lib\\site-packages\\starlite\\middleware\\session\\cookie_backend.py\", line 23, \r\nin <module>\r\n    raise MissingDependencyException(\"cryptography is not installed\") from e\r\nstarlite.exceptions.base_exceptions.MissingDependencyException: cryptography is not installed\r\n```\r\n\r\nI thought it might be a good idea to install the package automatically with the CLI extra. (Or to update the [docs](https://starlite-api.github.io/starlite/usage/19-cli/?h=uvicorn) if I'm missing something).\r\n\r\nMy versions: Windows, Python 3.10, starlite 1.46.0 \r\n\r\nPS: Thank you all for the great amount of effort you spend on this project!\n", "before_files": [{"content": "from .base import SessionMiddleware\nfrom .cookie_backend import (\n    CookieBackendConfig as SessionCookieConfig,  # backwards compatible export\n)\n\n__all__ = [\n    \"SessionMiddleware\",\n    \"SessionCookieConfig\",\n]\n", "path": "starlite/middleware/session/__init__.py"}]}