Stam

Latest version: v0.10.1

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

Scan your dependencies

Page 3 of 5

0.13.0

New features:

* Implemented deletion 3
* Updates to the query language (STAMQL) and engine:
* New `ADD` and `DELETE` statements in STAMQL queries for editing data. Added a method `AnnotationStore.query_mut()` to run such queries that require mutability.
* New `OFFSET`modifier for `RESOURCE` and `ANNOTATION` result types in STAMQL.

Minor API improvements:

* Added conversion of Cursor to usize and isize
* Implemented conversion from std::io::Error for StamError

Miscellaneous:

* Refactored contextvars implementation in query engine
* Updated dependencies

Bugfixes:

* Fixed writing stand-off files
* Added missing implementations in resolving DataKeySelector, AnnotationDataSelector
* In segmentation(), do not include seegments that have no annotations (e.g. milestones)

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 3 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.