Photo-Composition-Designer 0.1.0__tar.gz → 0.1.2__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 (146) hide show
  1. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.idea/workspace.xml +125 -89
  2. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/HISTORY.md +24 -0
  3. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/PKG-INFO +18 -2
  4. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/config.yaml +49 -53
  5. photo_composition_designer-0.1.2/docs/_static/img/gui_settings.png +0 -0
  6. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/docs/index.md +16 -0
  7. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/docs/usage/cli.md +3 -3
  8. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/docs/usage/config.md +21 -23
  9. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/pyproject.toml +1 -1
  10. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/_version.py +3 -3
  11. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/cli/cli.py +15 -14
  12. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/common/Photo.py +17 -0
  13. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/config/config.py +29 -39
  14. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/core/base.py +17 -69
  15. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/gui/GuiLogWriter.py +2 -2
  16. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/gui/gui.py +33 -27
  17. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/image/CalendarRenderer.py +57 -73
  18. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/image/DescriptionRenderer.py +13 -23
  19. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/image/MapRenderer.py +30 -37
  20. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/tools/GeoPlotter.py +1 -1
  21. photo_composition_designer-0.1.2/src/Photo_Composition_Designer/tools/Helpers.py +4 -0
  22. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer.egg-info/PKG-INFO +18 -2
  23. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer.egg-info/SOURCES.txt +1 -1
  24. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer.egg-info/requires.txt +1 -1
  25. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_CalendarRenderer.py +2 -4
  26. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_CompositionDesigner.py +2 -2
  27. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_DescriptionRenderer.py +6 -4
  28. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_MapRenderer.py +7 -16
  29. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_cli.py +1 -1
  30. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/uv.lock +5 -4
  31. photo_composition_designer-0.1.0/src/Photo_Composition_Designer/common/logging.py +0 -212
  32. photo_composition_designer-0.1.0/src/Photo_Composition_Designer/tools/Helpers.py +0 -18
  33. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/FUNDING.yml +0 -0
  34. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  35. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  36. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  37. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/actions/setup-environment/action.yml +0 -0
  38. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/dependabot.yml +0 -0
  39. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/init.sh +0 -0
  40. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/release_message.sh +0 -0
  41. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/rename_project.sh +0 -0
  42. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/update_funding.py +0 -0
  43. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/workflows/build-linux.yml +0 -0
  44. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/workflows/build-macos.yml +0 -0
  45. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/workflows/build-win.yml +0 -0
  46. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/workflows/main.yml +0 -0
  47. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/workflows/release.yml +0 -0
  48. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.github/workflows/update_readme.yml +0 -0
  49. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.gitignore +0 -0
  50. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.idea/runConfigurations/config_generate.xml +0 -0
  51. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.idea/runConfigurations/module_cli.xml +0 -0
  52. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.idea/runConfigurations/module_gui.xml +0 -0
  53. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.idea/vcs.xml +0 -0
  54. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.pre-commit-config-linux.yaml +0 -0
  55. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.pre-commit-config.yaml +0 -0
  56. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/.readthedocs.yaml +0 -0
  57. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/LICENSE +0 -0
  58. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/Makefile +0 -0
  59. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/README.md +0 -0
  60. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/anniversaries.ini +0 -0
  61. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/docs/.nav.yml +0 -0
  62. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/docs/_static/img/favicon.png +0 -0
  63. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/docs/_static/img/gui_main.png +0 -0
  64. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/docs/_static/img/logo.png +0 -0
  65. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/docs/css/custom.css +0 -0
  66. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/docs/funding/funding.md +0 -0
  67. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/docs/getting-started/install.md +0 -0
  68. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/docs/getting-started/virtual-environment.md +0 -0
  69. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/descriptions.txt +0 -0
  70. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/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
  71. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/title/image_02.jpg +0 -0
  72. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_1/description.txt +0 -0
  73. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_1/image_01.jpg +0 -0
  74. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_2/image_04.jpg +0 -0
  75. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_2/image_13.jpg +0 -0
  76. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/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
  77. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_3/image_02.jpg +0 -0
  78. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_3/image_03.jpg +0 -0
  79. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_3/image_07.jpg +0 -0
  80. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_4/image_08.jpg +0 -0
  81. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_4/image_09.jpg +0 -0
  82. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_4/image_10.jpg +0 -0
  83. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_4/image_13.jpg +0 -0
  84. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_5/Lisbon.jpg +0 -0
  85. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_5/image_05.jpg +0 -0
  86. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_5/image_06.jpg +0 -0
  87. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_5/image_07.jpg +0 -0
  88. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/images/week_5/image_13.jpg +0 -0
  89. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/locations_de.ini +0 -0
  90. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/locations_en.ini +0 -0
  91. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/mkdocs.yml +0 -0
  92. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/pytest.ini +0 -0
  93. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.README.html +0 -0
  94. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.VERSION.txt +0 -0
  95. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.cpg +0 -0
  96. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.dbf +0 -0
  97. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.prj +0 -0
  98. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.shp +0 -0
  99. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_admin_0_countries/ne_50m_admin_0_countries.shx +0 -0
  100. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.README.html +0 -0
  101. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.VERSION.txt +0 -0
  102. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.cpg +0 -0
  103. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.dbf +0 -0
  104. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.prj +0 -0
  105. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.shp +0 -0
  106. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/res/maps/ne_50m_rivers_lake_centerlines_scale_rank/ne_50m_rivers_lake_centerlines_scale_rank.shx +0 -0
  107. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/scripts/generate_config_docs.py +0 -0
  108. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/scripts/show_filelist.py +0 -0
  109. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/scripts/show_tree.py +0 -0
  110. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/scripts/update_readme.py +0 -0
  111. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/setup.cfg +0 -0
  112. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/__init__.py +0 -0
  113. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/__main__.py +0 -0
  114. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/cli/__init__.py +0 -0
  115. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/cli/__main__.py +0 -0
  116. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/common/Anniversaries.py +0 -0
  117. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/common/Locations.py +0 -0
  118. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/common/MoonPhase.py +0 -0
  119. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/common/__init__.py +0 -0
  120. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/config/__init__.py +0 -0
  121. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/core/__init__.py +0 -0
  122. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/gui/__init__.py +0 -0
  123. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/gui/__main__.py +0 -0
  124. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/image/CollageRenderer.py +0 -0
  125. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/image/__init__.py +0 -0
  126. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/tools/DescriptionsFileGenerator.py +0 -0
  127. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/tools/ImageDistributor.py +0 -0
  128. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer/tools/__init__.py +0 -0
  129. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer.egg-info/dependency_links.txt +0 -0
  130. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer.egg-info/entry_points.txt +0 -0
  131. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/Photo_Composition_Designer.egg-info/top_level.txt +0 -0
  132. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/__init__.py +0 -0
  133. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/firewall_handler.py +0 -0
  134. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/main.py +0 -0
  135. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/src/path_handler.py +0 -0
  136. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/template.yml.url +0 -0
  137. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/TestHelper.py +0 -0
  138. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/__init__.py +0 -0
  139. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_CollageRenderer.py +0 -0
  140. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_DescriptionsFileGenerator.py +0 -0
  141. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_GeoPlotter.py +0 -0
  142. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_ImageDistributor.py +0 -0
  143. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_Locations.py +0 -0
  144. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_MoonPhase.py +0 -0
  145. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_Photo.py +0 -0
  146. {photo_composition_designer-0.1.0 → photo_composition_designer-0.1.2}/tests/test_anniversaries.py +0 -0
@@ -4,14 +4,8 @@
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="set up nice documentation">
8
- <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
7
+ <list default="true" id="7196224b-0c6d-4df3-926f-d243fd984ba4" name="Changes" comment="use logging module from lib">
9
8
  <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" />
15
9
  </list>
16
10
  <list id="124f435c-cc09-40e9-9ed2-72d6742eb56b" name="NO_COMMIT" comment="" />
17
11
  <option name="SHOW_DIALOG" value="false" />
@@ -60,26 +54,31 @@
60
54
  &quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;,
61
55
  &quot;Python tests.Python tests in test_gpx.py.executor&quot;: &quot;Run&quot;,
62
56
  &quot;Python tests.Python tests in tests.executor&quot;: &quot;Run&quot;,
57
+ &quot;Python tests.pytest for test_DescriptionRenderer.test_generate_description_creates_image_in_temp.executor&quot;: &quot;Run&quot;,
63
58
  &quot;Python tests.pytest for test_GeoPlotter.test__add_layer.executor&quot;: &quot;Run&quot;,
64
59
  &quot;Python tests.pytest for test_GeoPlotter.test__calculate_bounds.executor&quot;: &quot;Run&quot;,
65
60
  &quot;Python tests.pytest in test_CalendarGenerator.py.executor&quot;: &quot;Run&quot;,
66
61
  &quot;Python tests.pytest in test_CollageGenerator.py.executor&quot;: &quot;Run&quot;,
67
62
  &quot;Python tests.pytest in test_CompositionDesigner.py.executor&quot;: &quot;Run&quot;,
68
63
  &quot;Python tests.pytest in test_DescriptionGenerator.py.executor&quot;: &quot;Run&quot;,
64
+ &quot;Python tests.pytest in test_DescriptionRenderer.py.executor&quot;: &quot;Run&quot;,
69
65
  &quot;Python tests.pytest in test_DescriptionsFileGenerator.py.executor&quot;: &quot;Run&quot;,
70
66
  &quot;Python tests.pytest in test_GeoPlotter.py.executor&quot;: &quot;Run&quot;,
71
67
  &quot;Python tests.pytest in test_ImageDistributor.py.executor&quot;: &quot;Run&quot;,
72
68
  &quot;Python tests.pytest in test_MapGenerator.py.executor&quot;: &quot;Run&quot;,
69
+ &quot;Python tests.pytest in test_MapRenderer.py.executor&quot;: &quot;Run&quot;,
73
70
  &quot;Python tests.pytest in test_MoonPhase.py.executor&quot;: &quot;Run&quot;,
74
71
  &quot;Python tests.pytest in test_Photo.py.executor&quot;: &quot;Run&quot;,
75
72
  &quot;Python tests.pytest in test_PhotoLayoutManager.py.executor&quot;: &quot;Run&quot;,
76
73
  &quot;Python tests.pytest in test_cli.py.executor&quot;: &quot;Run&quot;,
77
74
  &quot;Python.Anniversaries.executor&quot;: &quot;Debug&quot;,
78
75
  &quot;Python.CalendarGenerator.executor&quot;: &quot;Run&quot;,
76
+ &quot;Python.CalendarRenderer.executor&quot;: &quot;Run&quot;,
79
77
  &quot;Python.CompositionDesigner.executor&quot;: &quot;Debug&quot;,
80
78
  &quot;Python.DescriptionsFileGenerator.executor&quot;: &quot;Run&quot;,
81
79
  &quot;Python.GeoPlotter.executor&quot;: &quot;Run&quot;,
82
80
  &quot;Python.MapGenerator.executor&quot;: &quot;Debug&quot;,
81
+ &quot;Python.MapRenderer.executor&quot;: &quot;Run&quot;,
83
82
  &quot;Python.cli.executor&quot;: &quot;Debug&quot;,
84
83
  &quot;Python.config-generate.executor&quot;: &quot;Run&quot;,
85
84
  &quot;Python.main.executor&quot;: &quot;Run&quot;,
@@ -94,7 +93,7 @@
94
93
  &quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
95
94
  &quot;git-widget-placeholder&quot;: &quot;main&quot;,
96
95
  &quot;last_opened_file_path&quot;: &quot;/home/paul/dev/Photo-Composition-Designer/docs/_static/img&quot;,
97
- &quot;settings.editor.selected.configurable&quot;: &quot;com.android.studio.ml.bot.mainConfigurable&quot;
96
+ &quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;
98
97
  }
99
98
  }</component>
100
99
  <component name="RecentsManager">
@@ -114,7 +113,7 @@
114
113
  </key>
115
114
  </component>
116
115
  <component name="RunManager" selected="Python.module gui">
117
- <configuration name="cli" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
116
+ <configuration name="MapRenderer" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
118
117
  <module name="Photo-Composition-Designer" />
119
118
  <option name="ENV_FILES" value="" />
120
119
  <option name="INTERPRETER_OPTIONS" value="" />
@@ -123,11 +122,11 @@
123
122
  <env name="PYTHONUNBUFFERED" value="1" />
124
123
  </envs>
125
124
  <option name="SDK_HOME" value="" />
126
- <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/src/Photo_Composition_Designer/cli" />
125
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/src/Photo_Composition_Designer/image" />
127
126
  <option name="IS_MODULE_SDK" value="true" />
128
127
  <option name="ADD_CONTENT_ROOTS" value="true" />
129
128
  <option name="ADD_SOURCE_ROOTS" value="true" />
130
- <option name="SCRIPT_NAME" value="$PROJECT_DIR$/src/Photo_Composition_Designer/cli/cli.py" />
129
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/src/Photo_Composition_Designer/image/MapRenderer.py" />
131
130
  <option name="PARAMETERS" value="" />
132
131
  <option name="SHOW_COMMAND_LINE" value="false" />
133
132
  <option name="EMULATE_TERMINAL" value="false" />
@@ -136,51 +135,41 @@
136
135
  <option name="INPUT_FILE" value="" />
137
136
  <method v="2" />
138
137
  </configuration>
139
- <configuration name="main" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
138
+ <configuration name="pytest in test_CompositionDesigner.py" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
140
139
  <module name="Photo-Composition-Designer" />
141
140
  <option name="ENV_FILES" value="" />
142
141
  <option name="INTERPRETER_OPTIONS" value="" />
143
142
  <option name="PARENT_ENVS" value="true" />
144
- <envs>
145
- <env name="PYTHONUNBUFFERED" value="1" />
146
- </envs>
147
143
  <option name="SDK_HOME" value="" />
148
- <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/src" />
144
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests" />
149
145
  <option name="IS_MODULE_SDK" value="true" />
150
146
  <option name="ADD_CONTENT_ROOTS" value="true" />
151
147
  <option name="ADD_SOURCE_ROOTS" value="true" />
152
- <option name="SCRIPT_NAME" value="$PROJECT_DIR$/src/main.py" />
153
- <option name="PARAMETERS" value="" />
154
- <option name="SHOW_COMMAND_LINE" value="false" />
155
- <option name="EMULATE_TERMINAL" value="false" />
156
- <option name="MODULE_MODE" value="false" />
157
- <option name="REDIRECT_INPUT" value="false" />
158
- <option name="INPUT_FILE" value="" />
148
+ <option name="_new_keywords" value="&quot;&quot;" />
149
+ <option name="_new_parameters" value="&quot;&quot;" />
150
+ <option name="_new_additionalArguments" value="&quot;&quot;" />
151
+ <option name="_new_target" value="&quot;$PROJECT_DIR$/tests/test_CompositionDesigner.py&quot;" />
152
+ <option name="_new_targetType" value="&quot;PATH&quot;" />
159
153
  <method v="2" />
160
154
  </configuration>
161
- <configuration name="show_tree" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
155
+ <configuration name="pytest in test_DescriptionRenderer.py" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
162
156
  <module name="Photo-Composition-Designer" />
163
157
  <option name="ENV_FILES" value="" />
164
158
  <option name="INTERPRETER_OPTIONS" value="" />
165
159
  <option name="PARENT_ENVS" value="true" />
166
- <envs>
167
- <env name="PYTHONUNBUFFERED" value="1" />
168
- </envs>
169
160
  <option name="SDK_HOME" value="" />
170
- <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/scripts" />
161
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests" />
171
162
  <option name="IS_MODULE_SDK" value="true" />
172
163
  <option name="ADD_CONTENT_ROOTS" value="true" />
173
164
  <option name="ADD_SOURCE_ROOTS" value="true" />
174
- <option name="SCRIPT_NAME" value="$PROJECT_DIR$/scripts/show_tree.py" />
175
- <option name="PARAMETERS" value="" />
176
- <option name="SHOW_COMMAND_LINE" value="false" />
177
- <option name="EMULATE_TERMINAL" value="false" />
178
- <option name="MODULE_MODE" value="false" />
179
- <option name="REDIRECT_INPUT" value="false" />
180
- <option name="INPUT_FILE" value="" />
165
+ <option name="_new_keywords" value="&quot;&quot;" />
166
+ <option name="_new_parameters" value="&quot;&quot;" />
167
+ <option name="_new_additionalArguments" value="&quot;&quot;" />
168
+ <option name="_new_target" value="&quot;$PROJECT_DIR$/tests/test_DescriptionRenderer.py&quot;" />
169
+ <option name="_new_targetType" value="&quot;PATH&quot;" />
181
170
  <method v="2" />
182
171
  </configuration>
183
- <configuration name="pytest in test_DescriptionsFileGenerator.py" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
172
+ <configuration name="pytest in test_MapRenderer.py" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
184
173
  <module name="Photo-Composition-Designer" />
185
174
  <option name="ENV_FILES" value="" />
186
175
  <option name="INTERPRETER_OPTIONS" value="" />
@@ -193,7 +182,7 @@
193
182
  <option name="_new_keywords" value="&quot;&quot;" />
194
183
  <option name="_new_parameters" value="&quot;&quot;" />
195
184
  <option name="_new_additionalArguments" value="&quot;&quot;" />
196
- <option name="_new_target" value="&quot;$PROJECT_DIR$/tests/test_DescriptionsFileGenerator.py&quot;" />
185
+ <option name="_new_target" value="&quot;$PROJECT_DIR$/tests/test_MapRenderer.py&quot;" />
197
186
  <option name="_new_targetType" value="&quot;PATH&quot;" />
198
187
  <method v="2" />
199
188
  </configuration>
@@ -218,19 +207,19 @@
218
207
  <item itemvalue="Python.config-generate" />
219
208
  <item itemvalue="Python.module cli" />
220
209
  <item itemvalue="Python.module gui" />
221
- <item itemvalue="Python.cli" />
222
- <item itemvalue="Python.main" />
223
- <item itemvalue="Python.show_tree" />
224
- <item itemvalue="Python tests.pytest in test_DescriptionsFileGenerator.py" />
210
+ <item itemvalue="Python.MapRenderer" />
211
+ <item itemvalue="Python tests.pytest in test_CompositionDesigner.py" />
212
+ <item itemvalue="Python tests.pytest in test_DescriptionRenderer.py" />
213
+ <item itemvalue="Python tests.pytest in test_MapRenderer.py" />
225
214
  <item itemvalue="Python tests.pytest in test_cli.py" />
226
215
  </list>
227
216
  <recent_temporary>
228
217
  <list>
229
- <item itemvalue="Python.show_tree" />
230
218
  <item itemvalue="Python tests.pytest in test_cli.py" />
231
- <item itemvalue="Python.main" />
232
- <item itemvalue="Python.cli" />
233
- <item itemvalue="Python tests.pytest in test_DescriptionsFileGenerator.py" />
219
+ <item itemvalue="Python tests.pytest in test_MapRenderer.py" />
220
+ <item itemvalue="Python tests.pytest in test_CompositionDesigner.py" />
221
+ <item itemvalue="Python tests.pytest in test_DescriptionRenderer.py" />
222
+ <item itemvalue="Python.MapRenderer" />
234
223
  </list>
235
224
  </recent_temporary>
236
225
  </component>
@@ -250,30 +239,6 @@
250
239
  <option name="presentableId" value="Default" />
251
240
  <updated>1763156815611</updated>
252
241
  </task>
253
- <task id="LOCAL-00001" summary="Use new updated config_cli_gui. Adjust parameters to the calendar project.">
254
- <option name="closed" value="true" />
255
- <created>1763158659347</created>
256
- <option name="number" value="00001" />
257
- <option name="presentableId" value="LOCAL-00001" />
258
- <option name="project" value="LOCAL" />
259
- <updated>1763158659347</updated>
260
- </task>
261
- <task id="LOCAL-00002" summary="add example images">
262
- <option name="closed" value="true" />
263
- <created>1763287176820</created>
264
- <option name="number" value="00002" />
265
- <option name="presentableId" value="LOCAL-00002" />
266
- <option name="project" value="LOCAL" />
267
- <updated>1763287176820</updated>
268
- </task>
269
- <task id="LOCAL-00003" summary="add maps data for displaying contours">
270
- <option name="closed" value="true" />
271
- <created>1763287231851</created>
272
- <option name="number" value="00003" />
273
- <option name="presentableId" value="LOCAL-00003" />
274
- <option name="project" value="LOCAL" />
275
- <updated>1763287231851</updated>
276
- </task>
277
242
  <task id="LOCAL-00004" summary="add show_filelist.py to be able to run on linux. Add new libraries.">
278
243
  <option name="closed" value="true" />
279
244
  <created>1763288702873</created>
@@ -610,7 +575,63 @@
610
575
  <option name="project" value="LOCAL" />
611
576
  <updated>1764540117905</updated>
612
577
  </task>
613
- <option name="localTasksCounter" value="46" />
578
+ <task id="LOCAL-00046" summary="make font configurable">
579
+ <option name="closed" value="true" />
580
+ <created>1764609047898</created>
581
+ <option name="number" value="00046" />
582
+ <option name="presentableId" value="LOCAL-00046" />
583
+ <option name="project" value="LOCAL" />
584
+ <updated>1764609047898</updated>
585
+ </task>
586
+ <task id="LOCAL-00047" summary="update config_cli_gui">
587
+ <option name="closed" value="true" />
588
+ <created>1764713506098</created>
589
+ <option name="number" value="00047" />
590
+ <option name="presentableId" value="LOCAL-00047" />
591
+ <option name="project" value="LOCAL" />
592
+ <updated>1764713506098</updated>
593
+ </task>
594
+ <task id="LOCAL-00048" summary="use new Font class">
595
+ <option name="closed" value="true" />
596
+ <created>1764780315817</created>
597
+ <option name="number" value="00048" />
598
+ <option name="presentableId" value="LOCAL-00048" />
599
+ <option name="project" value="LOCAL" />
600
+ <updated>1764780315817</updated>
601
+ </task>
602
+ <task id="LOCAL-00049" summary="use new Font class, use dpi awareness so that the fonts do not change in size relatively if dpi is changed">
603
+ <option name="closed" value="true" />
604
+ <created>1764787369062</created>
605
+ <option name="number" value="00049" />
606
+ <option name="presentableId" value="LOCAL-00049" />
607
+ <option name="project" value="LOCAL" />
608
+ <updated>1764787369062</updated>
609
+ </task>
610
+ <task id="LOCAL-00050" summary="remove unused helpers">
611
+ <option name="closed" value="true" />
612
+ <created>1764787574988</created>
613
+ <option name="number" value="00050" />
614
+ <option name="presentableId" value="LOCAL-00050" />
615
+ <option name="project" value="LOCAL" />
616
+ <updated>1764787574988</updated>
617
+ </task>
618
+ <task id="LOCAL-00051" summary="code structure refactorings, &#10;new config_cli_gui version with preserved config order and logger">
619
+ <option name="closed" value="true" />
620
+ <created>1764801954095</created>
621
+ <option name="number" value="00051" />
622
+ <option name="presentableId" value="LOCAL-00051" />
623
+ <option name="project" value="LOCAL" />
624
+ <updated>1764801954095</updated>
625
+ </task>
626
+ <task id="LOCAL-00052" summary="use logging module from lib">
627
+ <option name="closed" value="true" />
628
+ <created>1764804380353</created>
629
+ <option name="number" value="00052" />
630
+ <option name="presentableId" value="LOCAL-00052" />
631
+ <option name="project" value="LOCAL" />
632
+ <updated>1764804380353</updated>
633
+ </task>
634
+ <option name="localTasksCounter" value="53" />
614
635
  <servers />
615
636
  </component>
616
637
  <component name="Vcs.Log.Tabs.Properties">
@@ -625,13 +646,6 @@
625
646
  </option>
626
647
  </component>
627
648
  <component name="VcsManagerConfiguration">
628
- <MESSAGE value="consistently rename core methods" />
629
- <MESSAGE value="only use Image.Image in CollageGenerator.py" />
630
- <MESSAGE value="remove unused images, restructure test" />
631
- <MESSAGE value="correct typing, CompositionDesigner.py generate_composition returns image object" />
632
- <MESSAGE value="first gui adaption" />
633
- <MESSAGE value="consistent renaming of the render modules" />
634
- <MESSAGE value="refactor generate_composition method" />
635
649
  <MESSAGE value="update config-cli-gui" />
636
650
  <MESSAGE value="Show preview image in gui" />
637
651
  <MESSAGE value="gui elements do resize" />
@@ -650,7 +664,14 @@
650
664
  <MESSAGE value="fix more import errors" />
651
665
  <MESSAGE value="fix zip linux" />
652
666
  <MESSAGE value="set up nice documentation" />
653
- <option name="LAST_COMMIT_MESSAGE" value="set up nice documentation" />
667
+ <MESSAGE value="make font configurable" />
668
+ <MESSAGE value="update config_cli_gui" />
669
+ <MESSAGE value="use new Font class" />
670
+ <MESSAGE value="use new Font class, use dpi awareness so that the fonts do not change in size relatively if dpi is changed" />
671
+ <MESSAGE value="remove unused helpers" />
672
+ <MESSAGE value="code structure refactorings, &#10;new config_cli_gui version with preserved config order and logger" />
673
+ <MESSAGE value="use logging module from lib" />
674
+ <option name="LAST_COMMIT_MESSAGE" value="use logging module from lib" />
654
675
  </component>
655
676
  <component name="XDebuggerManager">
656
677
  <breakpoint-manager>
@@ -682,12 +703,12 @@
682
703
  </line-breakpoint>
683
704
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
684
705
  <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/image/CalendarRenderer.py</url>
685
- <line>292</line>
706
+ <line>276</line>
686
707
  <option name="timeStamp" value="23" />
687
708
  </line-breakpoint>
688
709
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
689
710
  <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/image/MapRenderer.py</url>
690
- <line>79</line>
711
+ <line>72</line>
691
712
  <option name="timeStamp" value="27" />
692
713
  </line-breakpoint>
693
714
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
@@ -702,12 +723,12 @@
702
723
  </line-breakpoint>
703
724
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
704
725
  <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/gui/gui.py</url>
705
- <line>442</line>
726
+ <line>440</line>
706
727
  <option name="timeStamp" value="31" />
707
728
  </line-breakpoint>
708
729
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
709
730
  <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/gui/gui.py</url>
710
- <line>447</line>
731
+ <line>445</line>
711
732
  <option name="timeStamp" value="32" />
712
733
  </line-breakpoint>
713
734
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
@@ -722,14 +743,9 @@
722
743
  </line-breakpoint>
723
744
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
724
745
  <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/gui/gui.py</url>
725
- <line>278</line>
746
+ <line>271</line>
726
747
  <option name="timeStamp" value="51" />
727
748
  </line-breakpoint>
728
- <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
729
- <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/core/base.py</url>
730
- <line>60</line>
731
- <option name="timeStamp" value="53" />
732
- </line-breakpoint>
733
749
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
734
750
  <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/cli/cli.py</url>
735
751
  <line>25</line>
@@ -742,7 +758,7 @@
742
758
  </line-breakpoint>
743
759
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
744
760
  <url>file://$PROJECT_DIR$/.venv/lib/python3.11/site-packages/config_cli_gui/cli.py</url>
745
- <line>110</line>
761
+ <line>112</line>
746
762
  <option name="timeStamp" value="56" />
747
763
  </line-breakpoint>
748
764
  <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
@@ -755,6 +771,26 @@
755
771
  <line>128</line>
756
772
  <option name="timeStamp" value="62" />
757
773
  </line-breakpoint>
774
+ <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
775
+ <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/image/DescriptionRenderer.py</url>
776
+ <line>55</line>
777
+ <option name="timeStamp" value="64" />
778
+ </line-breakpoint>
779
+ <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
780
+ <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/image/DescriptionRenderer.py</url>
781
+ <line>38</line>
782
+ <option name="timeStamp" value="65" />
783
+ </line-breakpoint>
784
+ <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
785
+ <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/cli/cli.py</url>
786
+ <line>67</line>
787
+ <option name="timeStamp" value="66" />
788
+ </line-breakpoint>
789
+ <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
790
+ <url>file://$PROJECT_DIR$/src/Photo_Composition_Designer/gui/gui.py</url>
791
+ <line>58</line>
792
+ <option name="timeStamp" value="67" />
793
+ </line-breakpoint>
758
794
  </breakpoints>
759
795
  </breakpoint-manager>
760
796
  </component>
@@ -4,6 +4,30 @@ Changelog
4
4
 
5
5
  (unreleased)
6
6
  ------------
7
+ - Improve doc. [Paul Magister]
8
+ - Use logging module from lib. [Paul Magister]
9
+ - Selection and preview issue fixed, remove tight layout parameter.
10
+ [Paul Magister]
11
+ - Code structure refactorings, new config_cli_gui version with preserved
12
+ config order and logger. [Paul Magister]
13
+ - Code structure refactorings, new config_cli_gui version with preserved
14
+ config order and logger. [Paul Magister]
15
+ - Remove unused helpers. [Paul Magister]
16
+ - Use new Font class, use dpi awareness so that the fonts do not change
17
+ in size relatively if dpi is changed. [Paul Magister]
18
+ - Use new Font class. [Paul Magister]
19
+ - Update config_cli_gui. [Paul Magister]
20
+
21
+
22
+ 0.1.1 (2025-12-01)
23
+ ------------------
24
+ - Docs: Update HISTORY.md for release 0.1.1. [Paul Magister]
25
+ - Make font configurable. [Paul Magister]
26
+
27
+
28
+ 0.1.0 (2025-12-01)
29
+ ------------------
30
+ - Docs: Update HISTORY.md for release 0.1.0. [Paul Magister]
7
31
  - Gitignore. [Paul Magister]
8
32
  - Docs: Update HISTORY.md for release 0.0.9. [Paul Magister]
9
33
  - Docs: Update HISTORY.md for release 0.0.8. [Paul Magister]
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Photo-Composition-Designer
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: Feature-rich Python project template for Photo-Composition-Designer.
5
5
  Author: pamagister
6
6
  Requires-Python: <3.12,>=3.10
7
7
  Description-Content-Type: text/markdown
8
8
  License-File: LICENSE
9
9
  Requires-Dist: astral>=3.2
10
- Requires-Dist: config-cli-gui>=0.2.7
10
+ Requires-Dist: config-cli-gui>=0.3.0
11
11
  Requires-Dist: exifread>=3.5.1
12
12
  Requires-Dist: geopandas>=1.1.1
13
13
  Requires-Dist: holidays>=0.84
@@ -100,6 +100,10 @@ Modify your settings inside the `config.yaml` or using the GUI:
100
100
  - Image sizes (mm converted to pixels internally)
101
101
  - Calendar layout
102
102
  - Paths to `anniversaries.ini` and `locations.ini`
103
+ - Fonts and Colors
104
+
105
+ ![Settings GUI](_static/img/gui_settings.png)
106
+
103
107
 
104
108
  ### 2️⃣ **Sorting Images into Folders**
105
109
  Organize your images in the `images/` directory before running the generator.
@@ -122,6 +126,18 @@ or you can put individual txt files into every single weekly sub folder.
122
126
  ### 4️⃣ **Setting up the birthday dates** 🎂📅
123
127
  Provide the birthday information of your friends and family by using the `anniversaries.ini`
124
128
 
129
+ ```plaintext
130
+ [Birthdays]
131
+
132
+ Paul = 6.1.1984
133
+ Peter = 08.01.99
134
+ Liz = 09.01.
135
+ Anna = 10.01.
136
+
137
+ [Weddings]
138
+ Mary & Josh = 02.01.2021 ; ⚭ Symbol is used for Weddings
139
+ ```
140
+
125
141
  ### **Generating the Calendar** 🖼️
126
142
  Use **Generate Composition** to generate all collages and one PDF file containing all your compositions.
127
143
 
@@ -1,75 +1,71 @@
1
1
  app:
2
2
  # Logging level for the application | type=str | choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']
3
3
  log_level: INFO
4
- calendar:
5
- # Number of collages to be generated (e.g. number of weeks) | type=int
6
- collagesToGenerate: 5
7
- # Country/state codes for public holidays, e.g., NY,CA | type=str
8
- holidayCountries: SN
9
- # Language for the calendar (e.g., de_DE, en_US) | type=str
10
- language: de_DE
11
- # Start date of the calendar | type=datetime [CLI]
12
- startDate: '2025-12-31T00:00:00'
13
- # True: Calendar elements are generated | type=bool | choices=[True, False]
14
- useCalendar: true
15
- colors:
16
- # Background color (RGB) | type=Color
17
- backgroundColor: '#141414'
18
- # Color for holidays | type=Color
19
- holidayColor: '#ff0000'
20
- # Primary text color | type=Color
21
- textColor1: '#ffffff'
22
- # Secondary text color | type=Color
23
- textColor2: '#969696'
24
4
  general:
5
+ # Path to the directory containing photos (absolute, or relative to this config.ini file) | type=PosixPath | [CLI]
6
+ photoDirectory: images
25
7
  # Path to anniversaries.ini file (absolute, or relative to this config.ini file) | type=PosixPath
26
8
  anniversariesConfig: anniversaries.ini
27
- # This is the title of the composition on the first page. Leave empty if not required. | type=str
28
- compositionTitle: This is the title of the composition
29
9
  # Path to locations.ini file (absolute, or relative to this config.ini file) | type=PosixPath
30
10
  locationsConfig: locations_en.ini
31
- # Path to the directory containing photos (absolute, or relative to this config.ini file) | type=PosixPath [CLI]
32
- photoDirectory: images
11
+ # This is the title of the composition on the first page. Leave empty if not required. | type=str
12
+ compositionTitle: This is the title of the composition
13
+ calendar:
14
+ # True: Calendar elements are generated | type=bool | choices=[True, False]
15
+ useCalendar: true
16
+ # Language for the calendar (e.g., de_DE, en_US) | type=str
17
+ language: de_DE
18
+ # Country/state codes for public holidays, e.g., NY,CA | type=str
19
+ holidayCountries: SN
20
+ # Start date of the calendar | type=datetime | [CLI]
21
+ startDate: '2025-12-29T00:00:00'
22
+ # Number of collages to be generated (e.g. number of weeks) | type=int
23
+ collagesToGenerate: 53
24
+ style:
25
+ # Background color (RGB) | type=Color
26
+ backgroundColor: '#141414'
27
+ # Font size for large text like the title and the weekday numbers | type=Font
28
+ fontLarge: 'DejaVuSans.ttf, 9, #ffffff'
29
+ # Font size for small text like the weekday names | type=Font
30
+ fontSmall: 'DejaVuSans.ttf, 2.5, #969696'
31
+ # Font for the description texts | type=Font
32
+ fontDescription: 'DejaVuSans.ttf, 2.5, #969696'
33
+ # Font size for anniversaries: Text with anniversaries and holiday names | type=Font
34
+ fontAnniversaries: 'DejaVuSans.ttf, 2.0, #ff0000'
33
35
  geo:
34
- # Minimum range for map display (degrees) | type=int
35
- minimalExtension: 7
36
36
  # Use GPS data to generate maps | type=bool | choices=[True, False]
37
37
  usePhotoLocationMaps: true
38
+ # Minimum range for map display (degrees) | type=int
39
+ minimalExtension: 7
40
+ size:
41
+ # Width of the collage in mm | type=int | [CLI]
42
+ width: 216
43
+ # Height of the collage in mm | type=int | [CLI]
44
+ height: 154
45
+ # Height of the calendar area in mm | type=int
46
+ calendarHeight: 18
47
+ # Width of the locations map in mm | type=int
48
+ mapWidth: 20
49
+ # Height of the locations map in mm | type=int
50
+ mapHeight: 20
51
+ # Resolution of the image in dpi | type=int | [CLI]
52
+ dpi: 300
53
+ # JPG compression quality (1-100) | type=int
54
+ jpgQuality: 90
38
55
  layout:
39
- # Font size for anniversaries | type=float
40
- fontSizeAnniversaries: 0.115
41
- # Font size for large text | type=float
42
- fontSizeLarge: 0.5
43
- # Font size for small text | type=float
44
- fontSizeSmall: 0.14
45
- # Combine all generated collages into one pdf | type=bool | choices=[True, False]
46
- generatePdf: true
56
+ # Top margin in mm | type=int
57
+ marginTop: 6
47
58
  # Bottom margin in mm | type=int
48
59
  marginBottom: 3
49
60
  # Side margins in mm | type=int
50
61
  marginSides: 3
51
- # Top margin in mm | type=int
52
- marginTop: 6
53
62
  # Spacing between elements in mm | type=int
54
63
  spacing: 2
55
- # Include photo descriptions in the collage | type=bool | choices=[True, False]
56
- usePhotoDescription: true
57
64
  # Use short weekday names (e.g., Mon, Tue) | type=bool | choices=[True, False]
58
65
  useShortDayNames: false
59
66
  # Use short month names (e.g., Jan, Feb) | type=bool | choices=[True, False]
60
67
  useShortMonthNames: true
61
- size:
62
- # Height of the calendar area in mm | type=int
63
- calendarHeight: 18
64
- # Resolution of the image in dpi | type=int [CLI]
65
- dpi: 150
66
- # Height of the collage in mm | type=int [CLI]
67
- height: 154
68
- # JPG compression quality (1-100) | type=int
69
- jpgQuality: 90
70
- # Height of the locations map in mm | type=int
71
- mapHeight: 20
72
- # Width of the locations map in mm | type=int
73
- mapWidth: 20
74
- # Width of the collage in mm | type=int [CLI]
75
- width: 216
68
+ # Include photo descriptions in the collage | type=bool | choices=[True, False]
69
+ usePhotoDescription: true
70
+ # Combine all generated collages into one pdf | type=bool | choices=[True, False]
71
+ generatePdf: true
@@ -64,6 +64,10 @@ Modify your settings inside the `config.yaml` or using the GUI:
64
64
  - Image sizes (mm converted to pixels internally)
65
65
  - Calendar layout
66
66
  - Paths to `anniversaries.ini` and `locations.ini`
67
+ - Fonts and Colors
68
+
69
+ ![Settings GUI](_static/img/gui_settings.png)
70
+
67
71
 
68
72
  ### 2️⃣ **Sorting Images into Folders**
69
73
  Organize your images in the `images/` directory before running the generator.
@@ -86,6 +90,18 @@ or you can put individual txt files into every single weekly sub folder.
86
90
  ### 4️⃣ **Setting up the birthday dates** 🎂📅
87
91
  Provide the birthday information of your friends and family by using the `anniversaries.ini`
88
92
 
93
+ ```plaintext
94
+ [Birthdays]
95
+
96
+ Paul = 6.1.1984
97
+ Peter = 08.01.99
98
+ Liz = 09.01.
99
+ Anna = 10.01.
100
+
101
+ [Weddings]
102
+ Mary & Josh = 02.01.2021 ; ⚭ Symbol is used for Weddings
103
+ ```
104
+
89
105
  ### **Generating the Calendar** 🖼️
90
106
  Use **Generate Composition** to generate all collages and one PDF file containing all your compositions.
91
107