prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Simple typo in the compact docstring for utils.functional
  ## Important Details
  
  How are you running Sentry?
  
  * [ ] On-Premise docker [Version xyz]
  * [ ] Saas (sentry.io)
  * [x] Other [briefly describe your environment]
  Observed documentation - not running sentry.
  
  ## Description
  
  Simple typo should be values rather than valules.
  
  ## Steps to Reproduce
  
  1. Observe docstring in utils.functional.compact method
  
  ### What you expected to happen
  
  Should be values rather than valules.
  
  ### Possible Solution
  
  Replace valules with values.
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `src/sentry/utils/functional.py`
  Content:
  ```
  1 from __future__ import absolute_import
  2 
  3 import six
  4 
  5 from django.utils.functional import empty
  6 
  7 
  8 def extract_lazy_object(lo):
  9     """
  10     Unwrap a LazyObject and return the inner object. Whatever that may be.
  11 
  12     ProTip: This is relying on `django.utils.functional.empty`, which may
  13     or may not be removed in the future. It's 100% undocumented.
  14     """
  15     if not hasattr(lo, "_wrapped"):
  16         return lo
  17     if lo._wrapped is empty:
  18         lo._setup()
  19     return lo._wrapped
  20 
  21 
  22 def apply_values(function, mapping):
  23     """\
  24     Applies ``function`` to a sequence containing all of the values in the
  25     provided mapping, returing a new mapping with the values replaced with
  26     the results of the provided function.
  27 
  28     >>> apply_values(
  29     ...   lambda values: map(u'{} fish'.format, values),
  30     ...   {1: 'red', 2: 'blue'},
  31     ... )
  32     {1: u'red fish', 2: u'blue fish'}
  33     """
  34     if not mapping:
  35         return {}
  36 
  37     keys, values = zip(*mapping.items())
  38     return dict(zip(keys, function(values)))
  39 
  40 
  41 def compact(seq):
  42     """
  43     Removes ``None`` values from various sequence-based data structures.
  44 
  45     dict:
  46         Removes keys with a corresponding ``None`` value.
  47 
  48     list:
  49         Removes ``None`` valules.
  50 
  51     >>> compact({'foo': 'bar', 'baz': None})
  52     {'foo': 'bar'}
  53 
  54     >>> compact([1, None, 2])
  55     [1, 2]
  56     """
  57     if isinstance(seq, dict):
  58         return {k: v for k, v in six.iteritems(seq) if v is not None}
  59 
  60     elif isinstance(seq, list):
  61         return [k for k in seq if k is not None]
  62
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/src/sentry/utils/functional.py b/src/sentry/utils/functional.py
  --- a/src/sentry/utils/functional.py
  +++ b/src/sentry/utils/functional.py
  @@ -46,7 +46,7 @@
           Removes keys with a corresponding ``None`` value.
   
       list:
  -        Removes ``None`` valules.
  +        Removes ``None`` values.
   
       >>> compact({'foo': 'bar', 'baz': None})
       {'foo': 'bar'}
  
verification_info: {"golden_diff": "diff --git a/src/sentry/utils/functional.py b/src/sentry/utils/functional.py\n--- a/src/sentry/utils/functional.py\n+++ b/src/sentry/utils/functional.py\n@@ -46,7 +46,7 @@\n         Removes keys with a corresponding ``None`` value.\n \n     list:\n-        Removes ``None`` valules.\n+        Removes ``None`` values.\n \n     >>> compact({'foo': 'bar', 'baz': None})\n     {'foo': 'bar'}\n", "issue": "Simple typo in the compact docstring for utils.functional\n## Important Details\r\n\r\nHow are you running Sentry?\r\n\r\n* [ ] On-Premise docker [Version xyz]\r\n* [ ] Saas (sentry.io)\r\n* [x] Other [briefly describe your environment]\r\nObserved documentation - not running sentry.\r\n\r\n## Description\r\n\r\nSimple typo should be values rather than valules.\r\n\r\n## Steps to Reproduce\r\n\r\n1. Observe docstring in utils.functional.compact method\r\n\r\n### What you expected to happen\r\n\r\nShould be values rather than valules.\r\n\r\n### Possible Solution\r\n\r\nReplace valules with values.\r\n\n", "before_files": [{"content": "from __future__ import absolute_import\n\nimport six\n\nfrom django.utils.functional import empty\n\n\ndef extract_lazy_object(lo):\n    \"\"\"\n    Unwrap a LazyObject and return the inner object. Whatever that may be.\n\n    ProTip: This is relying on `django.utils.functional.empty`, which may\n    or may not be removed in the future. It's 100% undocumented.\n    \"\"\"\n    if not hasattr(lo, \"_wrapped\"):\n        return lo\n    if lo._wrapped is empty:\n        lo._setup()\n    return lo._wrapped\n\n\ndef apply_values(function, mapping):\n    \"\"\"\\\n    Applies ``function`` to a sequence containing all of the values in the\n    provided mapping, returing a new mapping with the values replaced with\n    the results of the provided function.\n\n    >>> apply_values(\n    ...   lambda values: map(u'{} fish'.format, values),\n    ...   {1: 'red', 2: 'blue'},\n    ... )\n    {1: u'red fish', 2: u'blue fish'}\n    \"\"\"\n    if not mapping:\n        return {}\n\n    keys, values = zip(*mapping.items())\n    return dict(zip(keys, function(values)))\n\n\ndef compact(seq):\n    \"\"\"\n    Removes ``None`` values from various sequence-based data structures.\n\n    dict:\n        Removes keys with a corresponding ``None`` value.\n\n    list:\n        Removes ``None`` valules.\n\n    >>> compact({'foo': 'bar', 'baz': None})\n    {'foo': 'bar'}\n\n    >>> compact([1, None, 2])\n    [1, 2]\n    \"\"\"\n    if isinstance(seq, dict):\n        return {k: v for k, v in six.iteritems(seq) if v is not None}\n\n    elif isinstance(seq, list):\n        return [k for k in seq if k is not None]\n", "path": "src/sentry/utils/functional.py"}], "after_files": [{"content": "from __future__ import absolute_import\n\nimport six\n\nfrom django.utils.functional import empty\n\n\ndef extract_lazy_object(lo):\n    \"\"\"\n    Unwrap a LazyObject and return the inner object. Whatever that may be.\n\n    ProTip: This is relying on `django.utils.functional.empty`, which may\n    or may not be removed in the future. It's 100% undocumented.\n    \"\"\"\n    if not hasattr(lo, \"_wrapped\"):\n        return lo\n    if lo._wrapped is empty:\n        lo._setup()\n    return lo._wrapped\n\n\ndef apply_values(function, mapping):\n    \"\"\"\\\n    Applies ``function`` to a sequence containing all of the values in the\n    provided mapping, returing a new mapping with the values replaced with\n    the results of the provided function.\n\n    >>> apply_values(\n    ...   lambda values: map(u'{} fish'.format, values),\n    ...   {1: 'red', 2: 'blue'},\n    ... )\n    {1: u'red fish', 2: u'blue fish'}\n    \"\"\"\n    if not mapping:\n        return {}\n\n    keys, values = zip(*mapping.items())\n    return dict(zip(keys, function(values)))\n\n\ndef compact(seq):\n    \"\"\"\n    Removes ``None`` values from various sequence-based data structures.\n\n    dict:\n        Removes keys with a corresponding ``None`` value.\n\n    list:\n        Removes ``None`` values.\n\n    >>> compact({'foo': 'bar', 'baz': None})\n    {'foo': 'bar'}\n\n    >>> compact([1, None, 2])\n    [1, 2]\n    \"\"\"\n    if isinstance(seq, dict):\n        return {k: v for k, v in six.iteritems(seq) if v is not None}\n\n    elif isinstance(seq, list):\n        return [k for k in seq if k is not None]\n", "path": "src/sentry/utils/functional.py"}]}