This algorithm splits features into multiple output features by
splitting a field's value with a specified character.
For instance, if a layer contains features with multiple comma
separated values contained in a single field, this algorithm can
be used to split these values up across multiple output features.
Geometries and other attributes remain unchanged in the output.
Optionally, the separator string can be a regular expression for
added flexibility.
Designed for use in models which need to process input files
with multiple concatenated values in a single attribute, e.g.
geocoding a table with "address1,address2,address3" format strings
each new algorithm execution
Avoids the situation where errors reported during an algorithm
which was overall successully executed are append to the errors
for later execution steps
Instead, record errors and report them all at the end of the batch
process. If we abort the remaining batch steps when encountering any
error, this blocks a useful use of the batch mode and prevents users
from running a batch process over a large number of input files, some
of which may be invalid.
to handle creation of parameter definition widgets
Previously, these configuration widgets were all hardcoded into the Python modeler
dialog. This prevented 3rd party, plugin provided, parameters from ever being full
first class citizens in QGIS, as there was no way to allow their use as inputs to
user created models to be customised.
Now, the registry is responsible for creating the configuration widget, allowing
for 3rd party parameter types to provide their own customised configuration
widgets.
Refs #26493
This change makes it easier to subclass `Grass7AlgorithProvider` which
allows e.g. to expose GRASS Addons as QGIS plugins.
Disclaimer: `Grass7AlgorithProvider` is a private API and it may change
without warning. 3rd parties that rely on this should expect
that their code will break in future releases.
For more info please check the comments at #30252
Nevertheless, it currently is possible to subclass with something like this:
class CustomGrassBasedProvider(Grass7AlgorithmProvider):
# Set descriptionFolder to our own description directory
descriptionFolder = os.path.join(os.path.dirname(__file__), 'description')
# 3rd party plugins don't need an activation/deactivation setting
activateSetting = None
# define the rest of the methods that are needed (e.g. name(), id() etc)
# ...
Fixes#30241
Continues #9202