half-orm-dev 1.0.0a22__tar.gz → 1.0.0a23__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 (82) hide show
  1. {half_orm_dev-1.0.0a22/half_orm_dev.egg-info → half_orm_dev-1.0.0a23}/PKG-INFO +1 -1
  2. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/hgit.py +16 -0
  3. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/modules.py +1 -0
  4. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/release_manager.py +10 -3
  5. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/module_template_1 +1 -1
  6. half_orm_dev-1.0.0a23/half_orm_dev/templates/module_template_2 +7 -0
  7. half_orm_dev-1.0.0a23/half_orm_dev/version.txt +1 -0
  8. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23/half_orm_dev.egg-info}/PKG-INFO +1 -1
  9. half_orm_dev-1.0.0a22/half_orm_dev/templates/module_template_2 +0 -7
  10. half_orm_dev-1.0.0a22/half_orm_dev/version.txt +0 -1
  11. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/AUTHORS +0 -0
  12. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/LICENSE +0 -0
  13. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/README.md +0 -0
  14. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/__init__.py +0 -0
  15. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/bootstrap_manager.py +0 -0
  16. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/__init__.py +0 -0
  17. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/__init__.py +0 -0
  18. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/apply.py +0 -0
  19. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/bootstrap.py +0 -0
  20. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/check.py +0 -0
  21. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/clone.py +0 -0
  22. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/init.py +0 -0
  23. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/migrate.py +0 -0
  24. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/patch.py +0 -0
  25. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/release.py +0 -0
  26. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/restore.py +0 -0
  27. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/revert_migration.py +0 -0
  28. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/set_git_origin.py +0 -0
  29. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/sync.py +0 -0
  30. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/todo.py +0 -0
  31. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/undo.py +0 -0
  32. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/update.py +0 -0
  33. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/commands/upgrade.py +0 -0
  34. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli/main.py +0 -0
  35. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/cli_extension.py +0 -0
  36. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/database.py +0 -0
  37. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/decorators.py +0 -0
  38. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/file_executor.py +0 -0
  39. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/migration_manager.py +0 -0
  40. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/migrations/0/17/1/00_move_to_hop.py +0 -0
  41. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/migrations/0/17/1/01_txt_to_toml.py +0 -0
  42. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/migrations/0/17/4/00_toml_dict_format.py +0 -0
  43. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/migrations/0/17/4/01_add_bootstrap_table.py +0 -0
  44. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/migrations/0/17/4/02_move_patches_to_subdirs.py +0 -0
  45. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/migrations/0/17/5/01_update_pyproject_dependency.py +0 -0
  46. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/migrations/0/18/0/00_add_async_support.py +0 -0
  47. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/migrations/0/18/0/01_update_default_tests.py +0 -0
  48. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/migrations/1/0/0/a20/01_update_gitignore.py +0 -0
  49. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/migrations/hop/BREAKING_CHANGES-1.0.0.md +0 -0
  50. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/patch_manager.py +0 -0
  51. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/patch_validator.py +0 -0
  52. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/patches/0/1/0/00_half_orm_meta.database.sql +0 -0
  53. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/patches/0/1/0/01_alter_half_orm_meta.hop_release.sql +0 -0
  54. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/patches/0/1/0/02_half_orm_meta.view.hop_penultimate_release.sql +0 -0
  55. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/patches/log +0 -0
  56. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/patches/sql/half_orm_meta.sql +0 -0
  57. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/release_file.py +0 -0
  58. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/repo.py +0 -0
  59. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/scripts/repair-metadata.py +0 -0
  60. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/.gitignore +0 -0
  61. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/MANIFEST.in +0 -0
  62. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/README +0 -0
  63. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/conftest_template +0 -0
  64. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/git-hooks/pre-commit +0 -0
  65. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/git-hooks/pre-push +0 -0
  66. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/git-hooks/prepare-commit-msg +0 -0
  67. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/git-hooks/reference-transaction +0 -0
  68. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/init_module_template +0 -0
  69. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/module_template_3 +0 -0
  70. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/pyproject.toml +0 -0
  71. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/relation_test +0 -0
  72. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/sql_adapter +0 -0
  73. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/templates/warning +0 -0
  74. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev/utils.py +0 -0
  75. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev.egg-info/SOURCES.txt +0 -0
  76. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev.egg-info/dependency_links.txt +0 -0
  77. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev.egg-info/entry_points.txt +0 -0
  78. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev.egg-info/requires.txt +0 -0
  79. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/half_orm_dev.egg-info/top_level.txt +0 -0
  80. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/pyproject.toml +0 -0
  81. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/setup.cfg +0 -0
  82. {half_orm_dev-1.0.0a22 → half_orm_dev-1.0.0a23}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: half_orm_dev
3
- Version: 1.0.0a22
3
+ Version: 1.0.0a23
4
4
  Summary: half_orm development Framework.
5
5
  Author-email: Joël Maïzi <joel.maizi@collorg.org>
6
6
  License-Expression: GPL-3.0-or-later
@@ -356,6 +356,22 @@ class HGit:
356
356
  # Push branch with or without upstream tracking
357
357
  origin.push(branch_name, set_upstream=set_upstream)
358
358
 
359
+ def read_file_at_ref(self, ref: str, relative_path: str) -> str:
360
+ """
361
+ Read a file's content from a git ref (tag or commit) without checking it out.
362
+
363
+ Args:
364
+ ref: Git ref (e.g., "v1.3.6", "ho-prod", commit SHA)
365
+ relative_path: File path relative to repo root (e.g., ".hop/releases/1.3.6.txt")
366
+
367
+ Returns:
368
+ File content as string, or '' if not found.
369
+ """
370
+ try:
371
+ return self.__git_repo.git.show(f'{ref}:{relative_path}')
372
+ except Exception:
373
+ return ''
374
+
359
375
  def fetch_tags(self) -> None:
360
376
  """
361
377
  Fetch all tags from remote.
@@ -667,6 +667,7 @@ def __gen_baseclass(relation, fkeys) -> str:
667
667
  dc_name = rel._ho_dataclass_name()
668
668
  d = f'{full_name}Dict'
669
669
  HO_BASECLASSES_DICT_NAMES.add(d)
670
+
670
671
  lines = [
671
672
  f"class {bc_name}(",
672
673
  f" MODEL.get_relation_class('{fqtn}', fields_aliases=None),",
@@ -1357,14 +1357,21 @@ class ReleaseManager:
1357
1357
  # Extract base version for file lookup (remove suffix)
1358
1358
  base_version = version.split('-')[0]
1359
1359
 
1360
- # Read patches from release file
1360
+ # Read patches from release file.
1361
+ # The file may not exist in the current checkout (production server
1362
+ # is at an older tag), so fall back to reading from the git tag.
1361
1363
  release_file = self._releases_dir / f"{version}.txt"
1362
1364
  patches = []
1363
1365
 
1364
1366
  if release_file.exists():
1365
1367
  content = release_file.read_text().strip()
1366
- if content:
1367
- patches = [line.strip() for line in content.split('\n') if line.strip()]
1368
+ else:
1369
+ content = self._repo.hgit.read_file_at_ref(
1370
+ tag, f'.hop/releases/{version}.txt'
1371
+ )
1372
+
1373
+ if content.strip():
1374
+ patches = [line.strip() for line in content.split('\n') if line.strip()]
1368
1375
 
1369
1376
  # Only include releases newer than current version
1370
1377
  if Version(version) > Version(current_version):
@@ -8,4 +8,4 @@ WARNING!
8
8
  """
9
9
  from half_orm.model import register
10
10
  from {package_name} import MODEL, ho_baseclasses
11
-
11
+ {inheritance_import}
@@ -0,0 +1,7 @@
1
+
2
+ @register
3
+ class {class_name}({inherited_classes}ho_baseclasses.{bc_name}):
4
+ """
5
+ {documentation}
6
+ """
7
+
@@ -0,0 +1 @@
1
+ 1.0.0-a23
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: half_orm_dev
3
- Version: 1.0.0a22
3
+ Version: 1.0.0a23
4
4
  Summary: half_orm development Framework.
5
5
  Author-email: Joël Maïzi <joel.maizi@collorg.org>
6
6
  License-Expression: GPL-3.0-or-later
@@ -1,7 +0,0 @@
1
-
2
- @register
3
- class {class_name}(ho_baseclasses.{bc_name}):
4
- """
5
- {documentation}
6
- """
7
-
@@ -1 +0,0 @@
1
- 1.0.0-a22
File without changes
File without changes