This release is a pre-release and may not be stable for production use.
PSR Factory
Factory is a library that helps to manage SDDP cases. It contains functions that create, load, and save studies, and also functions that create, access, and modify objects in a study.
Installation
Open the command prompt and run the following command:
pip install psr-factory
Factory will be available to all Python scripts in your system after importing it:
import psr.factory
Usage sample
import psr.factory
study = psr.factory.load_study(r"C:\temp\my\study")
system_1 = study.find("System.*")[0]
battery = study.create("Battery")
battery.code = 1
battery.name = "Battery 1"
battery.set("InstalledCapacity", 10.0)
battery.set("RefSystem", system_1)
study.add(battery)
study.save(r"C:\temp\my\updated_study")
Reading results
load_dataframe reads a result file whole. When one is too large for that --
an hourly case easily is -- scan_dataframe reads it in batches, so memory
follows the batch size and not the file size:
import psr.factory
with psr.factory.scan_dataframe(r"C:\case\gerter.hdr",
batch_rows=100_000,
filter_agents=["Thermal 1"]) as scan:
peak = max(float(batch["Thermal 1"].max()) for batch in scan)
psr.factory.write_dataframe(destination, scan) writes one back the same
way, so a whole file-to-file transform never holds either end. Batches are
ordinary DataFrame objects: index them with numpy, or convert with
to_pandas() / to_polars(), or hand them straight to pyarrow, polars or
DuckDB through the Arrow protocol.
Full documentation
The full documentation and reference is available at https://docs.psr-inc.com/knowledgehub/solutions/additional_tools/factory/getting_started/introduction.html.
Licensing
PSR Factory is commercial, proprietary software. It is not open source. Installing it from PyPI does not by itself grant a right to use it.
- The software licence is the PSR Factory Software License Agreement,
distributed with every wheel as
LICENSE.txt(inside the installed package atpsr_factory-<version>.dist-info/licenses/LICENSE.txt). Installing or using the package means accepting it. It is offered as an annual, renewable subscription. - A runtime licence is separate. The agreement governs your right to use
the software; a valid PSR licence is what makes it run. Check yours with
psr.factory.check_license(). - Redistributing the unmodified package is permitted — mirrors, internal package indexes and container images are all fine. Whoever receives it still needs their own PSR licence to run it.
- Third-party components. Factory links a number of third-party libraries.
Their licences are reproduced in full in
THIRD_PARTY_NOTICES.txt, shipped besideLICENSE.txt. Nothing in the PSR Factory agreement limits any right you hold under those licences.
Licensing enquiries: psrfactory@psr-inc.com
Releases
New releases can be found in PyPI website at https://pypi.org/project/psr-factory.
And the release notes at https://psrenergy-docs.github.io/factory/releases.html.
Metadata
Release files for psr-factory 5.0.0b182
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| psr_factory-5.0.0b182-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details for psr_factory-5.0.0b182-py3-none-win_amd64.whl |
| psr_factory-5.0.0b182-py3-none-manylinux_2_17_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details for psr_factory-5.0.0b182-py3-none-manylinux_2_17_x86_64.whl |
Total release size: 26.7 MB
Release files / psr_factory-5.0.0b182-py3-none-win_amd64.whl
| Download URL | psr_factory-5.0.0b182-py3-none-win_amd64.whl |
|---|---|
| Size | 14.8 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d39d863bddcda08676445e7f63c38bd513b398324d5aeb24481b82ff4bc5a0a2
|
|
BLAKE2b-256 checksum How to use checksums |
33b9e8860ff8af7157d275a9656a2fe11dc6975feb2c56118cdfbdc5c1750705
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logRelease files / psr_factory-5.0.0b182-py3-none-manylinux_2_17_x86_64.whl
| Download URL | psr_factory-5.0.0b182-py3-none-manylinux_2_17_x86_64.whl |
|---|---|
| Size | 11.9 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
e5bb43f71a0d07fd3281408792b37484acbec510b192754a93e89e4ef0527d0f
|
|
BLAKE2b-256 checksum How to use checksums |
50704b2ec217d8fdbf05de238c64ab3e48026b08c9a02abba4e339ee7ab71e3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logSecurity for psr-factory 5.0.0b182
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for psr_factory-5.0.0b182-py3-none-win_amd64.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.