pum 1.1.3__tar.gz → 1.1.4__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 (158) hide show
  1. {pum-1.1.3/pum.egg-info → pum-1.1.4}/PKG-INFO +1 -1
  2. {pum-1.1.3 → pum-1.1.4}/docs/docs/index.md +1 -1
  3. {pum-1.1.3 → pum-1.1.4}/pum/config_model.py +6 -0
  4. {pum-1.1.3 → pum-1.1.4}/pum/pum_config.py +16 -5
  5. {pum-1.1.3 → pum-1.1.4/pum.egg-info}/PKG-INFO +1 -1
  6. {pum-1.1.3 → pum-1.1.4}/pum.egg-info/SOURCES.txt +0 -1
  7. pum-1.1.3/docs/docs/api/api.md +0 -11
  8. {pum-1.1.3 → pum-1.1.4}/.ci/setup_db.sh +0 -0
  9. {pum-1.1.3 → pum-1.1.4}/.github/dependabot.yml +0 -0
  10. {pum-1.1.3 → pum-1.1.4}/.github/workflows/deploy-to-pypi.yml +0 -0
  11. {pum-1.1.3 → pum-1.1.4}/.github/workflows/docs.yml +0 -0
  12. {pum-1.1.3 → pum-1.1.4}/.github/workflows/tests.yml +0 -0
  13. {pum-1.1.3 → pum-1.1.4}/.github/workflows/wheel.yml +0 -0
  14. {pum-1.1.3 → pum-1.1.4}/.github/workflows/windows-tests.yml +0 -0
  15. {pum-1.1.3 → pum-1.1.4}/.gitignore +0 -0
  16. {pum-1.1.3 → pum-1.1.4}/.pre-commit-config.yaml +0 -0
  17. {pum-1.1.3 → pum-1.1.4}/LICENSE +0 -0
  18. {pum-1.1.3 → pum-1.1.4}/README.md +0 -0
  19. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/changelog.md +0 -0
  20. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/dump_format.md +0 -0
  21. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/dumper.md +0 -0
  22. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/exceptions.md +0 -0
  23. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/hook_base.md +0 -0
  24. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/hook_handler.md +0 -0
  25. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/parameter_definition.md +0 -0
  26. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/parameter_type.md +0 -0
  27. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/permission.md +0 -0
  28. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/permission_type.md +0 -0
  29. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/pum_config.md +0 -0
  30. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/role.md +0 -0
  31. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/role_manager.md +0 -0
  32. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/schema_migrations.md +0 -0
  33. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/sql_content.md +0 -0
  34. {pum-1.1.3 → pum-1.1.4}/docs/docs/api/upgrader.md +0 -0
  35. {pum-1.1.3 → pum-1.1.4}/docs/docs/assets/images/favicon.ico +0 -0
  36. {pum-1.1.3 → pum-1.1.4}/docs/docs/assets/images/pum-darkmode.png +0 -0
  37. {pum-1.1.3 → pum-1.1.4}/docs/docs/assets/images/pum.png +0 -0
  38. {pum-1.1.3 → pum-1.1.4}/docs/docs/cli/baseline.md +0 -0
  39. {pum-1.1.3 → pum-1.1.4}/docs/docs/cli/check.md +0 -0
  40. {pum-1.1.3 → pum-1.1.4}/docs/docs/cli/dump.md +0 -0
  41. {pum-1.1.3 → pum-1.1.4}/docs/docs/cli/info.md +0 -0
  42. {pum-1.1.3 → pum-1.1.4}/docs/docs/cli/install.md +0 -0
  43. {pum-1.1.3 → pum-1.1.4}/docs/docs/cli/restore.md +0 -0
  44. {pum-1.1.3 → pum-1.1.4}/docs/docs/cli/role.md +0 -0
  45. {pum-1.1.3 → pum-1.1.4}/docs/docs/cli/upgrade.md +0 -0
  46. {pum-1.1.3 → pum-1.1.4}/docs/docs/cli.md +0 -0
  47. {pum-1.1.3 → pum-1.1.4}/docs/docs/configuration/config_model.md +0 -0
  48. {pum-1.1.3 → pum-1.1.4}/docs/docs/configuration/configuration.md +0 -0
  49. {pum-1.1.3 → pum-1.1.4}/docs/docs/configuration/demo_data_model.md +0 -0
  50. {pum-1.1.3 → pum-1.1.4}/docs/docs/configuration/dependency_model.md +0 -0
  51. {pum-1.1.3 → pum-1.1.4}/docs/docs/configuration/hook_model.md +0 -0
  52. {pum-1.1.3 → pum-1.1.4}/docs/docs/configuration/migration_hooks_model.md +0 -0
  53. {pum-1.1.3 → pum-1.1.4}/docs/docs/configuration/parameter_definition_model.md +0 -0
  54. {pum-1.1.3 → pum-1.1.4}/docs/docs/configuration/permission_model.md +0 -0
  55. {pum-1.1.3 → pum-1.1.4}/docs/docs/configuration/pum_model.md +0 -0
  56. {pum-1.1.3 → pum-1.1.4}/docs/docs/configuration/role_model.md +0 -0
  57. {pum-1.1.3 → pum-1.1.4}/docs/docs/getting_started.md +0 -0
  58. {pum-1.1.3 → pum-1.1.4}/docs/docs/hooks.md +0 -0
  59. {pum-1.1.3 → pum-1.1.4}/docs/docs/roles.md +0 -0
  60. {pum-1.1.3 → pum-1.1.4}/docs/mkdocs.yml +0 -0
  61. {pum-1.1.3 → pum-1.1.4}/docs/requirements.txt +0 -0
  62. {pum-1.1.3 → pum-1.1.4}/docs/roles.md +0 -0
  63. {pum-1.1.3 → pum-1.1.4}/docs/update_cli_docs.py +0 -0
  64. {pum-1.1.3 → pum-1.1.4}/pum/__init__.py +0 -0
  65. {pum-1.1.3 → pum-1.1.4}/pum/changelog.py +0 -0
  66. {pum-1.1.3 → pum-1.1.4}/pum/checker.py +0 -0
  67. {pum-1.1.3 → pum-1.1.4}/pum/cli.py +0 -0
  68. {pum-1.1.3 → pum-1.1.4}/pum/conf/pum_config_example.yaml +0 -0
  69. {pum-1.1.3 → pum-1.1.4}/pum/dependency_handler.py +0 -0
  70. {pum-1.1.3 → pum-1.1.4}/pum/dumper.py +0 -0
  71. {pum-1.1.3 → pum-1.1.4}/pum/exceptions.py +0 -0
  72. {pum-1.1.3 → pum-1.1.4}/pum/hook.py +0 -0
  73. {pum-1.1.3 → pum-1.1.4}/pum/info.py +0 -0
  74. {pum-1.1.3 → pum-1.1.4}/pum/parameter.py +0 -0
  75. {pum-1.1.3 → pum-1.1.4}/pum/role_manager.py +0 -0
  76. {pum-1.1.3 → pum-1.1.4}/pum/schema_migrations.py +0 -0
  77. {pum-1.1.3 → pum-1.1.4}/pum/sql_content.py +0 -0
  78. {pum-1.1.3 → pum-1.1.4}/pum/upgrader.py +0 -0
  79. {pum-1.1.3 → pum-1.1.4}/pum.egg-info/dependency_links.txt +0 -0
  80. {pum-1.1.3 → pum-1.1.4}/pum.egg-info/entry_points.txt +0 -0
  81. {pum-1.1.3 → pum-1.1.4}/pum.egg-info/requires.txt +0 -0
  82. {pum-1.1.3 → pum-1.1.4}/pum.egg-info/top_level.txt +0 -0
  83. {pum-1.1.3 → pum-1.1.4}/pyproject.toml +0 -0
  84. {pum-1.1.3 → pum-1.1.4}/requirements/base.txt +0 -0
  85. {pum-1.1.3 → pum-1.1.4}/requirements/development.txt +0 -0
  86. {pum-1.1.3 → pum-1.1.4}/scripts/run_postgis.sh +0 -0
  87. {pum-1.1.3 → pum-1.1.4}/setup.cfg +0 -0
  88. {pum-1.1.3 → pum-1.1.4}/test/__init__.py +0 -0
  89. {pum-1.1.3 → pum-1.1.4}/test/data/complex_files_content/changelogs/1.2.3/complex_files_content.sql +0 -0
  90. {pum-1.1.3 → pum-1.1.4}/test/data/custom_directory/.pum.yaml +0 -0
  91. {pum-1.1.3 → pum-1.1.4}/test/data/custom_directory/my_delta_directory/1.2.3/my_delta_directory.sql +0 -0
  92. {pum-1.1.3 → pum-1.1.4}/test/data/custom_migration_schema/.pum.yaml +0 -0
  93. {pum-1.1.3 → pum-1.1.4}/test/data/custom_migration_schema/changelogs/1.2.3/custom_migration_schema.sql +0 -0
  94. {pum-1.1.3 → pum-1.1.4}/test/data/demo_data/.pum.yaml +0 -0
  95. {pum-1.1.3 → pum-1.1.4}/test/data/demo_data/changelogs/1.2.3/single_changelog.sql +0 -0
  96. {pum-1.1.3 → pum-1.1.4}/test/data/demo_data/demo_data/demo_data.sql +0 -0
  97. {pum-1.1.3 → pum-1.1.4}/test/data/dependencies/.pum.yaml +0 -0
  98. {pum-1.1.3 → pum-1.1.4}/test/data/dependencies/changelogs/1.2.3/pre_post_python_parameters.sql +0 -0
  99. {pum-1.1.3 → pum-1.1.4}/test/data/dependencies/changelogs/1.2.4/rename_created_date.sql +0 -0
  100. {pum-1.1.3 → pum-1.1.4}/test/data/dependencies/post/create_schema.sql +0 -0
  101. {pum-1.1.3 → pum-1.1.4}/test/data/dependencies/post/create_view.py +0 -0
  102. {pum-1.1.3 → pum-1.1.4}/test/data/dependencies/pre/drop_view.sql +0 -0
  103. {pum-1.1.3 → pum-1.1.4}/test/data/invalid_changelog_commit/changelogs/1.2.3/invalid_changelog.sql +0 -0
  104. {pum-1.1.3 → pum-1.1.4}/test/data/invalid_changelog_search_path/changelogs/1.2.3/invalid_changelog.sql +0 -0
  105. {pum-1.1.3 → pum-1.1.4}/test/data/min_version/.pum.yaml +0 -0
  106. {pum-1.1.3 → pum-1.1.4}/test/data/min_version/changelogs/1.2.3/roles.sql +0 -0
  107. {pum-1.1.3 → pum-1.1.4}/test/data/multiple_changelogs/changelogs/1.2.3/multiple_changelogs.sql +0 -0
  108. {pum-1.1.3 → pum-1.1.4}/test/data/multiple_changelogs/changelogs/1.2.4/rename_created_date.sql +0 -0
  109. {pum-1.1.3 → pum-1.1.4}/test/data/multiple_changelogs/changelogs/1.3.0/add_created_by_column.sql +0 -0
  110. {pum-1.1.3 → pum-1.1.4}/test/data/multiple_changelogs/changelogs/2.0.0/create_second_table.sql +0 -0
  111. {pum-1.1.3 → pum-1.1.4}/test/data/multiple_changelogs/changelogs/2.0.0/create_third_table.sql +0 -0
  112. {pum-1.1.3 → pum-1.1.4}/test/data/parameters/.pum.yaml +0 -0
  113. {pum-1.1.3 → pum-1.1.4}/test/data/parameters/changelogs/1.2.3/parameters.sql +0 -0
  114. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python/.pum.yaml +0 -0
  115. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python/changelogs/1.2.3/pre_post_python.sql +0 -0
  116. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python/changelogs/1.2.4/rename_created_date.sql +0 -0
  117. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python/post/create_schema.sql +0 -0
  118. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python/post/create_view.py +0 -0
  119. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python/pre/drop_view.sql +0 -0
  120. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_local_import/.pum.yaml +0 -0
  121. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_local_import/changelogs/1.2.3/pre_post_python_local_import.sql +0 -0
  122. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_local_import/post/create_schema.sql +0 -0
  123. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_local_import/post/create_view.py +0 -0
  124. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_local_import/post/folder/my_module.py +0 -0
  125. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_local_import/pre/drop_view.sql +0 -0
  126. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_parameters/.pum.yaml +0 -0
  127. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_parameters/changelogs/1.2.3/pre_post_python_parameters.sql +0 -0
  128. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_parameters/changelogs/1.2.4/rename_created_date.sql +0 -0
  129. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_parameters/post/create_schema.sql +0 -0
  130. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_parameters/post/create_view.py +0 -0
  131. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_parameters/pre/drop_view.sql +0 -0
  132. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_parameters_broken/.pum.yaml +0 -0
  133. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_parameters_broken/changelogs/1.2.3/pre_post_python_parameters_broken.sql +0 -0
  134. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_parameters_broken/changelogs/1.2.4/rename_created_date.sql +0 -0
  135. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_parameters_broken/post/create_schema.sql +0 -0
  136. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_parameters_broken/post/create_view.py +0 -0
  137. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_python_parameters_broken/pre/drop_view.sql +0 -0
  138. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_sql_code/.pum.yaml +0 -0
  139. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_sql_code/changelogs/1.2.3/pre_post_sql_code.sql +0 -0
  140. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_sql_code/changelogs/1.2.4/rename_created_date.sql +0 -0
  141. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_sql_code/post/create_view.sql +0 -0
  142. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_sql_code/pre/drop_view.sql +0 -0
  143. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_sql_files/.pum.yaml +0 -0
  144. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_sql_files/changelogs/1.2.3/pre_post_sql_files.sql +0 -0
  145. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_sql_files/changelogs/1.2.4/rename_created_date.sql +0 -0
  146. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_sql_files/post/create_view.sql +0 -0
  147. {pum-1.1.3 → pum-1.1.4}/test/data/pre_post_sql_files/pre/drop_view.sql +0 -0
  148. {pum-1.1.3 → pum-1.1.4}/test/data/roles/.pum.yaml +0 -0
  149. {pum-1.1.3 → pum-1.1.4}/test/data/roles/changelogs/1.2.3/roles.sql +0 -0
  150. {pum-1.1.3 → pum-1.1.4}/test/data/single_changelog/changelogs/1.2.3/single_changelog.sql +0 -0
  151. {pum-1.1.3 → pum-1.1.4}/test/test_changelog.py +0 -0
  152. {pum-1.1.3 → pum-1.1.4}/test/test_checker.py.disabled +0 -0
  153. {pum-1.1.3 → pum-1.1.4}/test/test_config.py +0 -0
  154. {pum-1.1.3 → pum-1.1.4}/test/test_dumper.py +0 -0
  155. {pum-1.1.3 → pum-1.1.4}/test/test_pum.sh +0 -0
  156. {pum-1.1.3 → pum-1.1.4}/test/test_roles.py +0 -0
  157. {pum-1.1.3 → pum-1.1.4}/test/test_schema_migrations.py +0 -0
  158. {pum-1.1.3 → pum-1.1.4}/test/test_upgrader.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pum
3
- Version: 1.1.3
3
+ Version: 1.1.4
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
@@ -8,7 +8,7 @@ PUM (PostgreSQL Upgrades Manager) is a robust database migration management tool
8
8
 
9
9
  # Key Features
10
10
 
11
- - **Command-line and Python Integration**: Use PUM as a standalone [CLI tool](cli.md) or integrate it into your Python project using the [API](api/api.md).
11
+ - **Command-line and Python Integration**: Use PUM as a standalone [CLI tool](cli.md) or integrate it into your Python project using the [API](api/pum_config.md).
12
12
  - **Database Versioning**: Automatically manage database versioning with a metadata table.
13
13
  - **Changelog Management**: Apply and track SQL delta files for database upgrades.
14
14
  - **Migration Hooks**: Define custom hooks to execute additional SQL or Python code before or after migrations. This feature allows you to isolate data (table) code from application code (such as views and triggers), ensuring a clear separation of concerns and more maintainable database structures.
@@ -26,6 +26,12 @@ class ParameterDefinitionModel(PumCustomBaseModel):
26
26
  default: Optional[Any] = None
27
27
  description: Optional[str] = None
28
28
 
29
+ @model_validator(mode="before")
30
+ def validate_default(cls, values):
31
+ if values.get("type") == ParameterType.BOOLEAN:
32
+ values["default"] = values.get("default", False) in (1, "1", "true", "TRUE", True)
33
+ return values
34
+
29
35
 
30
36
  class HookModel(PumCustomBaseModel):
31
37
  """
@@ -25,7 +25,7 @@ try:
25
25
  except importlib.metadata.PackageNotFoundError:
26
26
  # Fallback: try to read from pum-*.dist-info/METADATA
27
27
  dist_info_dirs = glob.glob(os.path.join(os.path.dirname(__file__), "..", "pum-*.dist-info"))
28
- version = None
28
+ versions = []
29
29
  for dist_info in dist_info_dirs:
30
30
  metadata_path = os.path.join(dist_info, "METADATA")
31
31
  if os.path.isfile(metadata_path):
@@ -33,11 +33,11 @@ except importlib.metadata.PackageNotFoundError:
33
33
  for line in f:
34
34
  if line.startswith("Version:"):
35
35
  version = line.split(":", 1)[1].strip()
36
+ versions.append(version)
36
37
  break
37
- if version:
38
- break
39
- if version:
40
- PUM_VERSION = packaging.version.Version(version)
38
+ if versions:
39
+ # Pick the highest version
40
+ PUM_VERSION = max((packaging.version.Version(v) for v in versions))
41
41
  else:
42
42
  PUM_VERSION = packaging.version.Version("0.0.0")
43
43
 
@@ -137,6 +137,17 @@ class PumConfig:
137
137
  """Return the base path used for configuration and changelogs."""
138
138
  return self._base_path
139
139
 
140
+ def parameters(self) -> list[ParameterDefinition]:
141
+ """Return a list of migration parameters.
142
+
143
+ Returns:
144
+ list[ParameterDefinition]: A list of migration parameter definitions.
145
+
146
+ """
147
+ return [
148
+ ParameterDefinition(**parameter.model_dump()) for parameter in self.config.parameters
149
+ ]
150
+
140
151
  def parameter(self, name: str) -> ParameterDefinition:
141
152
  """Get a specific migration parameter by name.
142
153
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pum
3
- Version: 1.1.3
3
+ Version: 1.1.4
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
@@ -19,7 +19,6 @@ docs/docs/getting_started.md
19
19
  docs/docs/hooks.md
20
20
  docs/docs/index.md
21
21
  docs/docs/roles.md
22
- docs/docs/api/api.md
23
22
  docs/docs/api/changelog.md
24
23
  docs/docs/api/dump_format.md
25
24
  docs/docs/api/dumper.md
@@ -1,11 +0,0 @@
1
- # PUM API
2
-
3
- - [Changelog](api/changelog.md)
4
- - [Hook](api/hook.md)
5
- - [Hook](api/hook_handler.md)
6
- - [ParameterDefinition](api/parameter_definition.md)
7
- - [ParameterType](api/parameter_type.md)
8
- - [PumConfig](api/pum_config.md)
9
- - [SchemaMigrations](api/schema_migrations.md)
10
- - [Upgrader](api/upgrader.md)
11
- - [Exceptions](api/exceptions.md)
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
File without changes