943acbc573
Durcit la convention de nommage des projets (dérive constatée : 'Sliding Automation', 'code_versioning'... au lieu des formes canoniques). - trilium_api.py : projets_canoniques() lit le référentiel = valeurs du label projet sur les notes de type=projet (source unique, pas de constante en dur). Note-projet CodeVersioning créée (manquait). - mcp_server.py : _valider_projet() branché dans les 6 tools de création (add_decision/history/backlog, new_conversation, create_entite, add_skill). Refuse un projet non canonique (suggestion si faute) ou inconnu (renvoi au processus de création de projet). Ne verrouille pas si référentiel illisible. - lint_audit.py : VAL-nommage aligné sur le référentiel (attrape casse, espace ET snake_case ; l'ancien 'contient un espace' ratait code_versioning). - Données : 79 notes ré-étiquetées vers les 3 formes canoniques. Quality by design : l'erreur de nommage devient impossible à l'écriture, le Lint n'est plus que le filet de sécurité.
92 lines
3.1 KiB
Python
92 lines
3.1 KiB
Python
"""Deprecation messages and bits of code used elsewhere in the codebase that
|
|
is planned to be removed in the next pytest release.
|
|
|
|
Keeping it in a central location makes it easy to track what is deprecated and should
|
|
be removed when the time comes.
|
|
|
|
All constants defined in this module should be either instances of
|
|
:class:`PytestWarning`, or :class:`UnformattedWarning`
|
|
in case of warnings which need to format their messages.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from warnings import warn
|
|
|
|
from _pytest.warning_types import PytestDeprecationWarning
|
|
from _pytest.warning_types import PytestRemovedIn9Warning
|
|
from _pytest.warning_types import UnformattedWarning
|
|
|
|
|
|
# set of plugins which have been integrated into the core; we use this list to ignore
|
|
# them during registration to avoid conflicts
|
|
DEPRECATED_EXTERNAL_PLUGINS = {
|
|
"pytest_catchlog",
|
|
"pytest_capturelog",
|
|
"pytest_faulthandler",
|
|
}
|
|
|
|
|
|
# This can be* removed pytest 8, but it's harmless and common, so no rush to remove.
|
|
# * If you're in the future: "could have been".
|
|
YIELD_FIXTURE = PytestDeprecationWarning(
|
|
"@pytest.yield_fixture is deprecated.\n"
|
|
"Use @pytest.fixture instead; they are the same."
|
|
)
|
|
|
|
# This deprecation is never really meant to be removed.
|
|
PRIVATE = PytestDeprecationWarning("A private pytest class or function was used.")
|
|
|
|
|
|
HOOK_LEGACY_PATH_ARG = UnformattedWarning(
|
|
PytestRemovedIn9Warning,
|
|
"The ({pylib_path_arg}: py.path.local) argument is deprecated, please use ({pathlib_path_arg}: pathlib.Path)\n"
|
|
"see https://docs.pytest.org/en/latest/deprecations.html"
|
|
"#py-path-local-arguments-for-hooks-replaced-with-pathlib-path",
|
|
)
|
|
|
|
NODE_CTOR_FSPATH_ARG = UnformattedWarning(
|
|
PytestRemovedIn9Warning,
|
|
"The (fspath: py.path.local) argument to {node_type_name} is deprecated. "
|
|
"Please use the (path: pathlib.Path) argument instead.\n"
|
|
"See https://docs.pytest.org/en/latest/deprecations.html"
|
|
"#fspath-argument-for-node-constructors-replaced-with-pathlib-path",
|
|
)
|
|
|
|
HOOK_LEGACY_MARKING = UnformattedWarning(
|
|
PytestDeprecationWarning,
|
|
"The hook{type} {fullname} uses old-style configuration options (marks or attributes).\n"
|
|
"Please use the pytest.hook{type}({hook_opts}) decorator instead\n"
|
|
" to configure the hooks.\n"
|
|
" See https://docs.pytest.org/en/latest/deprecations.html"
|
|
"#configuring-hook-specs-impls-using-markers",
|
|
)
|
|
|
|
MARKED_FIXTURE = PytestRemovedIn9Warning(
|
|
"Marks applied to fixtures have no effect\n"
|
|
"See docs: https://docs.pytest.org/en/stable/deprecations.html#applying-a-mark-to-a-fixture-function"
|
|
)
|
|
|
|
# You want to make some `__init__` or function "private".
|
|
#
|
|
# def my_private_function(some, args):
|
|
# ...
|
|
#
|
|
# Do this:
|
|
#
|
|
# def my_private_function(some, args, *, _ispytest: bool = False):
|
|
# check_ispytest(_ispytest)
|
|
# ...
|
|
#
|
|
# Change all internal/allowed calls to
|
|
#
|
|
# my_private_function(some, args, _ispytest=True)
|
|
#
|
|
# All other calls will get the default _ispytest=False and trigger
|
|
# the warning (possibly error in the future).
|
|
|
|
|
|
def check_ispytest(ispytest: bool) -> None:
|
|
if not ispytest:
|
|
warn(PRIVATE, stacklevel=3)
|