You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dynamically symlink to other pipes' attributes.
Reference attributes of other pipes using the {{ Pipe(...) }} syntax. These references are resolved at run-time when Pipe.parameters is accessed:
Add MRSM config symlinks to pipe parameters.
Similar to the {{ Pipe(...) }} syntax, you can now reference your Meerschaum configuration from within a pipe's parameters:
Add Pipe.update_parameters().
Due to the symlinking features, the method Pipe.update_parameters() will now appropriately handle updating the parameters within the pipe's attributes. Therefore, mutating Pipe.parameters no longer affects the state of the pipe directly.
Add InstanceConnector base class.
Custom connectors which implement the instance connectors interface should now inherit from InstanceConnector as the base class:
Add long-lived authentication tokens.
You may now register tokens to programmatically authenticate your applications to a Meerschaum API instance. This is ideal for use cases such as CI/CD, IoT, and other automated workloads. Tokens are restricted by scopes, may expire or be invalidated, and are owned by a user account. Tokens may be managed via the CLI or web console (at /dash/tokens, under Settings > Tokens).
mrsm register token
Add scopes to user accounts.
Similar to tokens, users may be restricted by scopes. Run edit user to edit the scopes attribute for a given user (more comprehensive editing to come).
Set coerce_types to True in query_df() if any exclude parameters are provided.
Prefacing a value with the negation prefix in params for query_df() will now force coerce_types to be True.
Project geometry data to WGS84 (EPSG:4326) when serializing as GeoJSON.
Setting geometry_format to geojson for to_json() (default) (and serialize_geometry(), though not default) will project to WGS84 if a CRS is provided (to meet the 2016 GeoJSON specification).
Upgrade sql:main to PostgreSQL 17.
The Meerschaum stack database now ships as timescale/timescaledb-ha:pg17, which includes additional extensions such as PostGIS. The flavor for sql:main is now timescaledb-ha (see below).
Add the SQL flavor timescaledb-ha.
The default instance connector sql:main now has the flavor timescaledb-ha, corresponding to the timescale/timescaledb-ha Docker image. This image includes PostGIS, timescaledb_toolkit, and pg_stat_statements.
Add support for sets and Series in query_df().
Sets and Pandas Series within params will now be treated as lists.
Allow for spaces and an optional mrsm. prefix for templated SQL query definitions.
The template format {{Pipe(...)}} will now match leading and trailing spaces around the Pipe declaration, and an optional mrsm. prefix is accepted.
Add Pipe.autotime.
Similar to Pipe.autoincrement, setting autotime will capture the current timestamp for the value of the datetime axis (as datetimes or integers, depending on the dtype):
Add Pipe.precision.
The parameter precision determines the precision (and therefore the size) of the timestamp captured by autotime. Accepted values are nanosecond, microsecond, millisecond, second, minute, hour, and day. The default value of precision is derived from the dtype of the datetime axis (i.e. datetime64[ns] is nanosecond precision).
The parameter precision may either be a string (the unit) or a dictionary with the following keys:
unit (required)
The precision unit (microsecond, second, etc.)
interval (default 1)
Optionally round to a specific number of units. For example, precision='minute' and interval=15 would round to 15-minute intervals.
round_to
To which direction to round the current timestamp. Supported values are down (default), up, and closest. See meerschaum.utils.dtypes.round_time().
Add Pipe.get_value().
The convenience function Pipe.get_value() selects single values from result sets of Pipe.get_data():
Add the parameter mixed_numerics.
Setting mixed_numerics to False will prevent the behavior of coercing integer to float columns as numeric, akin to static=True but just for this behavior.
Introducing the Meerschaum CLI daemon.
Actions are now routed through a long-lived daemon process, simplifying the number of active connections and cutting latency for CLI commands. The shell includes the command daemon which temporarily toggles between the CLI daemon and executing in-process. Adding the flag --no-daemon to any action will disable the CLI daemon routing, and the CLI daemon may be disabled by setting system.experimental.cli_daemon to false. You may selectively allow or restrict actions prefixes under the configuration system.cli.allowed_prefixes (default *) and system.cli.disallowed_prefixes.
Performance improvements through smarter caching.
The metadata caching system has been overhauled, drastically reducing redundant work and increasing performance. Pipes' metadata are cached on-disk, and providing cache_connector_keys to the Pipe constructor will cache to a Valkey instance instead. Set cache=False to disable this behavior.
Restrict Webterms to API processes.
In previous releases, a single webterm process was shared amongst API processes. Now each API process requires its own Webterm server, and tmux sessions are separated by port.
Fix custom actions with spaces in Web Console.
Ignore schema from pipes' parameters on SQLite.
Tweak begin and end input sizes in the pipes card.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
v3.0.0 – v3.0.1
Inherit another pipe's base parameters with
reference.Pipes may inherit the base parameters of other pipes by setting the key
reference:Dynamically symlink to other pipes' attributes.
Reference attributes of other pipes using the
{{ Pipe(...) }}syntax. These references are resolved at run-time whenPipe.parametersis accessed:Add
MRSMconfig symlinks to pipe parameters.Similar to the
{{ Pipe(...) }}syntax, you can now reference your Meerschaum configuration from within a pipe's parameters:Add
Pipe.update_parameters().Due to the symlinking features, the method
Pipe.update_parameters()will now appropriately handle updating the parameters within the pipe's attributes. Therefore, mutatingPipe.parametersno longer affects the state of the pipe directly.Add
InstanceConnectorbase class.Custom connectors which implement the instance connectors interface should now inherit from
InstanceConnectoras the base class:Add long-lived authentication tokens.
You may now register tokens to programmatically authenticate your applications to a Meerschaum API instance. This is ideal for use cases such as CI/CD, IoT, and other automated workloads. Tokens are restricted by scopes, may expire or be invalidated, and are owned by a user account. Tokens may be managed via the CLI or web console (at
/dash/tokens, underSettings>Tokens).Add scopes to user accounts.
Similar to tokens, users may be restricted by scopes. Run
edit userto edit thescopesattribute for a given user (more comprehensive editing to come).Set
coerce_typestoTrueinquery_df()if any exclude parameters are provided.Prefacing a value with the negation prefix in
paramsforquery_df()will now forcecoerce_typesto beTrue.Project geometry data to WGS84 (EPSG:4326) when serializing as GeoJSON.
Setting
geometry_formattogeojsonforto_json()(default) (andserialize_geometry(), though not default) will project to WGS84 if a CRS is provided (to meet the 2016 GeoJSON specification).Upgrade
sql:mainto PostgreSQL 17.The Meerschaum stack database now ships as
timescale/timescaledb-ha:pg17, which includes additional extensions such as PostGIS. The flavor forsql:mainis nowtimescaledb-ha(see below).Add the SQL flavor
timescaledb-ha.The default instance connector
sql:mainnow has the flavortimescaledb-ha, corresponding to thetimescale/timescaledb-haDocker image. This image includes PostGIS,timescaledb_toolkit, andpg_stat_statements.Add support for sets and Series in
query_df().Sets and Pandas Series within
paramswill now be treated as lists.Allow for spaces and an optional
mrsm.prefix for templated SQL query definitions.The template format
{{Pipe(...)}}will now match leading and trailing spaces around thePipedeclaration, and an optionalmrsm.prefix is accepted.Add
Pipe.autotime.Similar to
Pipe.autoincrement, settingautotimewill capture the current timestamp for the value of thedatetimeaxis (as datetimes or integers, depending on the dtype):Add
Pipe.precision.The parameter
precisiondetermines the precision (and therefore the size) of the timestamp captured byautotime. Accepted values arenanosecond,microsecond,millisecond,second,minute,hour, andday. The default value ofprecisionis derived from the dtype of thedatetimeaxis (i.e.datetime64[ns]isnanosecondprecision).The parameter
precisionmay either be a string (the unit) or a dictionary with the following keys:unit(required)The precision unit (
microsecond,second, etc.)interval(default 1)Optionally round to a specific number of units. For example,
precision='minute'andinterval=15would round to 15-minute intervals.round_toTo which direction to round the current timestamp. Supported values are
down(default),up, andclosest. Seemeerschaum.utils.dtypes.round_time().Add
Pipe.get_value().The convenience function
Pipe.get_value()selects single values from result sets ofPipe.get_data():Add
Pipe.get_doc().Similar to
Pipe.get_value(), the methodPipe.get_doc()will return a single row as a dictionary:Add the parameter
mixed_numerics.Setting
mixed_numericstoFalsewill prevent the behavior of coercing integer to float columns asnumeric, akin tostatic=Truebut just for this behavior.Introducing the Meerschaum CLI daemon.
Actions are now routed through a long-lived daemon process, simplifying the number of active connections and cutting latency for CLI commands. The shell includes the command
daemonwhich temporarily toggles between the CLI daemon and executing in-process. Adding the flag--no-daemonto any action will disable the CLI daemon routing, and the CLI daemon may be disabled by settingsystem.experimental.cli_daemontofalse. You may selectively allow or restrict actions prefixes under the configurationsystem.cli.allowed_prefixes(default*) andsystem.cli.disallowed_prefixes.Performance improvements through smarter caching.
The metadata caching system has been overhauled, drastically reducing redundant work and increasing performance. Pipes' metadata are cached on-disk, and providing
cache_connector_keysto the Pipe constructor will cache to a Valkey instance instead. Setcache=Falseto disable this behavior.Restrict Webterms to API processes.
In previous releases, a single webterm process was shared amongst API processes. Now each API process requires its own Webterm server, and
tmuxsessions are separated by port.Fix custom actions with spaces in Web Console.
Ignore
schemafrom pipes' parameters on SQLite.Tweak
beginandendinput sizes in the pipes card.This discussion was created from the release 🚀 v3.0.1 Add pipes symlinking, long-lived tokens, and much more..
Beta Was this translation helpful? Give feedback.
All reactions