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