Metadata-Version: 2.4
Name: infrasys
Version: 0.5.2
Project-URL: Documentation, https://github.com/NREL/infrasys#readme
Project-URL: Issues, https://github.com/NREL/infrasys/issues
Project-URL: Source, https://github.com/NREL/infrasys
Author-email: Aadil Latif <aadil.latif@nrel.gov>, Daniel Thom <daniel.thom@nrel.gov>, Kapil Duwadi <kapil.duwadi@nrel.gov>, Pedro Andres Sanchez Perez <pedroandres.sanchezperez@nrel.gov>, Tarek Elgindy <tarek.elgindy@nrel.gov>
License-Expression: BSD-3-Clause
License-File: LICENSE.txt
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: <3.14,>=3.11
Requires-Dist: loguru~=0.7.2
Requires-Dist: numpy<3,>=2
Requires-Dist: pandas<3,>=2
Requires-Dist: pint~=0.23
Requires-Dist: pyarrow~=19.0
Requires-Dist: pydantic<3,>=2.7
Requires-Dist: python-dateutil>=2.9.0.post0
Requires-Dist: rich~=13.7.1
Provides-Extra: chronify
Requires-Dist: chronify~=0.3.1; extra == 'chronify'
Provides-Extra: dev
Requires-Dist: autodoc-pydantic~=2.0; extra == 'dev'
Requires-Dist: furo; extra == 'dev'
Requires-Dist: mypy<2,>=1.13; extra == 'dev'
Requires-Dist: myst-parser; extra == 'dev'
Requires-Dist: pandas-stubs; extra == 'dev'
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: pyarrow-stubs; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: sphinx; extra == 'dev'
Requires-Dist: sphinx-click; extra == 'dev'
Requires-Dist: sphinx-copybutton; extra == 'dev'
Requires-Dist: sphinx-tabs~=3.4; extra == 'dev'
Description-Content-Type: text/markdown

# infrasys

[![CI](https://github.com/NREL/infrasys/workflows/CI/badge.svg)](https://github.com/NREL/infrasys/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/NREL/infrasys/branch/main/graph/badge.svg)](https://codecov.io/gh/NREL/infrasys)

This package implements a data store for components and time series in support of Python-based
modeling packages. While it is designed to support teams modeling transmission and distribution
systems for electrical grids, it can be used by any package that needs to store components
(e.g., generators and buses) that have quantities (e.g., power and voltage) which may vary over
time.

The package was inspired by
[InfrastructureSystems.jl](https://github.com/NREL-Sienna/InfrastructureSystems.jl)

## Benefits
- Stores components in data structures that provide fast lookup and iteration by type and name.
- Provides extendable data models that enable validation and unit conversion through
[pint](https://pint.readthedocs.io/en/stable/).
- Manages time series data efficiently. Data is only loaded into system memory when needed by
the user application.
- Manages serialization and de-serialization of components to JSON, including automatic handling of
nested objects.
- Enables data model migration.

## Package Developer Guide
🚧

## Installation
```
$ pip install git+ssh://git@github.com/NREL/infrastructure_systems.git@main
```

## Developer installation
```
$ pip install -e ".[dev]"
```

Please install `pre-commit` so that your code is checked before making commits.
```
$ pre-commit install
```

## License
infrasys is released under a BSD 3-Clause
[License](https://github.com/NREL/infrasys/blob/main/LICENSE.txt).

infrasys was developed under software record SWR-24-42 at the National Renewable Energy Laboratory
([NREL](https://www.nrel.gov)).
