Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/tools/neteditTestFunctions/files/reload.py
169678 views
1
# -*- coding: utf-8 -*-
2
# Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3
# Copyright (C) 2009-2025 German Aerospace Center (DLR) and others.
4
# This program and the accompanying materials are made available under the
5
# terms of the Eclipse Public License 2.0 which is available at
6
# https://www.eclipse.org/legal/epl-2.0/
7
# This Source Code may also be made available under the following Secondary
8
# Licenses when the conditions for such availability set forth in the Eclipse
9
# Public License 2.0 are satisfied: GNU General Public License, version 2
10
# or later which is available at
11
# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12
# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13
14
# @file reload.py
15
# @author Pablo Alvarez Lopez
16
# @date 28-05-25
17
18
# imports
19
import time
20
import pyautogui
21
from ..constants import DELAY_RELOAD
22
from ..enums.attributesEnum import attrs
23
from ..enums.viewPositions import positions
24
from ..general.functions import waitQuestion
25
from ..input.keyboard import typeKey, typeTwoKeys
26
from ..input.mouse import moveMouse
27
28
29
def reload(NeteditProcess, openNetDialog=False, saveNet=False,
30
openAdditionalDialog=False, saveAdditionalElements=False,
31
openDemandDialog=False, saveDemandElements=False,
32
openDataDialog=False, saveDataElements=False,
33
openMeanDataDialog=False, saveMeanDataElements=False):
34
"""
35
@brief reload Netedit
36
"""
37
# first move cursor out of magenta square
38
pyautogui.moveTo(150, 200)
39
# reload using hotkey
40
typeTwoKeys('ctrl', 'r')
41
# Check if net must be saved
42
if openNetDialog:
43
if saveNet:
44
waitQuestion('s')
45
else:
46
waitQuestion('n')
47
# Check if additionals must be saved
48
if openAdditionalDialog:
49
if saveAdditionalElements:
50
waitQuestion('s')
51
else:
52
waitQuestion('n')
53
# Check if demand elements must be saved
54
if openDemandDialog:
55
if saveDemandElements:
56
waitQuestion('s')
57
else:
58
waitQuestion('n')
59
# Check if data elements must be saved
60
if openDataDialog:
61
if saveDataElements:
62
waitQuestion('s')
63
else:
64
waitQuestion('n')
65
# Check if meanData elements must be saved
66
if openMeanDataDialog:
67
if saveMeanDataElements:
68
waitQuestion('s')
69
else:
70
waitQuestion('n')
71
# Wait some seconds
72
time.sleep(DELAY_RELOAD)
73
# check if Netedit was crashed during reloading
74
if NeteditProcess.poll() is not None:
75
print("TestFunctions: Error reloading Netedit")
76
77
78
def reloadFile(referencePosition, type: str, multiple: bool):
79
"""
80
@brief reload file
81
"""
82
extra = 0
83
if (multiple):
84
extra = 1
85
# move mouse (to avoid problems with file menu)
86
moveMouse(referencePosition, positions.reference, 200, 0, False)
87
# open load mean data dialog (because doesn't have shortcut)
88
typeTwoKeys('alt', 'f')
89
# continue depending of type
90
if (type == "network"):
91
for _ in range(attrs.toolbar.file.reloadNetwork):
92
typeKey('down')
93
typeKey('space')
94
elif (type == "sumoConfig"):
95
for _ in range(attrs.toolbar.file.sumoConfig.menu):
96
typeKey('down')
97
typeKey('space')
98
for _ in range(attrs.toolbar.file.sumoConfig.reload):
99
typeKey('down')
100
typeKey('space')
101
elif (type == "neteditConfig"):
102
for _ in range(attrs.toolbar.file.neteditConfig.menu):
103
typeKey('down')
104
typeKey('space')
105
for _ in range(attrs.toolbar.file.neteditConfig.reload):
106
typeKey('down')
107
typeKey('space')
108
elif (type == "trafficLights"):
109
for _ in range(attrs.toolbar.file.trafficLights.menu):
110
typeKey('down')
111
typeKey('space')
112
for _ in range(attrs.toolbar.file.trafficLights.reload):
113
typeKey('down')
114
typeKey('space')
115
elif (type == "edgeTypes"):
116
for _ in range(attrs.toolbar.file.edgeTypes.menu):
117
typeKey('down')
118
typeKey('space')
119
for _ in range(attrs.toolbar.file.edgeTypes.reload):
120
typeKey('down')
121
typeKey('space')
122
elif (type == "additional"):
123
for _ in range(attrs.toolbar.file.aditionalElements.menu):
124
typeKey('down')
125
typeKey('space')
126
for _ in range(attrs.toolbar.file.aditionalElements.reload + extra):
127
typeKey('down')
128
typeKey('space')
129
elif (type == "demand"):
130
for _ in range(attrs.toolbar.file.demandElements.menu):
131
typeKey('down')
132
typeKey('space')
133
for _ in range(attrs.toolbar.file.demandElements.reload + extra):
134
typeKey('down')
135
typeKey('space')
136
elif (type == "data"):
137
for _ in range(attrs.toolbar.file.dataElements.menu):
138
typeKey('down')
139
typeKey('space')
140
for _ in range(attrs.toolbar.file.dataElements.reload + extra):
141
typeKey('down')
142
typeKey('space')
143
elif (type == "meanData"):
144
for _ in range(attrs.toolbar.file.meanDataElements.menu):
145
typeKey('down')
146
typeKey('space')
147
for _ in range(attrs.toolbar.file.meanDataElements.reload + extra):
148
typeKey('down')
149
typeKey('space')
150
time.sleep(2)
151
152