diff sat/tools/common/template.py @ 4037:524856bd7b19

massive refactoring to switch from camelCase to snake_case: historically, Libervia (SàT before) was using camelCase as allowed by PEP8 when using a pre-PEP8 code, to use the same coding style as in Twisted. However, snake_case is more readable and it's better to follow PEP8 best practices, so it has been decided to move on full snake_case. Because Libervia has a huge codebase, this ended with a ugly mix of camelCase and snake_case. To fix that, this patch does a big refactoring by renaming every function and method (including bridge) that are not coming from Twisted or Wokkel, to use fully snake_case. This is a massive change, and may result in some bugs.
author Goffi <goffi@goffi.org>
date Sat, 08 Apr 2023 13:54:42 +0200
parents a2d4bd1943ba
children
line wrap: on
line diff
--- a/sat/tools/common/template.py	Fri Apr 07 15:18:39 2023 +0200
+++ b/sat/tools/common/template.py	Sat Apr 08 13:54:42 2023 +0200
@@ -162,7 +162,7 @@
         return TemplateData(site, theme, template_path)
 
     @staticmethod
-    def getSitesAndThemes(
+    def get_sites_and_themes(
             site: str,
             theme: str,
             settings: Optional[dict] = None,
@@ -205,7 +205,7 @@
             raise exceptions.InternalError(
                 "_get_template_f must not be used with absolute path")
         settings = self.sites_themes[site][theme]['settings']
-        for site_to_check, theme_to_check in self.getSitesAndThemes(
+        for site_to_check, theme_to_check in self.get_sites_and_themes(
                 site, theme, settings):
             try:
                 base_path = self.sites_paths[site_to_check]
@@ -328,12 +328,12 @@
         scripts = []
         tpl = "<script src={src} {attribute}></script>"
         for library, attribute in self.scripts:
-            library_path = self.renderer.getStaticPath(self.template_data, library)
+            library_path = self.renderer.get_static_path(self.template_data, library)
             if library_path is None:
                 log.warning(_("Can't find {libary} javascript library").format(
                     library=library))
                 continue
-            path = self.renderer.getFrontURL(library_path)
+            path = self.renderer.get_front_url(library_path)
             scripts.append(tpl.format(src=quoteattr(path), attribute=attribute))
         return safe("\n".join(scripts))
 
@@ -377,11 +377,11 @@
         }
         self.sites_themes = {
         }
-        conf = config.parseMainConf()
-        public_sites = config.getConfig(conf, None, "sites_path_public_dict", {})
+        conf = config.parse_main_conf()
+        public_sites = config.config_get(conf, None, "sites_path_public_dict", {})
         sites_data = [public_sites]
         if private:
-            private_sites = config.getConfig(conf, None, "sites_path_private_dict", {})
+            private_sites = config.config_get(conf, None, "sites_path_private_dict", {})
             sites_data.append(private_sites)
         for sites in sites_data:
             normalised = {}
@@ -459,7 +459,7 @@
         self.env._template_data = None
         self._locale_str = C.DEFAULT_LOCALE
         self._locale = Locale.parse(self._locale_str)
-        self.installTranslations()
+        self.install_translations()
 
         # we want to have access to SàT constants in templates
         self.env.globals["C"] = C
@@ -490,7 +490,7 @@
             "default": lambda o: o.to_json() if hasattr(o, "to_json") else None
         }
 
-    def getFrontURL(self, template_data, path=None):
+    def get_front_url(self, template_data, path=None):
         """Give front URL (i.e. URL seen by end-user) of a path
 
         @param template_data[TemplateData]: data of current template
@@ -500,7 +500,7 @@
         return self.env.filters["front_url"]({"template_data": template_data},
                                 path or template_data.path)
 
-    def installTranslations(self):
+    def install_translations(self):
         # TODO: support multi translation
         #       for now, only translations in sat_templates are handled
         self.translations = {}
@@ -546,7 +546,7 @@
                                     key=lambda l: l.language_name.lower()))
 
 
-    def setLocale(self, locale_str):
+    def set_locale(self, locale_str):
         """set current locale
 
         change current translation locale and self self._locale and self._locale_str
@@ -582,7 +582,7 @@
         self._locale = locale
         self._locale_str = locale_str
 
-    def getThemeAndRoot(self, template):
+    def get_theme_and_root(self, template):
         """retrieve theme and root dir of a given template
 
         @param template(unicode): template to parse
@@ -600,13 +600,13 @@
             raise exceptions.NotFound
         return theme, os.path.join(site_root_dir, C.TEMPLATE_TPL_DIR, theme)
 
-    def getThemesData(self, site_name):
+    def get_themes_data(self, site_name):
         try:
             return self.sites_themes[site_name]
         except KeyError:
             raise exceptions.NotFound(f"no theme found for {site_name}")
 
-    def getStaticPath(
+    def get_static_path(
             self,
             template_data: TemplateData,
             filename: str,
@@ -640,7 +640,7 @@
             else:
                 return None
 
-        sites_and_themes = TemplateLoader.getSitesAndThemes(template_data.site,
+        sites_and_themes = TemplateLoader.get_sites_and_themes(template_data.site,
                                                             template_data.theme,
                                                             settings)
         for site, theme in sites_and_themes:
@@ -653,7 +653,7 @@
 
         return None
 
-    def _appendCSSPaths(
+    def _append_css_paths(
             self,
             template_data: TemplateData,
             css_files: list,
@@ -669,16 +669,16 @@
             with "_noscript" suffix
         """
         name = name_root + ".css"
-        css_path = self.getStaticPath(template_data, name, settings)
+        css_path = self.get_static_path(template_data, name, settings)
         if css_path is not None:
-            css_files.append(self.getFrontURL(css_path))
+            css_files.append(self.get_front_url(css_path))
             noscript_name = name_root + "_noscript.css"
-            noscript_path = self.getStaticPath(
+            noscript_path = self.get_static_path(
                 template_data, noscript_name, settings)
             if noscript_path is not None:
-                css_files_noscript.append(self.getFrontURL(noscript_path))
+                css_files_noscript.append(self.get_front_url(noscript_path))
 
-    def getCSSFiles(self, template_data):
+    def get_css_files(self, template_data):
         """Retrieve CSS files to use according template_data
 
         For each element of the path, a .css file is looked for in /static, and returned
@@ -719,17 +719,17 @@
         else:
             settings = self.sites_themes[site][template_data.theme]['settings']
 
-        css_path = self.getStaticPath(template_data, 'fonts.css', settings)
+        css_path = self.get_static_path(template_data, 'fonts.css', settings)
         if css_path is not None:
-            css_files.append(self.getFrontURL(css_path))
+            css_files.append(self.get_front_url(css_path))
 
         for name_root in ('styles', 'styles_extra', 'highlight'):
-            self._appendCSSPaths(
+            self._append_css_paths(
                 template_data, css_files, css_files_noscript, name_root, settings)
 
         for idx in range(len(path_elems)):
             name_root = "_".join(path_elems[:idx+1])
-            self._appendCSSPaths(
+            self._append_css_paths(
                 template_data, css_files, css_files_noscript, name_root, settings)
 
         return css_files, css_files_noscript
@@ -1024,7 +1024,7 @@
         template_source = self.env.get_template(template)
 
         if css_files is None:
-            css_files, css_files_noscript = self.getCSSFiles(template_data)
+            css_files, css_files_noscript = self.get_css_files(template_data)
         else:
             css_files_noscript = []
 
@@ -1045,7 +1045,7 @@
                     kwargs["css_content" + suffix] = "\n".join(css_contents)
 
         scripts_handler = ScriptsHandler(self, template_data)
-        self.setLocale(locale)
+        self.set_locale(locale)
 
         # XXX: theme used in template arguments is the requested theme, which may differ
         #      from actual theme if the template doesn't exist in the requested theme.