Skip to main content
Pre-release

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.

Result files are read with a fast direct reader by default, falling back automatically to the long-standing reader for the formats it does not cover. psr.factory.set_setting("LEGACY_RESULT_READER", True) forces every read back through the long-standing one.

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 at psr_factory-<version>.dist-info/licenses/LICENSE.txt). Installing or using the package means accepting it. It is offered as two paid grants, Evergreen (perpetual) and Annual (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 beside LICENSE.txt. Nothing in the PSR Factory agreement limits any right you hold under those licences.
  • Bill of materials. A CycloneDX 1.6 and an SPDX 2.3 SBOM are published with every release.

Releases up to and including 5.0.0b152 were published under the MIT licence and have been yanked from PyPI. If you pinned one of them, move to a current release. The MIT grant on a copy you already hold is not retroactively withdrawn, but no MIT-licensed build is supported or available going forward.

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

psr_factory-5.0.0b156-py3-none-win_amd64.whl (12.9 MB view details)

Uploaded Python 3Windows x86-64

File details

Details for the file psr_factory-5.0.0b156-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for psr_factory-5.0.0b156-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0841dfc88ac654a8737c5273e1ca7cadd25439bdfc6532ce118433eaa1967a4e
MD5 dc4a437545e0418a426c8ffaec29dcb1
BLAKE2b-256 43fd47e405214e0957ec4dc75e16f88c72e7bb7e0cc9fb2d661cfc6365e6708c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

5.0.0b156 This release

1 file

5.0.0b67

1 file

5.0.0b2

1 file

5.0.0b1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page