Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorj.delarago <joeydelarago@gmail.com>2022-05-13 16:08:11 +0300
committerGhostkeeper <rubend@tutanota.com>2022-05-16 14:33:56 +0300
commit63e6b7704c88fb8e642b3e9062715cd49b0ef23a (patch)
treec843b2c519387b93745ec839a384d161591ec92b
parentb04f3bd5873448972df694653c08add264bff99a (diff)
Use startswith for more pythonic code.
Swap out while True with for line in f.readlines. This will now termitate without having to catch a StopIteration error. CURA-9141
-rw-r--r--scripts/update_po_with_changes.py93
1 files changed, 43 insertions, 50 deletions
diff --git a/scripts/update_po_with_changes.py b/scripts/update_po_with_changes.py
index e5891cfe0d..baa3902443 100644
--- a/scripts/update_po_with_changes.py
+++ b/scripts/update_po_with_changes.py
@@ -28,33 +28,31 @@ def parsePOFile(filename: str) -> List[Msg]:
messages = []
with open(filename) as f:
iterator = iter(f.readlines())
- while True:
- try:
- line = next(iterator)
- if line[0:7] == "msgctxt":
- # Start of a translation item block
- msg = Msg()
- msg.msgctxt = line
+ for line in iterator:
+ if line.startswith("msgctxt"):
+ # Start of a translation item block
+ msg = Msg()
+ msg.msgctxt = line
- while True:
- line = next(iterator)
- if line[0:5] == "msgid":
- msg.msgid = line
- break
+ while True:
+ line = next(iterator)
+ if line.startswith("msgid"):
+ msg.msgid = line
+ break
- while True:
- # msgstr can be split over multiple lines
- line = next(iterator)
- if line == "\n":
- break
- if line[0:6] == "msgstr":
- msg.msgstr = line
- else:
- msg.msgstr += line
+ while True:
+ # msgstr can be split over multiple lines
+ line = next(iterator)
+ if line == "\n":
+ break
+ if line.startswith("msgstr"):
+ msg.msgstr = line
+ else:
+ msg.msgstr += line
+
+ messages.append(msg)
- messages.append(msg)
- except StopIteration:
- return messages
+ return messages
def getDifferentMessages(messages_original: List[Msg], messages_new: List[Msg]) -> List[Msg]:
@@ -75,32 +73,27 @@ def updatePOFile(input_filename: str, output_filename: str, messages: List[Msg])
# Takes a list of changed messages and writes a copy of input file with updated message strings
with open(input_filename, "r") as input_file, open(output_filename, "w") as output_file:
iterator = iter(input_file.readlines())
- while True:
- try:
- line = next(iterator)
- output_file.write(line)
- if line[0: 7] == "msgctxt":
- # Start of translation block
- msgctxt = line
-
- msgid = next(iterator)
- output_file.write(msgid)
-
- # Check for updated version of msgstr
- message = list(filter(lambda m: m.msgctxt == msgctxt and m.msgid == msgid, messages))
- if message and message[0]:
- # Write update translation
- output_file.write(message[0].msgstr)
-
- # Skip lines until next translation. This should skip multiline msgstr
- while True:
- line = next(iterator)
- if line == "\n":
- output_file.write(line)
- break
-
- except StopIteration:
- return
+ for line in iterator:
+ output_file.write(line)
+ if line.startswith("msgctxt"):
+ # Start of translation block
+ msgctxt = line
+
+ msgid = next(iterator)
+ output_file.write(msgid)
+
+ # Check for updated version of msgstr
+ message = list(filter(lambda m: m.msgctxt == msgctxt and m.msgid == msgid, messages))
+ if message and message[0]:
+ # Write update translation
+ output_file.write(message[0].msgstr)
+
+ # Skip lines until next translation. This should skip multiline msgstr
+ while True:
+ line = next(iterator)
+ if line == "\n":
+ output_file.write(line)
+ break
if __name__ == "__main__":