Coverage for src/debputy/dh_migration/migrators.py: 100%
12 statements
« prev ^ index » next coverage.py v7.8.2, created at 2025-09-07 09:27 +0000
« prev ^ index » next coverage.py v7.8.2, created at 2025-09-07 09:27 +0000
1from typing import Callable, List, Mapping, Optional, Literal, Union
3from debputy.dh_migration.dh_related_migrations import (
4 dh_mbm_migrate_package_files,
5 dh_mbm_migrate_manual_warnings,
6)
7from debputy.dh_migration.migrators_impl import (
8 migrate_links_files,
9 migrate_maintscript,
10 migrate_tmpfile,
11 migrate_install_file,
12 migrate_installdocs_file,
13 migrate_installexamples_file,
14 migrate_dh_hook_targets,
15 migrate_misspelled_readme_debian_files,
16 migrate_doc_base_files,
17 migrate_lintian_overrides_files,
18 detect_unsupported_zz_debputy_features,
19 detect_pam_files,
20 detect_dh_addons_with_zz_integration,
21 migrate_not_installed_file,
22 migrate_installman_file,
23 migrate_bash_completion,
24 migrate_installinfo_file,
25 migrate_dh_installsystemd_files,
26 detect_obsolete_substvars,
27 detect_dh_addons_zz_debputy_rrr,
28 detect_dh_addons_with_full_integration,
29 migrate_shell_completions,
30 migrate_clean_file,
31)
32from debputy.dh_migration.models import AcceptableMigrationIssues, FeatureMigration
33from debputy.highlevel_manifest import HighLevelManifest
34from debputy.plugin.api import VirtualPath
35from debputy.plugin.api.spec import (
36 DebputyIntegrationMode,
37 INTEGRATION_MODE_DH_DEBPUTY_RRR,
38 INTEGRATION_MODE_DH_DEBPUTY,
39 INTEGRATION_MODE_FULL,
40)
42Migrator = Callable[
43 [
44 VirtualPath,
45 HighLevelManifest,
46 AcceptableMigrationIssues,
47 FeatureMigration,
48 Optional[DebputyIntegrationMode],
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]
78MigrationTarget = Union[
79 DebputyIntegrationMode,
80 Literal[
81 "dh-single-to-multi-binary",
82 "dh-package-prefixed-config-files",
83 ],
84]
86MIGRATORS: Mapping[MigrationTarget, List[Migrator]] = {
87 INTEGRATION_MODE_DH_DEBPUTY_RRR: [
88 migrate_dh_hook_targets,
89 migrate_misspelled_readme_debian_files,
90 detect_dh_addons_zz_debputy_rrr,
91 detect_obsolete_substvars,
92 ],
93 INTEGRATION_MODE_DH_DEBPUTY: [
94 *_DH_DEBPUTY_MIGRATORS,
95 detect_dh_addons_with_zz_integration,
96 ],
97 INTEGRATION_MODE_FULL: [
98 *_DH_DEBPUTY_MIGRATORS,
99 detect_dh_addons_with_full_integration,
100 migrate_clean_file,
101 ],
102 "dh-package-prefixed-config-files": [
103 dh_mbm_migrate_package_files,
104 ],
105 "dh-single-to-multi-binary": [
106 dh_mbm_migrate_package_files,
107 dh_mbm_migrate_manual_warnings,
108 ],
109}
110del _DH_DEBPUTY_MIGRATORS