Skip to content

Commit 455b76d

Browse files
authored
Adding logging (#5)
1 parent fc3baf5 commit 455b76d

File tree

8 files changed

+48
-5
lines changed

8 files changed

+48
-5
lines changed

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,10 @@ import-order-style="appnexus"
194194
profile = "appnexus"
195195
src_paths = ['src/']
196196
known_first_party = [
197-
"mkdocs_licenseinfo.*"
197+
"mkdocs_licenseinfo.*",
198198
]
199199

200-
known_application = 'mkdocs_licenseinfo.*'
200+
known_application = 'mkdocs_licenseinfo*'
201201
force_alphabetical_sort_within_sections = true
202202
force_sort_within_sections = true
203203
reverse_relative = true

src/mkdocs_licenseinfo/__init__.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
33
mkdocs extension to visualise package dependencies license information.
44
"""
5+
from __future__ import annotations
6+
7+
import logging
8+
from typing import Any, MutableMapping
59

610

711
def __get_version() -> str:
@@ -45,3 +49,32 @@ def __get_version() -> str:
4549

4650

4751
__version__ = __get_version()
52+
53+
54+
class _PluginLogger(logging.LoggerAdapter):
55+
"""A logger adapter to prefix messages with the originating package name."""
56+
57+
def __init__(self, prefix: str, logger: logging.Logger):
58+
"""Initialize the object.
59+
60+
Arguments:
61+
prefix: The string to insert in front of every message.
62+
logger: The logger instance.
63+
"""
64+
super().__init__(logger, {})
65+
self.prefix = prefix
66+
67+
def process(self, msg: str, kwargs: MutableMapping[str, Any]) -> tuple[str, Any]:
68+
"""Process the message.
69+
70+
Arguments:
71+
msg: The message:
72+
kwargs: Remaining arguments.
73+
74+
Returns:
75+
The processed message.
76+
"""
77+
return f"{self.prefix}: {msg}", kwargs
78+
79+
80+
logger = _PluginLogger('mkdocs_licenseinfo', logging.getLogger("mkdocs.plugins.mkdocs_licenseinfo"))

src/mkdocs_licenseinfo/extension.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
from markdown.extensions import Extension
4343
from mkdocs.utils.yaml import get_yaml_loader, yaml_load
4444

45+
from mkdocs_licenseinfo import logger
4546
from mkdocs_licenseinfo.render_markdown import get_licenses_as_markdown
4647

4748
if TYPE_CHECKING:
@@ -65,6 +66,7 @@ def __init__(
6566

6667
def test(self, parent: Element, block: str) -> bool: # noqa: U100
6768
"""Match the extension instructions."""
69+
logger.debug(f'Checking block: {block}')
6870
return bool(self.regex.search(block))
6971

7072
def run(self, parent: Element, blocks: MutableSequence[str]) -> None:

src/mkdocs_licenseinfo/get_licenses.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010

1111
import licensecheck
1212

13+
from mkdocs_licenseinfo import logger
14+
1315

1416
class UnclosableIO(StringIO):
1517
"""StringIO object that cannot be closed."""
@@ -145,6 +147,7 @@ def get_licenses(
145147
output=output,
146148
path=path
147149
):
150+
logger.info(f'Getting licenses for: {using} in path: {path}')
148151
licensecheck.cli()
149152
result = json.loads(output.getvalue())
150153
output.force_close()

src/mkdocs_licenseinfo/render_markdown.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
from jinja2 import Environment
1515

16+
from mkdocs_licenseinfo import logger
1617
from mkdocs_licenseinfo.get_licenses import get_licenses
1718

1819
PACKAGE_TEMPLATE = "# [{{package.name}}]({{package.homePage}})\n{% for license in package.licenses %}``{{license}}`` {% endfor %} \n*Version Checked: {{package.version}}* \nAuthor: {{package.author}}"
@@ -77,12 +78,19 @@ def get_licenses_as_markdown(
7778
):
7879
"""Get the licenses and render them as markdown strings."""
7980
jinja_environment = JINJA_ENVIRONMENT_FACTORY.environment
81+
logger.debug('Getting licenses')
8082
packages = get_licenses(using, ignore_packages, fail_packages, skip_packages, ignore_licenses, fail_licenses, path=path)
83+
logger.info(f'Found {len(packages)} packages')
84+
8185
diff_packages = []
8286
if diff:
87+
logger.debug('Getting diff licenses')
8388
diff_packages = get_licenses(diff, ignore_packages, fail_packages, skip_packages, ignore_licenses, fail_licenses, path=path)
89+
logger.info(f'Found {len(diff_packages)} diff packages')
8490
selected_package_names = list({u['name'] for u in packages} - {u['name'] for u in diff_packages})
8591
selected_packages = [u for u in packages if u['name'] in selected_package_names]
92+
logger.info(f'Processing remaining {len(selected_packages)} packages')
8693
if package_template is None:
8794
package_template = PACKAGE_TEMPLATE
95+
logger.debug('Rendering licenses')
8896
return [jinja_environment.from_string(package_template).render(package=package) for package in selected_packages]

tests/unit/test_get_licenses.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import licensecheck
88

99
from mkdocs_licenseinfo import get_licenses as gl_module
10-
1110
from mkdocs_licenseinfo.get_licenses import (
1211
_split_licenses,
1312
get_licenses,

tests/unit/test_processor.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from nskit.common.contextmanagers import Env
88

99
from mkdocs_licenseinfo import extension
10-
1110
from mkdocs_licenseinfo.extension import LicenseInfoProcessor
1211

1312

tests/unit/test_render_markdown.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
from nskit.common.contextmanagers import Env, TestExtension
99

1010
from mkdocs_licenseinfo import get_licenses
11-
1211
from mkdocs_licenseinfo.render_markdown import (
1312
_EnvironmentFactory,
1413
get_licenses_as_markdown,

0 commit comments

Comments
 (0)