Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/tests/netedit/scripts/clearEnums.py
169678 views
1
#!/usr/bin/env python
2
# -*- coding: utf-8 -*-
3
# Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
4
# Copyright (C) 2009-2025 German Aerospace Center (DLR) and others.
5
# This program and the accompanying materials are made available under the
6
# terms of the Eclipse Public License 2.0 which is available at
7
# https://www.eclipse.org/legal/epl-2.0/
8
# This Source Code may also be made available under the following Secondary
9
# Licenses when the conditions for such availability set forth in the Eclipse
10
# Public License 2.0 are satisfied: GNU General Public License, version 2
11
# or later which is available at
12
# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
13
# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
14
15
# @file clearEnums.py
16
# @author Pablo Alvarez Lopez
17
# @date 2022-03-21
18
19
20
# remove "=" until end
21
def removeEqual(line):
22
solution = ""
23
while ((len(line) > 0) and (line[0] != "=")):
24
solution += line[0]
25
line = line[1:]
26
return solution
27
28
29
# load
30
with open("../../../tools/neteditTestFunctions/enums/attributesEnum.py", "r") as fp:
31
lines = fp.readlines()
32
33
# process lines
34
matrix = []
35
for line in lines:
36
if ("#" not in line):
37
line = removeEqual(line)
38
line = line.replace("class ", "")
39
line = line.replace(" ", "\t")
40
line = line.replace(":", "")
41
line = line.replace("\n", "")
42
if ("=" in line):
43
line = line[0:-4]
44
if ("=" in line):
45
line = line[0:-3]
46
if ("=" in line):
47
line = line[0:-2]
48
if (len(line) > 1):
49
if (line.count("\t") == 0):
50
matrix.append([line])
51
elif (line.count("\t") == 1):
52
line = line.replace("\t", "")
53
matrix.append([[], line])
54
elif (line.count("\t") == 2):
55
line = line.replace("\t", "")
56
matrix.append([[], [], line])
57
elif (line.count("\t") == 3):
58
line = line.replace("\t", "")
59
matrix.append([[], [], [], line])
60
elif (line.count("\t") == 4):
61
line = line.replace("\t", "")
62
matrix.append([[], [], [], [], line])
63
elif (line.count("\t") == 5):
64
line = line.replace("\t", "")
65
matrix.append([[], [], [], [], [], line])
66
elif (line.count("\t") == 6):
67
line = line.replace("\t", "")
68
matrix.append([[], [], [], [], [], [], line])
69
70
# fill matrix
71
for j in range(10):
72
for i in range(len(matrix)):
73
if ((len(matrix[i]) > j) and (matrix[i][j] == [])):
74
matrix[i][j] = matrix[i-1][j]
75
76
# process lines class
77
matrixClass = []
78
for line in lines:
79
if ("#" not in line and "class" in line):
80
line = removeEqual(line)
81
line = line.replace("class ", "")
82
line = line.replace(" ", "\t")
83
line = line.replace(":", "")
84
line = line.replace("\n", "")
85
if ("=" in line):
86
line = line[0:-4]
87
if ("=" in line):
88
line = line[0:-3]
89
if ("=" in line):
90
line = line[0:-2]
91
if (len(line) > 1):
92
if (line.count("\t") == 0):
93
matrixClass.append([line])
94
elif (line.count("\t") == 1):
95
line = line.replace("\t", "")
96
matrixClass.append([[], line])
97
elif (line.count("\t") == 2):
98
line = line.replace("\t", "")
99
matrixClass.append([[], [], line])
100
elif (line.count("\t") == 3):
101
line = line.replace("\t", "")
102
matrixClass.append([[], [], [], line])
103
elif (line.count("\t") == 4):
104
line = line.replace("\t", "")
105
matrixClass.append([[], [], [], [], line])
106
elif (line.count("\t") == 5):
107
line = line.replace("\t", "")
108
matrixClass.append([[], [], [], [], [], line])
109
elif (line.count("\t") == 6):
110
line = line.replace("\t", "")
111
matrixClass.append([[], [], [], [], [], [], line])
112
113
# fill matrix class
114
for j in range(10):
115
for i in range(len(matrixClass)):
116
if ((len(matrixClass[i]) > j) and (matrixClass[i][j] == [])):
117
matrixClass[i][j] = matrixClass[i-1][j]
118
119
120
# convert matrix class to list
121
linesClass = []
122
for i in range(len(matrixClass)):
123
line = ""
124
for j in range(0, 10):
125
if (len(matrixClass[i]) > j):
126
line += str(matrixClass[i][j]) + "."
127
line = line[:-1]
128
line += "\n"
129
linesClass.append(line)
130
131
# save
132
with open("enumsXML.txt", "w") as fp:
133
for i in range(len(matrix)):
134
line = ""
135
for j in range(0, 10):
136
if (len(matrix[i]) > j):
137
line += str(matrix[i][j]) + "."
138
line = line[:-1]
139
line += "\n"
140
if (line not in linesClass):
141
fp.write(line)
142
143