Repository: pstelzig/MoPyRegtest (language: python)

Issue:
Include project dependencies in `setup.py` for pip
# Problem description
The `setup.py` currently does not include the project dependencies. So on `pip install --user .` the dependencies are not resolved. Thus, if the dependencies are not already satisfied, `mopyregtest` will not work out of the box. 

# Desired behavior
On installation via pip all the required dependencies should be installed automatically. 
Include project dependencies in `setup.py` for pip
# Problem description
The `setup.py` currently does not include the project dependencies. So on `pip install --user .` the dependencies are not resolved. Thus, if the dependencies are not already satisfied, `mopyregtest` will not work out of the box. 

# Desired behavior
On installation via pip all the required dependencies should be installed automatically. 


Discussion / hints:

Fix patch:
diff --git a/setup.py b/setup.py
index b1a2b28..03048f6 100644
--- a/setup.py
+++ b/setup.py
@@ -10,7 +10,7 @@
     description="A Python enabled simple regression testing framework for Modelica models",
     long_description=long_description,
     long_description_content_type="text/markdown",
-    url="https://gitlab.com/pstelzig/mopyregtest",
+    url="https://github.com/pstelzig/mopyregtest",
     packages=setuptools.find_packages(),
     package_data={"mopyregtest": ["templates/omc/model_import.mos.template",
                                   "templates/omc/model_simulate.mos.template"]},
@@ -20,5 +20,9 @@
         "Operating System :: Microsoft :: Windows :: Windows 10",
         "Operating System :: POSIX :: Linux"
     ],
-    python_requires='>=3.8'
+    python_requires='>=3.8',
+    install_requires=[
+        "numpy",
+        "pandas"
+    ]
 )


Test patch:
diff --git a/.github/workflows/job-unit-tests.yml b/.github/workflows/job-unit-tests.yml
index 20ae31e..4eb183d 100644
--- a/.github/workflows/job-unit-tests.yml
+++ b/.github/workflows/job-unit-tests.yml
@@ -5,13 +5,15 @@ jobs:
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        python-version: ["3.10"]
+        python-version: ["3.8", "3.9", "3.10", "3.11"]
     steps:
-      - uses: actions/checkout@v3
+      - uses: actions/checkout@v4
       - name: Set up Python ${{ matrix.python-version }}
         uses: actions/setup-python@v4
         with:
           python-version: ${{ matrix.python-version }}
+      - name: Display Python version
+        run: python -c "import sys; print(sys.version)"
       - name: Install dependencies
         run: |
           python -m pip install --upgrade pip
diff --git a/mopyregtest/generator.py b/mopyregtest/generator.py
index a4173fe..770a6d6 100644
--- a/mopyregtest/generator.py
+++ b/mopyregtest/generator.py
@@ -86,11 +86,11 @@ def __init__(self, package_folder, models_in_package, modelica_version="default"
         package_folder : str or PathLike
             Path to the package, from which elements shall be turned into regression tests. Relative paths to the
             file that instantiates a Generator class are possible.
-        models_in_package : list[str]
+        models_in_package : List[str]
             List of strings with Modelica names of elements in the library to be turned into regression tests.
         modelica_version : str
             Modelica STL version as a string. Default value is "default"
-        dependencies : None or list[str]
+        dependencies : None or List[str]
             Optional list of strings with names of packages that the package to be tested depends on.
             Each dependency must point to the .mo file that defines the dependency. E.g. if the
             dependency is an entire package, it must be the path to the respective package's package.mo.
diff --git a/mopyregtest/modelicaregressiontest.py b/mopyregtest/modelicaregressiontest.py
index 571a60f..7797976 100644
--- a/mopyregtest/modelicaregressiontest.py
+++ b/mopyregtest/modelicaregressiontest.py
@@ -13,6 +13,7 @@
 import math
 import numpy as np
 import pandas as pd
+from typing import List
 from . import utils
 from . import metrics
 
@@ -42,7 +43,7 @@ def __init__(self, package_folder, model_in_package, result_folder, tool="omc",
         modelica_version : str
             Version of the Modelica standard library to be loaded before the test is executed.
             Default is "default", other meaningful values can be "3.2.3" or "4.0.0".
-        dependencies : None or list[str]
+        dependencies : None or List[str]
             Optional list of strings with names of packages that the package to be tested depends on.
             Each dependency must point to the .mo file that defines the dependency. E.g. if the
             dependency is an entire package, it must be the path to the respective package's package.mo.
@@ -64,7 +65,7 @@ def __init__(self, package_folder, model_in_package, result_folder, tool="omc",
         self.result_folder_created = False
 
     @staticmethod
-    def _unify_timestamps(results: list[pd.DataFrame], fill_in_method="ffill"):
+    def _unify_timestamps(results: List[pd.DataFrame], fill_in_method="ffill"):
         """
         From a list of pandas DataFrame objects containing the results of Modelica
         simulation runs, a list of extended results is generated, each of which
@@ -80,7 +81,7 @@ def _unify_timestamps(results: list[pd.DataFrame], fill_in_method="ffill"):
 
         Parameters
         ----------
-        results : list[pd.DataFrame]
+        results : List[pd.DataFrame]
             List of pandas DataFrame objects containing the results of Modelica
             simulation runs
         fill_in_method : str
@@ -91,7 +92,7 @@ def _unify_timestamps(results: list[pd.DataFrame], fill_in_method="ffill"):
 
         Returns
         -------
-        out : list[pd.DataFrame]
+        out : List[pd.DataFrame]
             List of extended pandas DataFrame objects, each of which has the
             same timestamps and missing data has been filled in
         """