Installing Dependencies

Installing Dependencies#

Before getting started with the tutorial, you’ll need to install a couple of Python packages that provide the core functionality and supporting tools for working with Grid Data Models (GDM).

grid-data-models – This is the primary package that provides the foundational data models and validation logic used throughout the tutorial. It includes the Pydantic-based model definitions, unit handling via pint, time series support, connectivity validation, and integration with the graph analysis tool NetworkX.

gdmloader – This is a helper package designed to simplify the process of downloading and loading example distribution system models into your workspace. It provides convenient functions for retrieving prebuilt test cases, allowing you to focus on using the models rather than building them from scratch.

Make sure to install both packages in your Python environment before proceeding with the tutorial.

pip install grid-data-models gdmloader
Requirement already satisfied: grid-data-models in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (2.0.1)
Requirement already satisfied: gdmloader in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (0.0.2)
Requirement already satisfied: click~=8.1.7 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from grid-data-models) (8.1.8)
Requirement already satisfied: geopandas in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from grid-data-models) (1.0.1)
Requirement already satisfied: importlib-metadata in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from grid-data-models) (8.6.1)
Requirement already satisfied: infrasys~=0.4.0 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from grid-data-models) (0.4.0)
Requirement already satisfied: networkx in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from grid-data-models) (3.4.2)
Requirement already satisfied: pandas~=2.2.3 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from grid-data-models) (2.2.3)
Requirement already satisfied: plotly in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from grid-data-models) (6.0.1)
Requirement already satisfied: pydantic~=2.10.6 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from grid-data-models) (2.10.6)
Requirement already satisfied: fsspec in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from gdmloader) (2025.3.2)
Requirement already satisfied: requests in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from gdmloader) (2.32.3)
Requirement already satisfied: loguru~=0.7.2 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from infrasys~=0.4.0->grid-data-models) (0.7.3)
Requirement already satisfied: numpy<3,>=2 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from infrasys~=0.4.0->grid-data-models) (2.2.5)
Requirement already satisfied: pint~=0.23 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from infrasys~=0.4.0->grid-data-models) (0.24.4)
Requirement already satisfied: pyarrow~=19.0 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from infrasys~=0.4.0->grid-data-models) (19.0.1)
Requirement already satisfied: rich~=13.7.1 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from infrasys~=0.4.0->grid-data-models) (13.7.1)
Requirement already satisfied: python-dateutil>=2.8.2 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from pandas~=2.2.3->grid-data-models) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from pandas~=2.2.3->grid-data-models) (2025.2)
Requirement already satisfied: tzdata>=2022.7 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from pandas~=2.2.3->grid-data-models) (2025.2)
Requirement already satisfied: annotated-types>=0.6.0 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from pydantic~=2.10.6->grid-data-models) (0.7.0)
Requirement already satisfied: pydantic-core==2.27.2 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from pydantic~=2.10.6->grid-data-models) (2.27.2)
Requirement already satisfied: typing-extensions>=4.12.2 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from pydantic~=2.10.6->grid-data-models) (4.13.2)
Requirement already satisfied: pyogrio>=0.7.2 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from geopandas->grid-data-models) (0.10.0)
Requirement already satisfied: packaging in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from geopandas->grid-data-models) (25.0)
Requirement already satisfied: pyproj>=3.3.0 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from geopandas->grid-data-models) (3.7.1)
Requirement already satisfied: shapely>=2.0.0 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from geopandas->grid-data-models) (2.1.0)
Requirement already satisfied: zipp>=3.20 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from importlib-metadata->grid-data-models) (3.21.0)
Requirement already satisfied: narwhals>=1.15.1 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from plotly->grid-data-models) (1.36.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from requests->gdmloader) (3.4.1)
Requirement already satisfied: idna<4,>=2.5 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from requests->gdmloader) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from requests->gdmloader) (2.4.0)
Requirement already satisfied: certifi>=2017.4.17 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from requests->gdmloader) (2025.4.26)
Requirement already satisfied: platformdirs>=2.1.0 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from pint~=0.23->infrasys~=0.4.0->grid-data-models) (4.3.7)
Requirement already satisfied: flexcache>=0.3 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from pint~=0.23->infrasys~=0.4.0->grid-data-models) (0.3)
Requirement already satisfied: flexparser>=0.4 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from pint~=0.23->infrasys~=0.4.0->grid-data-models) (0.4)
Requirement already satisfied: six>=1.5 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from python-dateutil>=2.8.2->pandas~=2.2.3->grid-data-models) (1.17.0)
Requirement already satisfied: markdown-it-py>=2.2.0 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from rich~=13.7.1->infrasys~=0.4.0->grid-data-models) (3.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from rich~=13.7.1->infrasys~=0.4.0->grid-data-models) (2.19.1)
Requirement already satisfied: mdurl~=0.1 in /opt/homebrew/Caskroom/miniconda/base/envs/gdm2/lib/python3.12/site-packages (from markdown-it-py>=2.2.0->rich~=13.7.1->infrasys~=0.4.0->grid-data-models) (0.1.2)
Note: you may need to restart the kernel to use updated packages.