From 14d024e711248289be149cfe5d4a3e4d0d2bc756 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adri=C3=A1n=20Robotka?= <robotka.adrian@gmail.com>
Date: Sun, 31 May 2020 18:55:38 +0200
Subject: [PATCH] commenting

---
 build.py     | 23 +++++++++++++----------
 config.py    |  1 -
 customlog.py |  1 +
 pupak.py     |  8 ++++----
 4 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/build.py b/build.py
index 0bc17a4..69e7e2b 100644
--- a/build.py
+++ b/build.py
@@ -13,7 +13,6 @@ class ConfigBuilder:
     """Fill YAML-jinja2 templates, prepare the final data-model"""
 
     def __init__(self, cfg: Config):
-        """Instantiate ConfigBuilder"""
         self.logger = logging.getLogger(APP_LOG_TAG)
         self.config = cfg
 
@@ -23,17 +22,21 @@ class ConfigBuilder:
             for job in service['scraping']:
                 self.logger.debug("Templating: " + service['service_name'] + ' -> ' + job['template'])
                 self.load_template(job)
-
-                env = jinja2.Environment(undefined=jinja2.DebugUndefined)
-                template = env.from_string(job['template'])
-                data = service.copy()
-                data['targets'] = job['targets']
-                data['snippet'] = collect_snippets(self.config.templates)
-
-                output = template.render(data)
+                template = self.substitute_template_field(job, service)
                 # store generated prometheus job config
-                job['output_yaml'] = yaml.safe_load(output)
+                job['output_yaml'] = yaml.safe_load(template)
 
     def load_template(self, job):
+        """Substitute 'template' field with its content"""
         template_identifier = TEMPLATE_PREFIX + job['template']
         job['template'] = self.config.templates[template_identifier]
+
+    def substitute_template_field(self, job, service):
+        """Fill template field with data"""
+        env = jinja2.Environment(undefined=jinja2.DebugUndefined)
+        template = env.from_string(job['template'])
+        data = service.copy()
+        data['targets'] = job['targets']
+        data['snippet'] = collect_snippets(self.config.templates)
+
+        return template.render(data)
diff --git a/config.py b/config.py
index b3fab9f..1237059 100644
--- a/config.py
+++ b/config.py
@@ -14,7 +14,6 @@ class Config:
     templates = {}
 
     def __init__(self, path: Path):
-        """Read service YAML files and preload templates"""
         self.logger = logging.getLogger(APP_LOG_TAG)
         # YAML files in tha data directory recursively
         base_path_len = len(str(path.absolute())) + 1
diff --git a/customlog.py b/customlog.py
index ec100c5..94d68f9 100644
--- a/customlog.py
+++ b/customlog.py
@@ -5,6 +5,7 @@ from constants import APP_LOG_TAG
 
 
 def setup_logging():
+    """Setup custom log format"""
     # create logger with 'spam_application'
     logger = logging.getLogger(APP_LOG_TAG)
     logger.setLevel(logging.DEBUG)
diff --git a/pupak.py b/pupak.py
index 31cf0f9..c53c483 100644
--- a/pupak.py
+++ b/pupak.py
@@ -19,21 +19,21 @@ if __name__ == "__main__":
     if len(sys.argv) < 1 + 1:
         logger.error("Not enough CLI args.")
         logger.error("Usage: data_folder")
-        exit(1)
+        sys.exit(1)
 
     data_folder = Path(sys.argv[1])
 
     # Read service YAML files and preload templates
-    raw = Config(data_folder)
+    config = Config(data_folder)
 
     # Fill YAML-jinja2 templates,
     # prepare the final data-model
-    builder = ConfigBuilder(raw)
+    builder = ConfigBuilder(config)
     builder.build()
 
     # print("Data scheme validation:")
     # cfg.validate()
     # print("Data scheme is VALID.")
 
-    generator = Generator(data_folder, builder.config)
+    generator = Generator(data_folder, config)
     generator.ignite()
-- 
GitLab