pm4py.statistics.concurrent_activities.polars.get module#

PM4Py – A Process Mining Library for Python Copyright (C) 2026 Process Intelligence Solutions GmbH

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

class pm4py.statistics.concurrent_activities.polars.get.Parameters(*values)[source]#

Bases: Enum

ACTIVITY_KEY = 'pm4py:param:activity_key'#
CASE_ID_KEY = 'pm4py:param:case_id_key'#
TIMESTAMP_KEY = 'pm4py:param:timestamp_key'#
START_TIMESTAMP_KEY = 'pm4py:param:start_timestamp_key'#
STRICT = 'strict'#
pm4py.statistics.concurrent_activities.polars.get.get_concurrent_events_dataframe(lf: polars.LazyFrame, start_timestamp_key=None, timestamp_key='time:timestamp', case_id_glue='case:concept:name', activity_key='concept:name', strict=False) → polars.LazyFrame[source]#

Gets the concurrent events (of the same case) in a Polars LazyFrame

Parameters:
  • lf – LazyFrame

  • start_timestamp_key – Start timestamp key (if not provided, defaulted to the timestamp_key)

  • timestamp_key – Complete timestamp

  • case_id_glue – Column of the dataframe to use as case ID

  • activity_key – Activity key

  • strict – Gets only entries that are strictly concurrent (i.e. the length of the intersection as real interval is > 0)

Returns:

Concurrent events LazyFrame with concurrency information

Return type:

conc_ev_dataframe

pm4py.statistics.concurrent_activities.polars.get.apply(lf: polars.LazyFrame, parameters: Dict[str | Parameters, Any] | None = None) → Dict[Tuple[str, str], int][source]#

Gets the number of times for which two activities have been concurrent in the log.

Parameters:
  • lf – Polars LazyFrame

  • parameters – Parameters of the algorithm, including:

    • Parameters.ACTIVITY_KEY => activity key

    • Parameters.CASE_ID_KEY => case id

    • Parameters.START_TIMESTAMP_KEY => start timestamp

    • Parameters.TIMESTAMP_KEY => complete timestamp

    • Parameters.STRICT => Determine if only entries that are strictly concurrent (i.e. the length of the intersection as real interval is > 0) should be obtained. Default: False

Returns:

Dictionaries associating to a couple of activities (tuple) the number of times for which they have been executed in parallel in the log

Return type:

ret_dict