Skip to content

Commit dbd1e1b

Browse files
committed
updated syntax using Black
1 parent bc06081 commit dbd1e1b

File tree

1 file changed

+168
-116
lines changed

1 file changed

+168
-116
lines changed

tools/update_cc4_includes.py

+168-116
Original file line numberDiff line numberDiff line change
@@ -17,86 +17,128 @@
1717
import re, sys, re, getopt
1818
from pathlib import Path
1919

20+
2021
class UpdateLicenseCode(object):
2122
"""Add common elements -- current Site Header, Site Footer, and Head
2223
statements -- to licence code HTML files."""
2324

24-
placeholders = {\
25-
'head': ('<!-- Head Start - DO NOT DELETE -->', '<!-- Head End - DO NOT DELETE -->'), \
26-
'header': ('<!-- Site Header Start - DO NOT DELETE -->', '<!-- Site Header End - DO NOT DELETE -->'), \
27-
'footer': ('<!-- Site Footer Start - DO NOT DELETE -->', '<!-- Site Footer End - DO NOT DELETE -->'), \
28-
'language-selector': ('<!-- Language Selector Start - DO NOT DELETE -->', '<!-- Language Selector End - DO NOT DELETE -->') \
25+
placeholders = {
26+
"head": (
27+
"<!-- Head Start - DO NOT DELETE -->",
28+
"<!-- Head End - DO NOT DELETE -->",
29+
),
30+
"header": (
31+
"<!-- Site Header Start - DO NOT DELETE -->",
32+
"<!-- Site Header End - DO NOT DELETE -->",
33+
),
34+
"footer": (
35+
"<!-- Site Footer Start - DO NOT DELETE -->",
36+
"<!-- Site Footer End - DO NOT DELETE -->",
37+
),
38+
"language-selector": (
39+
"<!-- Language Selector Start - DO NOT DELETE -->",
40+
"<!-- Language Selector End - DO NOT DELETE -->",
41+
),
2942
}
3043

3144
languages = {}
3245

33-
iso_to_language = { \
34-
'ar': 'العربية', 'de': 'Deutsch', 'en': 'English', 'fi': 'suomeksi', \
35-
'fa': 'پارسی', \
36-
'fr': 'français', 'hr': 'hrvatski', 'id': 'bahasa Indonesia', 'it': 'italiano', \
37-
'ja': '日本語', 'mi': 'Te Reo Māori', 'nl': 'Nederlands', 'no': 'norsk', \
38-
'pl': 'polski', 'sv': 'svenska', 'tr': 'Türkçe', 'uk': 'українська', \
39-
'ru': 'русский', 'pt': 'Português', 'lt': 'Lietuvių', 'lv': 'latviski', \
40-
'es': 'Español', 'ms': 'Bahasa Malaysia', 'ca': 'Català', 'da': 'Dansk', \
41-
'eo': 'Esperanto', 'gl': 'Galego', 'hu': 'Magyar', 'ro': 'română', \
42-
'sl': 'Slovenščina', 'is': 'Íslenska', 'cs': 'čeština', 'el': 'Ελληνικά', \
43-
'be': 'Беларуская', 'bn': 'বাংলা', 'zh': '中文', 'ko': '한국어', \
44-
'es_ES': 'Castellano (España)', 'eu': 'euskara', 'zh-Hans': '中文', \
46+
iso_to_language = {
47+
"ar": "العربية",
48+
"de": "Deutsch",
49+
"en": "English",
50+
"fi": "suomeksi",
51+
"fa": "پارسی",
52+
"fr": "français",
53+
"hr": "hrvatski",
54+
"id": "bahasa Indonesia",
55+
"it": "italiano",
56+
"ja": "日本語",
57+
"mi": "Te Reo Māori",
58+
"nl": "Nederlands",
59+
"no": "norsk",
60+
"pl": "polski",
61+
"sv": "svenska",
62+
"tr": "Türkçe",
63+
"uk": "українська",
64+
"ru": "русский",
65+
"pt": "Português",
66+
"lt": "Lietuvių",
67+
"lv": "latviski",
68+
"es": "Español",
69+
"ms": "Bahasa Malaysia",
70+
"ca": "Català",
71+
"da": "Dansk",
72+
"eo": "Esperanto",
73+
"gl": "Galego",
74+
"hu": "Magyar",
75+
"ro": "română",
76+
"sl": "Slovenščina",
77+
"is": "Íslenska",
78+
"cs": "čeština",
79+
"el": "Ελληνικά",
80+
"be": "Беларуская",
81+
"bn": "বাংলা",
82+
"zh": "中文",
83+
"ko": "한국어",
84+
"es_ES": "Castellano (España)",
85+
"eu": "euskara",
86+
"zh-Hans": "中文",
4587
}
4688

47-
lang_sel_text = { \
48-
'ar': 'هذة الصفحة متوفرة باللغات التالية:', \
49-
'be': 'Гэта старонка даступная на наступных мовах:', \
50-
'bn': 'পৃষ্ঠাটি নিন্মোক্ত ভাষায় বিদ্যমান রয়েছে:', \
51-
'ca': 'Aquesta pàgina està disponible en els idiomes següents:', \
52-
'cs': 'Tato stránka je k dispozici v následujících jazycích:', \
53-
'da': 'Denne side er tilgængelig på følgende sprog:', \
54-
'de': 'Diese Seite ist in folgenden Sprachen verfügbar:', \
55-
'el': 'Η σελίδα αυτή είναι διαθέσιμη στις ακόλουθες γλώσσες:', \
56-
'en': 'This page is available in the following languages:', \
57-
'eo': 'Ĉi tiu paĝo estas disponebla en la jenaj lingvoj:', \
58-
'es': 'Esta página está disponible en los siguientes idiomas:', \
59-
'es_ES': '', \
60-
'eu': 'Orri hau hizkuntza hauetan ikus daiteke:',\
61-
'fa': 'این صفحه به زبان های زیر در دسترس است : ', \
62-
'fi': 'Tämä sivu on saatavilla seuraavilla kielillä:', \
63-
'fr': 'Cette page existe aussi dans les langues suivantes :', \
64-
'gl': 'Esta páxina tamén está dispoñíbel nos idiomas seguintes:', \
65-
'hr': 'Ova stranica je dostupna na sljedećim jezicima:', \
66-
'hu': 'Ez az oldal az alábbi nyelveken érhető még el:', \
67-
'id': 'Laman ini tersedia dalam bahasa berikut:', \
68-
'is': 'Þessi síða er tiltæk á eftirfarandi tungumálum:', \
69-
'it': 'Questa pagina è disponibile nelle seguenti lingue:', \
70-
'ja': 'このページは以下の言語でもご覧になれます:', \
71-
'ko': '이 페이지는 다음의 언어로 이용할 수 있습니다.', \
72-
'lt': 'Šis puslapis yra prienamas šiomis kalbomis:', \
73-
'lv': 'Šī lapa ir pieejama sekojošās valodās:', \
74-
'mi': 'E wātea ana tēnei whārangi i ēnei reo:', \
75-
'ms': 'Halaman ini boleh didapati dalam bahasa-bahasa berikut:', \
76-
'nl': 'Deze pagina is beschikbaar in de volgende talen:', \
77-
'no': 'Denne siden er tilgjengelig på følgende språk:', \
78-
'pl': 'Strona jest dostępna w następujących językach:', \
79-
'pt': 'Esta página está disponível nas seguintes línguas:', \
80-
'ro': 'Această pagină este disponibilă în următoarele limbi:', \
81-
'ru': 'Эта страница доступна на следующих языках:', \
82-
'sl': 'Ta stran je dosegljiva v naslednjih jezikih:', \
83-
'sv': 'Denna sida finns tillgänglig på följande språk:', \
84-
'tr': 'Bu sayfa şu dillerde mevcuttur:', \
85-
'uk': 'Ця сторінка доступна наступними мовами:', \
86-
'zh': '声明:', \
87-
'zh-Hans': '本网页有下述几种语言版本:', \
89+
lang_sel_text = {
90+
"ar": "هذة الصفحة متوفرة باللغات التالية:",
91+
"be": "Гэта старонка даступная на наступных мовах:",
92+
"bn": "পৃষ্ঠাটি নিন্মোক্ত ভাষায় বিদ্যমান রয়েছে:",
93+
"ca": "Aquesta pàgina està disponible en els idiomes següents:",
94+
"cs": "Tato stránka je k dispozici v následujících jazycích:",
95+
"da": "Denne side er tilgængelig på følgende sprog:",
96+
"de": "Diese Seite ist in folgenden Sprachen verfügbar:",
97+
"el": "Η σελίδα αυτή είναι διαθέσιμη στις ακόλουθες γλώσσες:",
98+
"en": "This page is available in the following languages:",
99+
"eo": "Ĉi tiu paĝo estas disponebla en la jenaj lingvoj:",
100+
"es": "Esta página está disponible en los siguientes idiomas:",
101+
"es_ES": "",
102+
"eu": "Orri hau hizkuntza hauetan ikus daiteke:",
103+
"fa": "این صفحه به زبان های زیر در دسترس است : ",
104+
"fi": "Tämä sivu on saatavilla seuraavilla kielillä:",
105+
"fr": "Cette page existe aussi dans les langues suivantes :",
106+
"gl": "Esta páxina tamén está dispoñíbel nos idiomas seguintes:",
107+
"hr": "Ova stranica je dostupna na sljedećim jezicima:",
108+
"hu": "Ez az oldal az alábbi nyelveken érhető még el:",
109+
"id": "Laman ini tersedia dalam bahasa berikut:",
110+
"is": "Þessi síða er tiltæk á eftirfarandi tungumálum:",
111+
"it": "Questa pagina è disponibile nelle seguenti lingue:",
112+
"ja": "このページは以下の言語でもご覧になれます:",
113+
"ko": "이 페이지는 다음의 언어로 이용할 수 있습니다.",
114+
"lt": "Šis puslapis yra prienamas šiomis kalbomis:",
115+
"lv": "Šī lapa ir pieejama sekojošās valodās:",
116+
"mi": "E wātea ana tēnei whārangi i ēnei reo:",
117+
"ms": "Halaman ini boleh didapati dalam bahasa-bahasa berikut:",
118+
"nl": "Deze pagina is beschikbaar in de volgende talen:",
119+
"no": "Denne siden er tilgjengelig på følgende språk:",
120+
"pl": "Strona jest dostępna w następujących językach:",
121+
"pt": "Esta página está disponível nas seguintes línguas:",
122+
"ro": "Această pagină este disponibilă în următoarele limbi:",
123+
"ru": "Эта страница доступна на следующих языках:",
124+
"sl": "Ta stran je dosegljiva v naslednjih jezikih:",
125+
"sv": "Denna sida finns tillgänglig på följande språk:",
126+
"tr": "Bu sayfa şu dillerde mevcuttur:",
127+
"uk": "Ця сторінка доступна наступними мовами:",
128+
"zh": "声明:",
129+
"zh-Hans": "本网页有下述几种语言版本:",
88130
}
89131

90132
def usage(self):
91-
print('')
92-
print('update_cc4_includes.py [-av]')
93-
print(' -v: Verbose output')
94-
print('')
95-
print(' e.g. update_cc4_includes.py')
96-
print(' update_cc4_includes.py -v')
97-
98-
def log(self, message, type = 'standard'):
99-
if (type == 'standard') or (type == 'verbose' and self.verbose):
133+
print("")
134+
print("update_cc4_includes.py [-av]")
135+
print(" -v: Verbose output")
136+
print("")
137+
print(" e.g. update_cc4_includes.py")
138+
print(" update_cc4_includes.py -v")
139+
140+
def log(self, message, type="standard"):
141+
if (type == "standard") or (type == "verbose" and self.verbose):
100142
print(message)
101143

102144
def get_args(self):
@@ -110,27 +152,26 @@ def get_args(self):
110152

111153
self.verbose = False
112154
for option in opts:
113-
if '-v' in option:
155+
if "-v" in option:
114156
self.verbose = True
115157

116158
return True
117159

118-
119160
def get_path(self):
120161
"""Where are the licenses?"""
121162
self.path = False
122163
path = Path.cwd()
123164
pathdir = path.name
124-
if pathdir == 'legalcode':
165+
if pathdir == "legalcode":
125166
self.path = path
126-
if pathdir == 'docroot':
127-
self.path = path / 'legalcode'
128-
if pathdir == 'tools':
129-
self.path = path.parent / 'docroot' /'legalcode'
167+
if pathdir == "docroot":
168+
self.path = path / "legalcode"
169+
if pathdir == "tools":
170+
self.path = path.parent / "docroot" / "legalcode"
130171
if not self.path:
131-
print('Please run from within the checked-out project.')
172+
print("Please run from within the checked-out project.")
132173
if self.path:
133-
self.includes_path = Path(sys.path[0] + '/legalcode-includes')
174+
self.includes_path = Path(sys.path[0] + "/legalcode-includes")
134175
return self.path != False
135176

136177
def process_files(self, filelist):
@@ -141,19 +182,19 @@ def process_files(self, filelist):
141182
def process_file(self, filepath):
142183
"""Verify the required placeholders exist and update file with common
143184
elements"""
144-
self.log("\n" + 'Processing: ' + filepath.name, 'verbose')
145-
with filepath.open(encoding='utf-8') as infile:
185+
self.log("\n" + "Processing: " + filepath.name, "verbose")
186+
with filepath.open(encoding="utf-8") as infile:
146187
content = infile.read()
147-
188+
148189
if self.has_placeholders(content):
149-
self.log(' Updating content: ' + filepath.name, 'verbose')
190+
self.log(" Updating content: " + filepath.name, "verbose")
150191
content = self.add_includes(content)
151192
content = self.add_language_selector(content, filepath)
152-
with filepath.open('w', encoding='utf-8') as outfile:
193+
with filepath.open("w", encoding="utf-8") as outfile:
153194
outfile.write(content)
154195
else:
155-
self.log(' No placeholders, skipping: ' + filepath.name, 'standard')
156-
196+
self.log(" No placeholders, skipping: " + filepath.name, "standard")
197+
157198
return
158199

159200
def add_includes(self, content):
@@ -162,78 +203,88 @@ def add_includes(self, content):
162203
start, end = UpdateLicenseCode.placeholders[placeholder_pair]
163204

164205
includefile = False
165-
if placeholder_pair == 'head':
166-
includefile = self.includes_path / 'html-head.html'
167-
elif placeholder_pair == 'header':
168-
includefile = self.includes_path / 'site-header.html'
169-
elif placeholder_pair == 'footer':
170-
includefile = self.includes_path / 'site-footer.html'
206+
if placeholder_pair == "head":
207+
includefile = self.includes_path / "html-head.html"
208+
elif placeholder_pair == "header":
209+
includefile = self.includes_path / "site-header.html"
210+
elif placeholder_pair == "footer":
211+
includefile = self.includes_path / "site-footer.html"
171212
if not includefile:
172213
continue
173214

174215
with includefile.open() as infile:
175216
includetext = infile.read()
176217

177218
replacement = start + "\n" + includetext + "\n" + end
178-
target_string = re.search(start + '.*?' + end, content, re.DOTALL).group()
219+
target_string = re.search(start + ".*?" + end, content, re.DOTALL).group()
179220
content = content.replace(target_string, replacement, 1)
180-
221+
181222
return content
182-
223+
183224
def add_language_selector(self, content, filepath):
184225
"""Build and insert a language selector dropdown list."""
185226
# Get a list of all the other languages for this license type and store it so
186227
# it can be reused.
187228
license_data = self.parse_filename(filepath)
188-
if license_data['type'] not in self.languages:
189-
self.languages[license_data['type']] = []
190-
glob_string = license_data['type'] + '_' + license_data['version'] + '*.html'
229+
if license_data["type"] not in self.languages:
230+
self.languages[license_data["type"]] = []
231+
glob_string = (
232+
license_data["type"] + "_" + license_data["version"] + "*.html"
233+
)
191234
language_file_list = [f for f in self.path.glob(glob_string)]
192235
for filepath in language_file_list:
193236
sibling_data = self.parse_filename(filepath)
194-
self.languages[license_data['type']].append(sibling_data['language'])
195-
self.languages[license_data['type']].sort()
237+
self.languages[license_data["type"]].append(sibling_data["language"])
238+
self.languages[license_data["type"]].sort()
196239

197-
current_language = license_data['language']
198-
sibling_languages = self.languages[license_data['type']]
240+
current_language = license_data["language"]
241+
sibling_languages = self.languages[license_data["type"]]
199242

200-
selector = '<div id="language-selector-block" class="container">'
243+
selector = '<div id="language-selector-block" class="container">'
201244
selector += ' <div class="language-selector-inner">'
202245
selector += self.lang_sel_text[current_language]
203246
selector += ' <img class="language-icon" src="/images/language_icon_x2.png" alt="Languages" />'
204-
selector += ' <select>'
247+
selector += " <select>"
205248
for iso_code in sibling_languages:
206249
# Set the selected option to the current language of the page
207-
selected = ''
250+
selected = ""
208251
if iso_code == current_language:
209252
selected = ' selected="selected" '
210253
# Determine to option value for the language. English breaks the pattern so handle it differently.
211-
option_value = 'legalcode.' + iso_code
212-
if iso_code == 'en':
213-
option_value = 'legalcode'
254+
option_value = "legalcode." + iso_code
255+
if iso_code == "en":
256+
option_value = "legalcode"
214257
# Add the selector vlaue
215-
selector += '<option value="' + option_value + '"' + selected + '>' + self.iso_to_language[iso_code] + '</option>'
216-
selector += ' </select>'
217-
selector += ' </div>'
218-
selector += '</div>'
258+
selector += (
259+
'<option value="'
260+
+ option_value
261+
+ '"'
262+
+ selected
263+
+ ">"
264+
+ self.iso_to_language[iso_code]
265+
+ "</option>"
266+
)
267+
selector += " </select>"
268+
selector += " </div>"
269+
selector += "</div>"
219270

220271
# Add the language selector block to the content
221-
start, end = UpdateLicenseCode.placeholders['language-selector']
222-
target_string = re.search(start + '.*?' + end, content, re.DOTALL).group()
272+
start, end = UpdateLicenseCode.placeholders["language-selector"]
273+
target_string = re.search(start + ".*?" + end, content, re.DOTALL).group()
223274
replacement = start + "\n" + selector + "\n" + end
224275
content = content.replace(target_string, replacement, 1)
225276

226277
return content
227278

228279
def parse_filename(self, filepath):
229-
license_info = filepath.name[0:-5].split('_');
280+
license_info = filepath.name[0:-5].split("_")
230281
type = license_info[0]
231282
version = license_info[1]
232283
if len(license_info) > 2:
233284
language = license_info[2]
234285
else:
235-
language = 'en'
236-
return {'type': type, 'version': version, 'language': language}
286+
language = "en"
287+
return {"type": type, "version": version, "language": language}
237288

238289
def has_placeholders(self, content):
239290
"""Verify all of the required placeholders exist in a file"""
@@ -246,9 +297,10 @@ def has_placeholders(self, content):
246297
def main(self):
247298
"""Get the command line arguments, find the files, and process them"""
248299
if self.get_args() and self.get_path():
249-
file_list = [f for f in self.path.glob('*4.0*.html')]
300+
file_list = [f for f in self.path.glob("*4.0*.html")]
250301
self.process_files(file_list)
251302

252-
if __name__ == '__main__':
303+
304+
if __name__ == "__main__":
253305
updater = UpdateLicenseCode()
254306
updater.main()

0 commit comments

Comments
 (0)