pum 1.1.6__tar.gz → 1.1.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. {pum-1.1.6/pum.egg-info → pum-1.1.8}/PKG-INFO +1 -1
  2. {pum-1.1.6 → pum-1.1.8}/pum/cli.py +6 -0
  3. {pum-1.1.6 → pum-1.1.8}/pum/parameter.py +1 -2
  4. {pum-1.1.6 → pum-1.1.8}/pum/upgrader.py +6 -1
  5. {pum-1.1.6 → pum-1.1.8/pum.egg-info}/PKG-INFO +1 -1
  6. {pum-1.1.6 → pum-1.1.8}/test/test_upgrader.py +17 -0
  7. {pum-1.1.6 → pum-1.1.8}/.ci/setup_db.sh +0 -0
  8. {pum-1.1.6 → pum-1.1.8}/.github/dependabot.yml +0 -0
  9. {pum-1.1.6 → pum-1.1.8}/.github/workflows/deploy-to-pypi.yml +0 -0
  10. {pum-1.1.6 → pum-1.1.8}/.github/workflows/docs.yml +0 -0
  11. {pum-1.1.6 → pum-1.1.8}/.github/workflows/tests.yml +0 -0
  12. {pum-1.1.6 → pum-1.1.8}/.github/workflows/wheel.yml +0 -0
  13. {pum-1.1.6 → pum-1.1.8}/.github/workflows/windows-tests.yml +0 -0
  14. {pum-1.1.6 → pum-1.1.8}/.gitignore +0 -0
  15. {pum-1.1.6 → pum-1.1.8}/.pre-commit-config.yaml +0 -0
  16. {pum-1.1.6 → pum-1.1.8}/LICENSE +0 -0
  17. {pum-1.1.6 → pum-1.1.8}/README.md +0 -0
  18. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/changelog.md +0 -0
  19. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/dump_format.md +0 -0
  20. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/dumper.md +0 -0
  21. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/exceptions.md +0 -0
  22. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/hook_base.md +0 -0
  23. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/hook_handler.md +0 -0
  24. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/parameter_definition.md +0 -0
  25. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/parameter_type.md +0 -0
  26. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/permission.md +0 -0
  27. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/permission_type.md +0 -0
  28. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/pum_config.md +0 -0
  29. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/role.md +0 -0
  30. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/role_manager.md +0 -0
  31. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/schema_migrations.md +0 -0
  32. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/sql_content.md +0 -0
  33. {pum-1.1.6 → pum-1.1.8}/docs/docs/api/upgrader.md +0 -0
  34. {pum-1.1.6 → pum-1.1.8}/docs/docs/assets/images/favicon.ico +0 -0
  35. {pum-1.1.6 → pum-1.1.8}/docs/docs/assets/images/pum-darkmode.png +0 -0
  36. {pum-1.1.6 → pum-1.1.8}/docs/docs/assets/images/pum.png +0 -0
  37. {pum-1.1.6 → pum-1.1.8}/docs/docs/cli/baseline.md +0 -0
  38. {pum-1.1.6 → pum-1.1.8}/docs/docs/cli/check.md +0 -0
  39. {pum-1.1.6 → pum-1.1.8}/docs/docs/cli/dump.md +0 -0
  40. {pum-1.1.6 → pum-1.1.8}/docs/docs/cli/info.md +0 -0
  41. {pum-1.1.6 → pum-1.1.8}/docs/docs/cli/install.md +0 -0
  42. {pum-1.1.6 → pum-1.1.8}/docs/docs/cli/restore.md +0 -0
  43. {pum-1.1.6 → pum-1.1.8}/docs/docs/cli/role.md +0 -0
  44. {pum-1.1.6 → pum-1.1.8}/docs/docs/cli/upgrade.md +0 -0
  45. {pum-1.1.6 → pum-1.1.8}/docs/docs/cli.md +0 -0
  46. {pum-1.1.6 → pum-1.1.8}/docs/docs/configuration/config_model.md +0 -0
  47. {pum-1.1.6 → pum-1.1.8}/docs/docs/configuration/configuration.md +0 -0
  48. {pum-1.1.6 → pum-1.1.8}/docs/docs/configuration/demo_data_model.md +0 -0
  49. {pum-1.1.6 → pum-1.1.8}/docs/docs/configuration/dependency_model.md +0 -0
  50. {pum-1.1.6 → pum-1.1.8}/docs/docs/configuration/hook_model.md +0 -0
  51. {pum-1.1.6 → pum-1.1.8}/docs/docs/configuration/migration_hooks_model.md +0 -0
  52. {pum-1.1.6 → pum-1.1.8}/docs/docs/configuration/parameter_definition_model.md +0 -0
  53. {pum-1.1.6 → pum-1.1.8}/docs/docs/configuration/permission_model.md +0 -0
  54. {pum-1.1.6 → pum-1.1.8}/docs/docs/configuration/pum_model.md +0 -0
  55. {pum-1.1.6 → pum-1.1.8}/docs/docs/configuration/role_model.md +0 -0
  56. {pum-1.1.6 → pum-1.1.8}/docs/docs/getting_started.md +0 -0
  57. {pum-1.1.6 → pum-1.1.8}/docs/docs/hooks.md +0 -0
  58. {pum-1.1.6 → pum-1.1.8}/docs/docs/index.md +0 -0
  59. {pum-1.1.6 → pum-1.1.8}/docs/docs/roles.md +0 -0
  60. {pum-1.1.6 → pum-1.1.8}/docs/mkdocs.yml +0 -0
  61. {pum-1.1.6 → pum-1.1.8}/docs/requirements.txt +0 -0
  62. {pum-1.1.6 → pum-1.1.8}/docs/update_cli_docs.py +0 -0
  63. {pum-1.1.6 → pum-1.1.8}/pum/__init__.py +0 -0
  64. {pum-1.1.6 → pum-1.1.8}/pum/changelog.py +0 -0
  65. {pum-1.1.6 → pum-1.1.8}/pum/checker.py +0 -0
  66. {pum-1.1.6 → pum-1.1.8}/pum/conf/pum_config_example.yaml +0 -0
  67. {pum-1.1.6 → pum-1.1.8}/pum/config_model.py +0 -0
  68. {pum-1.1.6 → pum-1.1.8}/pum/dependency_handler.py +0 -0
  69. {pum-1.1.6 → pum-1.1.8}/pum/dumper.py +0 -0
  70. {pum-1.1.6 → pum-1.1.8}/pum/exceptions.py +0 -0
  71. {pum-1.1.6 → pum-1.1.8}/pum/hook.py +0 -0
  72. {pum-1.1.6 → pum-1.1.8}/pum/info.py +0 -0
  73. {pum-1.1.6 → pum-1.1.8}/pum/pum_config.py +0 -0
  74. {pum-1.1.6 → pum-1.1.8}/pum/role_manager.py +0 -0
  75. {pum-1.1.6 → pum-1.1.8}/pum/schema_migrations.py +0 -0
  76. {pum-1.1.6 → pum-1.1.8}/pum/sql_content.py +0 -0
  77. {pum-1.1.6 → pum-1.1.8}/pum.egg-info/SOURCES.txt +0 -0
  78. {pum-1.1.6 → pum-1.1.8}/pum.egg-info/dependency_links.txt +0 -0
  79. {pum-1.1.6 → pum-1.1.8}/pum.egg-info/entry_points.txt +0 -0
  80. {pum-1.1.6 → pum-1.1.8}/pum.egg-info/requires.txt +0 -0
  81. {pum-1.1.6 → pum-1.1.8}/pum.egg-info/top_level.txt +0 -0
  82. {pum-1.1.6 → pum-1.1.8}/pyproject.toml +0 -0
  83. {pum-1.1.6 → pum-1.1.8}/requirements/base.txt +0 -0
  84. {pum-1.1.6 → pum-1.1.8}/requirements/development.txt +0 -0
  85. {pum-1.1.6 → pum-1.1.8}/scripts/run_postgis.sh +0 -0
  86. {pum-1.1.6 → pum-1.1.8}/setup.cfg +0 -0
  87. {pum-1.1.6 → pum-1.1.8}/test/__init__.py +0 -0
  88. {pum-1.1.6 → pum-1.1.8}/test/data/complex_files_content/changelogs/1.2.3/complex_files_content.sql +0 -0
  89. {pum-1.1.6 → pum-1.1.8}/test/data/custom_directory/.pum.yaml +0 -0
  90. {pum-1.1.6 → pum-1.1.8}/test/data/custom_directory/my_delta_directory/1.2.3/my_delta_directory.sql +0 -0
  91. {pum-1.1.6 → pum-1.1.8}/test/data/custom_migration_schema/.pum.yaml +0 -0
  92. {pum-1.1.6 → pum-1.1.8}/test/data/custom_migration_schema/changelogs/1.2.3/custom_migration_schema.sql +0 -0
  93. {pum-1.1.6 → pum-1.1.8}/test/data/demo_data/.pum.yaml +0 -0
  94. {pum-1.1.6 → pum-1.1.8}/test/data/demo_data/changelogs/1.2.3/single_changelog.sql +0 -0
  95. {pum-1.1.6 → pum-1.1.8}/test/data/demo_data/demo_data/demo_data.sql +0 -0
  96. {pum-1.1.6 → pum-1.1.8}/test/data/dependencies/.pum.yaml +0 -0
  97. {pum-1.1.6 → pum-1.1.8}/test/data/dependencies/changelogs/1.2.3/pre_post_python_parameters.sql +0 -0
  98. {pum-1.1.6 → pum-1.1.8}/test/data/dependencies/changelogs/1.2.4/rename_created_date.sql +0 -0
  99. {pum-1.1.6 → pum-1.1.8}/test/data/dependencies/post/create_schema.sql +0 -0
  100. {pum-1.1.6 → pum-1.1.8}/test/data/dependencies/post/create_view.py +0 -0
  101. {pum-1.1.6 → pum-1.1.8}/test/data/dependencies/pre/drop_view.sql +0 -0
  102. {pum-1.1.6 → pum-1.1.8}/test/data/invalid_changelog_commit/changelogs/1.2.3/invalid_changelog.sql +0 -0
  103. {pum-1.1.6 → pum-1.1.8}/test/data/invalid_changelog_search_path/changelogs/1.2.3/invalid_changelog.sql +0 -0
  104. {pum-1.1.6 → pum-1.1.8}/test/data/min_version/.pum.yaml +0 -0
  105. {pum-1.1.6 → pum-1.1.8}/test/data/min_version/changelogs/1.2.3/roles.sql +0 -0
  106. {pum-1.1.6 → pum-1.1.8}/test/data/multiple_changelogs/changelogs/1.2.3/multiple_changelogs.sql +0 -0
  107. {pum-1.1.6 → pum-1.1.8}/test/data/multiple_changelogs/changelogs/1.2.4/rename_created_date.sql +0 -0
  108. {pum-1.1.6 → pum-1.1.8}/test/data/multiple_changelogs/changelogs/1.3.0/add_created_by_column.sql +0 -0
  109. {pum-1.1.6 → pum-1.1.8}/test/data/multiple_changelogs/changelogs/2.0.0/create_second_table.sql +0 -0
  110. {pum-1.1.6 → pum-1.1.8}/test/data/multiple_changelogs/changelogs/2.0.0/create_third_table.sql +0 -0
  111. {pum-1.1.6 → pum-1.1.8}/test/data/parameters/.pum.yaml +0 -0
  112. {pum-1.1.6 → pum-1.1.8}/test/data/parameters/changelogs/1.2.3/parameters.sql +0 -0
  113. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python/.pum.yaml +0 -0
  114. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python/changelogs/1.2.3/pre_post_python.sql +0 -0
  115. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python/changelogs/1.2.4/rename_created_date.sql +0 -0
  116. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python/post/create_schema.sql +0 -0
  117. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python/post/create_view.py +0 -0
  118. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python/pre/drop_view.sql +0 -0
  119. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_local_import/.pum.yaml +0 -0
  120. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_local_import/changelogs/1.2.3/pre_post_python_local_import.sql +0 -0
  121. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_local_import/post/create_schema.sql +0 -0
  122. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_local_import/post/create_view.py +0 -0
  123. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_local_import/post/folder/my_module.py +0 -0
  124. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_local_import/pre/drop_view.sql +0 -0
  125. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_parameters/.pum.yaml +0 -0
  126. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_parameters/changelogs/1.2.3/pre_post_python_parameters.sql +0 -0
  127. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_parameters/changelogs/1.2.4/rename_created_date.sql +0 -0
  128. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_parameters/post/create_schema.sql +0 -0
  129. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_parameters/post/create_view.py +0 -0
  130. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_parameters/pre/drop_view.sql +0 -0
  131. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_parameters_broken/.pum.yaml +0 -0
  132. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_parameters_broken/changelogs/1.2.3/pre_post_python_parameters_broken.sql +0 -0
  133. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_parameters_broken/changelogs/1.2.4/rename_created_date.sql +0 -0
  134. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_parameters_broken/post/create_schema.sql +0 -0
  135. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_parameters_broken/post/create_view.py +0 -0
  136. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_python_parameters_broken/pre/drop_view.sql +0 -0
  137. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_sql_code/.pum.yaml +0 -0
  138. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_sql_code/changelogs/1.2.3/pre_post_sql_code.sql +0 -0
  139. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_sql_code/changelogs/1.2.4/rename_created_date.sql +0 -0
  140. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_sql_code/post/create_view.sql +0 -0
  141. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_sql_code/pre/drop_view.sql +0 -0
  142. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_sql_files/.pum.yaml +0 -0
  143. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_sql_files/changelogs/1.2.3/pre_post_sql_files.sql +0 -0
  144. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_sql_files/changelogs/1.2.4/rename_created_date.sql +0 -0
  145. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_sql_files/post/create_view.sql +0 -0
  146. {pum-1.1.6 → pum-1.1.8}/test/data/pre_post_sql_files/pre/drop_view.sql +0 -0
  147. {pum-1.1.6 → pum-1.1.8}/test/data/roles/.pum.yaml +0 -0
  148. {pum-1.1.6 → pum-1.1.8}/test/data/roles/changelogs/1.2.3/roles.sql +0 -0
  149. {pum-1.1.6 → pum-1.1.8}/test/data/single_changelog/changelogs/1.2.3/single_changelog.sql +0 -0
  150. {pum-1.1.6 → pum-1.1.8}/test/test_changelog.py +0 -0
  151. {pum-1.1.6 → pum-1.1.8}/test/test_checker.py.disabled +0 -0
  152. {pum-1.1.6 → pum-1.1.8}/test/test_config.py +0 -0
  153. {pum-1.1.6 → pum-1.1.8}/test/test_dumper.py +0 -0
  154. {pum-1.1.6 → pum-1.1.8}/test/test_pum.sh +0 -0
  155. {pum-1.1.6 → pum-1.1.8}/test/test_roles.py +0 -0
  156. {pum-1.1.6 → pum-1.1.8}/test/test_schema_migrations.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pum
3
- Version: 1.1.6
3
+ Version: 1.1.8
4
4
  Summary: Pum stands for "Postgres Upgrades Manager". It is a Database migration management tool very similar to flyway-db or Liquibase, based on metadata tables.
5
5
  Author-email: Denis Rouzaud <denis@opengis.ch>
6
6
  License-Expression: GPL-2.0-or-later
@@ -201,6 +201,11 @@ def create_parser() -> argparse.ArgumentParser:
201
201
  parser_install.add_argument(
202
202
  "-d", "--demo-data", help="Load demo data with the given name", type=str, default=None
203
203
  )
204
+ parser_install.add_argument(
205
+ "--beta-testing",
206
+ help="This will install the module in beta testing, meaning that it will not be possible to receive any future updates.",
207
+ action="store_true",
208
+ )
204
209
 
205
210
  # Role management parser
206
211
  parser_role = subparsers.add_parser("role", help="manage roles in the database")
@@ -347,6 +352,7 @@ def cli() -> int: # noqa: PLR0912
347
352
  roles=args.roles,
348
353
  grant=args.grant,
349
354
  demo_data=args.demo_data,
355
+ beta_testing=args.beta_testing,
350
356
  )
351
357
  conn.commit()
352
358
  if args.demo_data:
@@ -1,5 +1,4 @@
1
1
  from enum import Enum
2
- import psycopg
3
2
 
4
3
 
5
4
  class ParameterType(Enum):
@@ -55,7 +54,7 @@ class ParameterDefinition:
55
54
  raise ValueError(f"Parameter '{name}' has an invalid type: {type}. ") from None
56
55
  else:
57
56
  raise TypeError("type must be a str or ParameterType")
58
- self.default = psycopg.sql.Literal(default)
57
+ self.default = default
59
58
  self.description = description
60
59
 
61
60
  def __repr__(self) -> str:
@@ -52,6 +52,7 @@ class Upgrader:
52
52
  roles: bool = False,
53
53
  grant: bool = False,
54
54
  demo_data: str | None = None,
55
+ beta_testing: bool = False,
55
56
  commit: bool = False,
56
57
  ) -> None:
57
58
  """Installs the given module
@@ -72,6 +73,10 @@ class Upgrader:
72
73
  If True, permissions will be granted to the roles.
73
74
  demo_data:
74
75
  The name of the demo data to load. If None, no demo data is loaded.
76
+ beta_testing:
77
+ If True, the module is installed in beta testing mode.
78
+ This means that the module will not be able to receive any future updates.
79
+ We strongly discourage using this for production.
75
80
  commit:
76
81
  If True, the changes will be committed to the database.
77
82
  """
@@ -108,7 +113,7 @@ class Upgrader:
108
113
  self.schema_migrations.set_baseline(
109
114
  connection=connection,
110
115
  version=changelog.version,
111
- beta_testing=False,
116
+ beta_testing=beta_testing,
112
117
  commit=False,
113
118
  changelog_files=changelog_files,
114
119
  parameters=parameters,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pum
3
- Version: 1.1.6
3
+ Version: 1.1.8
4
4
  Summary: Pum stands for "Postgres Upgrades Manager". It is a Database migration management tool very similar to flyway-db or Liquibase, based on metadata tables.
5
5
  Author-email: Denis Rouzaud <denis@opengis.ch>
6
6
  License-Expression: GPL-2.0-or-later
@@ -63,11 +63,28 @@ class TestUpgrader(unittest.TestCase):
63
63
  self.assertEqual(sm.baseline(conn), "1.2.3")
64
64
  self.assertEqual(sm.migration_details(conn), sm.migration_details(conn, "1.2.3"))
65
65
  self.assertEqual(sm.migration_details(conn)["version"], "1.2.3")
66
+ self.assertEqual(sm.migration_details(conn)["beta_testing"], False)
66
67
  self.assertEqual(
67
68
  sm.migration_details(conn)["changelog_files"],
68
69
  [str(changelog_file)],
69
70
  )
70
71
 
72
+ def test_install_beta_testing(self) -> None:
73
+ """Test the installation as beta testing."""
74
+ test_dir = Path("test") / "data" / "single_changelog"
75
+ cfg = PumConfig(test_dir)
76
+ sm = SchemaMigrations(cfg)
77
+ with psycopg.connect(f"service={self.pg_service}") as conn:
78
+ self.assertFalse(sm.exists(conn))
79
+ upgrader = Upgrader(
80
+ config=cfg,
81
+ )
82
+ upgrader.install(connection=conn, beta_testing=True)
83
+ self.assertTrue(sm.exists(conn))
84
+ self.assertEqual(sm.baseline(conn), "1.2.3")
85
+ self.assertEqual(sm.migration_details(conn), sm.migration_details(conn, "1.2.3"))
86
+ self.assertEqual(sm.migration_details(conn)["beta_testing"], True)
87
+
71
88
  @unittest.skipIf(
72
89
  os.name == "nt" and os.getenv("CI") == "true",
73
90
  "Test not supported on Windows CI (postgis not installed)",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes