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

1from typing import Callable, List, Mapping, Optional, Literal, Union 

2 

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) 

41 

42Migrator = Callable[ 

43 [ 

44 VirtualPath, 

45 HighLevelManifest, 

46 AcceptableMigrationIssues, 

47 FeatureMigration, 

48 Optional[DebputyIntegrationMode], 

49 ], 

50 None, 

51] 

52 

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] 

76 

77 

78MigrationTarget = Union[ 

79 DebputyIntegrationMode, 

80 Literal[ 

81 "dh-single-to-multi-binary", 

82 "dh-package-prefixed-config-files", 

83 ], 

84] 

85 

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