pm4py.objects.bpmn package#

This file is part of PM4Py (More Info: https://pm4py.fit.fraunhofer.de).

PM4Py is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

PM4Py 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 General Public License for more details.

You should have received a copy of the GNU General Public License along with PM4Py. If not, see <https://www.gnu.org/licenses/>.

Subpackages#

Submodules#

pm4py.objects.bpmn.obj module#

This file is part of PM4Py (More Info: https://pm4py.fit.fraunhofer.de).

PM4Py is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

PM4Py 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 General Public License for more details.

You should have received a copy of the GNU General Public License along with PM4Py. If not, see <https://www.gnu.org/licenses/>.

class pm4py.objects.bpmn.obj.Marking(iterable=None, /, **kwds)[source]#

Bases: Counter

class pm4py.objects.bpmn.obj.BPMNNodeLayout[source]#

Bases: object

set_x(x)[source]#
set_y(y)[source]#
get_x()[source]#
get_y()[source]#
get_width()[source]#
set_width(width)[source]#
get_height()[source]#
set_height(height)[source]#
class pm4py.objects.bpmn.obj.BPMNEdgeLayout[source]#

Bases: object

add_waypoint(waypoint)[source]#
del_waypoints()[source]#
get_waypoints()[source]#
class pm4py.objects.bpmn.obj.BPMNLayout[source]#

Bases: object

get(n)[source]#
class pm4py.objects.bpmn.obj.BPMN(process_id=None, name='', nodes=None, flows=None)[source]#

Bases: object

class BPMNNode(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: object

get_id()[source]#
get_name()[source]#
get_in_arcs()[source]#
get_out_arcs()[source]#
add_in_arc(in_arc)[source]#
add_out_arc(out_arc)[source]#
remove_in_arc(in_arc)[source]#
remove_out_arc(out_arc)[source]#
get_process()[source]#
set_process(process)[source]#
set_x(x)[source]#
set_y(y)[source]#
get_x()[source]#
get_y()[source]#
get_width()[source]#
set_width(width)[source]#
get_height()[source]#
set_height(height)[source]#
get_layout()[source]#
set_layout(layout)[source]#
property name#
property id#
property in_arcs#
property out_arcs#
property process#
class Event(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: BPMNNode

class StartEvent(id='', isInterrupting=False, name='', parallelMultiple=False, in_arcs=None, out_arcs=None, process=None)[source]#

Bases: Event

get_isInterrupting()[source]#
get_parallelMultiple()[source]#
class NormalStartEvent(id='', isInterrupting=False, name='', parallelMultiple=False, in_arcs=None, out_arcs=None, process=None)[source]#

Bases: StartEvent

class MessageStartEvent(id='', isInterrupting=False, name='', parallelMultiple=False, in_arcs=None, out_arcs=None, process=None)[source]#

Bases: StartEvent

class IntermediateCatchEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: Event

class MessageIntermediateCatchEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: IntermediateCatchEvent

class ErrorIntermediateCatchEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: IntermediateCatchEvent

class CancelIntermediateCatchEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: IntermediateCatchEvent

class BoundaryEvent(id='', name='', in_arcs=None, out_arcs=None, process=None, activity=None)[source]#

Bases: Event

get_activity()[source]#
class MessageBoundaryEvent(id='', name='', in_arcs=None, out_arcs=None, process=None, activity=None)[source]#

Bases: BoundaryEvent

class ErrorBoundaryEvent(id='', name='', in_arcs=None, out_arcs=None, process=None, activity=None)[source]#

Bases: BoundaryEvent

class CancelBoundaryEvent(id='', name='', in_arcs=None, out_arcs=None, process=None, activity=None)[source]#

Bases: BoundaryEvent

class IntermediateThrowEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: Event

class MessageIntermediateThrowEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: IntermediateThrowEvent

class NormalIntermediateThrowEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: IntermediateThrowEvent

class EndEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: Event

class NormalEndEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: EndEvent

class MessageEndEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: EndEvent

class TerminateEndEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: EndEvent

class ErrorEndEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: EndEvent

class CancelEndEvent(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: EndEvent

class Activity(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: BPMNNode

class Task(id='', name='', in_arcs=None, out_arcs=None, process=None)[source]#

Bases: Activity

class SubProcess(id='', name='', in_arcs=None, out_arcs=None, process=None, depth=None)[source]#

Bases: Activity

get_depth()[source]#
class Gateway(id='', name='', gateway_direction=Direction.UNSPECIFIED, in_arcs=None, out_arcs=None, process=None)[source]#

Bases: BPMNNode

class Direction(value)[source]#

Bases: Enum

An enumeration.

UNSPECIFIED = 'Unspecified'#
DIVERGING = 'Diverging'#
CONVERGING = 'Converging'#
get_gateway_direction()[source]#
set_gateway_direction(direction)[source]#
class ParallelGateway(id='', name='', gateway_direction=None, in_arcs=None, out_arcs=None, process=None)[source]#

Bases: Gateway

class ExclusiveGateway(id='', name='', gateway_direction=None, in_arcs=None, out_arcs=None, process=None)[source]#

Bases: Gateway

class InclusiveGateway(id='', name='', gateway_direction=None, in_arcs=None, out_arcs=None, process=None)[source]#

Bases: Gateway

class Flow(source, target, id='', name='', process=None)[source]#

Bases: object

get_id()[source]#
get_name()[source]#
get_source()[source]#
get_target()[source]#
get_process()[source]#
set_process(process)[source]#
add_waypoint(waypoint)[source]#
del_waypoints()[source]#
get_waypoints()[source]#
get_layout()[source]#
set_layout(layout)[source]#
property source#
property target#
class SequenceFlow(source, target, id='', name='', process=None)[source]#

Bases: Flow

class MessageFlow(source, target, id='', name='', process=None)[source]#

Bases: Flow

get_process_id()[source]#
set_process_id(process_id)[source]#
get_nodes()[source]#
get_flows()[source]#
get_graph()[source]#
get_name()[source]#
set_name(name: str)[source]#
add_node(node)[source]#
remove_node(node)[source]#
remove_flow(flow)[source]#
add_flow(flow)[source]#
get_layout()[source]#
set_layout(layout)[source]#

pm4py.objects.bpmn.semantics module#

This file is part of PM4Py (More Info: https://pm4py.fit.fraunhofer.de).

PM4Py is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

PM4Py 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 General Public License for more details.

You should have received a copy of the GNU General Public License along with PM4Py. If not, see <https://www.gnu.org/licenses/>.

pm4py.objects.bpmn.semantics.is_enabled(node, bpmn, m)[source]#
pm4py.objects.bpmn.semantics.execute(node, bpmn, m)[source]#
pm4py.objects.bpmn.semantics.try_to_execute(node, bpmn, m)[source]#
pm4py.objects.bpmn.semantics.add_vector(a, b)[source]#
pm4py.objects.bpmn.semantics.sub_vector(a, b)[source]#
pm4py.objects.bpmn.semantics.power_set(iterable, min=1)[source]#
pm4py.objects.bpmn.semantics.weak_execute(node, m, bpmn_graph)[source]#

Execute a transition even if it is not fully enabled Returns multiple possible markings if the node is a gate

pm4py.objects.bpmn.semantics.execute_token_flow(target, marking, bpmn_graph)[source]#
pm4py.objects.bpmn.semantics.enabled_nodes(bpmn, m)[source]#

Returns a set of enabled transitions in a Petri net and given marking

Parameters#

param pn:

Petri net

param m:

marking of the pn

Returns#

return:

set of enabled transitions