We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
`gdown` does not seem to be working
**Describe the bug**
Current CI seems to be broken.

**To Reproduce**
Steps to reproduce the behavior:
1. Run any CI test
2. See error:
```python-traceback
[SNIP!]
        if gdrive_file_id and is_gdrive_download_link:
            content_disposition = six.moves.urllib_parse.unquote(
                res.headers["Content-Disposition"]
            )
            m = re.search(r"filename\*=UTF-8''(.*)", content_disposition)
>           filename_from_url = m.groups()[0]
E           AttributeError: 'NoneType' object has no attribute 'groups'
```
Example: https://github.com/mlcommons/GaNDLF/actions/runs/7489779631/job/20387346791?pr=764#step:9:219

**Expected behavior**
The sample data file download should work.

**Screenshots**
N.A.

**GaNDLF Version**
Current master

**Desktop (please complete the following information):**
N.A.

**Additional context**
Basically, it is this error: https://github.com/wkentaro/gdown/issues/291


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `setup.py`
Content:
```
1 #!/usr/bin/env python
2 
3 """The setup script."""
4 
5 
6 import sys, re, os
7 from setuptools import setup, find_packages
8 from setuptools.command.install import install
9 from setuptools.command.develop import develop
10 from setuptools.command.egg_info import egg_info
11 
12 try:
13     with open("README.md") as readme_file:
14         readme = readme_file.read()
15 except Exception as error:
16     readme = "No README information found."
17     sys.stderr.write(
18         "Warning: Could not open '%s' due %s\n" % ("README.md", error)
19     )
20 
21 
22 class CustomInstallCommand(install):
23     def run(self):
24         install.run(self)
25 
26 
27 class CustomDevelopCommand(develop):
28     def run(self):
29         develop.run(self)
30 
31 
32 class CustomEggInfoCommand(egg_info):
33     def run(self):
34         egg_info.run(self)
35 
36 
37 try:
38     filepath = "GANDLF/version.py"
39     version_file = open(filepath)
40     (__version__,) = re.findall('__version__ = "(.*)"', version_file.read())
41 
42 except Exception as error:
43     __version__ = "0.0.1"
44     sys.stderr.write(
45         "Warning: Could not open '%s' due %s\n" % (filepath, error)
46     )
47 
48 # Handle cases where specific files need to be bundled into the final package as installed via PyPI
49 dockerfiles = [
50     item
51     for item in os.listdir(os.path.dirname(os.path.abspath(__file__)))
52     if (os.path.isfile(item) and item.startswith("Dockerfile-"))
53 ]
54 entrypoint_files = [
55     item
56     for item in os.listdir(os.path.dirname(os.path.abspath(__file__)))
57     if (os.path.isfile(item) and item.startswith("gandlf_"))
58 ]
59 setup_files = ["setup.py", ".dockerignore", "pyproject.toml", "MANIFEST.in"]
60 all_extra_files = dockerfiles + entrypoint_files + setup_files
61 all_extra_files_pathcorrected = [
62     os.path.join("../", item) for item in all_extra_files
63 ]
64 # find_packages should only ever find these as subpackages of gandlf, not as top-level packages
65 # generate this dynamically?
66 # GANDLF.GANDLF is needed to prevent recursion madness in deployments
67 toplevel_package_excludes = [
68     "GANDLF.GANDLF",
69     "anonymize",
70     "cli",
71     "compute",
72     "data",
73     "grad_clipping",
74     "losses",
75     "metrics",
76     "models",
77     "optimizers",
78     "schedulers",
79     "utils",
80 ]
81 
82 
83 requirements = [
84     "torch==2.1.0",
85     "black==23.11.0",
86     "numpy==1.25.0",
87     "scipy",
88     "SimpleITK!=2.0.*",
89     "SimpleITK!=2.2.1",  # https://github.com/mlcommons/GaNDLF/issues/536
90     "torchvision",
91     "tqdm",
92     "torchio==0.19.3",
93     "pandas>=2.0.0",
94     "scikit-learn>=0.23.2",
95     "scikit-image>=0.19.1",
96     "setuptools",
97     "seaborn",
98     "pyyaml",
99     "tiffslide",
100     "matplotlib",
101     "gdown",
102     "pytest",
103     "coverage",
104     "pytest-cov",
105     "psutil",
106     "medcam",
107     "opencv-python",
108     "torchmetrics==1.1.2",
109     "zarr==2.10.3",
110     "pydicom",
111     "onnx",
112     "torchinfo==1.7.0",
113     "segmentation-models-pytorch==0.3.3",
114     "ACSConv==0.1.1",
115     "docker",
116     "dicom-anonymizer",
117     "twine",
118     "zarr",
119     "keyring",
120 ]
121 
122 if __name__ == "__main__":
123     setup(
124         name="GANDLF",
125         version=__version__,
126         author="MLCommons",
127         author_email="gandlf@mlcommons.org",
128         python_requires=">3.8, <3.12",
129         packages=find_packages(
130             where=os.path.dirname(os.path.abspath(__file__)),
131             exclude=toplevel_package_excludes,
132         ),
133         cmdclass={
134             "install": CustomInstallCommand,
135             "develop": CustomDevelopCommand,
136             "egg_info": CustomEggInfoCommand,
137         },
138         scripts=[
139             "gandlf_run",
140             "gandlf_constructCSV",
141             "gandlf_collectStats",
142             "gandlf_patchMiner",
143             "gandlf_preprocess",
144             "gandlf_anonymizer",
145             "gandlf_verifyInstall",
146             "gandlf_configGenerator",
147             "gandlf_recoverConfig",
148             "gandlf_deploy",
149             "gandlf_optimizeModel",
150             "gandlf_generateMetrics",
151         ],
152         classifiers=[
153             "Development Status :: 3 - Alpha",
154             "Intended Audience :: Science/Research",
155             "License :: OSI Approved :: Apache Software License",
156             "Natural Language :: English",
157             "Operating System :: OS Independent",
158             "Programming Language :: Python :: 3.9",
159             "Programming Language :: Python :: 3.10",
160             "Programming Language :: Python :: 3.11",
161             "Topic :: Scientific/Engineering :: Medical Science Apps.",
162         ],
163         description=(
164             "PyTorch-based framework that handles segmentation/regression/classification using various DL architectures for medical imaging."
165         ),
166         install_requires=requirements,
167         license="Apache-2.0",
168         long_description=readme,
169         long_description_content_type="text/markdown",
170         include_package_data=True,
171         package_data={"GANDLF": all_extra_files_pathcorrected},
172         keywords="semantic, segmentation, regression, classification, data-augmentation, medical-imaging, clinical-workflows, deep-learning, pytorch",
173         zip_safe=False,
174     )
175
```
--- 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/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -98,7 +98,7 @@
     "pyyaml",
     "tiffslide",
     "matplotlib",
-    "gdown",
+    "gdown==4.6.3",
     "pytest",
     "coverage",
     "pytest-cov",

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -98,7 +98,7 @@\n     \"pyyaml\",\n     \"tiffslide\",\n     \"matplotlib\",\n-    \"gdown\",\n+    \"gdown==4.6.3\",\n     \"pytest\",\n     \"coverage\",\n     \"pytest-cov\",\n", "issue": "`gdown` does not seem to be working\n**Describe the bug**\r\nCurrent CI seems to be broken.\r\n\r\n**To Reproduce**\r\nSteps to reproduce the behavior:\r\n1. Run any CI test\r\n2. See error:\r\n```python-traceback\r\n[SNIP!]\r\n        if gdrive_file_id and is_gdrive_download_link:\r\n            content_disposition = six.moves.urllib_parse.unquote(\r\n                res.headers[\"Content-Disposition\"]\r\n            )\r\n            m = re.search(r\"filename\\*=UTF-8''(.*)\", content_disposition)\r\n>           filename_from_url = m.groups()[0]\r\nE           AttributeError: 'NoneType' object has no attribute 'groups'\r\n```\r\nExample: https://github.com/mlcommons/GaNDLF/actions/runs/7489779631/job/20387346791?pr=764#step:9:219\r\n\r\n**Expected behavior**\r\nThe sample data file download should work.\r\n\r\n**Screenshots**\r\nN.A.\r\n\r\n**GaNDLF Version**\r\nCurrent master\r\n\r\n**Desktop (please complete the following information):**\r\nN.A.\r\n\r\n**Additional context**\r\nBasically, it is this error: https://github.com/wkentaro/gdown/issues/291\r\n\n", "before_files": [{"content": "#!/usr/bin/env python\n\n\"\"\"The setup script.\"\"\"\n\n\nimport sys, re, os\nfrom setuptools import setup, find_packages\nfrom setuptools.command.install import install\nfrom setuptools.command.develop import develop\nfrom setuptools.command.egg_info import egg_info\n\ntry:\n    with open(\"README.md\") as readme_file:\n        readme = readme_file.read()\nexcept Exception as error:\n    readme = \"No README information found.\"\n    sys.stderr.write(\n        \"Warning: Could not open '%s' due %s\\n\" % (\"README.md\", error)\n    )\n\n\nclass CustomInstallCommand(install):\n    def run(self):\n        install.run(self)\n\n\nclass CustomDevelopCommand(develop):\n    def run(self):\n        develop.run(self)\n\n\nclass CustomEggInfoCommand(egg_info):\n    def run(self):\n        egg_info.run(self)\n\n\ntry:\n    filepath = \"GANDLF/version.py\"\n    version_file = open(filepath)\n    (__version__,) = re.findall('__version__ = \"(.*)\"', version_file.read())\n\nexcept Exception as error:\n    __version__ = \"0.0.1\"\n    sys.stderr.write(\n        \"Warning: Could not open '%s' due %s\\n\" % (filepath, error)\n    )\n\n# Handle cases where specific files need to be bundled into the final package as installed via PyPI\ndockerfiles = [\n    item\n    for item in os.listdir(os.path.dirname(os.path.abspath(__file__)))\n    if (os.path.isfile(item) and item.startswith(\"Dockerfile-\"))\n]\nentrypoint_files = [\n    item\n    for item in os.listdir(os.path.dirname(os.path.abspath(__file__)))\n    if (os.path.isfile(item) and item.startswith(\"gandlf_\"))\n]\nsetup_files = [\"setup.py\", \".dockerignore\", \"pyproject.toml\", \"MANIFEST.in\"]\nall_extra_files = dockerfiles + entrypoint_files + setup_files\nall_extra_files_pathcorrected = [\n    os.path.join(\"../\", item) for item in all_extra_files\n]\n# find_packages should only ever find these as subpackages of gandlf, not as top-level packages\n# generate this dynamically?\n# GANDLF.GANDLF is needed to prevent recursion madness in deployments\ntoplevel_package_excludes = [\n    \"GANDLF.GANDLF\",\n    \"anonymize\",\n    \"cli\",\n    \"compute\",\n    \"data\",\n    \"grad_clipping\",\n    \"losses\",\n    \"metrics\",\n    \"models\",\n    \"optimizers\",\n    \"schedulers\",\n    \"utils\",\n]\n\n\nrequirements = [\n    \"torch==2.1.0\",\n    \"black==23.11.0\",\n    \"numpy==1.25.0\",\n    \"scipy\",\n    \"SimpleITK!=2.0.*\",\n    \"SimpleITK!=2.2.1\",  # https://github.com/mlcommons/GaNDLF/issues/536\n    \"torchvision\",\n    \"tqdm\",\n    \"torchio==0.19.3\",\n    \"pandas>=2.0.0\",\n    \"scikit-learn>=0.23.2\",\n    \"scikit-image>=0.19.1\",\n    \"setuptools\",\n    \"seaborn\",\n    \"pyyaml\",\n    \"tiffslide\",\n    \"matplotlib\",\n    \"gdown\",\n    \"pytest\",\n    \"coverage\",\n    \"pytest-cov\",\n    \"psutil\",\n    \"medcam\",\n    \"opencv-python\",\n    \"torchmetrics==1.1.2\",\n    \"zarr==2.10.3\",\n    \"pydicom\",\n    \"onnx\",\n    \"torchinfo==1.7.0\",\n    \"segmentation-models-pytorch==0.3.3\",\n    \"ACSConv==0.1.1\",\n    \"docker\",\n    \"dicom-anonymizer\",\n    \"twine\",\n    \"zarr\",\n    \"keyring\",\n]\n\nif __name__ == \"__main__\":\n    setup(\n        name=\"GANDLF\",\n        version=__version__,\n        author=\"MLCommons\",\n        author_email=\"gandlf@mlcommons.org\",\n        python_requires=\">3.8, <3.12\",\n        packages=find_packages(\n            where=os.path.dirname(os.path.abspath(__file__)),\n            exclude=toplevel_package_excludes,\n        ),\n        cmdclass={\n            \"install\": CustomInstallCommand,\n            \"develop\": CustomDevelopCommand,\n            \"egg_info\": CustomEggInfoCommand,\n        },\n        scripts=[\n            \"gandlf_run\",\n            \"gandlf_constructCSV\",\n            \"gandlf_collectStats\",\n            \"gandlf_patchMiner\",\n            \"gandlf_preprocess\",\n            \"gandlf_anonymizer\",\n            \"gandlf_verifyInstall\",\n            \"gandlf_configGenerator\",\n            \"gandlf_recoverConfig\",\n            \"gandlf_deploy\",\n            \"gandlf_optimizeModel\",\n            \"gandlf_generateMetrics\",\n        ],\n        classifiers=[\n            \"Development Status :: 3 - Alpha\",\n            \"Intended Audience :: Science/Research\",\n            \"License :: OSI Approved :: Apache Software License\",\n            \"Natural Language :: English\",\n            \"Operating System :: OS Independent\",\n            \"Programming Language :: Python :: 3.9\",\n            \"Programming Language :: Python :: 3.10\",\n            \"Programming Language :: Python :: 3.11\",\n            \"Topic :: Scientific/Engineering :: Medical Science Apps.\",\n        ],\n        description=(\n            \"PyTorch-based framework that handles segmentation/regression/classification using various DL architectures for medical imaging.\"\n        ),\n        install_requires=requirements,\n        license=\"Apache-2.0\",\n        long_description=readme,\n        long_description_content_type=\"text/markdown\",\n        include_package_data=True,\n        package_data={\"GANDLF\": all_extra_files_pathcorrected},\n        keywords=\"semantic, segmentation, regression, classification, data-augmentation, medical-imaging, clinical-workflows, deep-learning, pytorch\",\n        zip_safe=False,\n    )\n", "path": "setup.py"}], "after_files": [{"content": "#!/usr/bin/env python\n\n\"\"\"The setup script.\"\"\"\n\n\nimport sys, re, os\nfrom setuptools import setup, find_packages\nfrom setuptools.command.install import install\nfrom setuptools.command.develop import develop\nfrom setuptools.command.egg_info import egg_info\n\ntry:\n    with open(\"README.md\") as readme_file:\n        readme = readme_file.read()\nexcept Exception as error:\n    readme = \"No README information found.\"\n    sys.stderr.write(\n        \"Warning: Could not open '%s' due %s\\n\" % (\"README.md\", error)\n    )\n\n\nclass CustomInstallCommand(install):\n    def run(self):\n        install.run(self)\n\n\nclass CustomDevelopCommand(develop):\n    def run(self):\n        develop.run(self)\n\n\nclass CustomEggInfoCommand(egg_info):\n    def run(self):\n        egg_info.run(self)\n\n\ntry:\n    filepath = \"GANDLF/version.py\"\n    version_file = open(filepath)\n    (__version__,) = re.findall('__version__ = \"(.*)\"', version_file.read())\n\nexcept Exception as error:\n    __version__ = \"0.0.1\"\n    sys.stderr.write(\n        \"Warning: Could not open '%s' due %s\\n\" % (filepath, error)\n    )\n\n# Handle cases where specific files need to be bundled into the final package as installed via PyPI\ndockerfiles = [\n    item\n    for item in os.listdir(os.path.dirname(os.path.abspath(__file__)))\n    if (os.path.isfile(item) and item.startswith(\"Dockerfile-\"))\n]\nentrypoint_files = [\n    item\n    for item in os.listdir(os.path.dirname(os.path.abspath(__file__)))\n    if (os.path.isfile(item) and item.startswith(\"gandlf_\"))\n]\nsetup_files = [\"setup.py\", \".dockerignore\", \"pyproject.toml\", \"MANIFEST.in\"]\nall_extra_files = dockerfiles + entrypoint_files + setup_files\nall_extra_files_pathcorrected = [\n    os.path.join(\"../\", item) for item in all_extra_files\n]\n# find_packages should only ever find these as subpackages of gandlf, not as top-level packages\n# generate this dynamically?\n# GANDLF.GANDLF is needed to prevent recursion madness in deployments\ntoplevel_package_excludes = [\n    \"GANDLF.GANDLF\",\n    \"anonymize\",\n    \"cli\",\n    \"compute\",\n    \"data\",\n    \"grad_clipping\",\n    \"losses\",\n    \"metrics\",\n    \"models\",\n    \"optimizers\",\n    \"schedulers\",\n    \"utils\",\n]\n\n\nrequirements = [\n    \"torch==2.1.0\",\n    \"black==23.11.0\",\n    \"numpy==1.25.0\",\n    \"scipy\",\n    \"SimpleITK!=2.0.*\",\n    \"SimpleITK!=2.2.1\",  # https://github.com/mlcommons/GaNDLF/issues/536\n    \"torchvision\",\n    \"tqdm\",\n    \"torchio==0.19.3\",\n    \"pandas>=2.0.0\",\n    \"scikit-learn>=0.23.2\",\n    \"scikit-image>=0.19.1\",\n    \"setuptools\",\n    \"seaborn\",\n    \"pyyaml\",\n    \"tiffslide\",\n    \"matplotlib\",\n    \"gdown==4.6.3\",\n    \"pytest\",\n    \"coverage\",\n    \"pytest-cov\",\n    \"psutil\",\n    \"medcam\",\n    \"opencv-python\",\n    \"torchmetrics==1.1.2\",\n    \"zarr==2.10.3\",\n    \"pydicom\",\n    \"onnx\",\n    \"torchinfo==1.7.0\",\n    \"segmentation-models-pytorch==0.3.3\",\n    \"ACSConv==0.1.1\",\n    \"docker\",\n    \"dicom-anonymizer\",\n    \"twine\",\n    \"zarr\",\n    \"keyring\",\n]\n\nif __name__ == \"__main__\":\n    setup(\n        name=\"GANDLF\",\n        version=__version__,\n        author=\"MLCommons\",\n        author_email=\"gandlf@mlcommons.org\",\n        python_requires=\">3.8, <3.12\",\n        packages=find_packages(\n            where=os.path.dirname(os.path.abspath(__file__)),\n            exclude=toplevel_package_excludes,\n        ),\n        cmdclass={\n            \"install\": CustomInstallCommand,\n            \"develop\": CustomDevelopCommand,\n            \"egg_info\": CustomEggInfoCommand,\n        },\n        scripts=[\n            \"gandlf_run\",\n            \"gandlf_constructCSV\",\n            \"gandlf_collectStats\",\n            \"gandlf_patchMiner\",\n            \"gandlf_preprocess\",\n            \"gandlf_anonymizer\",\n            \"gandlf_verifyInstall\",\n            \"gandlf_configGenerator\",\n            \"gandlf_recoverConfig\",\n            \"gandlf_deploy\",\n            \"gandlf_optimizeModel\",\n            \"gandlf_generateMetrics\",\n        ],\n        classifiers=[\n            \"Development Status :: 3 - Alpha\",\n            \"Intended Audience :: Science/Research\",\n            \"License :: OSI Approved :: Apache Software License\",\n            \"Natural Language :: English\",\n            \"Operating System :: OS Independent\",\n            \"Programming Language :: Python :: 3.9\",\n            \"Programming Language :: Python :: 3.10\",\n            \"Programming Language :: Python :: 3.11\",\n            \"Topic :: Scientific/Engineering :: Medical Science Apps.\",\n        ],\n        description=(\n            \"PyTorch-based framework that handles segmentation/regression/classification using various DL architectures for medical imaging.\"\n        ),\n        install_requires=requirements,\n        license=\"Apache-2.0\",\n        long_description=readme,\n        long_description_content_type=\"text/markdown\",\n        include_package_data=True,\n        package_data={\"GANDLF\": all_extra_files_pathcorrected},\n        keywords=\"semantic, segmentation, regression, classification, data-augmentation, medical-imaging, clinical-workflows, deep-learning, pytorch\",\n        zip_safe=False,\n    )\n", "path": "setup.py"}]}