Release notes#

Release Notes#

Version

Changelog

v2.2.0

• Refactor API and AsyncAPI methods to embrace the new API behavior, allowing for multi-location request in the same request. This change does not imply a breaking change in the API of the package, as the refactor is internal and the public methods remain unchanged. Moreover, old functionality is kept as deprecated. However, it allows for better performance and efficiency when making requests to the API, as multiple locations can now be queried in a single request.
• Add non-blocking Pyodide loading in the interactive example, allowing the user to interact with the page while Pyodide is loading in the background. This change improves the user experience by reducing the initial loading time and allowing users to start exploring the documentation and examples without having to wait for Pyodide to load completely.
• Add notebooks with examples in the Sphinx documentation via the nbsphinx extension.
• Add force_cache_miss parameter to the get_data method of both the core API and the datasignals accessor. This parameter allows users to bypass any cache in the API and perform a fresh hit to the database, which can be useful in scenarios where data is frequently updated or when users want to ensure they are working with the most recent data.
• Add tests for the above changes

v2.1.6 <- v2.1.5

• Increase maximum supported python version from 3.11 to 3.13
• Update pyodide version (0.29.0 <- 0.27.4) in interactive notebook

v2.1.4 <- v2.1.1

• Improve behavior of api_24sea.utils.estimate_chunk_size to better handle edge cases
• Handle tqdm when running in Jupyter notebooks or other interactive environments
• Add tests for the above changes
• Increase test coverage

v2.1.1

• Add calendarmonth availability to the api_24sea.datasignals.core.API.get_availability endpoint. This allows users to retrieve availability data aggregated by calendar month.
• Add tests for the above change

v2.1.0

• Add HTTPError exception to catch all httpx-related errors
• Improve HTTP error handling in both core API and datasignals accessor
• Add tests for the above changes
• Add utils.handle_request_async method to handle requests other than GET. Currently used by the ai extension

v3.0.3 <- v2.0.0

• Move api_24sea.core.API to api_24sea.datasignals.core.API, hence allowing multiple API classes, e.g. from the ai or annotations extensions.

v1.7.0

• Add api_24sea.core.API.get_availability endpoint to check availability of resources

v1.6.1 <- v1.6.0

• Add api_24sea.core.API.get_stats endpoint to get 10-minute metrics statistics
• Add api_24sea.core.API.get_stats_predefined_intervals endpoint
• Add api_24sea.core.API.get_oldest_timestamp endpoint

v1.5.19 <- 1.5.14

• Source code and pipelines migration to Bitbucket Cloud

v1.5.13

• Add error message when invalid sites/locations/metrics combos are requested

v1.5.12 <- 1.5.7

• Pipeline: CICD now orchestrates CI and DOCS pipelines
• Fix logging level in get_data
• Fix bug in get_data when as_star_schema is True
• Add smart chunking to get_data when the forecasted query size exceeds 10 MB

v1.5.6

• Tests: Change test metrics normalization
• Metrics: Allow underscore in regex

v1.5.5

• Add max workers/threads for parallel API requests

v1.5.4

• Fix Python version/classifiers in pyproject

v1.5.3

• Add timeout param in core.API.get_data (httpx-sync)
• Increase default timeout (httpx-sync)

v1.5.2

• Docs: Add recursive GET button, bending moments, vibration dims

v1.5.1

• Add sample dashboard to the documentation
• Fix remaining imports of the requests library
• Reset API base URL from dev to prod address

v1.5.0

• Add support to the httpx library in favor of requests. Add async support
• Adapt the interactive example to the new httpx-dependent environment

v1.4.21

• Full fix matplotlib + matplotlib pyodide compatibility in interactive example
• Set pyodide version to stable

v1.4.20

• Add a retry strategy to overcome temporary server unavailability (502 Gad gateway)
• Partial fix matlab incompatibility in interactive example

v1.4.19 <- 1.4.17

• Fix misplaced dependencies broke pyodide env
• Add the possibility to unselect “convert_object_columns_to_string” option
• Adapt CICD to new pyproject.toml

v1.4.16

Migration to full uv/flit-core project

v1.4.15

Add multiple API authentication environment variable prefixes. Now the API can authenticate using the following environment variables:
• (24SEA_API_USERNAME, 24SEA_API_PASSWORD)
• (API_24SEA_USERNAME, API_24SEA_PASSWORD)
• (TWOFOURSEA_API_USERNAME, TWOFOURSEA_API_PASSWORD)
• (API_TWOFOURSEA_USERNAME, API_TWOFOURSEA_PASSWORD)

v1.4.14 - 1.4.13

• Coerce return type of column value in api_24sea.core.to_star_schema FactData table to float, and convert all non-numeric values to NaN
• In the api_24sea.core.to_star_schema FactPivotData table, convert all JSON columns to string for SQL compatibility
• Add tests for the above changes

v1.4.12 <- v1.4.11

• Edit api_24sea.utils.parse_timestamp to test for additional timestamp formats that can be support by older versions of pandas
• Using older version of pandas also implies an additional fix to api_24sea.core.to_category_value

v1.4.10 <- v1.4.5

• Fix bug in get_data that makes the site and location parameters fully case insensitive
24sea_api.core.API().authenticate() method now returns self to allow method chaining
24sea_api.DataSignals().authenticate() method now returns self._obj (pandas.DataFrame) to allow method chaining
• Try to still load data when timestamp format is invalid by using the format="mixed" option in the DataSignals.get_data() method

v1.4.4

Fix bug in to_star_schema function for FactPivotData. Add related tests

v1.4.3

Add fallback to single-threaded mode when a RuntimeError is raised by the concurrent.futures module

v1.4.2

Losen the dependency on numpy, and restrict it only on the fatigue extra

v1.4.1

Losen the dependency on pydantic to allow the use of both V1 and V2

v1.4.0

• Remove option as_star_schema from datasignals accessor to preserve consistency between function output and dataframe content. Now star schema output can be obtained by importing to_star_schema function from the api_24sea.core module, and passing the dataframe and metrics_overview as argument
• Rename outer_join_on_timestamp to split_by_location in the api_24sea.datasignals.DataSignals.get_data() method
• Improve lazy authentication behavior for both the core API and the datasignals accessor

v1.3.0

Add option metrics="all" to get all metrics available in the API for a specific site and location

v1.2.0

Add FactPivotData table to the star schema

v1.1.0

Add get data as star schema feature. This feature allows to get data in a star schema format, where Dimensions are DimWindFarm, DimCalendar, DimDataGroup, DimMetric, and the Fact table is the DataFrame with the data

v1.0.0

Add data normalization feature

v0.11.1

Update the README to reflect the latest changes

v0.11.0

Add _auto_authenticate method when 24SEA_API_USERNAME and 24SEA_API_PASSWORD are loaded and / or available in the system

v0.10.0

Update dependency to latest version of shorthand_datetime

v0.9.3

Change project’s documentation homepage

v0.9.2

Add test to core API

v0.9.1

Make drop_site, drop_location parameters optional in DataSignals.get_data()

v0.9.0

Add core API to the package so that data now can also be retrieved without instantiating a DataFrame. Useful for third-party apps integration

v0.8.2

Change metrics overview DataFrame index for better compatibility with third-party apps

v0.8.1

Increase test coverage

v0.8.0

Add shorthand_datetime package-compatible timestamp formats

v0.7.1 - v0.7.6

Add CICD pipeline

v0.7.0

Refactor DataSignals.get_data() internal architecture

v0.6.0

Add site and location casting to str when parsing

v0.5.0

Add fatigue extra for analyzing cycle-count metrics

v0.4.1-beta1

Rename a backlog to release notes

v0.4.1

Bugfix in DataSignals.authenticate() method to get always site_id and location_id

v0.4.0

Add DataSignals.as_dict() method and move exceptions to dedicated module

v0.3.1

Minor bugfix

v0.3.0

Convert automatically DataFrame index to DateTimeIndex when the attribute outer_join_on_timestamp=True in DataSignals.get_data() class

v0.2.2 - v0.2.4

Relax requirements

v0.2.1

Add documentation

v0.2.0

Add support for Python 3.8 onwards

v0.1.0

Initial release