aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts/ScintillaData.py
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2020-05-19 12:39:23 +1000
committerNeil <nyamatongwe@gmail.com>2020-05-19 12:39:23 +1000
commitef98916585104cb893bdd7dd8f4bf91313639baf (patch)
treec2ad417ec36019c56d9cfb51d90e8f665623f807 /scripts/ScintillaData.py
parent868780c1a7b664d0453c3921baed3ddfa5a2e4c3 (diff)
downloadscintilla-mirror-ef98916585104cb893bdd7dd8f4bf91313639baf.tar.gz
Use pathlib in generator scripts.
Diffstat (limited to 'scripts/ScintillaData.py')
-rw-r--r--scripts/ScintillaData.py35
1 files changed, 15 insertions, 20 deletions
diff --git a/scripts/ScintillaData.py b/scripts/ScintillaData.py
index 5bb9fb1bc..1d9537d03 100644
--- a/scripts/ScintillaData.py
+++ b/scripts/ScintillaData.py
@@ -33,16 +33,14 @@
# This file can be run to see the data it provides.
# Requires Python 3.6 or later
-from __future__ import with_statement
-
-import codecs, datetime, glob, os, sys, textwrap
+import datetime, pathlib, sys, textwrap
import FileGenerator
def FindModules(lexFile):
modules = []
partLine = ""
- with open(lexFile) as f:
+ with lexFile.open() as f:
for l in f.readlines():
l = l.rstrip()
if partLine or l.startswith("LexerModule"):
@@ -116,7 +114,7 @@ def FindProperties(lexFile):
def FindPropertyDocumentation(lexFile):
documents = {}
- with open(lexFile) as f:
+ with lexFile.open() as f:
name = ""
for l in f.readlines():
l = l.strip()
@@ -158,7 +156,7 @@ def FindPropertyDocumentation(lexFile):
def FindCredits(historyFile):
credits = []
stage = 0
- with codecs.open(historyFile, "r", "utf-8") as f:
+ with historyFile.open(encoding="utf-8") as f:
for l in f.readlines():
l = l.strip()
if stage == 0 and l == "<table>":
@@ -180,7 +178,7 @@ def FindCredits(historyFile):
return credits
def ciKey(a):
- return a.lower()
+ return str(a).lower()
def SortListInsensitive(l):
l.sort(key=ciKey)
@@ -188,13 +186,12 @@ def SortListInsensitive(l):
class ScintillaData:
def __init__(self, scintillaRoot):
# Discover version information
- with open(scintillaRoot + "version.txt") as f:
- self.version = f.read().strip()
+ self.version = (scintillaRoot / "version.txt").read_text().strip()
self.versionDotted = self.version[0] + '.' + self.version[1] + '.' + \
self.version[2]
self.versionCommad = self.versionDotted.replace(".", ", ") + ', 0'
- with open(scintillaRoot + "doc/index.html") as f:
+ with (scintillaRoot / "doc" / "index.html").open() as f:
self.dateModified = [l for l in f.readlines() if "Date.Modified" in l]\
[0].split('\"')[3]
# 20130602
@@ -212,9 +209,9 @@ class ScintillaData:
self.myModified = monthModified + " " + self.yearModified
# Find all the lexer source code files
- lexFilePaths = glob.glob(scintillaRoot + "lexers/Lex*.cxx")
+ lexFilePaths = list((scintillaRoot / "lexers").glob("Lex*.cxx"))
SortListInsensitive(lexFilePaths)
- self.lexFiles = [os.path.basename(f)[:-4] for f in lexFilePaths]
+ self.lexFiles = [f.stem for f in lexFilePaths]
self.lexerModules = []
lexerProperties = set()
self.propertyDocuments = {}
@@ -236,14 +233,15 @@ class ScintillaData:
self.lexerProperties = list(lexerProperties)
SortListInsensitive(self.lexerProperties)
- self.lexersXcode = FindLexersInXcode(scintillaRoot + "cocoa/ScintillaFramework/ScintillaFramework.xcodeproj/project.pbxproj")
- self.credits = FindCredits(scintillaRoot + "doc/ScintillaHistory.html")
+ self.lexersXcode = FindLexersInXcode(scintillaRoot /
+ "cocoa/ScintillaFramework/ScintillaFramework.xcodeproj/project.pbxproj")
+ self.credits = FindCredits(scintillaRoot / "doc" / "ScintillaHistory.html")
def printWrapped(text):
print(textwrap.fill(text, subsequent_indent=" "))
if __name__=="__main__":
- sci = ScintillaData("../")
+ sci = ScintillaData(pathlib.Path(__file__).resolve().parent.parent)
print("Version %s %s %s" % (sci.version, sci.versionDotted, sci.versionCommad))
print("Date last modified %s %s %s %s %s" % (
sci.dateModified, sci.yearModified, sci.mdyModified, sci.dmyModified, sci.myModified))
@@ -255,7 +253,7 @@ if __name__=="__main__":
lexNames = sorted(sci.sclexFromName.keys())
for lexName in lexNames:
sclex = sci.sclexFromName[lexName]
- fileName = os.path.basename(sci.fileFromSclex[sclex])
+ fileName = sci.fileFromSclex[sclex].name
print(" " + lexName + " -> " + sclex + " in " + fileName)
printWrapped("Lexer properties: " + ", ".join(sci.lexerProperties))
print("Lexer property documentation:")
@@ -267,7 +265,4 @@ if __name__=="__main__":
subsequent_indent=" "))
print("Credits:")
for c in sci.credits:
- if sys.version_info[0] == 2:
- print(" " + c.encode("utf-8"))
- else:
- sys.stdout.buffer.write(b" " + c.encode("utf-8") + b"\n")
+ sys.stdout.buffer.write(b" " + c.encode("utf-8") + b"\n")