You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.4 KiB
99 lines
3.4 KiB
https://sourceforge.net/p/scid/patches/8/
|
|
--- a/scripts/pgnfix.py
|
|
+++ b/scripts/pgnfix.py
|
|
@@ -12,7 +12,6 @@
|
|
# put in the Site or Event field, and move them to the Date field.
|
|
|
|
import sys
|
|
-import string
|
|
import re
|
|
|
|
if len(sys.argv) < 2:
|
|
@@ -69,16 +68,16 @@
|
|
if match:
|
|
full = match.group(0)
|
|
last, first = match.groups()
|
|
- first = string.strip(first)
|
|
- full = string.strip(full)
|
|
- last = string.strip(last)
|
|
+ first = str.strip(first)
|
|
+ full = str.strip(full)
|
|
+ last = str.strip(last)
|
|
if first:
|
|
for name in (full, last,
|
|
last + " " + first,
|
|
last + ", " + first[0],
|
|
last + " " + first[0]):
|
|
- name = string.lower(name)
|
|
- if spelling.has_key(name):
|
|
+ name = str.lower(name)
|
|
+ if name in spelling:
|
|
del spelling[name]
|
|
else:
|
|
spelling[name] = full
|
|
@@ -107,16 +106,16 @@
|
|
if error:
|
|
out = sys.stderr
|
|
error = 0
|
|
- out.write(string.join(current, ""))
|
|
+ out.write("".join(current))
|
|
current = []
|
|
bad_lines = []
|
|
else:
|
|
if headers:
|
|
for field, value in specials.items():
|
|
- if not headers.has_key(field):
|
|
+ if not field in headers:
|
|
headers[field] = value
|
|
for field in order:
|
|
- if headers.has_key(field):
|
|
+ if field in headers:
|
|
current.append('[%s "%s"]\n' % (field, headers[field]))
|
|
del headers[field]
|
|
for field, value in headers.items():
|
|
@@ -172,7 +171,7 @@
|
|
specials["Date"] = "%04d.%02d.%02d" % (year, month, day)
|
|
value = re.sub("\(?([0-9]+)/([0-9]+)/([0-9]+)\)?", "", value)
|
|
|
|
- value = string.strip(value)
|
|
+ value = str.strip(value)
|
|
|
|
if field in ("White", "Black"):
|
|
name = re.sub("[MW][0-9]{5}", "", value)
|
|
@@ -193,21 +192,21 @@
|
|
name = re.sub("_", " ", name)
|
|
name = re.sub("\.", "", name)
|
|
name = re.sub("([A-Za-z])([0-9])", "\\1 \\2", name)
|
|
- name = string.strip(name)
|
|
+ name = str.strip(name)
|
|
name = re.sub("^([A-Z]+?)\s*([A-Z][a-z].+)", "\\2, \\1",
|
|
name)
|
|
|
|
name = re.sub(",\s*([GI]M)?$", "", name)
|
|
|
|
- name = string.strip(name)
|
|
- t = string.lower(name)
|
|
+ name = str.strip(name)
|
|
+ t = str.lower(name)
|
|
|
|
- if spelling.has_key(t):
|
|
+ if t in spelling:
|
|
name = spelling[t]
|
|
|
|
headers[field] = name
|
|
|
|
- elif not bogus.has_key(field) or not re.search(bogus[field], value):
|
|
+ elif not field in bogus or not re.search(bogus[field], value):
|
|
headers[field] = value
|
|
|
|
if current:
|
|
@@ -215,7 +214,7 @@
|
|
if error:
|
|
out = sys.stderr
|
|
error = 0
|
|
- out.write(string.join(current, ""))
|
|
+ out.write("".join(current))
|
|
current = []
|
|
bad_lines = []
|
|
|