MapProxy 6.1.0__tar.gz → 6.1.1__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 (605) hide show
  1. {mapproxy-6.1.0 → mapproxy-6.1.1}/CHANGES.txt +15 -0
  2. {mapproxy-6.1.0 → mapproxy-6.1.1}/MapProxy.egg-info/PKG-INFO +16 -12
  3. {mapproxy-6.1.0 → mapproxy-6.1.1}/PKG-INFO +16 -12
  4. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/configuration/proxy.py +9 -2
  5. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/image/__init__.py +5 -1
  6. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/demo.py +3 -1
  7. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ogcapi/api.py +5 -1
  8. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ogcapi/server.py +5 -0
  9. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/_base.html +9 -9
  10. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/collections/collection.html +5 -5
  11. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/landing_page.html +11 -11
  12. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/openapi/redoc.html +2 -2
  13. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/openapi/swagger.html +5 -5
  14. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/tilesets/tileset.html +4 -4
  15. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_conf_loader.py +24 -0
  16. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_image.py +44 -0
  17. {mapproxy-6.1.0 → mapproxy-6.1.1}/requirements-tests.txt +5 -5
  18. {mapproxy-6.1.0 → mapproxy-6.1.1}/setup.py +1 -1
  19. {mapproxy-6.1.0 → mapproxy-6.1.1}/AUTHORS.txt +0 -0
  20. {mapproxy-6.1.0 → mapproxy-6.1.1}/COPYING.txt +0 -0
  21. {mapproxy-6.1.0 → mapproxy-6.1.1}/LICENSE.txt +0 -0
  22. {mapproxy-6.1.0 → mapproxy-6.1.1}/MANIFEST.in +0 -0
  23. {mapproxy-6.1.0 → mapproxy-6.1.1}/MapProxy.egg-info/SOURCES.txt +0 -0
  24. {mapproxy-6.1.0 → mapproxy-6.1.1}/MapProxy.egg-info/dependency_links.txt +0 -0
  25. {mapproxy-6.1.0 → mapproxy-6.1.1}/MapProxy.egg-info/entry_points.txt +0 -0
  26. {mapproxy-6.1.0 → mapproxy-6.1.1}/MapProxy.egg-info/not-zip-safe +0 -0
  27. {mapproxy-6.1.0 → mapproxy-6.1.1}/MapProxy.egg-info/requires.txt +0 -0
  28. {mapproxy-6.1.0 → mapproxy-6.1.1}/MapProxy.egg-info/top_level.txt +0 -0
  29. {mapproxy-6.1.0 → mapproxy-6.1.1}/README.md +0 -0
  30. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/GM.txt +0 -0
  31. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/_static/logo.png +0 -0
  32. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/_static/logo_title.png +0 -0
  33. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/_static/mapproxy.css +0 -0
  34. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/_templates/versions.html +0 -0
  35. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/architecture.rst +0 -0
  36. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/auth.rst +0 -0
  37. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/caches.rst +0 -0
  38. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/caching_layer_dimensions.rst +0 -0
  39. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/conf.py +0 -0
  40. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/configuration.rst +0 -0
  41. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/configuration_examples.rst +0 -0
  42. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/coverages.rst +0 -0
  43. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/decorate_img.rst +0 -0
  44. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/deployment.rst +0 -0
  45. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/development.rst +0 -0
  46. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/bicubic.png +0 -0
  47. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/bilinear.png +0 -0
  48. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/labeling-dynamic.png +0 -0
  49. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/labeling-meta-buffer.png +0 -0
  50. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/labeling-metatiling-buffer.png +0 -0
  51. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/labeling-metatiling.png +0 -0
  52. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/labeling-no-clip.png +0 -0
  53. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/labeling-no-placement.png +0 -0
  54. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/labeling-partial-false.png +0 -0
  55. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/labeling-repeated.png +0 -0
  56. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/mapnik-webmerc-hq.png +0 -0
  57. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/mapnik-webmerc.png +0 -0
  58. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/mapproxy-demo.png +0 -0
  59. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/imgs/nearest.png +0 -0
  60. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/index.rst +0 -0
  61. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/inspire.rst +0 -0
  62. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/install.rst +0 -0
  63. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/install_docker.rst +0 -0
  64. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/install_osgeo4w.rst +0 -0
  65. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/install_windows.rst +0 -0
  66. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/labeling.rst +0 -0
  67. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/mapproxy_util.rst +0 -0
  68. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/mapproxy_util_autoconfig.rst +0 -0
  69. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/ogc_api.rst +0 -0
  70. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/plugins.rst +0 -0
  71. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/seed.rst +0 -0
  72. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/services.rst +0 -0
  73. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/sources.rst +0 -0
  74. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/tutorial.rst +0 -0
  75. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/tutorial.yaml +0 -0
  76. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/yaml/cache_conf.yaml +0 -0
  77. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/yaml/grid_conf.yaml +0 -0
  78. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/yaml/merged_conf.yaml +0 -0
  79. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/yaml/meta_conf.yaml +0 -0
  80. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/yaml/seed.yaml +0 -0
  81. {mapproxy-6.1.0 → mapproxy-6.1.1}/doc/yaml/simple_conf.yaml +0 -0
  82. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/__init__.py +0 -0
  83. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/__init__.py +0 -0
  84. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/azureblob.py +0 -0
  85. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/base.py +0 -0
  86. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/compact.py +0 -0
  87. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/couchdb.py +0 -0
  88. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/dummy.py +0 -0
  89. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/file.py +0 -0
  90. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/geopackage.py +0 -0
  91. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/legend.py +0 -0
  92. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/mbtiles.py +0 -0
  93. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/meta.py +0 -0
  94. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/path.py +0 -0
  95. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/redis.py +0 -0
  96. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/renderd.py +0 -0
  97. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/s3.py +0 -0
  98. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/tile.py +0 -0
  99. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/tile_creator.py +0 -0
  100. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/cache/tile_manager.py +0 -0
  101. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/client/__init__.py +0 -0
  102. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/client/arcgis.py +0 -0
  103. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/client/cgi.py +0 -0
  104. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/client/http.py +0 -0
  105. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/client/log.py +0 -0
  106. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/client/tile.py +0 -0
  107. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/client/wms.py +0 -0
  108. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/__init__.py +0 -0
  109. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/config-schema.json +0 -0
  110. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/config.py +0 -0
  111. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/configuration/__init__.py +0 -0
  112. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/configuration/base.py +0 -0
  113. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/configuration/cache.py +0 -0
  114. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/configuration/global_conf.py +0 -0
  115. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/configuration/grid.py +0 -0
  116. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/configuration/image_options.py +0 -0
  117. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/configuration/layer.py +0 -0
  118. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/configuration/service.py +0 -0
  119. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/configuration/source.py +0 -0
  120. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/coverage.py +0 -0
  121. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/defaults.py +0 -0
  122. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/loader.py +0 -0
  123. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/spec.py +0 -0
  124. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config/validator.py +0 -0
  125. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config_template/__init__.py +0 -0
  126. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config_template/base_config/config.wsgi +0 -0
  127. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config_template/base_config/full_example.yaml +0 -0
  128. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config_template/base_config/full_seed_example.yaml +0 -0
  129. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config_template/base_config/log.ini +0 -0
  130. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config_template/base_config/mapproxy.yaml +0 -0
  131. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/config_template/base_config/seed.yaml +0 -0
  132. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/exception.py +0 -0
  133. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/extent.py +0 -0
  134. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/featureinfo.py +0 -0
  135. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/grid/__init__.py +0 -0
  136. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/grid/meta_grid.py +0 -0
  137. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/grid/resolutions.py +0 -0
  138. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/grid/tile_grid.py +0 -0
  139. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/image/fonts/DejaVuSans.ttf +0 -0
  140. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/image/fonts/DejaVuSansMono.ttf +0 -0
  141. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/image/fonts/LICENSE +0 -0
  142. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/image/fonts/__init__.py +0 -0
  143. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/image/mask.py +0 -0
  144. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/image/merge.py +0 -0
  145. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/image/message.py +0 -0
  146. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/image/opts.py +0 -0
  147. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/image/tile.py +0 -0
  148. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/image/transform.py +0 -0
  149. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/layer/__init__.py +0 -0
  150. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/layer/cache_map_layer.py +0 -0
  151. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/layer/direct_map_layer.py +0 -0
  152. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/layer/limited_layer.py +0 -0
  153. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/layer/map_layer.py +0 -0
  154. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/layer/resolution_conditional.py +0 -0
  155. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/layer/srs_conditional.py +0 -0
  156. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/multiapp.py +0 -0
  157. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/proj.py +0 -0
  158. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/query.py +0 -0
  159. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/request/__init__.py +0 -0
  160. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/request/arcgis.py +0 -0
  161. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/request/base.py +0 -0
  162. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/request/no_case_multi_dict.py +0 -0
  163. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/request/request_params.py +0 -0
  164. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/request/tile.py +0 -0
  165. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/request/wms/__init__.py +0 -0
  166. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/request/wms/exception.py +0 -0
  167. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/request/wmts.py +0 -0
  168. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/response.py +0 -0
  169. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/__init__.py +0 -0
  170. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/conf/__init__.py +0 -0
  171. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/conf/app.py +0 -0
  172. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/conf/caches.py +0 -0
  173. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/conf/geopackage.py +0 -0
  174. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/conf/layers.py +0 -0
  175. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/conf/seeds.py +0 -0
  176. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/conf/sources.py +0 -0
  177. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/conf/utils.py +0 -0
  178. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/defrag.py +0 -0
  179. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/export.py +0 -0
  180. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/gridconf_from_ogcapitilematrixset.py +0 -0
  181. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/grids.py +0 -0
  182. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/scales.py +0 -0
  183. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/util.py +0 -0
  184. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/script/wms_capabilities.py +0 -0
  185. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/seed/__init__.py +0 -0
  186. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/seed/cachelock.py +0 -0
  187. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/seed/cleanup.py +0 -0
  188. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/seed/config.py +0 -0
  189. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/seed/script.py +0 -0
  190. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/seed/seeder.py +0 -0
  191. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/seed/spec.py +0 -0
  192. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/seed/util.py +0 -0
  193. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/__init__.py +0 -0
  194. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/base.py +0 -0
  195. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/kml.py +0 -0
  196. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ogcapi/__init__.py +0 -0
  197. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ogcapi/collections.py +0 -0
  198. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ogcapi/conformance.py +0 -0
  199. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ogcapi/constants.py +0 -0
  200. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ogcapi/landing_page.py +0 -0
  201. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ogcapi/map.py +0 -0
  202. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ogcapi/map_utils.py +0 -0
  203. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ogcapi/tile.py +0 -0
  204. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ogcapi/tilematrixsets.py +0 -0
  205. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ogcapi/tilesets.py +0 -0
  206. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/ows.py +0 -0
  207. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/template_helper.py +0 -0
  208. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/capabilities_demo.html +0 -0
  209. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/demo.html +0 -0
  210. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/openlayers-demo.cfg +0 -0
  211. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/img/blank.gif +0 -0
  212. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/img/east-mini.png +0 -0
  213. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/img/north-mini.png +0 -0
  214. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/img/south-mini.png +0 -0
  215. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/img/west-mini.png +0 -0
  216. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/img/zoom-minus-mini.png +0 -0
  217. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/img/zoom-plus-mini.png +0 -0
  218. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/img/zoom-world-mini.png +0 -0
  219. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/logo.png +0 -0
  220. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/ol.css +0 -0
  221. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/ol.js +0 -0
  222. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/proj4.min.js +0 -0
  223. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/proj4defs.js +0 -0
  224. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/site.css +0 -0
  225. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/theme/default/framedCloud.css +0 -0
  226. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/theme/default/google.css +0 -0
  227. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/theme/default/ie6-style.css +0 -0
  228. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static/theme/default/style.css +0 -0
  229. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/static.html +0 -0
  230. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/tms_demo.html +0 -0
  231. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/wms_demo.html +0 -0
  232. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/demo/wmts_demo.html +0 -0
  233. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/collections/index.html +0 -0
  234. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/conformance.html +0 -0
  235. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/exception.html +0 -0
  236. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/css/bootstrap.min.css +0 -0
  237. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/css/default.css +0 -0
  238. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/fonts_montserra_roboto.css +0 -0
  239. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/img/logo.png +0 -0
  240. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/img/pygeoapi-logo.png +0 -0
  241. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/ol.css +0 -0
  242. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/ol.js +0 -0
  243. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/proj4.min.js +0 -0
  244. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/proj4defs.js +0 -0
  245. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/redoc.standalone.js +0 -0
  246. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/swagger-ui-dist/favicon-16x16.png +0 -0
  247. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/swagger-ui-dist/favicon-32x32.png +0 -0
  248. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/swagger-ui-dist/swagger-ui-bundle.js +0 -0
  249. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/swagger-ui-dist/swagger-ui-standalone-preset.js +0 -0
  250. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/static/swagger-ui-dist/swagger-ui.css +0 -0
  251. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/tilematrixsets/index.html +0 -0
  252. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/tilematrixsets/tilematrixset.html +0 -0
  253. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ogcapi/tilesets/index.html +0 -0
  254. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/ows_exception.xml +0 -0
  255. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/tms_capabilities.xml +0 -0
  256. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/tms_exception.xml +0 -0
  257. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/tms_root_resource.xml +0 -0
  258. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/tms_tilemap_capabilities.xml +0 -0
  259. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/wms100capabilities.xml +0 -0
  260. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/wms100exception.xml +0 -0
  261. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/wms110capabilities.xml +0 -0
  262. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/wms110exception.xml +0 -0
  263. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/wms111capabilities.xml +0 -0
  264. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/wms111exception.xml +0 -0
  265. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/wms130capabilities.xml +0 -0
  266. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/wms130exception.xml +0 -0
  267. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/wmts100capabilities.xml +0 -0
  268. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/templates/wmts100exception.xml +0 -0
  269. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/tile.py +0 -0
  270. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/wms.py +0 -0
  271. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/service/wmts.py +0 -0
  272. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/source/__init__.py +0 -0
  273. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/source/arcgis.py +0 -0
  274. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/source/error.py +0 -0
  275. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/source/mapnik.py +0 -0
  276. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/source/ogcapimaps.py +0 -0
  277. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/source/ogcapitiles.py +0 -0
  278. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/source/tile.py +0 -0
  279. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/source/wms.py +0 -0
  280. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/srs.py +0 -0
  281. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/template.py +0 -0
  282. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/__init__.py +0 -0
  283. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/conftest.py +0 -0
  284. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/helper.py +0 -0
  285. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/http.py +0 -0
  286. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/image.py +0 -0
  287. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/mocker.py +0 -0
  288. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/common.xsd +0 -0
  289. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_bul.xsd +0 -0
  290. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_cze.xsd +0 -0
  291. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_dan.xsd +0 -0
  292. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_dut.xsd +0 -0
  293. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_eng.xsd +0 -0
  294. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_est.xsd +0 -0
  295. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_fin.xsd +0 -0
  296. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_fre.xsd +0 -0
  297. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_ger.xsd +0 -0
  298. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_gle.xsd +0 -0
  299. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_gre.xsd +0 -0
  300. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_hun.xsd +0 -0
  301. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_ita.xsd +0 -0
  302. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_lav.xsd +0 -0
  303. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_lit.xsd +0 -0
  304. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_mlt.xsd +0 -0
  305. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_pol.xsd +0 -0
  306. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_por.xsd +0 -0
  307. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_rum.xsd +0 -0
  308. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_slo.xsd +0 -0
  309. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_slv.xsd +0 -0
  310. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_spa.xsd +0 -0
  311. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_swe.xsd +0 -0
  312. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/common/1.0/network.xsd +0 -0
  313. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/inspire/inspire_vs/1.0/inspire_vs.xsd +0 -0
  314. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/kml/2.2.0/ReadMe.txt +0 -0
  315. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/kml/2.2.0/atom-author-link.xsd +0 -0
  316. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/kml/2.2.0/ogckml22.xsd +0 -0
  317. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/kml/2.2.0/xAL.xsd +0 -0
  318. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/ReadMe.txt +0 -0
  319. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/ows19115subset.xsd +0 -0
  320. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsAll.xsd +0 -0
  321. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsCommon.xsd +0 -0
  322. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsContents.xsd +0 -0
  323. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsDataIdentification.xsd +0 -0
  324. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsDomainType.xsd +0 -0
  325. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsExceptionReport.xsd +0 -0
  326. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsGetCapabilities.xsd +0 -0
  327. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsGetResourceByID.xsd +0 -0
  328. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsInputOutputData.xsd +0 -0
  329. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsManifest.xsd +0 -0
  330. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsOperationsMetadata.xsd +0 -0
  331. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsServiceIdentification.xsd +0 -0
  332. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/ows/1.1.0/owsServiceProvider.xsd +0 -0
  333. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/sld/1.1.0/sld_capabilities.xsd +0 -0
  334. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.dtd +0 -0
  335. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.xml +0 -0
  336. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.dtd +0 -0
  337. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.xml +0 -0
  338. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.dtd +0 -0
  339. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.xml +0 -0
  340. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.dtd +0 -0
  341. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.xml +0 -0
  342. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.1.1/OGC-exception.xsd +0 -0
  343. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.1.1/WMS_DescribeLayerResponse.dtd +0 -0
  344. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.1.1/WMS_MS_Capabilities.dtd +0 -0
  345. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd +0 -0
  346. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.dtd +0 -0
  347. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.xml +0 -0
  348. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.dtd +0 -0
  349. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.xml +0 -0
  350. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.3.0/ReadMe.txt +0 -0
  351. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xml +0 -0
  352. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xsd +0 -0
  353. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xml +0 -0
  354. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xsd +0 -0
  355. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmsc/1.1.1/OGC-exception.xsd +0 -0
  356. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmsc/1.1.1/WMS_DescribeLayerResponse.dtd +0 -0
  357. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmsc/1.1.1/WMS_MS_Capabilities.dtd +0 -0
  358. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmsc/1.1.1/WMS_exception_1_1_1.dtd +0 -0
  359. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.dtd +0 -0
  360. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.xml +0 -0
  361. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.dtd +0 -0
  362. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.xml +0 -0
  363. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmts/1.0/ReadMe.txt +0 -0
  364. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmts/1.0/wmts.xsd +0 -0
  365. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsAbstract.wsdl +0 -0
  366. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_request.xsd +0 -0
  367. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_response.xsd +0 -0
  368. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_request.xsd +0 -0
  369. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_response.xsd +0 -0
  370. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetTile_request.xsd +0 -0
  371. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsKVP.xsd +0 -0
  372. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsPayload_response.xsd +0 -0
  373. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/xlink/1.0.0/ReadMe.txt +0 -0
  374. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/xlink/1.0.0/xlinks.xsd +0 -0
  375. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/schemas/xml.xsd +0 -0
  376. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/__init__.py +0 -0
  377. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/arcgis.yaml +0 -0
  378. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/auth.yaml +0 -0
  379. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache.mbtiles +0 -0
  380. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache_azureblob.yaml +0 -0
  381. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache_band_merge.yaml +0 -0
  382. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache_bulk_meta_tiles.yaml +0 -0
  383. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache_coverage.yaml +0 -0
  384. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache_data/dop_cache_EPSG3857/00/000/000/000/000/000/000.png +0 -0
  385. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache_data/wms_cache_EPSG900913/01/000/000/000/000/000/001.jpeg +0 -0
  386. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache_data/wms_cache_transparent_EPSG900913/01/000/000/000/000/000/001.png +0 -0
  387. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache_geopackage.yaml +0 -0
  388. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache_grid_names.yaml +0 -0
  389. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache_mbtiles.yaml +0 -0
  390. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache_s3.yaml +0 -0
  391. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/cache_source.yaml +0 -0
  392. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/combined_sources.yaml +0 -0
  393. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/coverage.yaml +0 -0
  394. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/demo.yaml +0 -0
  395. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/dimension.yaml +0 -0
  396. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/disable_storage.yaml +0 -0
  397. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/empty_ogrdata.geojson +0 -0
  398. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/formats.yaml +0 -0
  399. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/inspire.yaml +0 -0
  400. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/inspire_full.yaml +0 -0
  401. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/kml_layer.yaml +0 -0
  402. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/layer.yaml +0 -0
  403. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/layergroups.yaml +0 -0
  404. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/layergroups_root.yaml +0 -0
  405. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/legendgraphic.yaml +0 -0
  406. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/mapnik_source.yaml +0 -0
  407. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/mapproxy_export.yaml +0 -0
  408. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/mapserver.yaml +0 -0
  409. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/minimal_cgi.py +0 -0
  410. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/mixed_mode.yaml +0 -0
  411. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/multi_cache_layers.yaml +0 -0
  412. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/multiapp1.yaml +0 -0
  413. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/multiapp2.yaml +0 -0
  414. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/ogcapi_maps_and_tiles_non_earth_service.yaml +0 -0
  415. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/ogcapi_maps_and_tiles_service.yaml +0 -0
  416. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/ogcapimaps_non_earth_source.yaml +0 -0
  417. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/ogcapimaps_service.yaml +0 -0
  418. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/ogcapimaps_source.yaml +0 -0
  419. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/ogcapimaps_source_with_supported_srs.yaml +0 -0
  420. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/ogcapitiles_non_earth_source.yaml +0 -0
  421. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/ogcapitiles_service.yaml +0 -0
  422. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/ogcapitiles_source.yaml +0 -0
  423. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/renderd_client.yaml +0 -0
  424. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/scalehints.yaml +0 -0
  425. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/seed.yaml +0 -0
  426. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/seed_mapproxy.yaml +0 -0
  427. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/seed_timeouts.yaml +0 -0
  428. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/seed_timeouts_mapproxy.yaml +0 -0
  429. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/seedonly.yaml +0 -0
  430. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/sld.yaml +0 -0
  431. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/source_errors.yaml +0 -0
  432. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/source_errors_raise.yaml +0 -0
  433. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/tileservice_origin.yaml +0 -0
  434. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/tileservice_refresh.yaml +0 -0
  435. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/tilesource_minmax_res.yaml +0 -0
  436. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/util-conf-base-grids.yaml +0 -0
  437. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/util-conf-overwrite.yaml +0 -0
  438. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/util-conf-wms-111-cap.xml +0 -0
  439. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/util_grids.yaml +0 -0
  440. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/util_wms_capabilities111.xml +0 -0
  441. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/util_wms_capabilities130.xml +0 -0
  442. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/util_wms_capabilities_service_exception.xml +0 -0
  443. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/watermark.yaml +0 -0
  444. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/wms_srs_extent.yaml +0 -0
  445. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/wms_versions.yaml +0 -0
  446. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/wmts.yaml +0 -0
  447. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/wmts_dimensions.yaml +0 -0
  448. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/xslt_featureinfo.yaml +0 -0
  449. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/fixture/xslt_featureinfo_input.yaml +0 -0
  450. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_arcgis.py +0 -0
  451. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_auth.py +0 -0
  452. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_behind_proxy.py +0 -0
  453. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_bulk_meta_tiles.py +0 -0
  454. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_cache_azureblob.py +0 -0
  455. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_cache_band_merge.py +0 -0
  456. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_cache_coverage.py +0 -0
  457. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_cache_geopackage.py +0 -0
  458. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_cache_grid_names.py +0 -0
  459. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_cache_mbtiles.py +0 -0
  460. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_cache_s3.py +0 -0
  461. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_cache_source.py +0 -0
  462. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_combined_sources.py +0 -0
  463. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_coverage.py +0 -0
  464. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_decorate_img.py +0 -0
  465. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_demo.py +0 -0
  466. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_demo_with_extra_service.py +0 -0
  467. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_dimensions.py +0 -0
  468. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_disable_storage.py +0 -0
  469. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_formats.py +0 -0
  470. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_inspire_vs.py +0 -0
  471. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_kml.py +0 -0
  472. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_layergroups.py +0 -0
  473. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_legendgraphic.py +0 -0
  474. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_mapnik.py +0 -0
  475. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_mapserver.py +0 -0
  476. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_mixed_mode_format.py +0 -0
  477. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_multi_cache_layers.py +0 -0
  478. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_multiapp.py +0 -0
  479. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_refresh.py +0 -0
  480. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_renderd_client.py +0 -0
  481. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_response_headers.py +0 -0
  482. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_scalehints.py +0 -0
  483. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_seed.py +0 -0
  484. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_seed_only.py +0 -0
  485. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_service_ogcapi.py +0 -0
  486. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_sld.py +0 -0
  487. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_source_errors.py +0 -0
  488. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_source_ogcapimaps.py +0 -0
  489. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_source_ogcapitiles.py +0 -0
  490. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_tilesource_minmax_res.py +0 -0
  491. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_tms.py +0 -0
  492. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_tms_origin.py +0 -0
  493. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_util_conf.py +0 -0
  494. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_util_export.py +0 -0
  495. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_util_gridconf_from_ogcapitilematrixset.py +0 -0
  496. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_util_grids.py +0 -0
  497. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_util_wms_capabilities.py +0 -0
  498. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_watermark.py +0 -0
  499. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_wms.py +0 -0
  500. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_wms_srs_extent.py +0 -0
  501. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_wms_version.py +0 -0
  502. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_wmsc.py +0 -0
  503. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_wmts.py +0 -0
  504. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_wmts_dimensions.py +0 -0
  505. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_wmts_restful.py +0 -0
  506. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/system/test_xslt_featureinfo.py +0 -0
  507. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/test_http_helper.py +0 -0
  508. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/__init__.py +0 -0
  509. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/epsg +0 -0
  510. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/polygons/polygons.dbf +0 -0
  511. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/polygons/polygons.shp +0 -0
  512. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/polygons/polygons.shx +0 -0
  513. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_async.py +0 -0
  514. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_auth.py +0 -0
  515. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_cache.py +0 -0
  516. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_cache_azureblob.py +0 -0
  517. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_cache_compact.py +0 -0
  518. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_cache_couchdb.py +0 -0
  519. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_cache_geopackage.py +0 -0
  520. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_cache_mbtile.py +0 -0
  521. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_cache_redis.py +0 -0
  522. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_cache_s3.py +0 -0
  523. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_cache_tile.py +0 -0
  524. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_client.py +0 -0
  525. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_client_arcgis.py +0 -0
  526. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_client_cgi.py +0 -0
  527. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_collections.py +0 -0
  528. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_concat_legends.py +0 -0
  529. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_conf_validator.py +0 -0
  530. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_config.py +0 -0
  531. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_decorate_img.py +0 -0
  532. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_exceptions.py +0 -0
  533. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_featureinfo.py +0 -0
  534. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_file_lock_load.py +0 -0
  535. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_fs.py +0 -0
  536. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_geom.py +0 -0
  537. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_grid.py +0 -0
  538. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_image_mask.py +0 -0
  539. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_image_messages.py +0 -0
  540. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_image_options.py +0 -0
  541. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_isodate.py +0 -0
  542. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_multiapp.py +0 -0
  543. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_ogr_reader.py +0 -0
  544. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_request.py +0 -0
  545. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_request_wmts.py +0 -0
  546. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_response.py +0 -0
  547. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_seed.py +0 -0
  548. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_seed_cachelock.py +0 -0
  549. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_srs.py +0 -0
  550. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_tiled_source.py +0 -0
  551. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_tilefilter.py +0 -0
  552. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_times.py +0 -0
  553. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_timeutils.py +0 -0
  554. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_util_conf_utils.py +0 -0
  555. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_util_ogcapi.py +0 -0
  556. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_utils.py +0 -0
  557. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_wms_capabilities.py +0 -0
  558. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_wms_layer.py +0 -0
  559. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/test/unit/test_yaml.py +0 -0
  560. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/tilefilter.py +0 -0
  561. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/__init__.py +0 -0
  562. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/async_.py +0 -0
  563. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/bbox.py +0 -0
  564. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/coverage.py +0 -0
  565. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/escape.py +0 -0
  566. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/__init__.py +0 -0
  567. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/dictspec/__init__.py +0 -0
  568. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/dictspec/spec.py +0 -0
  569. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/dictspec/test/__init__.py +0 -0
  570. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/dictspec/test/test_validator.py +0 -0
  571. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/dictspec/validator.py +0 -0
  572. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/local.py +0 -0
  573. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/lockfile.py +0 -0
  574. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/serving.py +0 -0
  575. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/tempita/__init__.py +0 -0
  576. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/tempita/_looper.py +0 -0
  577. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/tempita/string_utils.py +0 -0
  578. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/wmsparse/__init__.py +0 -0
  579. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/wmsparse/duration.py +0 -0
  580. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/wmsparse/parse.py +0 -0
  581. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/wmsparse/test/__init__.py +0 -0
  582. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/wmsparse/test/test_parse.py +0 -0
  583. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/wmsparse/test/test_util.py +0 -0
  584. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/wmsparse/test/wms-example-111.xml +0 -0
  585. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/wmsparse/test/wms-example-130.xml +0 -0
  586. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/wmsparse/test/wms-large-111.xml +0 -0
  587. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/wmsparse/test/wms_nasa_cap.xml +0 -0
  588. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ext/wmsparse/util.py +0 -0
  589. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/fs.py +0 -0
  590. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/geom.py +0 -0
  591. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/immutable_dict_list.py +0 -0
  592. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/jinja2_templates.py +0 -0
  593. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/lib.py +0 -0
  594. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/lock.py +0 -0
  595. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/lru.py +0 -0
  596. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ogcapi.py +0 -0
  597. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/ogr.py +0 -0
  598. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/py.py +0 -0
  599. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/sqlite3.py +0 -0
  600. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/times.py +0 -0
  601. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/util/yaml.py +0 -0
  602. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/version.py +0 -0
  603. {mapproxy-6.1.0 → mapproxy-6.1.1}/mapproxy/wsgiapp.py +0 -0
  604. {mapproxy-6.1.0 → mapproxy-6.1.1}/pyproject.toml +0 -0
  605. {mapproxy-6.1.0 → mapproxy-6.1.1}/setup.cfg +0 -0
@@ -1,3 +1,18 @@
1
+ 6.1.1 2026-06-17
2
+ ~~~~~~~~~~~~~~~~
3
+
4
+ Maintenance:
5
+
6
+ - Update dependencies
7
+
8
+ Fixes:
9
+
10
+ - ImageResult.as_buffer will always return image mode rgba if requested
11
+ - Restore context manager protocol on ProxyConfiguration
12
+ - Fix base path for rendering OGC API HTML pages in multi mapproxy setups
13
+ - Fix determination of resolutions in WMTS demo
14
+
15
+
1
16
  6.1.0 2026-06-03
2
17
  ~~~~~~~~~~~~~~~~
3
18
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: MapProxy
3
- Version: 6.1.0
3
+ Version: 6.1.1
4
4
  Summary: An accelerating proxy for tile and web map services
5
5
  Home-page: https://mapproxy.org
6
6
  Author: Oliver Tonnhofer
@@ -63,6 +63,21 @@ The documentation is available at: http://mapproxy.github.io/mapproxy/latest/
63
63
 
64
64
  Changes
65
65
  -------
66
+ 6.1.1 2026-06-17
67
+ ~~~~~~~~~~~~~~~~
68
+
69
+ Maintenance:
70
+
71
+ - Update dependencies
72
+
73
+ Fixes:
74
+
75
+ - ImageResult.as_buffer will always return image mode rgba if requested
76
+ - Restore context manager protocol on ProxyConfiguration
77
+ - Fix base path for rendering OGC API HTML pages in multi mapproxy setups
78
+ - Fix determination of resolutions in WMTS demo
79
+
80
+
66
81
  6.1.0 2026-06-03
67
82
  ~~~~~~~~~~~~~~~~
68
83
 
@@ -197,17 +212,6 @@ Fixes:
197
212
  - An lxml encoding error is fixed
198
213
 
199
214
 
200
- 4.1.2 2025-05-27
201
- ~~~~~~~~~~~~~~~~
202
-
203
- Maintenance:
204
-
205
- - Set Pillow versions in setup.py to actually supported versions
206
- - Using PIL instead of Pillow was not working since Python 2, so it is removed from setup.py
207
- - Using a higher pyproj version for Python 3.13 is necessary
208
- - Added a test for an older Pillow version with Python 3.9
209
-
210
-
211
215
 
212
216
  Older changes
213
217
  -------------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: MapProxy
3
- Version: 6.1.0
3
+ Version: 6.1.1
4
4
  Summary: An accelerating proxy for tile and web map services
5
5
  Home-page: https://mapproxy.org
6
6
  Author: Oliver Tonnhofer
@@ -63,6 +63,21 @@ The documentation is available at: http://mapproxy.github.io/mapproxy/latest/
63
63
 
64
64
  Changes
65
65
  -------
66
+ 6.1.1 2026-06-17
67
+ ~~~~~~~~~~~~~~~~
68
+
69
+ Maintenance:
70
+
71
+ - Update dependencies
72
+
73
+ Fixes:
74
+
75
+ - ImageResult.as_buffer will always return image mode rgba if requested
76
+ - Restore context manager protocol on ProxyConfiguration
77
+ - Fix base path for rendering OGC API HTML pages in multi mapproxy setups
78
+ - Fix determination of resolutions in WMTS demo
79
+
80
+
66
81
  6.1.0 2026-06-03
67
82
  ~~~~~~~~~~~~~~~~
68
83
 
@@ -197,17 +212,6 @@ Fixes:
197
212
  - An lxml encoding error is fixed
198
213
 
199
214
 
200
- 4.1.2 2025-05-27
201
- ~~~~~~~~~~~~~~~~
202
-
203
- Maintenance:
204
-
205
- - Set Pillow versions in setup.py to actually supported versions
206
- - Using PIL instead of Pillow was not working since Python 2, so it is removed from setup.py
207
- - Using a higher pyproj version for Python 3.13 is necessary
208
- - Added a test for an older Pillow version with Python 3.9
209
-
210
-
211
215
 
212
216
  Older changes
213
217
  -------------
@@ -186,11 +186,18 @@ class ProxyConfiguration(object):
186
186
  self.services = ServiceConfiguration(self.configuration.get('services', {}), context=self)
187
187
 
188
188
  def configured_services(self):
189
+ with self:
190
+ return self.services.services()
191
+
192
+ def __enter__(self):
193
+ # push local base_config onto config stack
189
194
  import mapproxy.config.config
190
195
  mapproxy.config.config._config.push(self.base_config)
191
- services = self.services.services()
196
+
197
+ def __exit__(self, type, value, traceback):
198
+ # pop local base_config from config stack
199
+ import mapproxy.config.config
192
200
  mapproxy.config.config._config.pop()
193
- return services
194
201
 
195
202
  @property
196
203
  def base_config(self):
@@ -242,7 +242,8 @@ class ImageResult(BaseImageResult):
242
242
  # need actual image_opts.format for next check
243
243
  self.image_opts = self.image_opts.copy()
244
244
  self.image_opts.format = peek_image_format(buf)
245
- if self.image_opts and image_opts and self.image_opts.format != image_opts.format:
245
+ if self.image_opts and image_opts and (
246
+ self.image_opts.format != image_opts.format or self.image_opts.mode != image_opts.mode):
246
247
  log.debug('converting image from %s -> %s' % (self.image_opts, image_opts))
247
248
  self.image = self.as_image()
248
249
  self._buf = None
@@ -419,6 +420,9 @@ def img_to_buf(img: Image.Image, image_opts, georef=None) -> BytesIO:
419
420
  and 'transparency' in img.info and isinstance(img.info['transparency'], tuple)):
420
421
  del img.info['transparency']
421
422
 
423
+ if image_opts.mode is not None and img.mode != image_opts.mode:
424
+ img = img.convert(image_opts.mode)
425
+
422
426
  img.save(buf, format, **defaults)
423
427
  buf.seek(0)
424
428
  return buf
@@ -352,11 +352,13 @@ class DemoServer(Server):
352
352
  background_url = base_config().background.url
353
353
  if self.background:
354
354
  background_url = self.background["url"]
355
+
356
+ res = [wmts_layer.grid.resolutions[k] for k in list(wmts_layer.grid.resolutions)]
355
357
  return template.substitute(layer=wmts_layer,
356
358
  matrix_set=wmts_layer.grid.name,
357
359
  format=escape_html(req.args['format']),
358
360
  srs=escape_html(req.args['srs']),
359
- resolutions=wmts_layer.grid.resolutions,
361
+ resolutions=res,
360
362
  units=units,
361
363
  all_tile_layers=self.tile_layers,
362
364
  rest_enabled=rest_enabled,
@@ -113,9 +113,13 @@ def api(server: OGCAPIServer, req: Request):
113
113
 
114
114
  oas["info"] = info
115
115
 
116
+ server_url = cfg["server"]["url"]
117
+ if not req.script_url.endswith("/ogcapi"):
118
+ server_url = server.create_href(req, "/ogcapi")
119
+
116
120
  oas["servers"] = [
117
121
  {
118
- "url": cfg["server"]["url"],
122
+ "url": server_url,
119
123
  }
120
124
  ]
121
125
  server_description = _get(cfg, "metadata", "identification", "description")
@@ -307,6 +307,11 @@ class OGCAPIServer(Server):
307
307
  headers.update(self.response_headers)
308
308
 
309
309
  if self.is_html_req(req):
310
+ # Add the ogc_api_base to render the HTML response.
311
+ # In this case it is used in the templates to get the correct
312
+ # resource urls especially in multi-mapproxy setups
313
+ json_resp["ogc_api_base"] = self.create_href(req, "/ogcapi")
314
+
310
315
  content = render_j2_template(
311
316
  self.get_pygeoapi_config(req),
312
317
  service_package.__package__,
@@ -4,13 +4,13 @@
4
4
  {% if config['server']['icon'] %}
5
5
  {% set icon = config['server']['icon'] %}
6
6
  {% else %}
7
- {% set icon = config['server']['url'] + '/static/img/favicon.ico' %}
7
+ {% set icon = data['ogc_api_base'] + '/static/img/favicon.ico' %}
8
8
  {% endif %}
9
9
 
10
10
  {% if config['server']['logo'] %}
11
11
  {% set logo = config['server']['logo'] %}
12
12
  {% else %}
13
- {% set logo = config['server']['url'] + '/static/img/logo.png' %}
13
+ {% set logo = data['ogc_api_base'] + '/static/img/logo.png' %}
14
14
  {% endif %}
15
15
 
16
16
  <head>
@@ -21,8 +21,8 @@
21
21
  <meta name="description" content="{{ config['metadata']['identification']['title'] }}">
22
22
  <meta name="keywords" content="{{ config['metadata']['identification']['keywords']|join(',') }}">
23
23
  <link rel="shortcut icon" href="{{ icon }}" type="image/x-icon">
24
- <link rel="stylesheet" href="{{ config['server']['url'] }}/static/css/bootstrap.min.css">
25
- <link rel="stylesheet" href="{{ config['server']['url'] }}/static/css/default.css">
24
+ <link rel="stylesheet" href="{{ data['ogc_api_base'] }}/static/css/bootstrap.min.css">
25
+ <link rel="stylesheet" href="{{ data['ogc_api_base'] }}/static/css/default.css">
26
26
  <meta name="twitter:image:src" content="{% block thumb %}{% endblock %}{% if not self.thumb() %}{{ logo }}{% endif %}" />
27
27
  <meta property="og:image" content="{{ self.thumb() }}{% if not self.thumb() %}{{ logo }}{% endif %}" />
28
28
  <meta name="twitter:site" content="{{ config['metadata']['identification']['title'] }}" />
@@ -48,7 +48,7 @@
48
48
  <div class="bg-light sticky-top border-bottom">
49
49
  <div class="container">
50
50
  <header class="d-flex flex-wrap align-items-center py-3 justify-content-between">
51
- <a href="{{ config['server']['url'] }}"
51
+ <a href="{{ data['ogc_api_base'] }}"
52
52
  class="d-flex align-items-center mb-3 mb-md-0 text-dark text-decoration-none">
53
53
  <img src="{{ logo }}"
54
54
  title="{{ config['metadata']['identification']['title'] }}" style="height:40px;vertical-align: middle;" /></a>
@@ -60,7 +60,7 @@
60
60
  {% endif %}
61
61
  {% if config['server']['admin'] %}
62
62
  <li class="nav-item">
63
- <a href="{{ config['server']['url'] }}/admin/config" class="nav-link" aria-current="page">{% trans %}Admin{% endtrans %}</a>
63
+ <a href="{{ data['ogc_api_base'] }}/admin/config" class="nav-link" aria-current="page">{% trans %}Admin{% endtrans %}</a>
64
64
  </li>
65
65
  {% endif %}
66
66
  <!--
@@ -76,7 +76,7 @@
76
76
  <div class="row">
77
77
  <div class="col-sm-12">
78
78
  {% block crumbs %}
79
- <a href="{{ config['server']['url'] }}">{% trans %}Home{% endtrans %}</a>
79
+ <a href="{{ data['ogc_api_base'] }}">{% trans %}Home{% endtrans %}</a>
80
80
  {% endblock %}
81
81
  <span style="float: inline-end">
82
82
  {% set links_found = namespace(json=0, jsonld=0) %}
@@ -114,10 +114,10 @@
114
114
  <footer class="sticky-bottom bg-light d-flex justify-content-center align-items-center py-3 px-3 border-top">
115
115
  <div class="text-center w-100">
116
116
  {% trans %}Powered by {% endtrans %}
117
- <a title="mapproxy" href="https://mapproxy.org/"><img src="{{ config['server']['url'] }}/static/img/logo.png" class="mx-1" title="mapproxy logo" style="height:24px;vertical-align: middle;" /> MapProxy</a>
117
+ <a title="mapproxy" href="https://mapproxy.org/"><img src="{{ data['ogc_api_base'] }}/static/img/logo.png" class="mx-1" title="mapproxy logo" alt="mapproxy logo" style="height:24px;vertical-align: middle;" /> MapProxy</a>
118
118
  {{ version }}
119
119
  <br>
120
- (HTML theming based on <a title="mapproxy" href="https://pygeoapi.io/"><img src="/ogcapi/static/img/pygeoapi-logo.png" class="mx-1" title="pygeoapi logo" style="height:24px;vertical-align: middle;" /></a>)
120
+ (HTML theming based on <a title="mapproxy" href="https://pygeoapi.io/"><img src="{{ data['ogc_api_base'] }}/static/img/pygeoapi-logo.png" class="mx-1" title="pygeoapi logo" alt="pygeoapi logo" style="height:24px;vertical-align: middle;" /></a>)
121
121
  </div>
122
122
  </footer>
123
123
  {% block extrafoot %}
@@ -9,9 +9,9 @@
9
9
 
10
10
  {% block extrahead %}
11
11
 
12
- <script src="{{ config['server']['url'] }}/static/ol.js"></script>
13
- <script src="{{ config['server']['url'] }}/static/proj4.min.js"></script>
14
- <link rel="stylesheet" href="{{ config['server']['url'] }}/static/ol.css"/>
12
+ <script src="{{ data['ogc_api_base'] }}/static/ol.js"></script>
13
+ <script src="{{ data['ogc_api_base'] }}/static/proj4.min.js"></script>
14
+ <link rel="stylesheet" href="{{ data['ogc_api_base'] }}/static/ol.css"/>
15
15
 
16
16
  {% endblock %}
17
17
 
@@ -93,7 +93,7 @@ let init;
93
93
  const extent = {{ data['extent'] }};
94
94
 
95
95
  if (!ol.proj.get(srs)) {
96
- const projDefsUrl = "{{ config['server']['url'] }}/static/proj4defs.js";
96
+ const projDefsUrl = "{{ data['ogc_api_base'] }}/static/proj4defs.js";
97
97
  const allDefs = await import(projDefsUrl);
98
98
  const srsNum = srs.indexOf(':') > -1 ? parseInt(srs.split(':')[1]) : parseInt(srs);
99
99
  if (!allDefs.defs[srsNum]) {
@@ -155,7 +155,7 @@ let init;
155
155
  const storageCrs = "{{ data['storageCrs'] }}";
156
156
 
157
157
  if (!ol.proj.get(srs)) {
158
- const projDefsUrl = "{{ config['server']['url'] }}/static/proj4defs.js";
158
+ const projDefsUrl = "{{ data['ogc_api_base'] }}/static/proj4defs.js";
159
159
  const allDefs = await import(projDefsUrl);
160
160
  const srsNum = srs.indexOf(':') > -1 ? parseInt(srs.split(':')[1]) : parseInt(srs);
161
161
  if (!allDefs.defs[srsNum]) {
@@ -61,7 +61,7 @@
61
61
  <section id="collections">
62
62
  <h2>{% trans %}Collections{% endtrans %}</h2>
63
63
  <p>
64
- <a href="{{ config['server']['url'] }}/collections?f=html">{% trans %}View the collections in this service{% endtrans %}</a>
64
+ <a href="{{ data['ogc_api_base'] }}/collections?f=html">{% trans %}View the collections in this service{% endtrans %}</a>
65
65
  </p>
66
66
  </section>
67
67
  {% endif %}
@@ -69,7 +69,7 @@
69
69
  <section id="collections">
70
70
  <h2>{% trans %}SpatioTemporal Assets{% endtrans %}</h2>
71
71
  <p>
72
- <a href="{{ config['server']['url'] }}/stac?f=html">{% trans %}View the SpatioTemporal Assets in this service{% endtrans %}</a>
72
+ <a href="{{ data['ogc_api_base'] }}/stac?f=html">{% trans %}View the SpatioTemporal Assets in this service{% endtrans %}</a>
73
73
  </p>
74
74
  </section>
75
75
  {% endif %}
@@ -77,7 +77,7 @@
77
77
  <section id="processes">
78
78
  <h2>{% trans %}Processes{% endtrans %}</h2>
79
79
  <p>
80
- <a href="{{ config['server']['url'] }}/processes?f=html">{% trans %}View the processes in this service{% endtrans %}</a>
80
+ <a href="{{ data['ogc_api_base'] }}/processes?f=html">{% trans %}View the processes in this service{% endtrans %}</a>
81
81
  </p>
82
82
  </section>
83
83
  <section id="jobs">
@@ -90,23 +90,23 @@
90
90
  <section id="openapi">
91
91
  <h2>{% trans %}API Definition{% endtrans %}</h2>
92
92
  <p>
93
- {% trans %}Documentation{% endtrans %}: <a href="{{ config['server']['url'] }}/api?f=html">{% trans %}Swagger UI{% endtrans %}</a> <a href="{{ config['server']['url'] }}/api?f=html&ui=redoc">{% trans %}ReDoc{% endtrans %}</a>
93
+ {% trans %}Documentation{% endtrans %}: <a href="{{ data['ogc_api_base'] }}/api?f=html">{% trans %}Swagger UI{% endtrans %}</a> | <a href="{{ data['ogc_api_base'] }}/api?f=html&ui=redoc">{% trans %}ReDoc{% endtrans %}</a>
94
94
  </p>
95
95
  <p>
96
- <a href="{{ config['server']['url'] }}/api?f=json">{% trans %}OpenAPI Document{% endtrans %}</a>
96
+ <a href="{{ data['ogc_api_base'] }}/api?f=json">{% trans %}OpenAPI Document{% endtrans %}</a>
97
97
  </p>
98
98
  </section>
99
99
  <section id="conformance">
100
100
  <h2>{% trans %}Conformance{% endtrans %}</h2>
101
101
  <p>
102
- <a href="{{ config['server']['url'] }}/conformance?f=html">{% trans %}View the conformance classes of this service{% endtrans %}</a>
102
+ <a href="{{ data['ogc_api_base'] }}/conformance?f=html">{% trans %}View the conformance classes of this service{% endtrans %}</a>
103
103
  </p>
104
104
  </section>
105
105
  {% if data['tile'] %}
106
106
  <section id="tilematrixsets">
107
107
  <h2>{% trans %}Tile Matrix Sets{% endtrans %}</h2>
108
108
  <p>
109
- <a href="{{ config['server']['url'] }}/tileMatrixSets?f=html">{% trans %}View the Tile Matrix Sets available on this service{% endtrans %}</a>
109
+ <a href="{{ data['ogc_api_base'] }}/tileMatrixSets?f=html">{% trans %}View the Tile Matrix Sets available on this service{% endtrans %}</a>
110
110
  </p>
111
111
  </section>
112
112
  {% endif %}
@@ -114,10 +114,10 @@
114
114
  <section id="dataset_map">
115
115
  <h2>{% trans %}Dataset maps{% endtrans %}</h2>
116
116
  <p>
117
- <a href="{{ config['server']['url'] }}/map.png">{% trans %}Default map of the whole dataset (as PNG){% endtrans %}</a>
117
+ <a href="{{ data['ogc_api_base'] }}/map.png">{% trans %}Default map of the whole dataset (as PNG){% endtrans %}</a>
118
118
  </p>
119
119
  <p>
120
- <a href="{{ config['server']['url'] }}/map.jpg">{% trans %}Default map of the whole dataset (as JPEG){% endtrans %}</a>
120
+ <a href="{{ data['ogc_api_base'] }}/map.jpg">{% trans %}Default map of the whole dataset (as JPEG){% endtrans %}</a>
121
121
  </p>
122
122
  </section>
123
123
  {% endif %}
@@ -125,10 +125,10 @@
125
125
  <section id="dataset_tiles">
126
126
  <h2>{% trans %}Dataset tilesets{% endtrans %}</h2>
127
127
  <p>
128
- <a href="{{ config['server']['url'] }}/map/tiles?f=html">{% trans %}Default tilesets for the whole dataset (as HTML){% endtrans %}</a>
128
+ <a href="{{ data['ogc_api_base'] }}/map/tiles?f=html">{% trans %}Default tilesets for the whole dataset (as HTML){% endtrans %}</a>
129
129
  </p>
130
130
  <p>
131
- <a href="{{ config['server']['url'] }}/map/tiles?f=json">{% trans %}Default tilesets for the whole dataset (as JSON){% endtrans %}</a>
131
+ <a href="{{ data['ogc_api_base'] }}/map/tiles?f=json">{% trans %}Default tilesets for the whole dataset (as JSON){% endtrans %}</a>
132
132
  </p>
133
133
  </section>
134
134
  {% endif %}
@@ -4,7 +4,7 @@
4
4
  <title>ReDoc - {{ config['metadata']['identification']['title'] }}</title>
5
5
  <meta charset="utf-8"/>
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1">
7
- <link href="{{ config['server']['url'] }}/static/fonts_montserra_roboto.css" rel="stylesheet">
7
+ <link href="{{ data['openapi-document-path'] }}/../static/fonts_montserra_roboto.css" rel="stylesheet">
8
8
  <style>
9
9
  body {
10
10
  margin: 0;
@@ -14,6 +14,6 @@
14
14
  </head>
15
15
  <body>
16
16
  <redoc spec-url='{{ data['openapi-document-path'] }}?f=json'></redoc>
17
- <script src="{{ config['server']['url'] }}/static/redoc.standalone.js"> </script>
17
+ <script src="{{ data['openapi-document-path'] }}/../static/redoc.standalone.js"> </script>
18
18
  </body>
19
19
  </html>
@@ -4,9 +4,9 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
  <title>Swagger UI - {{ config['metadata']['identification']['title'] }}</title>
7
- <link rel="stylesheet" type="text/css" href="{{ config['server']['url'] }}/static/swagger-ui-dist/swagger-ui.css" >
8
- <link rel="icon" type="image/png" href="{{ config['server']['url'] }}/static/swagger-ui-dist/favicon-32x32.png" sizes="32x32" />
9
- <link rel="icon" type="image/png" href="{{ config['server']['url'] }}/static/swagger-ui-dist/favicon-16x16.png" sizes="16x16" />
7
+ <link rel="stylesheet" type="text/css" href="{{ data['openapi-document-path'] }}/../static/swagger-ui-dist/swagger-ui.css" >
8
+ <link rel="icon" type="image/png" href="{{ data['openapi-document-path'] }}/../static/swagger-ui-dist/favicon-32x32.png" sizes="32x32" />
9
+ <link rel="icon" type="image/png" href="{{ data['openapi-document-path'] }}/../static/swagger-ui-dist/favicon-16x16.png" sizes="16x16" />
10
10
  <style>
11
11
  html
12
12
  {
@@ -30,8 +30,8 @@
30
30
 
31
31
  <body>
32
32
  <div id="swagger-ui"></div>
33
- <script src="{{ config['server']['url'] }}/static/swagger-ui-dist/swagger-ui-bundle.js"> </script>
34
- <script src="{{ config['server']['url'] }}/static/swagger-ui-dist/swagger-ui-standalone-preset.js"> </script>
33
+ <script src="{{ data['openapi-document-path'] }}/../static/swagger-ui-dist/swagger-ui-bundle.js"> </script>
34
+ <script src="{{ data['openapi-document-path'] }}/../static/swagger-ui-dist/swagger-ui-standalone-preset.js"> </script>
35
35
  <script>
36
36
  window.onload = function() {
37
37
  // Begin Swagger UI call region
@@ -10,9 +10,9 @@
10
10
  {% endblock %}
11
11
 
12
12
  {% block extrahead %}
13
- <script src="{{ config['server']['url'] }}/static/ol.js"></script>
14
- <script src="{{ config['server']['url'] }}/static/proj4.min.js"></script>
15
- <link rel="stylesheet" href="{{ config['server']['url'] }}/static/ol.css"/>
13
+ <script src="{{ data['ogc_api_base'] }}/static/ol.js"></script>
14
+ <script src="{{ data['ogc_api_base'] }}/static/proj4.min.js"></script>
15
+ <link rel="stylesheet" href="{{ data['ogc_api_base'] }}/static/ol.css"/>
16
16
 
17
17
  {% endblock %}
18
18
 
@@ -54,7 +54,7 @@
54
54
  const extent = {{ data['extent'] }};
55
55
 
56
56
  if (!ol.proj.get(srs)) {
57
- const projDefsUrl = "{{ config['server']['url'] }}/static/proj4defs.js";
57
+ const projDefsUrl = "{{ data['ogc_api_base'] }}/static/proj4defs.js";
58
58
  const allDefs = await import(projDefsUrl);
59
59
  const srsNum = srs.indexOf(':') > -1 ? parseInt(srs.split(':')[1]) : parseInt(srs);
60
60
  if (!allDefs.defs[srsNum]) {
@@ -267,6 +267,30 @@ class TestLayerConfiguration(object):
267
267
  assert False, 'expected ConfigurationError'
268
268
 
269
269
 
270
+ class TestProxyConfigurationContextManager(object):
271
+ # mapproxy-seed enters the configuration with ``with mapproxy_conf:``;
272
+ # ProxyConfiguration must therefore support the context manager protocol
273
+ # (regression: it was lost when the loader was split, see #1442).
274
+ def test_context_manager_pushes_and_pops_base_config(self):
275
+ import mapproxy.config.config as mpconfig
276
+
277
+ conf = ProxyConfiguration({})
278
+ before = mpconfig._config.top
279
+ with conf:
280
+ assert mpconfig._config.top is conf.base_config
281
+ assert mpconfig._config.top is before
282
+
283
+ def test_context_manager_pops_on_exception(self):
284
+ import mapproxy.config.config as mpconfig
285
+
286
+ conf = ProxyConfiguration({})
287
+ before = mpconfig._config.top
288
+ with pytest.raises(ValueError):
289
+ with conf:
290
+ raise ValueError
291
+ assert mpconfig._config.top is before
292
+
293
+
270
294
  class TestGridConfiguration(object):
271
295
  def test_default_grids(self):
272
296
  conf = {}
@@ -191,6 +191,34 @@ class TestImageResult(object):
191
191
  img = Image.open(ir.as_buffer())
192
192
  assert img.mode == "P"
193
193
 
194
+ def test_rgb_image_as_buffer_with_rgba_mode(self):
195
+ # Regression test for https://github.com/mapproxy/mapproxy/issues/1354
196
+ # When mode=RGBA is requested, an RGB source image must be returned as
197
+ # RGBA PNG, not RGB PNG, regardless of whether it contains transparency.
198
+ img = Image.new("RGB", (10, 10), (255, 0, 0))
199
+ ir = ImageResult(img, image_opts=PNG_FORMAT)
200
+ rgba_opts = ImageOptions(mode="RGBA", transparent=True, format="image/png")
201
+ result = Image.open(ir.as_buffer(rgba_opts))
202
+ assert result.mode == "RGBA", (
203
+ "Expected RGBA PNG when mode=RGBA requested, got %s" % result.mode
204
+ )
205
+
206
+ def test_rgb_buf_as_buffer_with_rgba_mode(self):
207
+ # Regression test for https://github.com/mapproxy/mapproxy/issues/1354
208
+ # When an upstream source returns an opaque RGB PNG buffer and mode=RGBA
209
+ # is explicitly configured, as_buffer must re-encode to RGBA, not pass
210
+ # through the RGB bytes unchanged.
211
+ src = BytesIO()
212
+ Image.new("RGB", (10, 10), (255, 0, 0)).save(src, "png")
213
+ src.seek(0)
214
+ src_opts = ImageOptions(format="image/png", transparent=False)
215
+ ir = ImageResult(src, image_opts=src_opts)
216
+ rgba_opts = ImageOptions(mode="RGBA", transparent=True, format="image/png")
217
+ result = Image.open(ir.as_buffer(rgba_opts))
218
+ assert result.mode == "RGBA", (
219
+ "Expected RGBA PNG when mode=RGBA requested, got %s" % result.mode
220
+ )
221
+
194
222
 
195
223
  class TestSubImageResult(object):
196
224
 
@@ -489,6 +517,22 @@ class TestLayerMerge(object):
489
517
  img = result.as_image()
490
518
  assert img.getpixel((0, 0)) == (255, 0, 255)
491
519
 
520
+ def test_single_opaque_rgb_layer_with_rgba_output(self):
521
+ # Regression test for https://github.com/mapproxy/mapproxy/issues/1354
522
+ # A single fully-opaque RGB source layer must produce an RGBA PNG when
523
+ # the requested ImageOptions specify mode=RGBA / transparent=True.
524
+ # Previously the single-layer shortcut in LayerMerger.merge() returned
525
+ # the source layer unchanged, so the RGB bytes were passed through
526
+ # without being converted.
527
+ source = ImageResult(Image.new("RGB", (10, 10), (255, 0, 0)))
528
+ rgba_opts = ImageOptions(mode="RGBA", transparent=True, format="image/png")
529
+ result = merge_images([(source, None)], rgba_opts)
530
+ output = Image.open(result.as_buffer(rgba_opts))
531
+ assert output.mode == "RGBA", (
532
+ "Expected RGBA PNG for opaque source when mode=RGBA requested, got %s"
533
+ % output.mode
534
+ )
535
+
492
536
 
493
537
  @pytest.mark.skipif(
494
538
  not hasattr(Image, "alpha_composite"), reason="PIL has no alpha_composite"
@@ -2,7 +2,7 @@ attrs==23.2.0
2
2
  aws-sam-translator==1.91.0
3
3
  aws-xray-sdk==2.12.1
4
4
  azure-storage-blob==12.27.1
5
- beautifulsoup4==4.12.3
5
+ beautifulsoup4==4.14.3
6
6
  boto3==1.40.55
7
7
  botocore==1.40.55
8
8
  certifi==2025.4.26
@@ -10,10 +10,10 @@ cffi==2.0.0
10
10
  cfn-lint==0.80.3
11
11
  chardet==5.2.0
12
12
  coverage==7.11.3
13
- cryptography==46.0.5
13
+ cryptography==46.0.7
14
14
  decorator==5.2.1
15
15
  docker==7.1.0
16
- docutils==0.21.2
16
+ docutils==0.22.4
17
17
  ecdsa==0.18.0
18
18
  flake8==7.0.0
19
19
  flake8-toml-config==1.0.0
@@ -42,11 +42,11 @@ pluggy==1.6.0
42
42
  py==1.11.0
43
43
  pyasn1==0.6.3
44
44
  pycparser==2.22
45
- pyparsing==3.2.3
45
+ pyparsing==3.3.2
46
46
  pyproj==3.7.1
47
47
  pyrsistent==0.20.0
48
48
  pytest-rerunfailures==16.0.1
49
- pytest==8.3.2
49
+ pytest==9.0.3
50
50
  python-dateutil==2.9.0.post0
51
51
  python-jose==3.5.0
52
52
  pytz==2024.2
@@ -44,7 +44,7 @@ def long_description(changelog_releases=10):
44
44
 
45
45
  setup(
46
46
  name='MapProxy',
47
- version="6.1.0",
47
+ version="6.1.1",
48
48
  description='An accelerating proxy for tile and web map services',
49
49
  long_description=long_description(7),
50
50
  long_description_content_type='text/x-rst',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes