We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Reddit Movie Dialog no longer exists
**Bug description**
[Reddit Movie Dialog](https://parl.ai/docs/tasks.html#movie-dialog-reddit) no longer exists.

**Reproduction steps**
```
TrainModel.main(
    # similar to before
    task='empathetic_dialogues,blended_skill_talk,movie_dialog_reddit,convai2,persona_chat', 
    model='transformer/generator',
    model_file='from_pretrained/model',
    
    # initialize with a pretrained model
    init_model='zoo:tutorial_transformer_generator/model',
    
    # arguments we get from the pretrained model.
    # Unfortunately, these must be looked up separately for each model.
    n_heads=16, n_layers=8, n_positions=512, text_truncate=512,
    label_truncate=128, ffn_size=2048, embedding_size=512,
    activation='gelu', variant='xlm',
    dict_lower=True, dict_tokenizer='bpe',
    dict_file='zoo:tutorial_transformer_generator/model.dict',
    learn_positional_embeddings=True,
    
    # some training arguments, specific to this fine-tuning
    # use a small learning rate with ADAM optimizer
    lr=1e-5, optimizer='adam',
    warmup_updates=100,
    # early stopping on perplexity
    validation_metric='ppl',
    # train at most 10 minutes, and validate every 0.25 epochs
    max_train_time=600, validation_every_n_epochs=0.25,
    
    # depend on your gpu. If you have a V100, this is good
    batchsize=12, fp16=True, fp16_impl='mem_efficient',
    
    # speeds up validation
    skip_generation=True,
    
    # helps us cram more examples into our gpu at a time
    dynamic_batching='full',
)
```

**Logs**
Please paste the command line output:

```
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-39-ff3044de39fe> in <module>()
     36 
     37     # helps us cram more examples into our gpu at a time
---> 38     dynamic_batching='full',
     39 )

15 frames
/usr/lib/python3.6/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_)

ModuleNotFoundError: No module named 'parlai.tasks.movie_dialog_reddit'

---------------------------------------------------------------------------
NOTE: If your import is failing due to a missing package, you can
manually install dependencies using either !pip or !apt.

To view examples of installing some common dependencies, click the
"Open Examples" button below.
---------------------------------------------------------------------------```


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `docs/source/generate_task_list.py`
Content:
```
1 #!/usr/bin/env python3
2 # Copyright (c) Facebook, Inc. and its affiliates.
3 # This source code is licensed under the MIT license found in the
4 # LICENSE file in the root directory of this source tree.
5 
6 from parlai.tasks.task_list import task_list
7 
8 MASTER = "https://github.com/facebookresearch/ParlAI/tree/master"
9 
10 category_order = ['QA', 'Cloze', 'Goal', 'ChitChat', 'Negotiation', 'Visual', 'decanlp']
11 category_task_list = {x: [] for x in category_order}
12 
13 fout = open('task_list.inc', 'w')
14 
15 s = "They consist of:  "
16 for t in category_order:
17     fout.write(f"1. {t} tasks\n")
18 fout.write("\n")
19 
20 for task_dict in task_list:
21     tags = task_dict.get('tags', None)
22     for tag in tags:
23         if tag in category_task_list:
24             category_task_list[tag].append(task_dict)
25 
26 for num_category, (category, tl) in enumerate(category_task_list.items()):
27     if num_category != 0:
28         fout.write("\n-----\n\n")
29 
30     fout.write(f'## {category} Tasks\n')
31 
32     for task_dict in tl:
33         id = task_dict.get('id', None)
34         display_name = task_dict.get('display_name', None)
35         task = task_dict.get('task', None)
36         tags = task_dict.get('tags', None)
37         description = task_dict.get('description', None)
38         notes = task_dict.get('notes', None)
39         code_urlend = task[: max(task.find(':'), len(task))]
40         code_url = f"{MASTER}/parlai/tasks/{code_urlend}"
41         links = task_dict.get("links", {})
42         assert isinstance(links, dict), f"task {id} is poorly formatted"
43         urls = [(k, v) for k, v in links.items()]
44         urls.append(("code", code_url))
45 
46         urls_md = ", ".join(f"[{k}]({v})" for k, v in urls)
47         fout.write(f"### {display_name}\n")
48         fout.write(f"_Links_:  {urls_md}\n\n")
49         if description:
50             fout.write(description + "\n")
51         if notes:
52             fout.write(":::{admonition,note} Notes\n")
53             fout.write(notes + "\n")
54             fout.write(":::\n")
55         fout.write("\n\n")
56 
57 fout.close()
58
```
--- 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()

```

diff --git a/docs/source/generate_task_list.py b/docs/source/generate_task_list.py
--- a/docs/source/generate_task_list.py
+++ b/docs/source/generate_task_list.py
@@ -45,6 +45,7 @@
 
         urls_md = ", ".join(f"[{k}]({v})" for k, v in urls)
         fout.write(f"### {display_name}\n")
+        fout.write(f"_Usage_:  `--task {task}`\n\n")
         fout.write(f"_Links_:  {urls_md}\n\n")
         if description:
             fout.write(description + "\n")

{"golden_diff": "diff --git a/docs/source/generate_task_list.py b/docs/source/generate_task_list.py\n--- a/docs/source/generate_task_list.py\n+++ b/docs/source/generate_task_list.py\n@@ -45,6 +45,7 @@\n \n         urls_md = \", \".join(f\"[{k}]({v})\" for k, v in urls)\n         fout.write(f\"### {display_name}\\n\")\n+        fout.write(f\"_Usage_:  `--task {task}`\\n\\n\")\n         fout.write(f\"_Links_:  {urls_md}\\n\\n\")\n         if description:\n             fout.write(description + \"\\n\")\n", "issue": "Reddit Movie Dialog no longer exists\n**Bug description**\r\n[Reddit Movie Dialog](https://parl.ai/docs/tasks.html#movie-dialog-reddit) no longer exists.\r\n\r\n**Reproduction steps**\r\n```\r\nTrainModel.main(\r\n    # similar to before\r\n    task='empathetic_dialogues,blended_skill_talk,movie_dialog_reddit,convai2,persona_chat', \r\n    model='transformer/generator',\r\n    model_file='from_pretrained/model',\r\n    \r\n    # initialize with a pretrained model\r\n    init_model='zoo:tutorial_transformer_generator/model',\r\n    \r\n    # arguments we get from the pretrained model.\r\n    # Unfortunately, these must be looked up separately for each model.\r\n    n_heads=16, n_layers=8, n_positions=512, text_truncate=512,\r\n    label_truncate=128, ffn_size=2048, embedding_size=512,\r\n    activation='gelu', variant='xlm',\r\n    dict_lower=True, dict_tokenizer='bpe',\r\n    dict_file='zoo:tutorial_transformer_generator/model.dict',\r\n    learn_positional_embeddings=True,\r\n    \r\n    # some training arguments, specific to this fine-tuning\r\n    # use a small learning rate with ADAM optimizer\r\n    lr=1e-5, optimizer='adam',\r\n    warmup_updates=100,\r\n    # early stopping on perplexity\r\n    validation_metric='ppl',\r\n    # train at most 10 minutes, and validate every 0.25 epochs\r\n    max_train_time=600, validation_every_n_epochs=0.25,\r\n    \r\n    # depend on your gpu. If you have a V100, this is good\r\n    batchsize=12, fp16=True, fp16_impl='mem_efficient',\r\n    \r\n    # speeds up validation\r\n    skip_generation=True,\r\n    \r\n    # helps us cram more examples into our gpu at a time\r\n    dynamic_batching='full',\r\n)\r\n```\r\n\r\n**Logs**\r\nPlease paste the command line output:\r\n\r\n```\r\n---------------------------------------------------------------------------\r\nModuleNotFoundError                       Traceback (most recent call last)\r\n<ipython-input-39-ff3044de39fe> in <module>()\r\n     36 \r\n     37     # helps us cram more examples into our gpu at a time\r\n---> 38     dynamic_batching='full',\r\n     39 )\r\n\r\n15 frames\r\n/usr/lib/python3.6/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_)\r\n\r\nModuleNotFoundError: No module named 'parlai.tasks.movie_dialog_reddit'\r\n\r\n---------------------------------------------------------------------------\r\nNOTE: If your import is failing due to a missing package, you can\r\nmanually install dependencies using either !pip or !apt.\r\n\r\nTo view examples of installing some common dependencies, click the\r\n\"Open Examples\" button below.\r\n---------------------------------------------------------------------------```\r\n\n", "before_files": [{"content": "#!/usr/bin/env python3\n# Copyright (c) Facebook, Inc. and its affiliates.\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nfrom parlai.tasks.task_list import task_list\n\nMASTER = \"https://github.com/facebookresearch/ParlAI/tree/master\"\n\ncategory_order = ['QA', 'Cloze', 'Goal', 'ChitChat', 'Negotiation', 'Visual', 'decanlp']\ncategory_task_list = {x: [] for x in category_order}\n\nfout = open('task_list.inc', 'w')\n\ns = \"They consist of:  \"\nfor t in category_order:\n    fout.write(f\"1. {t} tasks\\n\")\nfout.write(\"\\n\")\n\nfor task_dict in task_list:\n    tags = task_dict.get('tags', None)\n    for tag in tags:\n        if tag in category_task_list:\n            category_task_list[tag].append(task_dict)\n\nfor num_category, (category, tl) in enumerate(category_task_list.items()):\n    if num_category != 0:\n        fout.write(\"\\n-----\\n\\n\")\n\n    fout.write(f'## {category} Tasks\\n')\n\n    for task_dict in tl:\n        id = task_dict.get('id', None)\n        display_name = task_dict.get('display_name', None)\n        task = task_dict.get('task', None)\n        tags = task_dict.get('tags', None)\n        description = task_dict.get('description', None)\n        notes = task_dict.get('notes', None)\n        code_urlend = task[: max(task.find(':'), len(task))]\n        code_url = f\"{MASTER}/parlai/tasks/{code_urlend}\"\n        links = task_dict.get(\"links\", {})\n        assert isinstance(links, dict), f\"task {id} is poorly formatted\"\n        urls = [(k, v) for k, v in links.items()]\n        urls.append((\"code\", code_url))\n\n        urls_md = \", \".join(f\"[{k}]({v})\" for k, v in urls)\n        fout.write(f\"### {display_name}\\n\")\n        fout.write(f\"_Links_:  {urls_md}\\n\\n\")\n        if description:\n            fout.write(description + \"\\n\")\n        if notes:\n            fout.write(\":::{admonition,note} Notes\\n\")\n            fout.write(notes + \"\\n\")\n            fout.write(\":::\\n\")\n        fout.write(\"\\n\\n\")\n\nfout.close()\n", "path": "docs/source/generate_task_list.py"}], "after_files": [{"content": "#!/usr/bin/env python3\n# Copyright (c) Facebook, Inc. and its affiliates.\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nfrom parlai.tasks.task_list import task_list\n\nMASTER = \"https://github.com/facebookresearch/ParlAI/tree/master\"\n\ncategory_order = ['QA', 'Cloze', 'Goal', 'ChitChat', 'Negotiation', 'Visual', 'decanlp']\ncategory_task_list = {x: [] for x in category_order}\n\nfout = open('task_list.inc', 'w')\n\ns = \"They consist of:  \"\nfor t in category_order:\n    fout.write(f\"1. {t} tasks\\n\")\nfout.write(\"\\n\")\n\nfor task_dict in task_list:\n    tags = task_dict.get('tags', None)\n    for tag in tags:\n        if tag in category_task_list:\n            category_task_list[tag].append(task_dict)\n\nfor num_category, (category, tl) in enumerate(category_task_list.items()):\n    if num_category != 0:\n        fout.write(\"\\n-----\\n\\n\")\n\n    fout.write(f'## {category} Tasks\\n')\n\n    for task_dict in tl:\n        id = task_dict.get('id', None)\n        display_name = task_dict.get('display_name', None)\n        task = task_dict.get('task', None)\n        tags = task_dict.get('tags', None)\n        description = task_dict.get('description', None)\n        notes = task_dict.get('notes', None)\n        code_urlend = task[: max(task.find(':'), len(task))]\n        code_url = f\"{MASTER}/parlai/tasks/{code_urlend}\"\n        links = task_dict.get(\"links\", {})\n        assert isinstance(links, dict), f\"task {id} is poorly formatted\"\n        urls = [(k, v) for k, v in links.items()]\n        urls.append((\"code\", code_url))\n\n        urls_md = \", \".join(f\"[{k}]({v})\" for k, v in urls)\n        fout.write(f\"### {display_name}\\n\")\n        fout.write(f\"_Usage_:  `--task {task}`\\n\\n\")\n        fout.write(f\"_Links_:  {urls_md}\\n\\n\")\n        if description:\n            fout.write(description + \"\\n\")\n        if notes:\n            fout.write(\":::{admonition,note} Notes\\n\")\n            fout.write(notes + \"\\n\")\n            fout.write(\":::\\n\")\n        fout.write(\"\\n\\n\")\n\nfout.close()\n", "path": "docs/source/generate_task_list.py"}]}