Stam

Latest version: v0.7.0

Safety actively analyzes 626983 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

1.0.0

Formal first release of the STAM specification.

Implemented in stam-rust 0.9.0, stam-python 0.4.0, stam-tools 0.4.0.

0.12.0

Fairly minor update release:

New features:

* Added a `segmentation()` method for ResultItem<TextResource> and ResultTextSelection, providing all non-overlapping text segments that together fully cover the resource/text selection
* Generate body IDs in Web Annotation output

Fixes:

* Query: Added DATASET primary constraint for ANNOTATION result type

0.11.0

New features:
* Implemented [STAM Transpose extension](https://github.com/annotation/stam/blob/master/extensions/stam-transpose/README.md): a `transpose()` function is now available on Annotation and TextSelectionSets #28
* Implemented UNION constraint in the STAM Query Language 26
* Exposed functions for ID (re)generation (`IdStrategy`, `generate_id()`, `regenerate_id()`)
* Implemented `TextSelection.intersection()`

Minor API improvements:
* Implemented missing high-level iterator for AnnotationDataSet
* added `Offset.len()`, `Cursor.shift()` and `Offset.shift()`
* added `ResultItem<Annotation>.textselectionsets()`, `ResultItem<Annotation>.textselectionset_in()`
* constrained the characters used in randomly generated IDs to include only alphanumeric ones
* better error feedback in querying
* extra inspection methods for AnnotationBuilder and SelectionBuilder

Bugfixes:
* Fixed serialisation of webannotations and added supported for internal range selectors
* Fixes for merging multiple annotation stores
* Implemented several missing constraint handler for the query language

There was also some refactoring and dependency upgrades.

0.10.1

New features:

* Implemented DataValue::Datetime (27), which was in the official specification but not yet implemented until now
* Implemented support for W3C Web Annotation export (JSON-LD) of Annotations (4)
* Implemented STAM JSON serialisation for TextSelection (even though it doesn't appear in a normal STAM JSON output)

Minor API improvements:

* Implemented `TextResource.to_json()`
* Implemented `TextSelection.absolute_offset()`
* Implemented a better API to get a textselection of a whole resource, e.g. using From trait
* Implemented `QueryResultItems.get_by_name_or_first()` and `QueryResultItems.get_by_name_or_last()`
* Exposed a common `generate_id()` function

Bugfixes:

* Fix for `AnnotationStore.add_resource(filename=)`

0.9.0

This is a major update that significantly changes the high-level API and
introduces a query implementation. We have now entered a stage in which the API
is stabilising and can be actively used.

* New high-level API, with documentation.
* Introduces traits `AnnotationsIterator`, `DataIterator`, `ResourcesIterator`, `TextSelectionIterator`.
* Added `Handles<T>` structure to hold collections (type aliases `Annotations`,`Data`, `TextSelections`,`Resources`).
* Many new `filter*` methods
* Major refactoring in large code parts
* A query language (STAMQL) and query engine have been implemented. (14)
* Two new selectors were added to the core model: `DataKeySelector` and `AnnotationDataSelector` (25)
* Implemented `AnnotationStore.find_text_nocase()` method
* Various bugfixes, and other minor improvements.

**Important note:** This release breaks backward-compatibility in a number of ways as the API has been overhauled again. This should be the last such major overhaul.

0.8.0

This is a major new release that introduces a new high-level API, allowing for elaborate search of annotations, data, text selections:

* New high-level API, with documentation
* New iterators `AnnotationsIter`, `DataIter` and `TextSelectionsIter`.
* New collections `Annotations`, `Data`.
* Iterators have a `parallel()` method to initiate parallelisation from that point on.
* Made a split between the low-level API and high-level API, certain parts of the low-level API are no longer exposed publicly.
* Implemented binary (de)serialisation using CBOR (13 )
* CompositeSelectors and MultiSelectors adhere to textual order (21)
* Internal ranged selectors reduce the memory footprint for complex selectors (15)
* Implemented temporary public IDs in cases where no public IDs have been assigned; also added the option to strip IDs from existing annotations/data.
* Methods for introspection regarding memory usage
* Major improvements in memory consumption (contained an important bug)
* Major refactoring, numerous bugfixes, performance improvements, etc...

The above is just a limited summary of the most important changes, consult the git log for details.

**Important note**: This release breaks backward-compatibility in a number of ways as the API has been overhauled completely! We hope to avoid similar large breakages in the future.

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.