adding latest

This commit is contained in:
2021-10-25 06:04:32 +01:00
parent f91f83874d
commit 1df6e3f2ea
3 changed files with 23 additions and 12 deletions

View File

@@ -1,14 +1,13 @@
Priority:
Go through code TODOs
Go through code TODOs @done(21-10-25 05:52)
☐ Check code order and make sure things are where they should be
☐ Document the python/logging/typing in Trilium
☐ Write the tests
Functionality:
a
Replace loggers with `click.echo` for command outputs. Keep logging messages for actual logging messages
Bug:
☐ a
Tests:
☐ Write tests! @2d

View File

@@ -16,7 +16,7 @@ def run():
@click.command(options_metavar="<options>")
def list_all():
r"""List all names for "tembo new <name>"."""
"""List all names for 'tembo new <name>'."""
_all_scopes = [user_scope["name"] for user_scope in tembo.CONFIG.scopes]
tembo.logger.info(
"%s names found in config.yml: '%s'", len(_all_scopes), "', '".join(_all_scopes)
@@ -24,7 +24,6 @@ def list_all():
raise SystemExit(0)
# TODO: organise this so all flags are at the top and in order
@click.command(options_metavar="<options>")
@click.argument("scope", metavar="<scope>")
@click.argument(
@@ -44,14 +43,17 @@ def new(scope, inputs, dry_run, example):
Example: tembo new meeting my_presentation
"""
# get the name from the tembo config.yml
try:
_name_found = scope in [
user_scope["name"] for user_scope in tembo.CONFIG.scopes
]
except TypeError as type_error:
# raise error if no scopes are defined
tembo.logger.critical("No scopes found in config.yml - exiting")
raise SystemExit(1) from type_error
# get the scope information from the tembo config.yml
try:
config_scope = [
(
@@ -66,9 +68,11 @@ def new(scope, inputs, dry_run, example):
if user_scope["name"] == scope
]
except KeyError as key_error:
# raise error if any non optional keys are missing
tembo.logger.critical("Key %s not found in config.yml - exiting", key_error)
raise SystemExit(1) from key_error
# print the example to the user
if example:
tembo.logger.info(
"Example for 'tembo new %s': %s",
@@ -79,6 +83,7 @@ def new(scope, inputs, dry_run, example):
)
raise SystemExit(0)
# if the name is in the config.yml, create the scoped page
if _name_found:
scoped_page = pages.ScopedPageCreator().create_page(
base_path=str(tembo.CONFIG.base_path),
@@ -92,8 +97,11 @@ def new(scope, inputs, dry_run, example):
scoped_page.save_to_disk(dry_run=dry_run)
raise SystemExit(0)
if not _name_found and len(tembo.CONFIG.scopes) > 0:
# if the name is missing in the config.yml, raise error
tembo.logger.warning("Command %s not found in config.yml - exiting", scope)
raise SystemExit(0)
# raise error if no config.yml found
tembo.logger.critical(
"No config.yml found in %s - exiting", tembo.CONFIG.config_path
)
@@ -105,7 +113,6 @@ run.add_command(list_all)
if __name__ == "__main__":
# BUG: fix this bug where input tokens are mismatched
# new(["meeting", "robs presentation", "meeting on gcp"])
new(["meeting", "a", "b", "c", "d", "--example"])
# new(["meeting", "robs presentation"])

View File

@@ -6,6 +6,7 @@ import re
from typing import Tuple
import jinja2
from jinja2.exceptions import TemplateNotFound
import pendulum
import tembo
@@ -62,7 +63,14 @@ class PageCreator:
file_loader = jinja2.FileSystemLoader(template_path)
env = jinja2.Environment(loader=file_loader, autoescape=True)
# load the template contents
try:
loaded_template = env.get_template(template_filename)
except TemplateNotFound as template_not_found:
tembo.logger.critical(
"Template file %s not found - exiting",
str(template_path) + "/" + str(template_not_found.message),
)
raise SystemExit(1) from template_not_found
return loaded_template.render()
@@ -90,7 +98,7 @@ class ScopedPageCreator(PageCreator):
self.extension = extension
# verify the user input length matches the number of input tokens in the
# tembo.config/templates
# tembo config/templates
self._all_input_tokens = self._get_input_tokens(template_filename)
self._verify_input_tokens(user_input)
@@ -146,10 +154,6 @@ class ScopedPageCreator(PageCreator):
name: str,
) -> str:
"""For a tokened string, substitute input, name and date tokens."""
# TODO: fn to get tokens from file and template
# tokenified_string = self.__substitute_input_tokens(
# tokenified_string, user_input, input_token_type
# )
tokenified_string = self.__substitute_input_tokens(
tokenified_string, user_input
)
@@ -163,6 +167,7 @@ class ScopedPageCreator(PageCreator):
user_input: Tuple[str, ...] | Tuple[()],
) -> str:
for input_value, extracted_token in zip(user_input, self._all_input_tokens):
# REVIEW: test this for spaces in the filename/input token
tokenified_string = tokenified_string.replace(
extracted_token, input_value.replace(" ", "_")
)