We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Missing dependencies: xlswriter, xlrd, cryptography
Hi,

I am currently following the instructions for the installation of the development version, as shown here: https://www.pandapower.org/start/#develop

I have a brand new virtual environment on Python 3.8.3 (Windows 10, 64 bits), and the tests failed because of the following missing dependencies:

> Edit: Same result on Python 3.7.8.

1. xlsxwriter: `FAILED pandapower\test\api\test_file_io.py::test_excel[1] - ModuleNotFoundError: No module named 'xlsxwriter'`
2. xlrd: `FAILED pandapower\test\api\test_file_io.py::test_excel[1] - ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.`
3. cryptography: `FAILED pandapower\test\api\test_file_io.py::test_encrypted_json[1] - ModuleNotFoundError: No module named 'cryptography'`

The permanent solution would most likely be to add those to setup.py and mention them in the documentation, but you might want to check if you should restrict the version.

P.S.: The tests still ended up failing, but that's a seperate issue (see issue #876 ).

--- 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 # -*- coding: utf-8 -*-
2 
3 # Copyright (c) 2016-2020 by University of Kassel and Fraunhofer Institute for Energy Economics
4 # and Energy System Technology (IEE), Kassel. All rights reserved.
5 
6 from setuptools import setup, find_packages
7 import re
8 
9 with open('README.rst', 'rb') as f:
10     install = f.read().decode('utf-8')
11 
12 with open('CHANGELOG.rst', 'rb') as f:
13     changelog = f.read().decode('utf-8')
14 
15 classifiers = [
16     'Development Status :: 5 - Production/Stable',
17     'Environment :: Console',
18     'Intended Audience :: Developers',
19     'Intended Audience :: Education',
20     'Intended Audience :: Science/Research',
21     'License :: OSI Approved :: BSD License',
22     'Natural Language :: English',
23     'Operating System :: OS Independent',
24     'Programming Language :: Python',
25     'Programming Language :: Python :: 3']
26 
27 with open('.travis.yml', 'rb') as f:
28     lines = f.read().decode('utf-8')
29     for version in re.findall('python: 3.[0-9]', lines):
30         classifiers.append('Programming Language :: Python :: 3.%s' % version[-1])
31 
32 long_description = '\n\n'.join((install, changelog))
33 
34 setup(
35     name='pandapower',
36     version='2.3.0',
37     author='Leon Thurner, Alexander Scheidler',
38     author_email='leon.thurner@iee.fraunhofer.de, alexander.scheidler@iee.fraunhofer.de',
39     description='Convenient Power System Modelling and Analysis based on PYPOWER and pandas',
40     long_description=long_description,
41 	long_description_content_type='text/x-rst',
42     url='http://www.pandapower.org',
43     license='BSD',
44     install_requires=["pandas>=0.17",
45                       "networkx",
46                       "scipy",
47                       "numpy>=0.11",
48                       "packaging"],
49     extras_require={":python_version<'3.0'": ["future"],
50                     "docs": ["numpydoc", "sphinx", "sphinx_rtd_theme"],
51                     "plotting": ["plotly", "matplotlib", "python-igraph"],
52                     "test": ["pytest", "pytest-xdist"]},
53     packages=find_packages(),
54     include_package_data=True,
55     classifiers=classifiers
56 )
57
```

Path: `pandapower/__init__.py`
Content:
```
1 __version__ = "2.3.0"
2 
3 import os
4 pp_dir = os.path.dirname(os.path.realpath(__file__))
5 
6 from pandapower.auxiliary import *
7 from pandapower.convert_format import *
8 from pandapower.create import *
9 from pandapower.diagnostic import *
10 from pandapower.file_io import *
11 from pandapower.run import *
12 from pandapower.runpm import *
13 from pandapower.std_types import *
14 from pandapower.toolbox import *
15 from pandapower.powerflow import *
16 from pandapower.opf import *
17 from pandapower.optimal_powerflow import OPFNotConverged
18 from pandapower.pf.runpp_3ph import runpp_3ph
19 import pandas as pd
20 pd.options.mode.chained_assignment = None  # default='warn'
21
```
--- 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/pandapower/__init__.py b/pandapower/__init__.py
--- a/pandapower/__init__.py
+++ b/pandapower/__init__.py
@@ -1,4 +1,4 @@
-__version__ = "2.3.0"
+__version__ = "2.3.1"
 
 import os
 pp_dir = os.path.dirname(os.path.realpath(__file__))
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -33,10 +33,10 @@
 
 setup(
     name='pandapower',
-    version='2.3.0',
+    version='2.3.1',
     author='Leon Thurner, Alexander Scheidler',
     author_email='leon.thurner@iee.fraunhofer.de, alexander.scheidler@iee.fraunhofer.de',
-    description='Convenient Power System Modelling and Analysis based on PYPOWER and pandas',
+    description='An easy to use open source tool for power system modeling, analysis and optimization with a high degree of automation.',
     long_description=long_description,
 	long_description_content_type='text/x-rst',
     url='http://www.pandapower.org',
@@ -45,11 +45,14 @@
                       "networkx",
                       "scipy",
                       "numpy>=0.11",
-                      "packaging"],
-    extras_require={":python_version<'3.0'": ["future"],
-                    "docs": ["numpydoc", "sphinx", "sphinx_rtd_theme"],
-                    "plotting": ["plotly", "matplotlib", "python-igraph"],
-                    "test": ["pytest", "pytest-xdist"]},
+                      "packaging",
+					  "xlsxwriter",
+					  "xlrd",
+					  "cryptography"],
+    extras_require={
+		"docs": ["numpydoc", "sphinx", "sphinx_rtd_theme"],
+		"plotting": ["plotly", "matplotlib", "python-igraph"],
+		"test": ["pytest", "pytest-xdist"]},
     packages=find_packages(),
     include_package_data=True,
     classifiers=classifiers

{"golden_diff": "diff --git a/pandapower/__init__.py b/pandapower/__init__.py\n--- a/pandapower/__init__.py\n+++ b/pandapower/__init__.py\n@@ -1,4 +1,4 @@\n-__version__ = \"2.3.0\"\n+__version__ = \"2.3.1\"\n \n import os\n pp_dir = os.path.dirname(os.path.realpath(__file__))\ndiff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -33,10 +33,10 @@\n \n setup(\n     name='pandapower',\n-    version='2.3.0',\n+    version='2.3.1',\n     author='Leon Thurner, Alexander Scheidler',\n     author_email='leon.thurner@iee.fraunhofer.de, alexander.scheidler@iee.fraunhofer.de',\n-    description='Convenient Power System Modelling and Analysis based on PYPOWER and pandas',\n+    description='An easy to use open source tool for power system modeling, analysis and optimization with a high degree of automation.',\n     long_description=long_description,\n \tlong_description_content_type='text/x-rst',\n     url='http://www.pandapower.org',\n@@ -45,11 +45,14 @@\n                       \"networkx\",\n                       \"scipy\",\n                       \"numpy>=0.11\",\n-                      \"packaging\"],\n-    extras_require={\":python_version<'3.0'\": [\"future\"],\n-                    \"docs\": [\"numpydoc\", \"sphinx\", \"sphinx_rtd_theme\"],\n-                    \"plotting\": [\"plotly\", \"matplotlib\", \"python-igraph\"],\n-                    \"test\": [\"pytest\", \"pytest-xdist\"]},\n+                      \"packaging\",\n+\t\t\t\t\t  \"xlsxwriter\",\n+\t\t\t\t\t  \"xlrd\",\n+\t\t\t\t\t  \"cryptography\"],\n+    extras_require={\n+\t\t\"docs\": [\"numpydoc\", \"sphinx\", \"sphinx_rtd_theme\"],\n+\t\t\"plotting\": [\"plotly\", \"matplotlib\", \"python-igraph\"],\n+\t\t\"test\": [\"pytest\", \"pytest-xdist\"]},\n     packages=find_packages(),\n     include_package_data=True,\n     classifiers=classifiers\n", "issue": "Missing dependencies: xlswriter, xlrd, cryptography\nHi,\r\n\r\nI am currently following the instructions for the installation of the development version, as shown here: https://www.pandapower.org/start/#develop\r\n\r\nI have a brand new virtual environment on Python 3.8.3 (Windows 10, 64 bits), and the tests failed because of the following missing dependencies:\r\n\r\n> Edit: Same result on Python 3.7.8.\r\n\r\n1. xlsxwriter: `FAILED pandapower\\test\\api\\test_file_io.py::test_excel[1] - ModuleNotFoundError: No module named 'xlsxwriter'`\r\n2. xlrd: `FAILED pandapower\\test\\api\\test_file_io.py::test_excel[1] - ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.`\r\n3. cryptography: `FAILED pandapower\\test\\api\\test_file_io.py::test_encrypted_json[1] - ModuleNotFoundError: No module named 'cryptography'`\r\n\r\nThe permanent solution would most likely be to add those to setup.py and mention them in the documentation, but you might want to check if you should restrict the version.\r\n\r\nP.S.: The tests still ended up failing, but that's a seperate issue (see issue #876 ).\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\n# Copyright (c) 2016-2020 by University of Kassel and Fraunhofer Institute for Energy Economics\n# and Energy System Technology (IEE), Kassel. All rights reserved.\n\nfrom setuptools import setup, find_packages\nimport re\n\nwith open('README.rst', 'rb') as f:\n    install = f.read().decode('utf-8')\n\nwith open('CHANGELOG.rst', 'rb') as f:\n    changelog = f.read().decode('utf-8')\n\nclassifiers = [\n    'Development Status :: 5 - Production/Stable',\n    'Environment :: Console',\n    'Intended Audience :: Developers',\n    'Intended Audience :: Education',\n    'Intended Audience :: Science/Research',\n    'License :: OSI Approved :: BSD License',\n    'Natural Language :: English',\n    'Operating System :: OS Independent',\n    'Programming Language :: Python',\n    'Programming Language :: Python :: 3']\n\nwith open('.travis.yml', 'rb') as f:\n    lines = f.read().decode('utf-8')\n    for version in re.findall('python: 3.[0-9]', lines):\n        classifiers.append('Programming Language :: Python :: 3.%s' % version[-1])\n\nlong_description = '\\n\\n'.join((install, changelog))\n\nsetup(\n    name='pandapower',\n    version='2.3.0',\n    author='Leon Thurner, Alexander Scheidler',\n    author_email='leon.thurner@iee.fraunhofer.de, alexander.scheidler@iee.fraunhofer.de',\n    description='Convenient Power System Modelling and Analysis based on PYPOWER and pandas',\n    long_description=long_description,\n\tlong_description_content_type='text/x-rst',\n    url='http://www.pandapower.org',\n    license='BSD',\n    install_requires=[\"pandas>=0.17\",\n                      \"networkx\",\n                      \"scipy\",\n                      \"numpy>=0.11\",\n                      \"packaging\"],\n    extras_require={\":python_version<'3.0'\": [\"future\"],\n                    \"docs\": [\"numpydoc\", \"sphinx\", \"sphinx_rtd_theme\"],\n                    \"plotting\": [\"plotly\", \"matplotlib\", \"python-igraph\"],\n                    \"test\": [\"pytest\", \"pytest-xdist\"]},\n    packages=find_packages(),\n    include_package_data=True,\n    classifiers=classifiers\n)\n", "path": "setup.py"}, {"content": "__version__ = \"2.3.0\"\n\nimport os\npp_dir = os.path.dirname(os.path.realpath(__file__))\n\nfrom pandapower.auxiliary import *\nfrom pandapower.convert_format import *\nfrom pandapower.create import *\nfrom pandapower.diagnostic import *\nfrom pandapower.file_io import *\nfrom pandapower.run import *\nfrom pandapower.runpm import *\nfrom pandapower.std_types import *\nfrom pandapower.toolbox import *\nfrom pandapower.powerflow import *\nfrom pandapower.opf import *\nfrom pandapower.optimal_powerflow import OPFNotConverged\nfrom pandapower.pf.runpp_3ph import runpp_3ph\nimport pandas as pd\npd.options.mode.chained_assignment = None  # default='warn'\n", "path": "pandapower/__init__.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n\n# Copyright (c) 2016-2020 by University of Kassel and Fraunhofer Institute for Energy Economics\n# and Energy System Technology (IEE), Kassel. All rights reserved.\n\nfrom setuptools import setup, find_packages\nimport re\n\nwith open('README.rst', 'rb') as f:\n    install = f.read().decode('utf-8')\n\nwith open('CHANGELOG.rst', 'rb') as f:\n    changelog = f.read().decode('utf-8')\n\nclassifiers = [\n    'Development Status :: 5 - Production/Stable',\n    'Environment :: Console',\n    'Intended Audience :: Developers',\n    'Intended Audience :: Education',\n    'Intended Audience :: Science/Research',\n    'License :: OSI Approved :: BSD License',\n    'Natural Language :: English',\n    'Operating System :: OS Independent',\n    'Programming Language :: Python',\n    'Programming Language :: Python :: 3']\n\nwith open('.travis.yml', 'rb') as f:\n    lines = f.read().decode('utf-8')\n    for version in re.findall('python: 3.[0-9]', lines):\n        classifiers.append('Programming Language :: Python :: 3.%s' % version[-1])\n\nlong_description = '\\n\\n'.join((install, changelog))\n\nsetup(\n    name='pandapower',\n    version='2.3.1',\n    author='Leon Thurner, Alexander Scheidler',\n    author_email='leon.thurner@iee.fraunhofer.de, alexander.scheidler@iee.fraunhofer.de',\n    description='An easy to use open source tool for power system modeling, analysis and optimization with a high degree of automation.',\n    long_description=long_description,\n\tlong_description_content_type='text/x-rst',\n    url='http://www.pandapower.org',\n    license='BSD',\n    install_requires=[\"pandas>=0.17\",\n                      \"networkx\",\n                      \"scipy\",\n                      \"numpy>=0.11\",\n                      \"packaging\",\n\t\t\t\t\t  \"xlsxwriter\",\n\t\t\t\t\t  \"xlrd\",\n\t\t\t\t\t  \"cryptography\"],\n    extras_require={\n\t\t\"docs\": [\"numpydoc\", \"sphinx\", \"sphinx_rtd_theme\"],\n\t\t\"plotting\": [\"plotly\", \"matplotlib\", \"python-igraph\"],\n\t\t\"test\": [\"pytest\", \"pytest-xdist\"]},\n    packages=find_packages(),\n    include_package_data=True,\n    classifiers=classifiers\n)\n", "path": "setup.py"}, {"content": "__version__ = \"2.3.1\"\n\nimport os\npp_dir = os.path.dirname(os.path.realpath(__file__))\n\nfrom pandapower.auxiliary import *\nfrom pandapower.convert_format import *\nfrom pandapower.create import *\nfrom pandapower.diagnostic import *\nfrom pandapower.file_io import *\nfrom pandapower.run import *\nfrom pandapower.runpm import *\nfrom pandapower.std_types import *\nfrom pandapower.toolbox import *\nfrom pandapower.powerflow import *\nfrom pandapower.opf import *\nfrom pandapower.optimal_powerflow import OPFNotConverged\nfrom pandapower.pf.runpp_3ph import runpp_3ph\nimport pandas as pd\npd.options.mode.chained_assignment = None  # default='warn'\n", "path": "pandapower/__init__.py"}]}