Coverage for src/debputy/dh_migration/migrators.py: 100%
11 statements
« prev ^ index » next coverage.py v7.8.2, created at 2025-12-28 16:12 +0000
« prev ^ index » next coverage.py v7.8.2, created at 2025-12-28 16:12 +0000
1from collections.abc import Callable, Mapping
2from typing import Literal, Union
4from debputy.dh_migration.dh_related_migrations import (
5 dh_mbm_migrate_package_files,
6 dh_mbm_migrate_manual_warnings,
7)
8from debputy.dh_migration.migrators_impl import (
9 migrate_links_files,
10 migrate_maintscript,
11 migrate_tmpfile,
12 migrate_install_file,
13 migrate_installdocs_file,
14 migrate_installexamples_file,
15 migrate_dh_hook_targets,
16 migrate_misspelled_readme_debian_files,
17 migrate_doc_base_files,
18 migrate_lintian_overrides_files,
19 detect_unsupported_zz_debputy_features,
20 detect_pam_files,
21 detect_modprobe_files,
22 detect_dh_addons_with_zz_integration,
23 migrate_not_installed_file,
24 migrate_installman_file,
25 migrate_bash_completion,
26 migrate_installinfo_file,
27 migrate_dh_installsystemd_files,
28 detect_obsolete_substvars,
29 detect_dh_addons_zz_debputy_rrr,
30 detect_dh_addons_with_full_integration,
31 migrate_shell_completions,
32 migrate_clean_file,
33 min_dh_compat_check,
34 migrate_dh_builtusing,
35)
36from debputy.dh_migration.models import (
37 FeatureMigration,
38 MigrationRequest,
39)
40from debputy.plugin.api.spec import (
41 DebputyIntegrationMode,
42 INTEGRATION_MODE_DH_DEBPUTY_RRR,
43 INTEGRATION_MODE_DH_DEBPUTY,
44 INTEGRATION_MODE_FULL,
45)
47Migrator = Callable[
48 [
49 MigrationRequest,
50 FeatureMigration,
51 ],
52 None,
53]
55_DH_DEBPUTY_MIGRATORS = [
56 detect_unsupported_zz_debputy_features,
57 detect_pam_files,
58 detect_modprobe_files,
59 migrate_dh_hook_targets,
60 migrate_dh_installsystemd_files,
61 migrate_install_file,
62 migrate_installdocs_file,
63 migrate_installexamples_file,
64 migrate_installman_file,
65 migrate_installinfo_file,
66 migrate_misspelled_readme_debian_files,
67 migrate_doc_base_files,
68 migrate_links_files,
69 migrate_maintscript,
70 migrate_tmpfile,
71 migrate_lintian_overrides_files,
72 migrate_bash_completion,
73 migrate_shell_completions,
74 migrate_dh_builtusing,
75 detect_obsolete_substvars,
76 # not-installed should go last, so its rules appear after other installations
77 # It is not perfect, but it is a start.
78 migrate_not_installed_file,
79 min_dh_compat_check,
80]
83MigrationTarget = Union[
84 DebputyIntegrationMode,
85 Literal[
86 "dh-single-to-multi-binary",
87 "dh-package-prefixed-config-files",
88 ],
89]
91MIGRATORS: Mapping[MigrationTarget, list[Migrator]] = {
92 INTEGRATION_MODE_DH_DEBPUTY_RRR: [
93 migrate_dh_hook_targets,
94 migrate_misspelled_readme_debian_files,
95 detect_dh_addons_zz_debputy_rrr,
96 detect_obsolete_substvars,
97 ],
98 INTEGRATION_MODE_DH_DEBPUTY: [
99 *_DH_DEBPUTY_MIGRATORS,
100 detect_dh_addons_with_zz_integration,
101 ],
102 INTEGRATION_MODE_FULL: [
103 *_DH_DEBPUTY_MIGRATORS,
104 detect_dh_addons_with_full_integration,
105 migrate_clean_file,
106 ],
107 "dh-package-prefixed-config-files": [
108 dh_mbm_migrate_package_files,
109 ],
110 "dh-single-to-multi-binary": [
111 dh_mbm_migrate_package_files,
112 dh_mbm_migrate_manual_warnings,
113 ],
114}
115del _DH_DEBPUTY_MIGRATORS