Photo-Composition-Designer 0.0.7__tar.gz → 0.0.9__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 (152) hide show
  1. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.idea/workspace.xml +45 -21
  2. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/HISTORY.md +13 -2
  3. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/Makefile +1 -1
  4. photo_composition_designer-0.0.9/PKG-INFO +130 -0
  5. photo_composition_designer-0.0.9/README.md +101 -0
  6. photo_composition_designer-0.0.9/docs/_static/img/gui_main.png +0 -0
  7. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/docs/getting-started/install.md +1 -0
  8. photo_composition_designer-0.0.9/docs/index.md +94 -0
  9. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/_version.py +3 -3
  10. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/cli/cli.py +2 -2
  11. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/common/logging.py +11 -15
  12. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/core/base.py +29 -14
  13. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/gui/gui.py +61 -21
  14. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/tools/DescriptionsFileGenerator.py +1 -1
  15. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/tools/GeoPlotter.py +3 -0
  16. photo_composition_designer-0.0.9/src/Photo_Composition_Designer.egg-info/PKG-INFO +130 -0
  17. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer.egg-info/SOURCES.txt +1 -4
  18. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_DescriptionsFileGenerator.py +1 -1
  19. photo_composition_designer-0.0.7/PKG-INFO +0 -205
  20. photo_composition_designer-0.0.7/README.md +0 -62
  21. photo_composition_designer-0.0.7/docs/develop/contributing.md +0 -163
  22. photo_composition_designer-0.0.7/docs/develop/make_windows.md +0 -215
  23. photo_composition_designer-0.0.7/docs/develop/naming_convention.md +0 -46
  24. photo_composition_designer-0.0.7/docs/develop/pypi_release.md +0 -233
  25. photo_composition_designer-0.0.7/docs/index.md +0 -169
  26. photo_composition_designer-0.0.7/src/Photo_Composition_Designer.egg-info/PKG-INFO +0 -205
  27. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/FUNDING.yml +0 -0
  28. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  29. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  30. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  31. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/actions/setup-environment/action.yml +0 -0
  32. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/dependabot.yml +0 -0
  33. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/init.sh +0 -0
  34. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/release_message.sh +0 -0
  35. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/rename_project.sh +0 -0
  36. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/update_funding.py +0 -0
  37. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/workflows/build-linux.yml +0 -0
  38. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/workflows/build-macos.yml +0 -0
  39. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/workflows/build-win.yml +0 -0
  40. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/workflows/main.yml +0 -0
  41. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/workflows/release.yml +0 -0
  42. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.github/workflows/update_readme.yml +0 -0
  43. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.gitignore +0 -0
  44. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.idea/runConfigurations/config_generate.xml +0 -0
  45. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.idea/runConfigurations/module_cli.xml +0 -0
  46. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.idea/runConfigurations/module_gui.xml +0 -0
  47. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.idea/vcs.xml +0 -0
  48. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.pre-commit-config-linux.yaml +0 -0
  49. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.pre-commit-config.yaml +0 -0
  50. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/.readthedocs.yaml +0 -0
  51. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/LICENSE +0 -0
  52. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/anniversaries.ini +0 -0
  53. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/config.yaml +0 -0
  54. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/docs/.nav.yml +0 -0
  55. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/docs/_static/img/favicon.png +0 -0
  56. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/docs/_static/img/logo.png +0 -0
  57. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/docs/css/custom.css +0 -0
  58. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/docs/funding/funding.md +0 -0
  59. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/docs/getting-started/virtual-environment.md +0 -0
  60. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/docs/usage/cli.md +0 -0
  61. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/docs/usage/config.md +0 -0
  62. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/descriptions.txt +0 -0
  63. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/title/This is a description for all photos of this calender collage page. It will be displayed in one line between the photos and the calendar items..txt +0 -0
  64. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/title/image_02.jpg +0 -0
  65. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_1/description.txt +0 -0
  66. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_1/image_01.jpg +0 -0
  67. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_2/image_04.jpg +0 -0
  68. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_2/image_13.jpg +0 -0
  69. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_3/This is a description for all photos of this calender collage page. It will be displayed in one line between the photos and the calendar items..txt +0 -0
  70. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_3/image_02.jpg +0 -0
  71. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_3/image_03.jpg +0 -0
  72. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_3/image_07.jpg +0 -0
  73. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_4/image_08.jpg +0 -0
  74. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_4/image_09.jpg +0 -0
  75. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_4/image_10.jpg +0 -0
  76. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_4/image_13.jpg +0 -0
  77. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_5/Lisbon.jpg +0 -0
  78. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_5/image_05.jpg +0 -0
  79. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_5/image_06.jpg +0 -0
  80. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_5/image_07.jpg +0 -0
  81. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/images/week_5/image_13.jpg +0 -0
  82. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/locations_de.ini +0 -0
  83. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/locations_en.ini +0 -0
  84. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/mkdocs.yml +0 -0
  85. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/pyproject.toml +0 -0
  86. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/pytest.ini +0 -0
  87. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.README.html +0 -0
  88. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.VERSION.txt +0 -0
  89. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.cpg +0 -0
  90. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.dbf +0 -0
  91. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.prj +0 -0
  92. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.shp +0 -0
  93. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.shx +0 -0
  94. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.README.html +0 -0
  95. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.VERSION.txt +0 -0
  96. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.cpg +0 -0
  97. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.dbf +0 -0
  98. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.prj +0 -0
  99. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.shp +0 -0
  100. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.shx +0 -0
  101. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/scripts/generate_config_docs.py +0 -0
  102. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/scripts/show_filelist.py +0 -0
  103. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/scripts/show_tree.py +0 -0
  104. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/scripts/update_readme.py +0 -0
  105. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/setup.cfg +0 -0
  106. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/__init__.py +0 -0
  107. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/__main__.py +0 -0
  108. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/cli/__init__.py +0 -0
  109. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/cli/__main__.py +0 -0
  110. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/common/Anniversaries.py +0 -0
  111. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/common/Locations.py +0 -0
  112. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/common/MoonPhase.py +0 -0
  113. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/common/Photo.py +0 -0
  114. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/common/__init__.py +0 -0
  115. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/config/__init__.py +0 -0
  116. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/config/config.py +0 -0
  117. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/core/__init__.py +0 -0
  118. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/gui/GuiLogWriter.py +0 -0
  119. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/gui/__init__.py +0 -0
  120. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/gui/__main__.py +0 -0
  121. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/image/CalendarRenderer.py +0 -0
  122. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/image/CollageRenderer.py +0 -0
  123. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/image/DescriptionRenderer.py +0 -0
  124. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/image/MapRenderer.py +0 -0
  125. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/image/__init__.py +0 -0
  126. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/tools/Helpers.py +0 -0
  127. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/tools/ImageDistributor.py +0 -0
  128. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer/tools/__init__.py +0 -0
  129. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer.egg-info/dependency_links.txt +0 -0
  130. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer.egg-info/entry_points.txt +0 -0
  131. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer.egg-info/requires.txt +0 -0
  132. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/Photo_Composition_Designer.egg-info/top_level.txt +0 -0
  133. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/__init__.py +0 -0
  134. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/firewall_handler.py +0 -0
  135. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/main.py +0 -0
  136. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/src/path_handler.py +0 -0
  137. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/template.yml.url +0 -0
  138. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/TestHelper.py +0 -0
  139. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/__init__.py +0 -0
  140. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_CalendarRenderer.py +0 -0
  141. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_CollageRenderer.py +0 -0
  142. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_CompositionDesigner.py +0 -0
  143. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_DescriptionRenderer.py +0 -0
  144. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_GeoPlotter.py +0 -0
  145. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_ImageDistributor.py +0 -0
  146. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_Locations.py +0 -0
  147. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_MapRenderer.py +0 -0
  148. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_MoonPhase.py +0 -0
  149. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_Photo.py +0 -0
  150. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_anniversaries.py +0 -0
  151. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/tests/test_cli.py +0 -0
  152. {photo_composition_designer-0.0.7 → photo_composition_designer-0.0.9}/uv.lock +0 -0
@@ -4,9 +4,14 @@
4
4
  <option name="autoReloadType" value="SELECTIVE" />
5
5
  </component>
6
6
  <component name="ChangeListManager">
7
- <list default="true" id="7196224b-0c6d-4df3-926f-d243fd984ba4" name="Changes" comment="improve path issue with relative paths to res/ini files">
7
+ <list default="true" id="7196224b-0c6d-4df3-926f-d243fd984ba4" name="Changes" comment="set up nice documentation">
8
8
  <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
9
- <change beforePath="$PROJECT_DIR$/Makefile" beforeDir="false" afterPath="$PROJECT_DIR$/Makefile" afterDir="false" />
9
+ <change beforePath="$PROJECT_DIR$/docs/index.md" beforeDir="false" afterPath="$PROJECT_DIR$/docs/index.md" afterDir="false" />
10
+ <change beforePath="$PROJECT_DIR$/src/Photo_Composition_Designer/cli/cli.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/Photo_Composition_Designer/cli/cli.py" afterDir="false" />
11
+ <change beforePath="$PROJECT_DIR$/src/Photo_Composition_Designer/common/logging.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/Photo_Composition_Designer/common/logging.py" afterDir="false" />
12
+ <change beforePath="$PROJECT_DIR$/src/Photo_Composition_Designer/core/base.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/Photo_Composition_Designer/core/base.py" afterDir="false" />
13
+ <change beforePath="$PROJECT_DIR$/src/Photo_Composition_Designer/gui/gui.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/Photo_Composition_Designer/gui/gui.py" afterDir="false" />
14
+ <change beforePath="$PROJECT_DIR$/src/Photo_Composition_Designer/tools/GeoPlotter.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/Photo_Composition_Designer/tools/GeoPlotter.py" afterDir="false" />
10
15
  </list>
11
16
  <list id="124f435c-cc09-40e9-9ed2-72d6742eb56b" name="NO_COMMIT" comment="" />
12
17
  <option name="SHOW_DIALOG" value="false" />
@@ -88,17 +93,17 @@
88
93
  "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
89
94
  "RunOnceActivity.git.unshallow": "true",
90
95
  "git-widget-placeholder": "main",
91
- "last_opened_file_path": "/home/paul/dev/Photo-Composition-Designer",
92
- "settings.editor.selected.configurable": "preferences.pluginManager"
96
+ "last_opened_file_path": "/home/paul/dev/Photo-Composition-Designer/docs/_static/img",
97
+ "settings.editor.selected.configurable": "com.android.studio.ml.bot.mainConfigurable"
93
98
  }
94
99
  }]]></component>
95
100
  <component name="RecentsManager">
96
101
  <key name="CopyFile.RECENT_KEYS">
102
+ <recent name="$PROJECT_DIR$/docs/_static/img" />
97
103
  <recent name="$PROJECT_DIR$" />
98
104
  <recent name="$PROJECT_DIR$/.github/workflows" />
99
105
  <recent name="$PROJECT_DIR$/images" />
100
106
  <recent name="$PROJECT_DIR$/tests" />
101
- <recent name="$PROJECT_DIR$/src/Photo_Composition_Designer/config" />
102
107
  </key>
103
108
  <key name="MoveFile.RECENT_KEYS">
104
109
  <recent name="$PROJECT_DIR$" />
@@ -213,9 +218,9 @@
213
218
  <item itemvalue="Python.config-generate" />
214
219
  <item itemvalue="Python.module cli" />
215
220
  <item itemvalue="Python.module gui" />
216
- <item itemvalue="Python.show_tree" />
217
221
  <item itemvalue="Python.cli" />
218
222
  <item itemvalue="Python.main" />
223
+ <item itemvalue="Python.show_tree" />
219
224
  <item itemvalue="Python tests.pytest in test_DescriptionsFileGenerator.py" />
220
225
  <item itemvalue="Python tests.pytest in test_cli.py" />
221
226
  </list>
@@ -232,7 +237,7 @@
232
237
  <component name="SharedIndexes">
233
238
  <attachedChunks>
234
239
  <set>
235
- <option value="bundled-python-sdk-1f77c24022e5-d902c0275401-com.jetbrains.pycharm.community.sharedIndexes.bundled-PC-252.26830.99" />
240
+ <option value="bundled-python-sdk-7bb8055f9097-cbfc7b97e6b2-com.jetbrains.pycharm.community.sharedIndexes.bundled-PC-252.28238.29" />
236
241
  </set>
237
242
  </attachedChunks>
238
243
  </component>
@@ -581,7 +586,31 @@
581
586
  <option name="project" value="LOCAL" />
582
587
  <updated>1764495033316</updated>
583
588
  </task>
584
- <option name="localTasksCounter" value="43" />
589
+ <task id="LOCAL-00043" summary="fix more import errors">
590
+ <option name="closed" value="true" />
591
+ <created>1764496058584</created>
592
+ <option name="number" value="00043" />
593
+ <option name="presentableId" value="LOCAL-00043" />
594
+ <option name="project" value="LOCAL" />
595
+ <updated>1764496058584</updated>
596
+ </task>
597
+ <task id="LOCAL-00044" summary="fix zip linux">
598
+ <option name="closed" value="true" />
599
+ <created>1764496556213</created>
600
+ <option name="number" value="00044" />
601
+ <option name="presentableId" value="LOCAL-00044" />
602
+ <option name="project" value="LOCAL" />
603
+ <updated>1764496556213</updated>
604
+ </task>
605
+ <task id="LOCAL-00045" summary="set up nice documentation">
606
+ <option name="closed" value="true" />
607
+ <created>1764540117905</created>
608
+ <option name="number" value="00045" />
609
+ <option name="presentableId" value="LOCAL-00045" />
610
+ <option name="project" value="LOCAL" />
611
+ <updated>1764540117905</updated>
612
+ </task>
613
+ <option name="localTasksCounter" value="46" />
585
614
  <servers />
586
615
  </component>
587
616
  <component name="Vcs.Log.Tabs.Properties">
@@ -596,9 +625,6 @@
596
625
  </option>
597
626
  </component>
598
627
  <component name="VcsManagerConfiguration">
599
- <MESSAGE value="add tests for CompositionDesigner.py" />
600
- <MESSAGE value="add tests for CompositionDesigner.py, fix issue with font" />
601
- <MESSAGE value="* move all generators that create images to image&#10;* typings&#10;* refactorings" />
602
628
  <MESSAGE value="consistently rename core methods" />
603
629
  <MESSAGE value="only use Image.Image in CollageGenerator.py" />
604
630
  <MESSAGE value="remove unused images, restructure test" />
@@ -621,7 +647,10 @@
621
647
  <MESSAGE value="move all ini files top-level so that the user can find them immediately" />
622
648
  <MESSAGE value="add ini files individually, fix test_cli.py for windows" />
623
649
  <MESSAGE value="improve path issue with relative paths to res/ini files" />
624
- <option name="LAST_COMMIT_MESSAGE" value="improve path issue with relative paths to res/ini files" />
650
+ <MESSAGE value="fix more import errors" />
651
+ <MESSAGE value="fix zip linux" />
652
+ <MESSAGE value="set up nice documentation" />
653
+ <option name="LAST_COMMIT_MESSAGE" value="set up nice documentation" />
625
654
  </component>
626
655
  <component name="XDebuggerManager">
627
656
  <breakpoint-manager>
@@ -673,12 +702,12 @@
673
702
  </line-breakpoint>
674
703
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
675
704
  <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/gui/gui.py</url>
676
- <line>424</line>
705
+ <line>442</line>
677
706
  <option name="timeStamp" value="31" />
678
707
  </line-breakpoint>
679
708
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
680
709
  <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/gui/gui.py</url>
681
- <line>429</line>
710
+ <line>447</line>
682
711
  <option name="timeStamp" value="32" />
683
712
  </line-breakpoint>
684
713
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
@@ -693,12 +722,12 @@
693
722
  </line-breakpoint>
694
723
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
695
724
  <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/gui/gui.py</url>
696
- <line>269</line>
725
+ <line>278</line>
697
726
  <option name="timeStamp" value="51" />
698
727
  </line-breakpoint>
699
728
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
700
729
  <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/core/base.py</url>
701
- <line>51</line>
730
+ <line>60</line>
702
731
  <option name="timeStamp" value="53" />
703
732
  </line-breakpoint>
704
733
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
@@ -716,11 +745,6 @@
716
745
  <line>110</line>
717
746
  <option name="timeStamp" value="56" />
718
747
  </line-breakpoint>
719
- <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
720
- <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/common/Anniversaries.py</url>
721
- <line>10</line>
722
- <option name="timeStamp" value="57" />
723
- </line-breakpoint>
724
748
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
725
749
  <url>file://$PROJECT_DIR$/scripts/show_tree.py</url>
726
750
  <line>138</line>
@@ -2,8 +2,19 @@ Changelog
2
2
  =========
3
3
 
4
4
 
5
- (unreleased)
6
- ------------
5
+ 0.0.8 (2025-12-01)
6
+ ------------------
7
+ - Docs: Update HISTORY.md for release 0.0.8. [Paul Magister]
8
+ - Fix test. [Paul Magister]
9
+ - Progress bar, logger in base.py, lifecycle fixes. [Paul Magister]
10
+ - Improved logging. [Paul Magister]
11
+ - Update README.md from docs/index.md. [github-actions]
12
+ - Set up nice documentation. [Paul Magister]
13
+
14
+
15
+ 0.0.7 (2025-11-30)
16
+ ------------------
17
+ - Docs: Update HISTORY.md for release 0.0.7. [Paul Magister]
7
18
  - Remove zip function from makefile. [Paul Magister]
8
19
 
9
20
 
@@ -136,7 +136,7 @@ build-win: clean
136
136
  # ==========================
137
137
 
138
138
  .PHONY: build-macos
139
- build-macos: clean
139
+ build-macos:
140
140
  echo "Building macOS CLI/GUI executable"
141
141
  uv run pyinstaller --onefile src/main.py \
142
142
  --name $(NAME) \
@@ -0,0 +1,130 @@
1
+ Metadata-Version: 2.4
2
+ Name: Photo-Composition-Designer
3
+ Version: 0.0.9
4
+ Summary: Feature-rich Python project template for Photo-Composition-Designer.
5
+ Author: pamagister
6
+ Requires-Python: <3.12,>=3.10
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: astral>=3.2
10
+ Requires-Dist: config-cli-gui>=0.2.7
11
+ Requires-Dist: exifread>=3.5.1
12
+ Requires-Dist: geopandas>=1.1.1
13
+ Requires-Dist: holidays>=0.84
14
+ Requires-Dist: matplotlib>=3.10.7
15
+ Requires-Dist: pillow>=12.0.0
16
+ Requires-Dist: pytz>=2025.2
17
+ Requires-Dist: shapely>=2.1.1
18
+ Provides-Extra: dev
19
+ Requires-Dist: pytest>=8.4.0; extra == "dev"
20
+ Requires-Dist: pytest-mock>=3.14.1; extra == "dev"
21
+ Requires-Dist: coverage>=7.8.2; extra == "dev"
22
+ Requires-Dist: flake8>=7.2.0; extra == "dev"
23
+ Requires-Dist: black>=25.1.0; extra == "dev"
24
+ Requires-Dist: isort>=6.0.1; extra == "dev"
25
+ Requires-Dist: pytest-cov>=6.1.1; extra == "dev"
26
+ Requires-Dist: mypy>=1.16.0; extra == "dev"
27
+ Requires-Dist: gitchangelog>=3.0.4; extra == "dev"
28
+ Requires-Dist: pyinstaller>=5.8; extra == "dev"
29
+ Requires-Dist: pre-commit>=4.2.0; extra == "dev"
30
+ Requires-Dist: ruff>=0.11.13; extra == "dev"
31
+ Provides-Extra: docs
32
+ Requires-Dist: mkdocs>=1.6.1; extra == "docs"
33
+ Requires-Dist: mkdocs-awesome-nav>=2.6.1; extra == "docs"
34
+ Requires-Dist: pygments>=2.19.1; extra == "docs"
35
+ Dynamic: license-file
36
+
37
+ # Welcome to Photo-Composition-Designer
38
+
39
+ Photo-Composition-Designer is a tool designed to automate the creation of beautiful image-based calendars. The system sorts images, generates collages, adds descriptions and maps, and formats everything into a structured calendar layout.
40
+
41
+ [![Github CI Status](https://github.com/pamagister/Photo-Composition-Designer/actions/workflows/main.yml/badge.svg)](https://github.com/pamagister/Photo-Composition-Designer/actions)
42
+ [![GitHub release](https://img.shields.io/github/v/release/pamagister/Photo-Composition-Designer)](https://github.com/pamagister/Photo-Composition-Designer/releases)
43
+ [![Read the Docs](https://readthedocs.org/projects/Photo-Composition-Designer/badge/?version=stable)](https://Photo-Composition-Designer.readthedocs.io/en/stable/)
44
+ [![License](https://img.shields.io/github/license/pamagister/Photo-Composition-Designer)](https://github.com/pamagister/Photo-Composition-Designer/blob/main/LICENSE)
45
+ [![GitHub issues](https://img.shields.io/github/issues/pamagister/Photo-Composition-Designer)](https://github.com/pamagister/Photo-Composition-Designer/issues)
46
+ [![PyPI](https://img.shields.io/pypi/v/Photo-Composition-Designer)](https://pypi.org/project/Photo-Composition-Designer/)
47
+ [![Downloads](https://pepy.tech/badge/Photo-Composition-Designer)](https://pepy.tech/project/Photo-Composition-Designer/)
48
+
49
+
50
+
51
+ ## 🛠️ Features
52
+
53
+ * ✅ **Automated Calendar Generation** – Generates a full image-based calendar.
54
+ * ✅ **Configurable Settings** – Modify sizes, layouts, and text via `config.yaml`.
55
+ * ✅ **Anniversaries & Events** – Load anniversaries and special dates using `anniversaries.ini`.
56
+ * ✅ **Location-Based Maps** – Integrate maps showing image locations using gps meta-data or image names and `locations.ini`.
57
+ * ✅ **GUI Configuration Tool** – Easily modify configurations via a dynamic UI.
58
+ * ✅ **Folder Management** – Automatically structures and organizes images into necessary folders.
59
+
60
+ ![Main GUI](_static/img/gui_main.png)
61
+
62
+ ---
63
+
64
+ ## Installation via executable:
65
+
66
+ Download the latest executable:
67
+
68
+ - [⬇️ Download for Windows](https://github.com/pamagister/Photo-Composition-Designer/releases/latest/download/installer-win.zip)
69
+ - [⬇️ Download for Linux](https://github.com/pamagister/Photo-Composition-Designer/releases/latest/download/package-linux.zip)
70
+ - [⬇️ Download for macOS](https://github.com/pamagister/Photo-Composition-Designer/releases/latest/download/package-macos.zip)
71
+
72
+
73
+ ## Installation via pypi
74
+
75
+ Get an impression of how your own project could be installed and look like.
76
+
77
+ Download from [PyPI](https://pypi.org/).
78
+
79
+ 💾 For more installation options see [install](getting-started/install.md).
80
+
81
+ ```bash
82
+ pip install Photo-Composition-Designer
83
+ ```
84
+
85
+ Run GUI from command line
86
+
87
+ ```bash
88
+ Photo-Composition-Designer
89
+ ```
90
+
91
+ ---
92
+
93
+
94
+ ## 🔄 Workflow
95
+
96
+ ### 1️⃣ **Configuring the parameters**
97
+ You can adjust the result by setting up your own parameters like size, margins and colors.
98
+ For more details, see [Configuration Parameters](usage/config.md).
99
+ Modify your settings inside the `config.yaml` or using the GUI:
100
+ - Image sizes (mm converted to pixels internally)
101
+ - Calendar layout
102
+ - Paths to `anniversaries.ini` and `locations.ini`
103
+
104
+ ### 2️⃣ **Sorting Images into Folders**
105
+ Organize your images in the `images/` directory before running the generator.
106
+ You can use one of the distribution methods to distribute your plain images inside this directory
107
+ into sub-folders that represent your weekly collage content.
108
+
109
+ ```plaintext
110
+ 📁 images/
111
+ ├── 📁 0-Title/
112
+ ├── 2024-01-01_ski_trip.jpg
113
+ ├── 📁 Week 1/
114
+ ├── 2024-02-14_valentines_dinner in London.jpg
115
+ ```
116
+
117
+ ### 3️⃣ **Provide Descriptions** 🖥️
118
+ Provide descriptions for every week to describe the events.
119
+ You can use one single `description.txt` file that can be generated using the GUI
120
+ or you can put individual txt files into every single weekly sub folder.
121
+
122
+ ### 4️⃣ **Setting up the birthday dates** 🎂📅
123
+ Provide the birthday information of your friends and family by using the `anniversaries.ini`
124
+
125
+ ### **Generating the Calendar** 🖼️
126
+ Use **Generate Composition** to generate all collages and one PDF file containing all your compositions.
127
+
128
+ ---
129
+
130
+ If you find this app helpful, [Funding](funding/funding.md) is highly appreciated 🧡.
@@ -0,0 +1,101 @@
1
+ <!-- This README.md is auto-generated from docs/index.md -->
2
+
3
+ # Welcome to Photo-Composition-Designer
4
+
5
+ Photo-Composition-Designer is a tool designed to automate the creation of beautiful image-based calendars. The system sorts images, generates collages, adds descriptions and maps, and formats everything into a structured calendar layout.
6
+
7
+ [![Github CI Status](https://github.com/pamagister/Photo-Composition-Designer/actions/workflows/main.yml/badge.svg)](https://github.com/pamagister/Photo-Composition-Designer/actions)
8
+ [![GitHub release](https://img.shields.io/github/v/release/pamagister/Photo-Composition-Designer)](https://github.com/pamagister/Photo-Composition-Designer/releases)
9
+ [![Read the Docs](https://readthedocs.org/projects/Photo-Composition-Designer/badge/?version=stable)](https://Photo-Composition-Designer.readthedocs.io/en/stable/)
10
+ [![License](https://img.shields.io/github/license/pamagister/Photo-Composition-Designer)](https://github.com/pamagister/Photo-Composition-Designer/blob/main/LICENSE)
11
+ [![GitHub issues](https://img.shields.io/github/issues/pamagister/Photo-Composition-Designer)](https://github.com/pamagister/Photo-Composition-Designer/issues)
12
+ [![PyPI](https://img.shields.io/pypi/v/Photo-Composition-Designer)](https://pypi.org/project/Photo-Composition-Designer/)
13
+ [![Downloads](https://pepy.tech/badge/Photo-Composition-Designer)](https://pepy.tech/project/Photo-Composition-Designer/)
14
+
15
+
16
+
17
+ ## 🛠️ Features
18
+ ✅ **Automated Calendar Generation** – Generates a full image-based calendar.
19
+ ✅ **Configurable Settings** – Modify sizes, layouts, and text via `config.yaml`.
20
+ ✅ **Anniversaries & Events** – Load anniversaries and special dates using `anniversaries.ini`.
21
+ ✅ **Location-Based Maps** – Integrate maps showing image locations using gps meta-data or image names and `locations.ini`.
22
+ ✅ **GUI Configuration Tool** – Easily modify configurations via a dynamic UI.
23
+ ✅ **Folder Management** – Automatically structures and organizes images into necessary folders.
24
+
25
+ ![Main GUI](_static/img/gui_main.png)
26
+
27
+ ---
28
+
29
+ ## Installation via executable:
30
+
31
+ Download the latest executable:
32
+
33
+ - [⬇️ Download for Windows](https://github.com/pamagister/Photo-Composition-Designer/releases/latest/download/installer-win.zip)
34
+ - [⬇️ Download for Linux](https://github.com/pamagister/Photo-Composition-Designer/releases/latest/download/package-linux.zip)
35
+ - [⬇️ Download for macOS](https://github.com/pamagister/Photo-Composition-Designer/releases/latest/download/package-macos.zip)
36
+
37
+
38
+ ## Installation via pypi
39
+
40
+ Get an impression of how your own project could be installed and look like.
41
+
42
+ Download from [PyPI](https://pypi.org/).
43
+
44
+ 💾 For more installation options see [install](docs/getting-started/install.md).
45
+
46
+ ```bash
47
+ pip install Photo-Composition-Designer
48
+ ```
49
+
50
+ Run GUI from command line
51
+
52
+ ```bash
53
+ Photo-Composition-Designer
54
+ ```
55
+
56
+ ---
57
+
58
+ ## Configuration parameters
59
+
60
+ You can adjust the result by setting up your own parameters like size, margins and colors.
61
+ For more details, see [Configuration Parameters](usage/config.md).
62
+
63
+ ---
64
+
65
+
66
+ ## 🔄 Workflow
67
+
68
+
69
+ ### 1️⃣ **Configuring the Settings**
70
+ Modify your settings inside the `config.yaml` or using the GUI:
71
+ - Image sizes (mm converted to pixels internally)
72
+ - Calendar layout
73
+ - Paths to `anniversaries.ini` and `locations.ini`
74
+
75
+ ### 2️⃣ **Sorting Images into Folders**
76
+ Organize your images in the `images/` directory before running the generator.
77
+ You can use one of the distribution methods to distribute your plain images inside this directory
78
+ into sub-folders that represent your weekly collage content.
79
+
80
+ ```plaintext
81
+ 📁 images/
82
+ ├── 📁 0-Title/
83
+ ├── 2024-01-01_ski_trip.jpg
84
+ ├── 📁 Week 1/
85
+ ├── 2024-02-14_valentines_dinner in London.jpg
86
+ ```
87
+
88
+ ### 3️⃣ **Provide Descriptions** 🖥️
89
+ Provide descriptions for every week to describe the events.
90
+ You can use one single `description.txt` file that can be generated using the GUI
91
+ or you can put individual txt files into every single weekly sub folder.
92
+
93
+ ### 4️⃣ **Setting up the birthday dates** 🎂📅
94
+ Provide the birthday information of your friends and family by using the `anniversaries.ini`
95
+
96
+ ### **Generating the Calendar** 🖼️
97
+ Use **Generate Composition** to generate all collages and one PDF file containing all your compositions.
98
+
99
+ ---
100
+
101
+ If you find this app helpful, [Funding](funding/funding.md) is highly appreciated 🧡.
@@ -26,6 +26,7 @@ Photo-Composition-Designer-gui
26
26
  Download the latest executable:
27
27
 
28
28
  - [⬇️ Download for Windows](https://github.com/pamagister/Photo-Composition-Designer/releases/latest/download/installer-win.zip)
29
+ - [⬇️ Download for Linux](https://github.com/pamagister/Photo-Composition-Designer/releases/latest/download/package-linux.zip)
29
30
  - [⬇️ Download for macOS](https://github.com/pamagister/Photo-Composition-Designer/releases/latest/download/package-macos.zip)
30
31
 
31
32
 
@@ -0,0 +1,94 @@
1
+ # Welcome to Photo-Composition-Designer
2
+
3
+ Photo-Composition-Designer is a tool designed to automate the creation of beautiful image-based calendars. The system sorts images, generates collages, adds descriptions and maps, and formats everything into a structured calendar layout.
4
+
5
+ [![Github CI Status](https://github.com/pamagister/Photo-Composition-Designer/actions/workflows/main.yml/badge.svg)](https://github.com/pamagister/Photo-Composition-Designer/actions)
6
+ [![GitHub release](https://img.shields.io/github/v/release/pamagister/Photo-Composition-Designer)](https://github.com/pamagister/Photo-Composition-Designer/releases)
7
+ [![Read the Docs](https://readthedocs.org/projects/Photo-Composition-Designer/badge/?version=stable)](https://Photo-Composition-Designer.readthedocs.io/en/stable/)
8
+ [![License](https://img.shields.io/github/license/pamagister/Photo-Composition-Designer)](https://github.com/pamagister/Photo-Composition-Designer/blob/main/LICENSE)
9
+ [![GitHub issues](https://img.shields.io/github/issues/pamagister/Photo-Composition-Designer)](https://github.com/pamagister/Photo-Composition-Designer/issues)
10
+ [![PyPI](https://img.shields.io/pypi/v/Photo-Composition-Designer)](https://pypi.org/project/Photo-Composition-Designer/)
11
+ [![Downloads](https://pepy.tech/badge/Photo-Composition-Designer)](https://pepy.tech/project/Photo-Composition-Designer/)
12
+
13
+
14
+
15
+ ## 🛠️ Features
16
+
17
+ * ✅ **Automated Calendar Generation** – Generates a full image-based calendar.
18
+ * ✅ **Configurable Settings** – Modify sizes, layouts, and text via `config.yaml`.
19
+ * ✅ **Anniversaries & Events** – Load anniversaries and special dates using `anniversaries.ini`.
20
+ * ✅ **Location-Based Maps** – Integrate maps showing image locations using gps meta-data or image names and `locations.ini`.
21
+ * ✅ **GUI Configuration Tool** – Easily modify configurations via a dynamic UI.
22
+ * ✅ **Folder Management** – Automatically structures and organizes images into necessary folders.
23
+
24
+ ![Main GUI](_static/img/gui_main.png)
25
+
26
+ ---
27
+
28
+ ## Installation via executable:
29
+
30
+ Download the latest executable:
31
+
32
+ - [⬇️ Download for Windows](https://github.com/pamagister/Photo-Composition-Designer/releases/latest/download/installer-win.zip)
33
+ - [⬇️ Download for Linux](https://github.com/pamagister/Photo-Composition-Designer/releases/latest/download/package-linux.zip)
34
+ - [⬇️ Download for macOS](https://github.com/pamagister/Photo-Composition-Designer/releases/latest/download/package-macos.zip)
35
+
36
+
37
+ ## Installation via pypi
38
+
39
+ Get an impression of how your own project could be installed and look like.
40
+
41
+ Download from [PyPI](https://pypi.org/).
42
+
43
+ 💾 For more installation options see [install](getting-started/install.md).
44
+
45
+ ```bash
46
+ pip install Photo-Composition-Designer
47
+ ```
48
+
49
+ Run GUI from command line
50
+
51
+ ```bash
52
+ Photo-Composition-Designer
53
+ ```
54
+
55
+ ---
56
+
57
+
58
+ ## 🔄 Workflow
59
+
60
+ ### 1️⃣ **Configuring the parameters**
61
+ You can adjust the result by setting up your own parameters like size, margins and colors.
62
+ For more details, see [Configuration Parameters](usage/config.md).
63
+ Modify your settings inside the `config.yaml` or using the GUI:
64
+ - Image sizes (mm converted to pixels internally)
65
+ - Calendar layout
66
+ - Paths to `anniversaries.ini` and `locations.ini`
67
+
68
+ ### 2️⃣ **Sorting Images into Folders**
69
+ Organize your images in the `images/` directory before running the generator.
70
+ You can use one of the distribution methods to distribute your plain images inside this directory
71
+ into sub-folders that represent your weekly collage content.
72
+
73
+ ```plaintext
74
+ 📁 images/
75
+ ├── 📁 0-Title/
76
+ ├── 2024-01-01_ski_trip.jpg
77
+ ├── 📁 Week 1/
78
+ ├── 2024-02-14_valentines_dinner in London.jpg
79
+ ```
80
+
81
+ ### 3️⃣ **Provide Descriptions** 🖥️
82
+ Provide descriptions for every week to describe the events.
83
+ You can use one single `description.txt` file that can be generated using the GUI
84
+ or you can put individual txt files into every single weekly sub folder.
85
+
86
+ ### 4️⃣ **Setting up the birthday dates** 🎂📅
87
+ Provide the birthday information of your friends and family by using the `anniversaries.ini`
88
+
89
+ ### **Generating the Calendar** 🖼️
90
+ Use **Generate Composition** to generate all collages and one PDF file containing all your compositions.
91
+
92
+ ---
93
+
94
+ If you find this app helpful, [Funding](funding/funding.md) is highly appreciated 🧡.
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.0.7'
32
- __version_tuple__ = version_tuple = (0, 0, 7)
31
+ __version__ = version = '0.0.9'
32
+ __version_tuple__ = version_tuple = (0, 0, 9)
33
33
 
34
- __commit_id__ = commit_id = 'g1f5555ec6'
34
+ __commit_id__ = commit_id = 'gdaac21952'
@@ -23,7 +23,7 @@ def validate_config(config_manager: ConfigParameterManager) -> bool:
23
23
  True if configuration is valid, False otherwise
24
24
  """
25
25
  # Initialize logging system
26
- logger_manager = initialize_logging(config_manager)
26
+ logger_manager = initialize_logging(config_manager.app.log_level.value)
27
27
  logger = logger_manager.get_logger("Photo_Composition_Designer.cli")
28
28
 
29
29
  # Get CLI category and check required parameters
@@ -53,7 +53,7 @@ def run_main_processing(config_manager: ConfigParameterManager) -> int:
53
53
  Exit code (0 for success, non-zero for error)
54
54
  """
55
55
  # Initialize logging system
56
- logger_manager = initialize_logging(config_manager)
56
+ logger_manager = initialize_logging(config_manager.app.log_level.value)
57
57
  logger = logger_manager.get_logger("Photo_Composition_Designer.cli")
58
58
 
59
59
  try:
@@ -3,7 +3,7 @@
3
3
  This module provides a unified logging setup that supports:
4
4
  - File logging with rotation
5
5
  - GUI integration via custom handler
6
- - Configurable log levels from config
6
+ - Configurable log levels
7
7
  - Structured logging with consistent formatting
8
8
  """
9
9
 
@@ -12,8 +12,6 @@ import logging.handlers
12
12
  import sys
13
13
  from pathlib import Path
14
14
 
15
- from Photo_Composition_Designer.config.config import ConfigParameterManager
16
-
17
15
 
18
16
  class GuiLogHandler(logging.Handler):
19
17
  """Custom logging handler that can write to GUI text widgets."""
@@ -39,21 +37,20 @@ class GuiLogHandler(logging.Handler):
39
37
  class LoggerManager:
40
38
  """Manages all logging configuration and handlers."""
41
39
 
42
- def __init__(self, config: ConfigParameterManager):
43
- self.config = config
40
+ def __init__(self, log_level="INFO"):
44
41
  self.logger = logging.getLogger("Photo_Composition_Designer")
45
42
  self.gui_handler = None
46
43
  self.file_handler = None
47
44
  self.console_handler = None
48
- self._setup_logging()
45
+ self.log_level = log_level
46
+ self._setup_logging(log_level)
49
47
 
50
- def _setup_logging(self):
48
+ def _setup_logging(self, log_level):
51
49
  """Configure all logging handlers and formatters."""
52
50
  # Clear any existing handlers
53
51
  self.logger.handlers.clear()
54
52
 
55
- # Set log level from config
56
- log_level = getattr(logging, self.config.app.log_level.value.upper())
53
+ # Set log level
57
54
  self.logger.setLevel(log_level)
58
55
 
59
56
  # Create formatters
@@ -141,13 +138,12 @@ class LoggerManager:
141
138
  log_level = getattr(logging, level.upper())
142
139
  self.logger.setLevel(log_level)
143
140
 
144
- # Update config
145
- self.config.app.log_level.value = level.upper()
141
+ self.log_level = level.upper()
146
142
 
147
143
  def log_config_summary(self):
148
144
  """Log current configuration summary."""
149
145
  self.logger.info("=== Configuration Summary ===")
150
- self.logger.info(f"Log level: {self.config.app.log_level.value}")
146
+ self.logger.info(f"Log level: {self.log_level}")
151
147
  self.logger.info("==============================")
152
148
 
153
149
 
@@ -155,17 +151,17 @@ class LoggerManager:
155
151
  _logger_manager = None
156
152
 
157
153
 
158
- def initialize_logging(config: ConfigParameterManager) -> LoggerManager:
154
+ def initialize_logging(log_level="INFO") -> LoggerManager:
159
155
  """Initialize the global logging system.
160
156
 
161
157
  Args:
162
- config: Configuration manager instance
158
+ log_level: logging level
163
159
 
164
160
  Returns:
165
161
  LoggerManager instance
166
162
  """
167
163
  global _logger_manager
168
- _logger_manager = LoggerManager(config)
164
+ _logger_manager = LoggerManager(log_level)
169
165
  return _logger_manager
170
166
 
171
167