python-scraperlib icon indicating copy to clipboard operation
python-scraperlib copied to clipboard

[next major] Do not shadow Python standard-library module

Open benoit74 opened this issue 11 months ago • 2 comments

Ruff / Flake8 has a new rule A005: https://docs.astral.sh/ruff/rules/stdlib-module-shadowing/

It is recommended to not shadow Python standard-library modules.

Currently, we have 5 issues:

src/zimscraperlib/html.py:1:1: A005 Module `html` shadows a Python standard-library module
src/zimscraperlib/logging.py:1:1: A005 Module `logging` shadows a Python standard-library module
src/zimscraperlib/rewriting/html.py:1:1: A005 Module `html` shadows a Python standard-library module
src/zimscraperlib/types.py:1:1: A005 Module `types` shadows a Python standard-library module
src/zimscraperlib/typing.py:1:1: A005 Module `typing` shadows a Python standard-library module

For now, I've disabled the rule A005 in https://github.com/openzim/python-scraperlib/pull/245 but we need to make a finer decision.

I think that logging module is shadowing "on-purpose" and might be allowed. Others could be considered for renaming. But I don't have very good suggestions of names, so I'm not 100% convinced, if we end-up with bad names, I'm not sure it really ease maintenance at all.

benoit74 avatar Jan 20 '25 08:01 benoit74

Understood. Here are my suggestion. None of them feel right though…

html -> html_parsing logging -> output rewriting.html -> rewriting.html_rewriting (with corresponding changes for JS and CSS) types -> content_types typing -> custom_types

rgaudin avatar Jan 20 '25 16:01 rgaudin

LGTM, I like the fact that they are not too awful ^^

benoit74 avatar Jan 20 '25 20:01 benoit74