Skip to content

Releases: Tideseed/eptr2

v1.3.7 - New Ceiling Price, New Cost Functions, Bulk DPP/KGUP Composite Function

03 Apr 06:46

Choose a tag to compare

This version is accelerated a bit ahead of schedule due to new day ahead and imbalance prices being increased to 4500 TL/MWh*.

  • New price floor and ceiling prices [0,4500] are defined at contract_to_floor_ceil_prices. This part is important because contract/datetime sensitive cost functions use this function to determine ceiling prices (you can override).
  • Two new cost functions are added: calculate_unit_price_and_costs_by_datetime and calculate_diff_costs_by_datetime. They are wrappers around calculate_unit_price_and_costs_by_contract, calculate_diff_costs_by_contract. include_dynamic_floor_ceil parameter is also set to True as default value.
  • A new composite function for bulk KGUP/DPP calls is added: get_kgup_bulk_range. You can now get bulk KGUP calls in a time range. You can see an example below.
## You must have EPTR_USERNAME and EPTR_PASSWORD defined in your `.env` file
from eptr2.composite import get_kgup_bulk_range

df = get_kgup_bulk_range(
    start_date="2026-04-01",
    end_date="2026-04-03",
    uevcb_ids=[3204384, 3204385],  ## BOZCAADA RES, BOZCAADA RES2
    verbose=True,
)

* Official announcement on April 2, starting from April 4 but effective from April 3 (due to "day ahead" prices being determined on the previous day)

v.1.3.6 - Under the Hood Changes and Ancillary Composite Function

11 Mar 21:18

Choose a tag to compare

This release is intended to bolster the repository's inner workings and to increase its capabilities and convenience of use.

  • Logger is used instead of print in many parts
  • Skills, Agents.md and other parts are refreshed
  • A new composite function (get_ancillary_reserve_data) to call all ancillary services data (PFK/SFK reserve amounts and prices)
  • Metadata improvements and project links
  • Added a changelog.md
from eptr2.composite import get_ancillary_reserve_data

df = get_ancillary_reserve_data(
    start_date="2026-01-01",
    end_date="2026-01-02",
    verbose=True,
)

v1.3.5 - Better Portfolio Costs and improved imbalance pricing

03 Feb 14:15

Choose a tag to compare

This version is focused on easier portfolio cost calculations with a seriously improved portfolio cost calculation function. There is now reduced amount of information required (even fewer under some conditions), more calculations and comparisons such as "before portfolio" and "after portfolio" with advantages reported. The function is still in progress but this version is quite helpful.

See the example file for a fully reproducible code snippet.

There are several changes on the costs functions as well. Under current regulations it is not always possible to obtain correct positive and negative imbalance prices when MCP and SMP are equal. This is mainly due to system balance cannot be directly observed when MCP == SMP. So, in new functions system direction can be given as a parameter (-1 for negative imbalance, 0 for balanced and 1 for positive imbalance). If not provided the function will infer the system direction from MCP and SMP. Contradictory inputs (e.g. MCP > SMP but negative imbalance) will be overridden by the function with a warning. As a possible breaking change, ambiguous "pos" and "neg" labels are changed to "pos_imb_price" / "neg_imb_price" and "unit_pos_imb_cost" / "unit_neg_imb_cost" wherever applicable.

There are infrastructure changes as well. One significant change is now retries on timeout are at the core of the calls instead of composite functions. There are several other minor fixes and improvements as well.

v1.3.4 - Reorganization, Portfolio Costs Composite Function

19 Jan 17:34

Choose a tag to compare

This version includes a set of connected composite functions around portfolio cost calculations.

  • Now with the aggregators, portfolio costs are increasingly important. calculate_portfolio_costs under compose.plant_costs handles this automatically with a given id dataframe (id_df) as input. Template of id_df can be gathered from create_template_id_df. Both functions have explicity export to excel functionalites.
  • You need a set of ids to get calculate_portfolio_costs. You can get all relevant ID lists from get_all_important_ids functions with excel export attribute.
  • A new cost function calculate_diff_costs_by_contract is added to make it easier to calculate costs.
  • There are some minor and major fixes. It is worth to mention that calculate_unit_imbalance_price_2026 had a little bug when mcp==smp and neither of them were at the extremes.
  • Added a documentation page generated by AI. You can reach it from https://tideseed.github.io/eptr2/
  • Added more unit tests with new functions and functionalities

v1.3.3 - Cost Functions Update, Breaking Changes, Improvements and Fixes

09 Jan 10:23

Choose a tag to compare

Starting from version 1.3.3 to 1.4.0 expect breaking changes as we are having an early spring cleaning on eptr2 for improved performance and compatibility with AI agents.

  • recycle_tgt is not True by default. We encourage you to use the .env approach.
  • Thanks to new recycling methodology, composite functions no longer need eptr2 object strictly as an input.
  • Cost functions went under serious update. In order to make them compatible between distinct regulation periods (currently 2025 and 2026) automatically we added multiple wrapper functions both by indicating directly the regulation period and implied by contract. Deprecated a lot of old code to be removed by 1.4.0.
  • Changed composite functions as well. There might be breaking changes here, too.
  • Added tests for cost functions, composite functions.
  • Some interim fixes and improvements.

v1.3.2 - Agent Skills, Cost Functions Update and New Time Function

28 Dec 22:56

Choose a tag to compare

  • eptr2 is following the latest AI trends and in this version we include Agent Skills. See here on how to enable them on VS Code. (Experimental)
  • Some cost function changes and name deprecations due to the finalization of relevant regulations. More information and better functions will come in the next version.
  • A new time function contract_open_time is added to the time functions.

v1.3.1 - Minor Release

11 Dec 07:20

Choose a tag to compare

This is a minor release with some fixes.

  • Tutorials are out of the package now, because of emojis included in file names not agreeing with some systems (just to be safe).
  • Added new time function date_str_to_contract and added documentation to time functions.
  • TGT operations now come with timeout and improvements in TGT recycling
  • Some additional information in the README.md

v1.3.0 - AI Preview and ID Composite Function

05 Nov 18:49

Choose a tag to compare

This is a major version update mainly because of the new AI capabilities of eptr2.

  • MCP Server (fastMCP based) is added to be used with Claude Desktop, Cursor or other compatible AI.
  • Lots of documents (e.g. AGENTS.md), examples and explanations are added for LLMs and AI agents to correctly assume knowledge of the library.
  • A new composite function to get organization and UEVCB ids belonging to different periods. Also a lot of supplementary functions.
## Make sure you have a .env file in the project folder with EPTR_USERNAME and EPTR_PASSWORD keys and respective values
from eptr2.composite import get_multiperiod_generation_org_and_uevcb_wrapper

res_df = get_multiperiod_generation_org_and_uevcb_wrapper(
    start_date="2025-06-01", end_date="2025-08-30", verbose=True
)

Alternatively

from eptr2.composite import get_multiperiod_generation_org_and_uevcb_wrapper
from eptr2 import EPTR2

eptr = EPTR2(username="EPTR_USERNAME", password="EPTR_PASSWORD")

res_df = get_multiperiod_generation_org_and_uevcb_wrapper(
    start_date="2025-06-01", end_date="2025-08-30", verbose=True, eptr=eptr
)

v1.2.4 - [CRITICAL] Authentication Method Changes

31 Oct 10:22

Choose a tag to compare

This update is a CRITICAL update due to authentication method changes. Authentication (TGT calling) method is changed by EPIAS, so this version reflects the changes. It will be less likely to authorize (get TGT) with the previous versions.

v1.2.3 - Improved Authentication Method

22 Oct 07:18
6032a87

Choose a tag to compare

Improved EPTR2 object creation and and authentication with environment file (".env") (enabled by default) and TGT recycling (not enabled by default) for multi-use without carrying EPTR2 objects around.

Details of this new authentication method.