MapProxy 3.0.1__tar.gz → 3.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 (522) hide show
  1. {MapProxy-3.0.1 → MapProxy-3.1.1}/CHANGES.txt +29 -0
  2. {MapProxy-3.0.1 → MapProxy-3.1.1}/MapProxy.egg-info/PKG-INFO +33 -22
  3. {MapProxy-3.0.1 → MapProxy-3.1.1}/MapProxy.egg-info/SOURCES.txt +2 -0
  4. {MapProxy-3.0.1 → MapProxy-3.1.1}/MapProxy.egg-info/requires.txt +1 -1
  5. {MapProxy-3.0.1 → MapProxy-3.1.1}/PKG-INFO +33 -22
  6. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/caches.rst +21 -1
  7. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/configuration.rst +5 -0
  8. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/coverages.rst +1 -1
  9. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/base.py +5 -2
  10. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/compact.py +50 -17
  11. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/file.py +7 -3
  12. MapProxy-3.1.1/mapproxy/cache/geopackage.py +672 -0
  13. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/legend.py +8 -2
  14. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/mbtiles.py +49 -40
  15. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/path.py +18 -12
  16. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config/loader.py +162 -15
  17. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config/spec.py +12 -0
  18. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/seed/config.py +2 -0
  19. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/tms_demo.html +1 -1
  20. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/helper.py +31 -1
  21. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_cache.py +51 -0
  22. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_cache_compact.py +32 -0
  23. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_cache_geopackage.py +25 -1
  24. MapProxy-3.1.1/mapproxy/test/unit/test_cache_mbtile.py +153 -0
  25. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_cache_tile.py +26 -112
  26. MapProxy-3.1.1/mapproxy/test/unit/test_fs.py +30 -0
  27. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_utils.py +30 -2
  28. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/lockfile.py +8 -2
  29. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/fs.py +14 -3
  30. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/lock.py +12 -14
  31. {MapProxy-3.0.1 → MapProxy-3.1.1}/requirements-tests.txt +5 -5
  32. {MapProxy-3.0.1 → MapProxy-3.1.1}/setup.py +5 -2
  33. MapProxy-3.0.1/mapproxy/cache/geopackage.py +0 -647
  34. {MapProxy-3.0.1 → MapProxy-3.1.1}/AUTHORS.txt +0 -0
  35. {MapProxy-3.0.1 → MapProxy-3.1.1}/COPYING.txt +0 -0
  36. {MapProxy-3.0.1 → MapProxy-3.1.1}/LICENSE.txt +0 -0
  37. {MapProxy-3.0.1 → MapProxy-3.1.1}/MANIFEST.in +0 -0
  38. {MapProxy-3.0.1 → MapProxy-3.1.1}/MapProxy.egg-info/dependency_links.txt +0 -0
  39. {MapProxy-3.0.1 → MapProxy-3.1.1}/MapProxy.egg-info/entry_points.txt +0 -0
  40. {MapProxy-3.0.1 → MapProxy-3.1.1}/MapProxy.egg-info/not-zip-safe +0 -0
  41. {MapProxy-3.0.1 → MapProxy-3.1.1}/MapProxy.egg-info/top_level.txt +0 -0
  42. {MapProxy-3.0.1 → MapProxy-3.1.1}/README.md +0 -0
  43. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/GM.txt +0 -0
  44. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/_static/logo.png +0 -0
  45. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/_static/logo_title.png +0 -0
  46. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/_static/mapproxy.css +0 -0
  47. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/_templates/versions.html +0 -0
  48. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/auth.rst +0 -0
  49. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/caching_layer_dimensions.rst +0 -0
  50. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/conf.py +0 -0
  51. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/configuration_examples.rst +0 -0
  52. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/decorate_img.rst +0 -0
  53. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/deployment.rst +0 -0
  54. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/development.rst +0 -0
  55. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/bicubic.png +0 -0
  56. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/bilinear.png +0 -0
  57. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/labeling-dynamic.png +0 -0
  58. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/labeling-meta-buffer.png +0 -0
  59. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/labeling-metatiling-buffer.png +0 -0
  60. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/labeling-metatiling.png +0 -0
  61. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/labeling-no-clip.png +0 -0
  62. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/labeling-no-placement.png +0 -0
  63. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/labeling-partial-false.png +0 -0
  64. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/labeling-repeated.png +0 -0
  65. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/mapnik-webmerc-hq.png +0 -0
  66. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/mapnik-webmerc.png +0 -0
  67. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/mapproxy-demo.png +0 -0
  68. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/imgs/nearest.png +0 -0
  69. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/index.rst +0 -0
  70. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/inspire.rst +0 -0
  71. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/install.rst +0 -0
  72. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/install_docker.rst +0 -0
  73. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/install_osgeo4w.rst +0 -0
  74. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/install_windows.rst +0 -0
  75. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/labeling.rst +0 -0
  76. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/mapproxy_util.rst +0 -0
  77. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/mapproxy_util_autoconfig.rst +0 -0
  78. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/plugins.rst +0 -0
  79. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/seed.rst +0 -0
  80. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/services.rst +0 -0
  81. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/sources.rst +0 -0
  82. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/tutorial.rst +0 -0
  83. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/tutorial.yaml +0 -0
  84. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/yaml/cache_conf.yaml +0 -0
  85. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/yaml/grid_conf.yaml +0 -0
  86. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/yaml/merged_conf.yaml +0 -0
  87. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/yaml/meta_conf.yaml +0 -0
  88. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/yaml/seed.yaml +0 -0
  89. {MapProxy-3.0.1 → MapProxy-3.1.1}/doc/yaml/simple_conf.yaml +0 -0
  90. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/__init__.py +0 -0
  91. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/__init__.py +0 -0
  92. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/azureblob.py +0 -0
  93. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/couchdb.py +0 -0
  94. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/dummy.py +0 -0
  95. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/meta.py +0 -0
  96. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/redis.py +0 -0
  97. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/renderd.py +0 -0
  98. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/riak.py +0 -0
  99. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/s3.py +0 -0
  100. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/cache/tile.py +0 -0
  101. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/client/__init__.py +0 -0
  102. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/client/arcgis.py +0 -0
  103. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/client/cgi.py +0 -0
  104. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/client/http.py +0 -0
  105. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/client/log.py +0 -0
  106. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/client/tile.py +0 -0
  107. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/client/wms.py +0 -0
  108. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/compat/__init__.py +0 -0
  109. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/compat/image.py +0 -0
  110. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config/__init__.py +0 -0
  111. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config/config-schema.json +0 -0
  112. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config/config.py +0 -0
  113. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config/coverage.py +0 -0
  114. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config/defaults.py +0 -0
  115. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config/validator.py +0 -0
  116. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config_template/__init__.py +0 -0
  117. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config_template/base_config/config.wsgi +0 -0
  118. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config_template/base_config/full_example.yaml +0 -0
  119. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config_template/base_config/full_seed_example.yaml +0 -0
  120. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config_template/base_config/log.ini +0 -0
  121. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config_template/base_config/mapproxy.yaml +0 -0
  122. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/config_template/base_config/seed.yaml +0 -0
  123. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/exception.py +0 -0
  124. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/featureinfo.py +0 -0
  125. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/grid.py +0 -0
  126. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/image/__init__.py +0 -0
  127. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/image/fonts/DejaVuSans.ttf +0 -0
  128. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/image/fonts/DejaVuSansMono.ttf +0 -0
  129. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/image/fonts/LICENSE +0 -0
  130. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/image/fonts/__init__.py +0 -0
  131. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/image/mask.py +0 -0
  132. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/image/merge.py +0 -0
  133. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/image/message.py +0 -0
  134. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/image/opts.py +0 -0
  135. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/image/tile.py +0 -0
  136. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/image/transform.py +0 -0
  137. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/layer.py +0 -0
  138. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/multiapp.py +0 -0
  139. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/proj.py +0 -0
  140. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/request/__init__.py +0 -0
  141. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/request/arcgis.py +0 -0
  142. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/request/base.py +0 -0
  143. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/request/tile.py +0 -0
  144. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/request/wms/__init__.py +0 -0
  145. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/request/wms/exception.py +0 -0
  146. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/request/wmts.py +0 -0
  147. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/response.py +0 -0
  148. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/__init__.py +0 -0
  149. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/conf/__init__.py +0 -0
  150. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/conf/app.py +0 -0
  151. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/conf/caches.py +0 -0
  152. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/conf/geopackage.py +0 -0
  153. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/conf/layers.py +0 -0
  154. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/conf/seeds.py +0 -0
  155. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/conf/sources.py +0 -0
  156. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/conf/utils.py +0 -0
  157. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/defrag.py +0 -0
  158. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/export.py +0 -0
  159. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/grids.py +0 -0
  160. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/scales.py +0 -0
  161. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/util.py +0 -0
  162. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/script/wms_capabilities.py +0 -0
  163. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/seed/__init__.py +0 -0
  164. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/seed/cachelock.py +0 -0
  165. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/seed/cleanup.py +0 -0
  166. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/seed/script.py +0 -0
  167. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/seed/seeder.py +0 -0
  168. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/seed/spec.py +0 -0
  169. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/seed/util.py +0 -0
  170. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/__init__.py +0 -0
  171. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/base.py +0 -0
  172. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/demo.py +0 -0
  173. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/kml.py +0 -0
  174. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/ows.py +0 -0
  175. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/template_helper.py +0 -0
  176. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/capabilities_demo.html +0 -0
  177. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/demo.html +0 -0
  178. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/openlayers-demo.cfg +0 -0
  179. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/img/blank.gif +0 -0
  180. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/img/east-mini.png +0 -0
  181. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/img/north-mini.png +0 -0
  182. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/img/south-mini.png +0 -0
  183. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/img/west-mini.png +0 -0
  184. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/img/zoom-minus-mini.png +0 -0
  185. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/img/zoom-plus-mini.png +0 -0
  186. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/img/zoom-world-mini.png +0 -0
  187. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/logo.png +0 -0
  188. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/ol.css +0 -0
  189. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/ol.js +0 -0
  190. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/proj4.min.js +0 -0
  191. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/proj4defs.js +0 -0
  192. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/site.css +0 -0
  193. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/theme/default/framedCloud.css +0 -0
  194. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/theme/default/google.css +0 -0
  195. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/theme/default/ie6-style.css +0 -0
  196. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static/theme/default/style.css +0 -0
  197. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/static.html +0 -0
  198. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/wms_demo.html +0 -0
  199. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/demo/wmts_demo.html +0 -0
  200. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/ows_exception.xml +0 -0
  201. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/tms_capabilities.xml +0 -0
  202. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/tms_exception.xml +0 -0
  203. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/tms_root_resource.xml +0 -0
  204. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/tms_tilemap_capabilities.xml +0 -0
  205. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/wms100capabilities.xml +0 -0
  206. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/wms100exception.xml +0 -0
  207. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/wms110capabilities.xml +0 -0
  208. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/wms110exception.xml +0 -0
  209. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/wms111capabilities.xml +0 -0
  210. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/wms111exception.xml +0 -0
  211. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/wms130capabilities.xml +0 -0
  212. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/wms130exception.xml +0 -0
  213. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/wmts100capabilities.xml +0 -0
  214. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/templates/wmts100exception.xml +0 -0
  215. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/tile.py +0 -0
  216. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/wms.py +0 -0
  217. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/service/wmts.py +0 -0
  218. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/source/__init__.py +0 -0
  219. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/source/arcgis.py +0 -0
  220. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/source/error.py +0 -0
  221. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/source/mapnik.py +0 -0
  222. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/source/tile.py +0 -0
  223. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/source/wms.py +0 -0
  224. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/srs.py +0 -0
  225. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/template.py +0 -0
  226. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/__init__.py +0 -0
  227. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/conftest.py +0 -0
  228. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/http.py +0 -0
  229. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/image.py +0 -0
  230. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/mocker.py +0 -0
  231. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/common.xsd +0 -0
  232. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_bul.xsd +0 -0
  233. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_cze.xsd +0 -0
  234. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_dan.xsd +0 -0
  235. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_dut.xsd +0 -0
  236. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_eng.xsd +0 -0
  237. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_est.xsd +0 -0
  238. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_fin.xsd +0 -0
  239. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_fre.xsd +0 -0
  240. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_ger.xsd +0 -0
  241. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_gle.xsd +0 -0
  242. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_gre.xsd +0 -0
  243. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_hun.xsd +0 -0
  244. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_ita.xsd +0 -0
  245. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_lav.xsd +0 -0
  246. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_lit.xsd +0 -0
  247. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_mlt.xsd +0 -0
  248. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_pol.xsd +0 -0
  249. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_por.xsd +0 -0
  250. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_rum.xsd +0 -0
  251. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_slo.xsd +0 -0
  252. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_slv.xsd +0 -0
  253. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_spa.xsd +0 -0
  254. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_swe.xsd +0 -0
  255. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/common/1.0/network.xsd +0 -0
  256. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/inspire/inspire_vs/1.0/inspire_vs.xsd +0 -0
  257. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/kml/2.2.0/ReadMe.txt +0 -0
  258. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/kml/2.2.0/atom-author-link.xsd +0 -0
  259. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/kml/2.2.0/ogckml22.xsd +0 -0
  260. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/kml/2.2.0/xAL.xsd +0 -0
  261. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/ReadMe.txt +0 -0
  262. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/ows19115subset.xsd +0 -0
  263. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsAll.xsd +0 -0
  264. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsCommon.xsd +0 -0
  265. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsContents.xsd +0 -0
  266. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsDataIdentification.xsd +0 -0
  267. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsDomainType.xsd +0 -0
  268. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsExceptionReport.xsd +0 -0
  269. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsGetCapabilities.xsd +0 -0
  270. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsGetResourceByID.xsd +0 -0
  271. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsInputOutputData.xsd +0 -0
  272. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsManifest.xsd +0 -0
  273. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsOperationsMetadata.xsd +0 -0
  274. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsServiceIdentification.xsd +0 -0
  275. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/ows/1.1.0/owsServiceProvider.xsd +0 -0
  276. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/sld/1.1.0/sld_capabilities.xsd +0 -0
  277. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.dtd +0 -0
  278. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.xml +0 -0
  279. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.dtd +0 -0
  280. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.xml +0 -0
  281. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.dtd +0 -0
  282. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.xml +0 -0
  283. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.dtd +0 -0
  284. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.xml +0 -0
  285. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.1.1/OGC-exception.xsd +0 -0
  286. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.1.1/WMS_DescribeLayerResponse.dtd +0 -0
  287. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.1.1/WMS_MS_Capabilities.dtd +0 -0
  288. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd +0 -0
  289. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.dtd +0 -0
  290. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.xml +0 -0
  291. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.dtd +0 -0
  292. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.xml +0 -0
  293. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.3.0/ReadMe.txt +0 -0
  294. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xml +0 -0
  295. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xsd +0 -0
  296. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xml +0 -0
  297. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xsd +0 -0
  298. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmsc/1.1.1/OGC-exception.xsd +0 -0
  299. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmsc/1.1.1/WMS_DescribeLayerResponse.dtd +0 -0
  300. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmsc/1.1.1/WMS_MS_Capabilities.dtd +0 -0
  301. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmsc/1.1.1/WMS_exception_1_1_1.dtd +0 -0
  302. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.dtd +0 -0
  303. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.xml +0 -0
  304. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.dtd +0 -0
  305. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.xml +0 -0
  306. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmts/1.0/ReadMe.txt +0 -0
  307. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmts/1.0/wmts.xsd +0 -0
  308. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsAbstract.wsdl +0 -0
  309. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_request.xsd +0 -0
  310. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_response.xsd +0 -0
  311. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_request.xsd +0 -0
  312. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_response.xsd +0 -0
  313. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetTile_request.xsd +0 -0
  314. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsKVP.xsd +0 -0
  315. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/wmts/1.0/wmtsPayload_response.xsd +0 -0
  316. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/xlink/1.0.0/ReadMe.txt +0 -0
  317. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/xlink/1.0.0/xlinks.xsd +0 -0
  318. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/schemas/xml.xsd +0 -0
  319. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/__init__.py +0 -0
  320. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/arcgis.yaml +0 -0
  321. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/auth.yaml +0 -0
  322. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache.mbtiles +0 -0
  323. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache_azureblob.yaml +0 -0
  324. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache_band_merge.yaml +0 -0
  325. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache_bulk_meta_tiles.yaml +0 -0
  326. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache_coverage.yaml +0 -0
  327. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache_data/dop_cache_EPSG3857/00/000/000/000/000/000/000.png +0 -0
  328. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache_data/wms_cache_EPSG900913/01/000/000/000/000/000/001.jpeg +0 -0
  329. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache_data/wms_cache_transparent_EPSG900913/01/000/000/000/000/000/001.png +0 -0
  330. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache_geopackage.yaml +0 -0
  331. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache_grid_names.yaml +0 -0
  332. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache_mbtiles.yaml +0 -0
  333. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache_s3.yaml +0 -0
  334. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/cache_source.yaml +0 -0
  335. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/combined_sources.yaml +0 -0
  336. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/coverage.yaml +0 -0
  337. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/demo.yaml +0 -0
  338. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/dimension.yaml +0 -0
  339. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/disable_storage.yaml +0 -0
  340. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/empty_ogrdata.geojson +0 -0
  341. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/formats.yaml +0 -0
  342. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/inspire.yaml +0 -0
  343. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/inspire_full.yaml +0 -0
  344. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/kml_layer.yaml +0 -0
  345. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/layer.yaml +0 -0
  346. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/layergroups.yaml +0 -0
  347. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/layergroups_root.yaml +0 -0
  348. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/legendgraphic.yaml +0 -0
  349. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/mapnik_source.yaml +0 -0
  350. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/mapproxy_export.yaml +0 -0
  351. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/mapserver.yaml +0 -0
  352. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/minimal_cgi.py +0 -0
  353. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/mixed_mode.yaml +0 -0
  354. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/multi_cache_layers.yaml +0 -0
  355. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/multiapp1.yaml +0 -0
  356. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/multiapp2.yaml +0 -0
  357. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/renderd_client.yaml +0 -0
  358. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/scalehints.yaml +0 -0
  359. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/seed.yaml +0 -0
  360. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/seed_mapproxy.yaml +0 -0
  361. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/seed_old.yaml +0 -0
  362. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/seed_timeouts.yaml +0 -0
  363. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/seed_timeouts_mapproxy.yaml +0 -0
  364. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/seedonly.yaml +0 -0
  365. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/sld.yaml +0 -0
  366. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/source_errors.yaml +0 -0
  367. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/source_errors_raise.yaml +0 -0
  368. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/tileservice_origin.yaml +0 -0
  369. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/tileservice_refresh.yaml +0 -0
  370. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/tilesource_minmax_res.yaml +0 -0
  371. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/util-conf-base-grids.yaml +0 -0
  372. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/util-conf-overwrite.yaml +0 -0
  373. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/util-conf-wms-111-cap.xml +0 -0
  374. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/util_grids.yaml +0 -0
  375. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/util_wms_capabilities111.xml +0 -0
  376. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/util_wms_capabilities130.xml +0 -0
  377. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/util_wms_capabilities_service_exception.xml +0 -0
  378. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/watermark.yaml +0 -0
  379. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/wms_srs_extent.yaml +0 -0
  380. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/wms_versions.yaml +0 -0
  381. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/wmts.yaml +0 -0
  382. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/wmts_dimensions.yaml +0 -0
  383. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/xslt_featureinfo.yaml +0 -0
  384. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/fixture/xslt_featureinfo_input.yaml +0 -0
  385. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_arcgis.py +0 -0
  386. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_auth.py +0 -0
  387. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_behind_proxy.py +0 -0
  388. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_bulk_meta_tiles.py +0 -0
  389. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_cache_azureblob.py +0 -0
  390. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_cache_band_merge.py +0 -0
  391. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_cache_coverage.py +0 -0
  392. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_cache_geopackage.py +0 -0
  393. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_cache_grid_names.py +0 -0
  394. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_cache_mbtiles.py +0 -0
  395. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_cache_s3.py +0 -0
  396. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_cache_source.py +0 -0
  397. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_combined_sources.py +0 -0
  398. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_coverage.py +0 -0
  399. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_decorate_img.py +0 -0
  400. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_demo.py +0 -0
  401. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_demo_with_extra_service.py +0 -0
  402. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_dimensions.py +0 -0
  403. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_disable_storage.py +0 -0
  404. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_formats.py +0 -0
  405. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_inspire_vs.py +0 -0
  406. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_kml.py +0 -0
  407. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_layergroups.py +0 -0
  408. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_legendgraphic.py +0 -0
  409. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_mapnik.py +0 -0
  410. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_mapserver.py +0 -0
  411. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_mixed_mode_format.py +0 -0
  412. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_multi_cache_layers.py +0 -0
  413. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_multiapp.py +0 -0
  414. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_refresh.py +0 -0
  415. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_renderd_client.py +0 -0
  416. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_response_headers.py +0 -0
  417. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_scalehints.py +0 -0
  418. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_seed.py +0 -0
  419. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_seed_only.py +0 -0
  420. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_sld.py +0 -0
  421. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_source_errors.py +0 -0
  422. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_tilesource_minmax_res.py +0 -0
  423. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_tms.py +0 -0
  424. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_tms_origin.py +0 -0
  425. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_util_conf.py +0 -0
  426. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_util_export.py +0 -0
  427. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_util_grids.py +0 -0
  428. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_util_wms_capabilities.py +0 -0
  429. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_watermark.py +0 -0
  430. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_wms.py +0 -0
  431. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_wms_srs_extent.py +0 -0
  432. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_wms_version.py +0 -0
  433. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_wmsc.py +0 -0
  434. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_wmts.py +0 -0
  435. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_wmts_dimensions.py +0 -0
  436. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_wmts_restful.py +0 -0
  437. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/system/test_xslt_featureinfo.py +0 -0
  438. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/test_http_helper.py +0 -0
  439. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/__init__.py +0 -0
  440. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/epsg +0 -0
  441. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/polygons/polygons.dbf +0 -0
  442. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/polygons/polygons.shp +0 -0
  443. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/polygons/polygons.shx +0 -0
  444. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_async.py +0 -0
  445. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_auth.py +0 -0
  446. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_cache_azureblob.py +0 -0
  447. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_cache_couchdb.py +0 -0
  448. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_cache_redis.py +0 -0
  449. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_cache_riak.py +0 -0
  450. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_cache_s3.py +0 -0
  451. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_client.py +0 -0
  452. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_client_arcgis.py +0 -0
  453. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_client_cgi.py +0 -0
  454. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_collections.py +0 -0
  455. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_concat_legends.py +0 -0
  456. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_conf_loader.py +0 -0
  457. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_conf_validator.py +0 -0
  458. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_config.py +0 -0
  459. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_decorate_img.py +0 -0
  460. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_exceptions.py +0 -0
  461. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_featureinfo.py +0 -0
  462. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_file_lock_load.py +0 -0
  463. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_geom.py +0 -0
  464. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_grid.py +0 -0
  465. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_image.py +0 -0
  466. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_image_mask.py +0 -0
  467. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_image_messages.py +0 -0
  468. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_image_options.py +0 -0
  469. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_isodate.py +0 -0
  470. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_multiapp.py +0 -0
  471. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_ogr_reader.py +0 -0
  472. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_request.py +0 -0
  473. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_request_wmts.py +0 -0
  474. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_response.py +0 -0
  475. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_seed.py +0 -0
  476. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_seed_cachelock.py +0 -0
  477. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_srs.py +0 -0
  478. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_tiled_source.py +0 -0
  479. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_tilefilter.py +0 -0
  480. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_times.py +0 -0
  481. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_timeutils.py +0 -0
  482. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_util_conf_utils.py +0 -0
  483. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_wms_capabilities.py +0 -0
  484. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_wms_layer.py +0 -0
  485. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/test/unit/test_yaml.py +0 -0
  486. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/tilefilter.py +0 -0
  487. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/__init__.py +0 -0
  488. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/async_.py +0 -0
  489. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/collections.py +0 -0
  490. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/coverage.py +0 -0
  491. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/__init__.py +0 -0
  492. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/dictspec/__init__.py +0 -0
  493. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/dictspec/spec.py +0 -0
  494. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/dictspec/test/__init__.py +0 -0
  495. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/dictspec/test/test_validator.py +0 -0
  496. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/dictspec/validator.py +0 -0
  497. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/local.py +0 -0
  498. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/odict.py +0 -0
  499. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/serving.py +0 -0
  500. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/tempita/__init__.py +0 -0
  501. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/tempita/_looper.py +0 -0
  502. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/tempita/string_utils.py +0 -0
  503. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/wmsparse/__init__.py +0 -0
  504. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/wmsparse/duration.py +0 -0
  505. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/wmsparse/parse.py +0 -0
  506. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/wmsparse/test/__init__.py +0 -0
  507. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/wmsparse/test/test_parse.py +0 -0
  508. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/wmsparse/test/test_util.py +0 -0
  509. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/wmsparse/test/wms-example-111.xml +0 -0
  510. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/wmsparse/test/wms-example-130.xml +0 -0
  511. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/wmsparse/test/wms-large-111.xml +0 -0
  512. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/wmsparse/test/wms_nasa_cap.xml +0 -0
  513. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ext/wmsparse/util.py +0 -0
  514. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/geom.py +0 -0
  515. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/lib.py +0 -0
  516. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/ogr.py +0 -0
  517. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/py.py +0 -0
  518. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/times.py +0 -0
  519. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/util/yaml.py +0 -0
  520. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/version.py +0 -0
  521. {MapProxy-3.0.1 → MapProxy-3.1.1}/mapproxy/wsgiapp.py +0 -0
  522. {MapProxy-3.0.1 → MapProxy-3.1.1}/setup.cfg +0 -0
@@ -1,3 +1,32 @@
1
+ 3.1.1 2024-11-15
2
+ ~~~~~~~~~~~~~~~~
3
+
4
+ Maintenance:
5
+
6
+ - Werkzeug version is no longer pinned and can be chosen freely.
7
+
8
+ Fixes:
9
+
10
+ - The permission handling for file locks now also sets permissions on the files not just on the directories.
11
+
12
+
13
+ 3.1.0 2024-10-22
14
+ ~~~~~~~~~~~~~~~~
15
+
16
+ Improvements:
17
+
18
+ - Add new config parameters `file_permissions` and `directory_permissions` to set file and directory
19
+ permissions on newly created cache files and directories.
20
+
21
+ Maintenance:
22
+
23
+ - Dependency updates
24
+
25
+ Fixes:
26
+
27
+ - Fix transparency in TMS demo page.
28
+
29
+
1
30
  3.0.1 2024-08-27
2
31
  ~~~~~~~~~~~~~~~~
3
32
 
@@ -1,10 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MapProxy
3
- Version: 3.0.1
3
+ Version: 3.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
7
7
  Author-email: olt@omniscale.de
8
+ Maintainer: terrestris GmbH & Co. KG
9
+ Maintainer-email: info@terrestris.de
8
10
  License: Apache Software License 2.0
9
11
  Platform: UNKNOWN
10
12
  Classifier: Development Status :: 5 - Production/Stable
@@ -18,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.12
18
20
  Classifier: Topic :: Internet :: Proxy Servers
19
21
  Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
20
22
  Classifier: Topic :: Scientific/Engineering :: GIS
23
+ Description-Content-Type: text/x-rst
21
24
  License-File: LICENSE.txt
22
25
  License-File: COPYING.txt
23
26
  License-File: AUTHORS.txt
@@ -34,6 +37,35 @@ The documentation is available at: http://mapproxy.github.io/mapproxy/latest/
34
37
 
35
38
  Changes
36
39
  -------
40
+ 3.1.1 2024-11-15
41
+ ~~~~~~~~~~~~~~~~
42
+
43
+ Maintenance:
44
+
45
+ - Werkzeug version is no longer pinned and can be chosen freely.
46
+
47
+ Fixes:
48
+
49
+ - The permission handling for file locks now also sets permissions on the files not just on the directories.
50
+
51
+
52
+ 3.1.0 2024-10-22
53
+ ~~~~~~~~~~~~~~~~
54
+
55
+ Improvements:
56
+
57
+ - Add new config parameters `file_permissions` and `directory_permissions` to set file and directory
58
+ permissions on newly created cache files and directories.
59
+
60
+ Maintenance:
61
+
62
+ - Dependency updates
63
+
64
+ Fixes:
65
+
66
+ - Fix transparency in TMS demo page.
67
+
68
+
37
69
  3.0.1 2024-08-27
38
70
  ~~~~~~~~~~~~~~~~
39
71
 
@@ -125,27 +157,6 @@ Fixes:
125
157
  - Fix GeoTIFF Headers
126
158
 
127
159
 
128
- 2.0.2 2024-01-10
129
- ~~~~~~~~~~~~~~~~
130
-
131
- Fixes:
132
-
133
- - Revert PR "Fix mixed image format for file, S3 and azureblob caches"
134
-
135
- 2.0.1 2024-01-05
136
- ~~~~~~~~~~~~~~~~~
137
- Improvements:
138
-
139
- - Alpine based docker images have been added
140
- - Added parameter to change background map source in layer preview
141
- - Dependency updates
142
-
143
- Fixes:
144
-
145
- - Rendering issue: Check for existing tile coordinates before using them
146
- - Fix mixed image format for file, S3 and azureblob caches
147
-
148
-
149
160
 
150
161
  Older changes
151
162
  -------------
@@ -436,6 +436,7 @@ mapproxy/test/unit/test_cache_azureblob.py
436
436
  mapproxy/test/unit/test_cache_compact.py
437
437
  mapproxy/test/unit/test_cache_couchdb.py
438
438
  mapproxy/test/unit/test_cache_geopackage.py
439
+ mapproxy/test/unit/test_cache_mbtile.py
439
440
  mapproxy/test/unit/test_cache_redis.py
440
441
  mapproxy/test/unit/test_cache_riak.py
441
442
  mapproxy/test/unit/test_cache_s3.py
@@ -452,6 +453,7 @@ mapproxy/test/unit/test_decorate_img.py
452
453
  mapproxy/test/unit/test_exceptions.py
453
454
  mapproxy/test/unit/test_featureinfo.py
454
455
  mapproxy/test/unit/test_file_lock_load.py
456
+ mapproxy/test/unit/test_fs.py
455
457
  mapproxy/test/unit/test_geom.py
456
458
  mapproxy/test/unit/test_grid.py
457
459
  mapproxy/test/unit/test_image.py
@@ -3,7 +3,7 @@ PyYAML>=3.0
3
3
  future
4
4
  jsonschema>=4
5
5
  pyproj>=2
6
- werkzeug==1.0.1
6
+ werkzeug<4
7
7
 
8
8
  [:python_version <= "3.8"]
9
9
  importlib_resources
@@ -1,10 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MapProxy
3
- Version: 3.0.1
3
+ Version: 3.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
7
7
  Author-email: olt@omniscale.de
8
+ Maintainer: terrestris GmbH & Co. KG
9
+ Maintainer-email: info@terrestris.de
8
10
  License: Apache Software License 2.0
9
11
  Platform: UNKNOWN
10
12
  Classifier: Development Status :: 5 - Production/Stable
@@ -18,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.12
18
20
  Classifier: Topic :: Internet :: Proxy Servers
19
21
  Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
20
22
  Classifier: Topic :: Scientific/Engineering :: GIS
23
+ Description-Content-Type: text/x-rst
21
24
  License-File: LICENSE.txt
22
25
  License-File: COPYING.txt
23
26
  License-File: AUTHORS.txt
@@ -34,6 +37,35 @@ The documentation is available at: http://mapproxy.github.io/mapproxy/latest/
34
37
 
35
38
  Changes
36
39
  -------
40
+ 3.1.1 2024-11-15
41
+ ~~~~~~~~~~~~~~~~
42
+
43
+ Maintenance:
44
+
45
+ - Werkzeug version is no longer pinned and can be chosen freely.
46
+
47
+ Fixes:
48
+
49
+ - The permission handling for file locks now also sets permissions on the files not just on the directories.
50
+
51
+
52
+ 3.1.0 2024-10-22
53
+ ~~~~~~~~~~~~~~~~
54
+
55
+ Improvements:
56
+
57
+ - Add new config parameters `file_permissions` and `directory_permissions` to set file and directory
58
+ permissions on newly created cache files and directories.
59
+
60
+ Maintenance:
61
+
62
+ - Dependency updates
63
+
64
+ Fixes:
65
+
66
+ - Fix transparency in TMS demo page.
67
+
68
+
37
69
  3.0.1 2024-08-27
38
70
  ~~~~~~~~~~~~~~~~
39
71
 
@@ -125,27 +157,6 @@ Fixes:
125
157
  - Fix GeoTIFF Headers
126
158
 
127
159
 
128
- 2.0.2 2024-01-10
129
- ~~~~~~~~~~~~~~~~
130
-
131
- Fixes:
132
-
133
- - Revert PR "Fix mixed image format for file, S3 and azureblob caches"
134
-
135
- 2.0.1 2024-01-05
136
- ~~~~~~~~~~~~~~~~~
137
- Improvements:
138
-
139
- - Alpine based docker images have been added
140
- - Added parameter to change background map source in layer preview
141
- - Dependency updates
142
-
143
- Fixes:
144
-
145
- - Rendering issue: Check for existing tile coordinates before using them
146
- - Fix mixed image format for file, S3 and azureblob caches
147
-
148
-
149
160
 
150
161
  Older changes
151
162
  -------------
@@ -89,6 +89,11 @@ This is the default cache type and it uses a single file for each tile. Availabl
89
89
 
90
90
  .. versionadded:: 2.0.0
91
91
 
92
+ ``directory_permissions``, ``file_permissions``:
93
+ Permissions that MapProxy will set when creating files and directories. Must be given as string containing the octal representation of permissions. I.e. ``rwxrw-r--`` is ``'764'``. This will not work on windows OS.
94
+
95
+ .. versionadded:: 3.1.0
96
+
92
97
  .. _cache_mbtiles:
93
98
 
94
99
  ``mbtiles``
@@ -126,6 +131,11 @@ You can set the ``sources`` to an empty list, if you use an existing MBTiles fil
126
131
 
127
132
  The note about ``bulk_meta_tiles`` for SQLite below applies to MBtiles as well.
128
133
 
134
+ ``directory_permissions``, ``file_permissions``:
135
+ Permissions that MapProxy will set when creating files and directories. Must be given as string containing the octal representation of permissions. I.e. ``rwxrw-r--`` is ``'764'``. This will not work on windows OS.
136
+
137
+ .. versionadded:: 3.1.0
138
+
129
139
  .. _cache_sqlite:
130
140
 
131
141
  ``sqlite``
@@ -176,6 +186,11 @@ Available options:
176
186
  type: sqlite
177
187
  directory: /path/to/cache
178
188
 
189
+ ``directory_permissions``, ``file_permissions``:
190
+ Permissions that MapProxy will set when creating files and directories. Must be given as string containing the octal representation of permissions. I.e. ``rwxrw-r--`` is ``'764'``. This will not work on windows OS.
191
+
192
+ .. versionadded:: 3.1.0
193
+
179
194
  .. _cache_couchdb:
180
195
 
181
196
  ``couchdb``
@@ -273,7 +288,7 @@ MapProxy will place the JSON document for tile z=3, x=1, y=2 at ``http://localho
273
288
 
274
289
 
275
290
  .. code-block:: json
276
-
291
+
277
292
 
278
293
  {
279
294
  "_attachments": {
@@ -651,6 +666,11 @@ Available options:
651
666
  ``version``:
652
667
  The version of the ArcGIS compact cache format. This option is required. Either ``1`` or ``2``.
653
668
 
669
+ ``directory_permissions``, ``file_permissions``:
670
+ Permissions that MapProxy will set when creating files and directories. Must be given as string containing the octal representation of permissions. I.e. ``rwxrw-r--`` is ``'764'``. This will not work on windows OS.
671
+
672
+ .. versionadded:: 3.1.0
673
+
654
674
 
655
675
  You can set the ``sources`` to an empty list, if you use an existing compact cache files and do not have a source.
656
676
 
@@ -1055,6 +1055,11 @@ The following options define how tiles are created and stored. Most options can
1055
1055
  ``max_tile_limit``
1056
1056
  Maximum number of tiles MapProxy will merge together for a WMS request. This limit is for each layer and defaults to 500 tiles.
1057
1057
 
1058
+ ``directory_permissions``, ``file_permissions``:
1059
+ Permissions that MapProxy will set when creating files and directories. Must be given as string containing the octal representation of permissions. I.e. ``rwxrw-r--`` is ``'764'``. This will not work on windows OS.
1060
+
1061
+ .. versionadded:: 3.1.0
1062
+
1058
1063
 
1059
1064
  ``srs``
1060
1065
  """""""
@@ -41,7 +41,7 @@ All coverages are configured by defining the source of the coverage and the SRS.
41
41
  The configuration of the coverage depends on the type. The SRS can allways be configured with the ``srs`` option.
42
42
 
43
43
  .. versionadded:: 1.5.0
44
- MapProxy can autodetect the type of the coverage. You can now use ``coverage`` instead of the ``bbox``, ``polygons`` or ``ogr_datasource`` option.
44
+ MapProxy can autodetect the type of the coverage. You can now use ``datasource`` instead of the ``bbox``, ``polygons`` or ``ogr_datasource`` option.
45
45
  The old options are still supported.
46
46
 
47
47
  Coverage Types
@@ -98,10 +98,12 @@ if sys.platform == 'win32':
98
98
 
99
99
 
100
100
  class TileLocker(object):
101
- def __init__(self, lock_dir, lock_timeout, lock_cache_id):
101
+ def __init__(self, lock_dir, lock_timeout, lock_cache_id, directory_permissions=None, file_permissions=None):
102
102
  self.lock_dir = lock_dir
103
103
  self.lock_timeout = lock_timeout
104
104
  self.lock_cache_id = lock_cache_id
105
+ self.directory_permissions = directory_permissions
106
+ self.file_permissions = file_permissions
105
107
 
106
108
  def lock_filename(self, tile):
107
109
  return os.path.join(self.lock_dir, self.lock_cache_id + '-' +
@@ -117,4 +119,5 @@ class TileLocker(object):
117
119
  cleanup_lockdir(self.lock_dir, max_lock_time=self.lock_timeout + 10,
118
120
  force=False)
119
121
  return FileLock(lock_filename, timeout=self.lock_timeout,
120
- remove_on_unlock=REMOVE_ON_UNLOCK)
122
+ remove_on_unlock=REMOVE_ON_UNLOCK, directory_permissions=self.directory_permissions,
123
+ file_permissions=self.file_permissions)
@@ -34,11 +34,14 @@ class CompactCacheBase(TileCacheBase):
34
34
  supports_timestamp = False
35
35
  bundle_class = None
36
36
 
37
- def __init__(self, cache_dir, coverage=None):
37
+ def __init__(self, cache_dir, coverage=None,
38
+ directory_permissions=None, file_permissions=None):
38
39
  super(CompactCacheBase, self).__init__(coverage)
39
40
  md5 = hashlib.new('md5', cache_dir.encode('utf-8'), usedforsecurity=False)
40
41
  self.lock_cache_id = 'compactcache-' + md5.hexdigest()
41
42
  self.cache_dir = cache_dir
43
+ self.directory_permissions = directory_permissions
44
+ self.file_permissions = file_permissions
42
45
 
43
46
  def _get_bundle_fname_and_offset(self, tile_coord):
44
47
  x, y, z = tile_coord
@@ -53,7 +56,8 @@ class CompactCacheBase(TileCacheBase):
53
56
 
54
57
  def _get_bundle(self, tile_coord):
55
58
  bundle_fname, offset = self._get_bundle_fname_and_offset(tile_coord)
56
- return self.bundle_class(bundle_fname, offset=offset)
59
+ return self.bundle_class(bundle_fname, offset=offset, file_permissions=self.file_permissions,
60
+ directory_permissions=self.directory_permissions)
57
61
 
58
62
  def is_cached(self, tile, dimensions=None):
59
63
  if tile.coord is None:
@@ -138,10 +142,12 @@ BUNDLEX_V1_EXT = '.bundlx'
138
142
 
139
143
 
140
144
  class BundleV1(object):
141
- def __init__(self, base_filename, offset):
145
+ def __init__(self, base_filename, offset, file_permissions=None, directory_permissions=None):
142
146
  self.base_filename = base_filename
143
147
  self.lock_filename = base_filename + '.lck'
144
148
  self.offset = offset
149
+ self.file_permissions = file_permissions
150
+ self.directory_permissions = directory_permissions
145
151
 
146
152
  def _rel_tile_coord(self, tile_coord):
147
153
  return (
@@ -150,10 +156,11 @@ class BundleV1(object):
150
156
  )
151
157
 
152
158
  def data(self):
153
- return BundleDataV1(self.base_filename + BUNDLE_EXT, self.offset)
159
+ return BundleDataV1(self.base_filename + BUNDLE_EXT, self.offset,
160
+ self.directory_permissions, self.file_permissions)
154
161
 
155
162
  def index(self):
156
- return BundleIndexV1(self.base_filename + BUNDLEX_V1_EXT)
163
+ return BundleIndexV1(self.base_filename + BUNDLEX_V1_EXT, self.directory_permissions, self.file_permissions)
157
164
 
158
165
  def is_cached(self, tile, dimensions=None):
159
166
  if tile.source or tile.coord is None:
@@ -185,7 +192,8 @@ class BundleV1(object):
185
192
  data = buf.read()
186
193
  tiles_data.append((t.coord, data))
187
194
 
188
- with FileLock(self.lock_filename):
195
+ with FileLock(self.lock_filename, directory_permissions=self.directory_permissions,
196
+ file_permissions=self.file_permissions, remove_on_unlock=True):
189
197
  with self.data().readwrite() as bundle:
190
198
  with self.index().readwrite() as idx:
191
199
  for tile_coord, data in tiles_data:
@@ -229,7 +237,8 @@ class BundleV1(object):
229
237
  if tile.coord is None:
230
238
  return True
231
239
 
232
- with FileLock(self.lock_filename):
240
+ with FileLock(self.lock_filename, directory_permissions=self.directory_permissions,
241
+ file_permissions=self.file_permissions, remove_on_unlock=True):
233
242
  with self.index().readwrite() as idx:
234
243
  x, y = self._rel_tile_coord(tile.coord)
235
244
  idx.remove_tile_offset(x, y)
@@ -269,9 +278,11 @@ INT64LE = struct.Struct('<Q')
269
278
 
270
279
 
271
280
  class BundleIndexV1(object):
272
- def __init__(self, filename):
281
+ def __init__(self, filename, directory_permissions=None, file_permissions=None):
273
282
  self.filename = filename
274
283
  self._fh = None
284
+ self.directory_permissions = directory_permissions
285
+ self.file_permissions = file_permissions
275
286
  # defer initialization to update/remove calls to avoid
276
287
  # index creation on is_cached (prevents new files in read-only caches)
277
288
  self._initialized = False
@@ -280,7 +291,7 @@ class BundleIndexV1(object):
280
291
  self._initialized = True
281
292
  if os.path.exists(self.filename):
282
293
  return
283
- ensure_directory(self.filename)
294
+ ensure_directory(self.filename, self.directory_permissions)
284
295
  buf = BytesIO()
285
296
  buf.write(BUNDLEX_V1_HEADER)
286
297
 
@@ -288,6 +299,10 @@ class BundleIndexV1(object):
288
299
  buf.write(INT64LE.pack((i*4)+BUNDLE_V1_HEADER_SIZE)[:5])
289
300
  buf.write(BUNDLEX_V1_FOOTER)
290
301
  write_atomic(self.filename, buf.getvalue())
302
+ if self.file_permissions:
303
+ permission = int(self.file_permissions, base=8)
304
+ log.info("setting file permissions on compact cache file: " + self.file_permissions)
305
+ os.chmod(self.filename, permission)
291
306
 
292
307
  def _tile_index_offset(self, x, y):
293
308
  return BUNDLEX_V1_HEADER_SIZE + (x * BUNDLEX_V1_GRID_HEIGHT + y) * 5
@@ -333,6 +348,10 @@ class BundleIndexV1(object):
333
348
  def readwrite(self):
334
349
  self._init_index()
335
350
  with open(self.filename, 'r+b') as fh:
351
+ if self.file_permissions:
352
+ permission = int(self.file_permissions, base=8)
353
+ log.info("setting file permissions on compact cache file: " + self.file_permissions)
354
+ os.chmod(self.filename, permission)
336
355
  b = BundleIndexV1(self.filename)
337
356
  b._fh = fh
338
357
  yield b
@@ -361,15 +380,17 @@ BUNDLE_V1_HEADER_STRUCT_FORMAT = '<4I3Q5I'
361
380
 
362
381
 
363
382
  class BundleDataV1(object):
364
- def __init__(self, filename, tile_offsets):
383
+ def __init__(self, filename, tile_offsets, directory_permissions=None, file_permissions=None):
365
384
  self.filename = filename
366
385
  self.tile_offsets = tile_offsets
367
386
  self._fh = None
387
+ self.directory_permissions = directory_permissions
388
+ self.file_permissions = file_permissions
368
389
  if not os.path.exists(self.filename):
369
390
  self._init_bundle()
370
391
 
371
392
  def _init_bundle(self):
372
- ensure_directory(self.filename)
393
+ ensure_directory(self.filename, self.directory_permissions)
373
394
  header = list(BUNDLE_V1_HEADER)
374
395
  header[10], header[8] = self.tile_offsets
375
396
  header[11], header[9] = header[10]+127, header[8]+127
@@ -377,18 +398,22 @@ class BundleDataV1(object):
377
398
  struct.pack(BUNDLE_V1_HEADER_STRUCT_FORMAT, *header) +
378
399
  # zero-size entry for each tile
379
400
  (b'\x00' * (BUNDLEX_V1_GRID_HEIGHT * BUNDLEX_V1_GRID_WIDTH * 4)))
401
+ if self.file_permissions:
402
+ permission = int(self.file_permissions, base=8)
403
+ log.info("setting file permissions on compact cache file: " + self.file_permissions)
404
+ os.chmod(self.filename, permission)
380
405
 
381
406
  @contextlib.contextmanager
382
407
  def readonly(self):
383
408
  with open(self.filename, 'rb') as fh:
384
- b = BundleDataV1(self.filename, self.tile_offsets)
409
+ b = BundleDataV1(self.filename, self.tile_offsets, self.directory_permissions, self.file_permissions)
385
410
  b._fh = fh
386
411
  yield b
387
412
 
388
413
  @contextlib.contextmanager
389
414
  def readwrite(self):
390
415
  with open(self.filename, 'r+b') as fh:
391
- b = BundleDataV1(self.filename, self.tile_offsets)
416
+ b = BundleDataV1(self.filename, self.tile_offsets, self.directory_permissions, self.file_permissions)
392
417
  b._fh = fh
393
418
  yield b
394
419
 
@@ -464,10 +489,12 @@ BUNDLE_V2_HEADER_SIZE = 64
464
489
 
465
490
 
466
491
  class BundleV2(object):
467
- def __init__(self, base_filename, offset=None):
492
+ def __init__(self, base_filename, offset=None, file_permissions=None, directory_permissions=None):
468
493
  # offset not used by V2
469
494
  self.filename = base_filename + '.bundle'
470
495
  self.lock_filename = base_filename + '.lck'
496
+ self.file_permissions = file_permissions
497
+ self.directory_permissions = directory_permissions
471
498
 
472
499
  # defer initialization to update/remove calls to avoid
473
500
  # index creation on is_cached (prevents new files in read-only caches)
@@ -477,12 +504,16 @@ class BundleV2(object):
477
504
  self._initialized = True
478
505
  if os.path.exists(self.filename):
479
506
  return
480
- ensure_directory(self.filename)
507
+ ensure_directory(self.filename, self.directory_permissions)
481
508
  buf = BytesIO()
482
509
  buf.write(struct.pack(BUNDLE_V2_HEADER_STRUCT_FORMAT, *BUNDLE_V2_HEADER))
483
510
  # Empty index (ArcGIS stores an offset of 4 and size of 0 for missing tiles)
484
511
  buf.write(struct.pack('<%dQ' % BUNDLE_V2_TILES, *(4, ) * BUNDLE_V2_TILES))
485
512
  write_atomic(self.filename, buf.getvalue())
513
+ if self.file_permissions:
514
+ permission = int(self.file_permissions, base=8)
515
+ log.info("setting file permissions on compact cache file: " + self.file_permissions)
516
+ os.chmod(self.filename, permission)
486
517
 
487
518
  def _tile_idx_offset(self, x, y):
488
519
  return BUNDLE_V2_HEADER_SIZE + (x + BUNDLE_V2_GRID_HEIGHT * y) * 8
@@ -605,7 +636,8 @@ class BundleV2(object):
605
636
  data = buf.read()
606
637
  tiles_data.append((t.coord, data))
607
638
 
608
- with FileLock(self.lock_filename):
639
+ with FileLock(self.lock_filename, directory_permissions=self.directory_permissions,
640
+ file_permissions=self.file_permissions, remove_on_unlock=True):
609
641
  with self._readwrite() as fh:
610
642
  for tile_coord, data in tiles_data:
611
643
  self._store_tile(fh, tile_coord, data, dimensions=dimensions)
@@ -617,7 +649,8 @@ class BundleV2(object):
617
649
  return True
618
650
 
619
651
  self._init_index()
620
- with FileLock(self.lock_filename):
652
+ with FileLock(self.lock_filename, directory_permissions=self.directory_permissions,
653
+ file_permissions=self.file_permissions, remove_on_unlock=True):
621
654
  with self._readwrite() as fh:
622
655
  x, y = self._rel_tile_coord(tile.coord)
623
656
  self._update_tile_offset(fh, x, y, 0, 0)
@@ -33,7 +33,8 @@ class FileCache(TileCacheBase):
33
33
  supports_dimensions = True
34
34
 
35
35
  def __init__(self, cache_dir, file_ext, directory_layout='tc',
36
- link_single_color_images=False, coverage=None, image_opts=None):
36
+ link_single_color_images=False, coverage=None, image_opts=None,
37
+ directory_permissions=None, file_permissions=None):
37
38
  """
38
39
  :param cache_dir: the path where the tile will be stored
39
40
  :param file_ext: the file extension that will be appended to
@@ -46,6 +47,8 @@ class FileCache(TileCacheBase):
46
47
  self.file_ext = file_ext
47
48
  self.image_opts = image_opts
48
49
  self.link_single_color_images = link_single_color_images
50
+ self.directory_permissions = directory_permissions
51
+ self.file_permissions = file_permissions
49
52
  self._tile_location, self._level_location = path.location_funcs(layout=directory_layout)
50
53
  if self._level_location is None:
51
54
  self.level_location = None # disable level based clean-ups
@@ -57,7 +60,8 @@ class FileCache(TileCacheBase):
57
60
  dimensions_str = ['{key}-{value}'.format(key=i, value=dimensions[i].replace('/', '_')) for i in items]
58
61
  # todo: cache_dir is not used. should it get returned or removed?
59
62
  cache_dir = os.path.join(self.cache_dir, '_'.join(dimensions_str)) # noqa
60
- return self._tile_location(tile, self.cache_dir, self.file_ext, create_dir=create_dir, dimensions=dimensions)
63
+ return self._tile_location(tile, self.cache_dir, self.file_ext, create_dir=create_dir, dimensions=dimensions,
64
+ directory_permissions=self.directory_permissions)
61
65
 
62
66
  def level_location(self, level, dimensions=None):
63
67
  """
@@ -82,7 +86,7 @@ class FileCache(TileCacheBase):
82
86
  )
83
87
  location = os.path.join(*parts)
84
88
  if create_dir:
85
- ensure_directory(location)
89
+ ensure_directory(location, self.directory_permissions)
86
90
  return location
87
91
 
88
92
  def load_tile_metadata(self, tile, dimensions=None):