diff --git a/helpers/__main__.py b/helpers/__main__.py index b4dd963..c5fb64a 100644 --- a/helpers/__main__.py +++ b/helpers/__main__.py @@ -22,7 +22,6 @@ if __package__ == "helpers": from .quality_check import quality_check from .unit_test import unit_test from .doc_gen import doc_gen - from .changelog_gen import changelog_gen from .complexity_check import complexity_check else: # when calling the __main__.py file (from IDE) @@ -30,7 +29,6 @@ else: from helpers.quality_check import quality_check from helpers.unit_test import unit_test from helpers.doc_gen import doc_gen - from helpers.changelog_gen import changelog_gen from helpers.complexity_check import complexity_check logging.getLogger().setLevel(logging.INFO) @@ -59,8 +57,6 @@ if __name__ == "__main__": "-pdf", "--doc-gen-pdf", dest="docgenpdf", action="store_true", help="enable pdf documentation export (requires doc-gen)" ) - parser.add_argument("-clg", "--changelog-gen", dest="changeloggen", action="store_true", help="enable changelog generation") - parser.add_argument("-cpc", "--complexity-check", dest="complexitycheck", action="store_true", help="enable complexity check") args = parser.parse_args() @@ -76,7 +72,6 @@ if __name__ == "__main__": # args.coveragecheck = True # args.docgen = True # args.docgenpdf = True - # args.changeloggen = True # args.complexitycheck = True helpers = [] @@ -104,9 +99,6 @@ if __name__ == "__main__": else: raise RuntimeError("doc-gen is required to enable doc-gen-pdf") - if args.changeloggen == True: - helpers.append(changelog_gen) - if args.complexitycheck == True: helpers.append(complexity_check) diff --git a/helpers/changelog_gen.py b/helpers/changelog_gen.py deleted file mode 100644 index f4a15cb..0000000 --- a/helpers/changelog_gen.py +++ /dev/null @@ -1,23 +0,0 @@ -# pyChaChaDummyProject (c) by chacha -# -# pyChaChaDummyProject is licensed under a -# Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Unported License. -# -# You should have received a copy of the license along with this -# work. If not, see . - -from __future__ import annotations -from typing import TYPE_CHECKING - -# from pathlib import Path -# import os -# import datetime - - -from .helper_base import helper_base - - -class changelog_gen(helper_base): - @classmethod - def do_job(cls): - pass diff --git a/helpers/complexity_check.py b/helpers/complexity_check.py index a61959a..529e872 100644 --- a/helpers/complexity_check.py +++ b/helpers/complexity_check.py @@ -19,6 +19,7 @@ from radon.cli import Config from radon.cli.harvest import CCHarvester, HCHarvester, MIHarvester from .helper_base import helper_withresults_base +from pprint import pprint class complexity_check(helper_withresults_base): diff --git a/helpers/doc_gen.py b/helpers/doc_gen.py index 232278e..7c86dd9 100644 --- a/helpers/doc_gen.py +++ b/helpers/doc_gen.py @@ -50,6 +50,7 @@ class doc_gen(helper_withresults_base): reference_path = doc_path / "reference" cls._reset_dir(reference_path) + # create one .md per python module for path in sorted((cls.project_rootdir_path / "src").rglob("*.py")): module_path = path.relative_to(cls.project_rootdir_path / "src").with_suffix("") doc_path = path.relative_to(cls.project_rootdir_path / "src").with_suffix(".md") @@ -57,14 +58,12 @@ class doc_gen(helper_withresults_base): parts = list(module_path.parts) - if parts[-1] == "__init__": - parts = parts[:-1] - elif parts[-1] == "__main__": + if parts[-1] in ("__init__", "__main__"): continue - cls._reset_dir(os.path.dirname(full_doc_path)) + cls._create_dir(full_doc_path.parent.resolve()) with open(full_doc_path, "w+") as fd: - identifier = "src." + ".".join(parts) + identifier = ".".join(parts) print("::: " + identifier, file=fd) cmdopts = [f"{sys.executable}", "-m", "mkdocs", "-v", "build", "--site-dir", str(site_path), "--clean"] @@ -93,6 +92,7 @@ class doc_gen(helper_withresults_base): with open(cls.project_rootdir_path / "mkdocs.yml", "w") as mkdocsCfgFile: mkdocsCfgFile.write(yaml.dump(mkdocsCfg, Dumper=Dumper, default_flow_style=False, sort_keys=False)) + print(" !! start doc generation") res = cls.run_cmd(cmdopts) print(res.decode()) print(" !! done") diff --git a/helpers/helper_base.py b/helpers/helper_base.py index ab88e6a..e1bf5db 100644 --- a/helpers/helper_base.py +++ b/helpers/helper_base.py @@ -11,6 +11,7 @@ from typing import TYPE_CHECKING from abc import ABC, abstractmethod import os +import shutil from pathlib import Path import subprocess @@ -34,11 +35,17 @@ class helper_base(ABC): return None @staticmethod - def _reset_dir(dirpath: Path): + def _create_dir(dirpath: Path): dirpath = Path(dirpath) if not os.path.exists(dirpath): os.makedirs(dirpath) - [f.unlink() for f in Path(dirpath).glob("*") if f.is_file()] + + @staticmethod + def _reset_dir(dirpath: Path): + dirpath = Path(dirpath) + if os.path.exists(dirpath): + shutil.rmtree(dirpath) + os.makedirs(dirpath) @classmethod def reset_result_dir(cls): diff --git a/helpers/quality_check.py b/helpers/quality_check.py index 4028148..c63207b 100644 --- a/helpers/quality_check.py +++ b/helpers/quality_check.py @@ -63,7 +63,7 @@ class quality_check(helper_withresults_base): [ "--load-plugins=pylint.extensions.mccabe", "--output-format=json,parseable", - "--disable=invalid-name", + "--disable=invalid-name,too-few-public-methods,too-many-arguments", # ignore "--ignore=_version.py", "--reports=y", "--score=yes", diff --git a/mkdocs.yml b/mkdocs.yml index aa37e6e..1441f91 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -14,11 +14,11 @@ theme: - navigation.tabs - navigation.tabs.sticky - navigation.footer - - toc.integrate + - navigation.path - navigation.top - navigation.section - content.code.annotate - - navigation.prune + - navigation.expand - toc.follow palette: - media: '(prefers-color-scheme: dark)' @@ -44,19 +44,23 @@ plugins: default_handler: python handlers: python: + path: + - src options: filters: - '!^_[^_]' - inherited_members: true + inherited_members: false show_if_no_docstring: true show_signature_annotations: true show_source: false show_category_heading: true group_by_category: true - docstring_section_style: spacy show_root_full_path: false merge_init_into_class: true separate_signature: true + heading_level: 2 + docstring_section_style: spacy + show_root_toc_entry: false - with-pdf: cover_subtitle: User Manual cover_logo: C:\Users\chacha\git\pygitversionhelper\docs-static\Library.jpg diff --git a/pyproject.toml b/pyproject.toml index 9373d78..84806fa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,6 +61,6 @@ quality-check = ["pylint>=2.15","pylint-json2html>=0.4","pandas>=1.5"] type-check = ["mypy[reports]>=0.99" ] doc-gen = ["mkdocs>=1.4.0", "mkdocs-material>=8.5","mkdocs-pymdownx-material-extras", "mkdocs-localsearch>=0.9.0", "mkdocstrings[python]>=0.19", "mkdocs-with-pdf>=0.9.3","pyyaml>=6.0","pymdown-extensions>=9","mkdocs-markdownextradata-plugin","mkdocs-mermaid2-plugin"] -#[project.scripts] -#my-script = "my_package.module:function" +# [project.scripts] +# my-script = "my_package.module:function"