diff --git a/CHANGELOG.md b/CHANGELOG.md index d870ae83..dbffb2e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased / Draft +### Added + +- `text_position` + ### Changed - `clip`: Throw an exception if min > max [#472](https://github.com/Open-EO/openeo-processes/issues/472) diff --git a/proposals/text_position.json b/proposals/text_position.json new file mode 100644 index 00000000..b96e917c --- /dev/null +++ b/proposals/text_position.json @@ -0,0 +1,93 @@ +{ + "id": "text_position", + "summary": "First position of a text in another text", + "description": "Checks where the text (also known as *string*) specified for `pattern` is positioned in the text specified for `data` for the first time. No-data values are passed through.", + "categories": [ + "texts" + ], + "experimental": true, + "parameters": [ + { + "name": "data", + "description": "Text in which to find something in.", + "schema": { + "type": [ + "string", + "null" + ] + } + }, + { + "name": "pattern", + "description": "Text to find in `data`. Regular expressions are not supported.", + "schema": { + "type": "string" + } + }, + { + "name": "case_sensitive", + "description": "Case sensitive comparison can be disabled by setting this parameter to `false`.", + "schema": { + "type": "boolean" + }, + "default": true, + "optional": true + } + ], + "returns": { + "description": "A value >= 0 that indicates the position of the text, `-1` if the text was not found.", + "schema": { + "type": [ + "integer", + "null" + ], + "minimum": -1 + } + }, + "examples": [ + { + "arguments": { + "data": "Lorem ipsum dolor sit amet", + "pattern": "openEO" + }, + "returns": -1 + }, + { + "arguments": { + "data": "Lorem ipsum dolor sit amet", + "pattern": "ipsum dolor" + }, + "returns": 6 + }, + { + "arguments": { + "data": "Lorem ipsum dolor sit amet", + "pattern": "Ipsum Dolor" + }, + "returns": -1 + }, + { + "arguments": { + "data": "Lorem ipsum dolor sit amet", + "pattern": "SIT", + "case_sensitive": false + }, + "returns": 18 + }, + { + "arguments": { + "data": "ÄÖÜ", + "pattern": "ö", + "case_sensitive": false + }, + "returns": 1 + }, + { + "arguments": { + "data": null, + "pattern": "null" + }, + "returns": null + } + ] +}