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