Skip to content

Commit

Permalink
Fix doxy snippet error handling and logging, update version
Browse files Browse the repository at this point in the history
  • Loading branch information
JakubAndrysek committed May 1, 2024
1 parent 9f3075a commit 78f261d
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 47 deletions.
98 changes: 52 additions & 46 deletions mkdoxy/generatorSnippets.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,53 +59,59 @@ def generate(self):
if self.is_doxy_inactive(self.config):
return self.markdown # doxygen is inactive return unchanged markdown

matches = re.finditer(regexIncorrect, self.markdown, re.MULTILINE)
for match in reversed(list(matches)):
snippet = match.group()
project_name = match.group("project") or "<project_name>"

snippet_config = self.config.copy()
snippet_config.update(self.try_load_yaml(match.group("yaml"), project_name, snippet, self.config))

if self.is_doxy_inactive(snippet_config):
continue

replacement = (
self.incorrect_argument(project_name, "", snippet_config, snippet)
if self.is_project_exist(project_name)
else self.incorrect_project(project_name, snippet_config, snippet)
)
self.replace_markdown(match.start(), match.end(), replacement)

matches = re.finditer(regexShort, self.markdown, re.MULTILINE)
for match in reversed(list(matches)):
snippet = match.group()
argument = match.group("argument").lower()
project_name = match.group("project")

snippet_config = self.config.copy()
snippet_config.update(self.try_load_yaml(match.group("yaml"), project_name, snippet, self.config))

if self.is_doxy_inactive(snippet_config):
continue

replaceStr = self.call_doxy_by_name(snippet, project_name, argument, snippet_config)
self.replace_markdown(match.start(), match.end(), replaceStr)
try:
matches = re.finditer(regexIncorrect, self.markdown, re.MULTILINE)
for match in reversed(list(matches)):
snippet = match.group()
project_name = match.group("project") or "<project_name>"

matches = re.finditer(regexLong, self.markdown, re.MULTILINE)
for match in reversed(list(matches)):
snippet = match.group()
argument = match.group("argument").lower()
project_name = match.group("project")
# log.debug(f"\nArgument: {argument}")
snippet_config = self.config.copy()
snippet_config.update(self.try_load_yaml(match.group("yaml"), project_name, snippet, self.config))

# config has been updated by yaml
snippet_config = self.config.copy()
snippet_config.update(self.try_load_yaml(match.group("yaml"), project_name, snippet, self.config))
if self.is_doxy_inactive(snippet_config):
continue

replaceStr = self.call_doxy_by_name(snippet, project_name, argument, snippet_config)
self.replace_markdown(match.start(), match.end(), replaceStr)
return self.markdown
replacement = (
self.incorrect_argument(project_name, "", snippet_config, snippet)
if self.is_project_exist(project_name)
else self.incorrect_project(project_name, snippet_config, snippet)
)
self.replace_markdown(match.start(), match.end(), replacement)

matches = re.finditer(regexShort, self.markdown, re.MULTILINE)
for match in reversed(list(matches)):
snippet = match.group()
argument = match.group("argument").lower()
project_name = match.group("project")

snippet_config = self.config.copy()
snippet_config.update(self.try_load_yaml(match.group("yaml"), project_name, snippet, self.config))

if self.is_doxy_inactive(snippet_config):
continue

replaceStr = self.call_doxy_by_name(snippet, project_name, argument, snippet_config)
self.replace_markdown(match.start(), match.end(), replaceStr)

matches = re.finditer(regexLong, self.markdown, re.MULTILINE)
for match in reversed(list(matches)):
snippet = match.group()
argument = match.group("argument").lower()
project_name = match.group("project")
# log.debug(f"\nArgument: {argument}")

# config has been updated by yaml
snippet_config = self.config.copy()
snippet_config.update(self.try_load_yaml(match.group("yaml"), project_name, snippet, self.config))

replaceStr = self.call_doxy_by_name(snippet, project_name, argument, snippet_config)
self.replace_markdown(match.start(), match.end(), replaceStr)
return self.markdown
except Exception as e:
basename = pathlib.Path(__file__).name
log.error(f"Error in {self.page.url} page. Incorrect doxy snippet or error in file {basename}")
log.error(f"Error: {e}")
return self.markdown

def try_load_yaml(self, yaml_raw: str, project: str, snippet: str, config: dict) -> dict:
try:
Expand Down Expand Up @@ -378,8 +384,8 @@ def doxyNodeIsNone(self, project: str, config: dict, snippet: str) -> str:
return self.doxyError(
project,
config,
"Node is None",
"Node is None",
f"Could not find coresponding snippet for project {project}",
f"Config: {config}",
"yaml",
snippet,
)
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def requirements():
# https://pypi.org/project/mkdoxy/
setup(
name="mkdoxy",
version="1.2.2",
version="1.2.3",
description="MkDoxy → MkDocs + Doxygen = easy documentation generator with code snippets",
long_description=readme(),
long_description_content_type="text/markdown",
Expand Down

0 comments on commit 78f261d

Please sign in to comment.