rio-tiler 6.4.4__tar.gz → 6.4.5__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 (241) hide show
  1. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/PKG-INFO +2 -1
  2. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/pyproject.toml +8 -0
  3. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/__init__.py +1 -1
  4. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/colormap.py +7 -6
  5. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/io/base.py +1 -3
  6. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/io/rasterio.py +1 -3
  7. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/io/stac.py +1 -3
  8. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/io/xarray.py +2 -3
  9. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/models.py +7 -13
  10. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/reader.py +8 -23
  11. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/tasks.py +2 -4
  12. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/utils.py +9 -8
  13. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/.gitignore +0 -0
  14. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/AUTHORS.txt +0 -0
  15. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/LICENSE +0 -0
  16. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/README.md +0 -0
  17. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/__init__.py +0 -0
  18. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/accent.npy +0 -0
  19. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/accent_r.npy +0 -0
  20. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/afmhot.npy +0 -0
  21. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/afmhot_r.npy +0 -0
  22. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/algae.npy +0 -0
  23. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/algae_r.npy +0 -0
  24. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/amp.npy +0 -0
  25. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/amp_r.npy +0 -0
  26. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/autumn.npy +0 -0
  27. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/autumn_r.npy +0 -0
  28. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/balance.npy +0 -0
  29. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/balance_r.npy +0 -0
  30. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/binary.npy +0 -0
  31. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/binary_r.npy +0 -0
  32. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/blues.npy +0 -0
  33. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/blues_r.npy +0 -0
  34. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/bone.npy +0 -0
  35. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/bone_r.npy +0 -0
  36. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/brbg.npy +0 -0
  37. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/brbg_r.npy +0 -0
  38. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/brg.npy +0 -0
  39. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/brg_r.npy +0 -0
  40. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/bugn.npy +0 -0
  41. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/bugn_r.npy +0 -0
  42. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/bupu.npy +0 -0
  43. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/bupu_r.npy +0 -0
  44. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/bwr.npy +0 -0
  45. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/bwr_r.npy +0 -0
  46. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/cfastie.npy +0 -0
  47. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/cividis.npy +0 -0
  48. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/cividis_r.npy +0 -0
  49. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/cmrmap.npy +0 -0
  50. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/cmrmap_r.npy +0 -0
  51. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/cool.npy +0 -0
  52. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/cool_r.npy +0 -0
  53. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/coolwarm.npy +0 -0
  54. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/coolwarm_r.npy +0 -0
  55. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/copper.npy +0 -0
  56. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/copper_r.npy +0 -0
  57. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/cubehelix.npy +0 -0
  58. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/cubehelix_r.npy +0 -0
  59. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/curl.npy +0 -0
  60. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/curl_r.npy +0 -0
  61. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/dark2.npy +0 -0
  62. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/dark2_r.npy +0 -0
  63. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/deep.npy +0 -0
  64. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/deep_r.npy +0 -0
  65. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/delta.npy +0 -0
  66. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/delta_r.npy +0 -0
  67. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/dense.npy +0 -0
  68. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/dense_r.npy +0 -0
  69. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/diff.npy +0 -0
  70. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/diff_r.npy +0 -0
  71. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/flag.npy +0 -0
  72. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/flag_r.npy +0 -0
  73. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_earth.npy +0 -0
  74. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_earth_r.npy +0 -0
  75. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_gray.npy +0 -0
  76. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_gray_r.npy +0 -0
  77. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_heat.npy +0 -0
  78. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_heat_r.npy +0 -0
  79. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_ncar.npy +0 -0
  80. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_ncar_r.npy +0 -0
  81. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_rainbow.npy +0 -0
  82. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_rainbow_r.npy +0 -0
  83. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_stern.npy +0 -0
  84. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_stern_r.npy +0 -0
  85. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_yarg.npy +0 -0
  86. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gist_yarg_r.npy +0 -0
  87. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gnbu.npy +0 -0
  88. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gnbu_r.npy +0 -0
  89. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gnuplot.npy +0 -0
  90. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gnuplot2.npy +0 -0
  91. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gnuplot2_r.npy +0 -0
  92. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gnuplot_r.npy +0 -0
  93. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gray.npy +0 -0
  94. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/gray_r.npy +0 -0
  95. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/greens.npy +0 -0
  96. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/greens_r.npy +0 -0
  97. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/greys.npy +0 -0
  98. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/greys_r.npy +0 -0
  99. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/haline.npy +0 -0
  100. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/haline_r.npy +0 -0
  101. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/hot.npy +0 -0
  102. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/hot_r.npy +0 -0
  103. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/hsv.npy +0 -0
  104. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/hsv_r.npy +0 -0
  105. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/ice.npy +0 -0
  106. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/ice_r.npy +0 -0
  107. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/inferno.npy +0 -0
  108. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/inferno_r.npy +0 -0
  109. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/jet.npy +0 -0
  110. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/jet_r.npy +0 -0
  111. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/magma.npy +0 -0
  112. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/magma_r.npy +0 -0
  113. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/matter.npy +0 -0
  114. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/matter_r.npy +0 -0
  115. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/nipy_spectral.npy +0 -0
  116. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/nipy_spectral_r.npy +0 -0
  117. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/ocean.npy +0 -0
  118. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/ocean_r.npy +0 -0
  119. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/oranges.npy +0 -0
  120. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/oranges_r.npy +0 -0
  121. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/orrd.npy +0 -0
  122. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/orrd_r.npy +0 -0
  123. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/oxy.npy +0 -0
  124. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/oxy_r.npy +0 -0
  125. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/paired.npy +0 -0
  126. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/paired_r.npy +0 -0
  127. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/pastel1.npy +0 -0
  128. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/pastel1_r.npy +0 -0
  129. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/pastel2.npy +0 -0
  130. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/pastel2_r.npy +0 -0
  131. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/phase.npy +0 -0
  132. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/phase_r.npy +0 -0
  133. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/pink.npy +0 -0
  134. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/pink_r.npy +0 -0
  135. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/piyg.npy +0 -0
  136. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/piyg_r.npy +0 -0
  137. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/plasma.npy +0 -0
  138. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/plasma_r.npy +0 -0
  139. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/prgn.npy +0 -0
  140. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/prgn_r.npy +0 -0
  141. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/prism.npy +0 -0
  142. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/prism_r.npy +0 -0
  143. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/pubu.npy +0 -0
  144. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/pubu_r.npy +0 -0
  145. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/pubugn.npy +0 -0
  146. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/pubugn_r.npy +0 -0
  147. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/puor.npy +0 -0
  148. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/puor_r.npy +0 -0
  149. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/purd.npy +0 -0
  150. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/purd_r.npy +0 -0
  151. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/purples.npy +0 -0
  152. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/purples_r.npy +0 -0
  153. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rain.npy +0 -0
  154. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rain_r.npy +0 -0
  155. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rainbow.npy +0 -0
  156. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rainbow_r.npy +0 -0
  157. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rdbu.npy +0 -0
  158. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rdbu_r.npy +0 -0
  159. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rdgy.npy +0 -0
  160. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rdgy_r.npy +0 -0
  161. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rdpu.npy +0 -0
  162. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rdpu_r.npy +0 -0
  163. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rdylbu.npy +0 -0
  164. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rdylbu_r.npy +0 -0
  165. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rdylgn.npy +0 -0
  166. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rdylgn_r.npy +0 -0
  167. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/reds.npy +0 -0
  168. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/reds_r.npy +0 -0
  169. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/rplumbo.npy +0 -0
  170. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/schwarzwald.npy +0 -0
  171. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/seismic.npy +0 -0
  172. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/seismic_r.npy +0 -0
  173. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/set1.npy +0 -0
  174. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/set1_r.npy +0 -0
  175. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/set2.npy +0 -0
  176. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/set2_r.npy +0 -0
  177. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/set3.npy +0 -0
  178. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/set3_r.npy +0 -0
  179. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/solar.npy +0 -0
  180. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/solar_r.npy +0 -0
  181. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/spectral.npy +0 -0
  182. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/spectral_r.npy +0 -0
  183. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/speed.npy +0 -0
  184. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/speed_r.npy +0 -0
  185. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/spring.npy +0 -0
  186. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/spring_r.npy +0 -0
  187. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/summer.npy +0 -0
  188. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/summer_r.npy +0 -0
  189. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/tab10.npy +0 -0
  190. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/tab10_r.npy +0 -0
  191. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/tab20.npy +0 -0
  192. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/tab20_r.npy +0 -0
  193. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/tab20b.npy +0 -0
  194. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/tab20b_r.npy +0 -0
  195. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/tab20c.npy +0 -0
  196. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/tab20c_r.npy +0 -0
  197. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/tarn.npy +0 -0
  198. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/tarn_r.npy +0 -0
  199. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/tempo.npy +0 -0
  200. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/tempo_r.npy +0 -0
  201. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/terrain.npy +0 -0
  202. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/terrain_r.npy +0 -0
  203. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/thermal.npy +0 -0
  204. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/thermal_r.npy +0 -0
  205. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/topo.npy +0 -0
  206. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/topo_r.npy +0 -0
  207. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/turbid.npy +0 -0
  208. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/turbid_r.npy +0 -0
  209. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/turbo.npy +0 -0
  210. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/turbo_r.npy +0 -0
  211. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/twilight.npy +0 -0
  212. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/twilight_r.npy +0 -0
  213. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/twilight_shifted.npy +0 -0
  214. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/twilight_shifted_r.npy +0 -0
  215. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/viridis.npy +0 -0
  216. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/viridis_r.npy +0 -0
  217. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/winter.npy +0 -0
  218. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/winter_r.npy +0 -0
  219. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/wistia.npy +0 -0
  220. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/wistia_r.npy +0 -0
  221. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/ylgn.npy +0 -0
  222. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/ylgn_r.npy +0 -0
  223. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/ylgnbu.npy +0 -0
  224. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/ylgnbu_r.npy +0 -0
  225. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/ylorbr.npy +0 -0
  226. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/ylorbr_r.npy +0 -0
  227. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/ylorrd.npy +0 -0
  228. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/cmap_data/ylorrd_r.npy +0 -0
  229. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/constants.py +0 -0
  230. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/errors.py +0 -0
  231. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/expression.py +0 -0
  232. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/io/__init__.py +0 -0
  233. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/logger.py +0 -0
  234. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/mosaic/__init__.py +0 -0
  235. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/mosaic/methods/__init__.py +0 -0
  236. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/mosaic/methods/base.py +0 -0
  237. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/mosaic/methods/defaults.py +0 -0
  238. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/mosaic/reader.py +0 -0
  239. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/profiles.py +0 -0
  240. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/py.typed +0 -0
  241. {rio_tiler-6.4.4 → rio_tiler-6.4.5}/rio_tiler/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rio-tiler
3
- Version: 6.4.4
3
+ Version: 6.4.5
4
4
  Summary: User friendly Rasterio plugin to read raster datasets.
5
5
  Project-URL: Homepage, https://cogeotiff.github.io/rio-tiler/
6
6
  Project-URL: Documentation, https://cogeotiff.github.io/rio-tiler/
@@ -47,6 +47,7 @@ Classifier: Programming Language :: Python :: 3.8
47
47
  Classifier: Programming Language :: Python :: 3.9
48
48
  Classifier: Programming Language :: Python :: 3.10
49
49
  Classifier: Programming Language :: Python :: 3.11
50
+ Classifier: Programming Language :: Python :: 3.12
50
51
  Classifier: Topic :: Scientific/Engineering :: GIS
51
52
  Requires-Python: >=3.8
52
53
  Requires-Dist: attrs
@@ -16,6 +16,7 @@ classifiers = [
16
16
  "Programming Language :: Python :: 3.9",
17
17
  "Programming Language :: Python :: 3.10",
18
18
  "Programming Language :: Python :: 3.11",
19
+ "Programming Language :: Python :: 3.12",
19
20
  "Topic :: Scientific/Engineering :: GIS",
20
21
  ]
21
22
  dynamic = ["version"]
@@ -129,6 +130,9 @@ default_section = "THIRDPARTY"
129
130
  no_strict_optional = true
130
131
 
131
132
  [tool.ruff]
133
+ line-length = 90
134
+
135
+ [tool.ruff.lint]
132
136
  select = [
133
137
  "D1", # pydocstyle errors
134
138
  "E", # pycodestyle errors
@@ -141,4 +145,8 @@ ignore = [
141
145
  "E501", # line too long, handled by black
142
146
  "B008", # do not perform function calls in argument defaults
143
147
  "B905", # ignore zip() without an explicit strict= parameter, only support with python >3.10
148
+ "B028",
144
149
  ]
150
+
151
+ [tool.ruff.lint.mccabe]
152
+ max-complexity = 14
@@ -1,6 +1,6 @@
1
1
  """rio-tiler."""
2
2
 
3
- __version__ = "6.4.4"
3
+ __version__ = "6.4.5"
4
4
 
5
5
  from . import ( # noqa
6
6
  colormap,
@@ -31,7 +31,8 @@ except ImportError:
31
31
  EMPTY_COLORMAP: GDALColorMapType = {i: (0, 0, 0, 0) for i in range(256)}
32
32
 
33
33
  DEFAULT_CMAPS_FILES = {
34
- f.stem: str(f) for f in (resources_files(__package__) / "cmap_data").glob("*.npy") # type: ignore
34
+ f.stem: str(f)
35
+ for f in (resources_files(__package__) / "cmap_data").glob("*.npy") # type: ignore
35
36
  }
36
37
 
37
38
  USER_CMAPS_DIR = os.environ.get("COLORMAP_DIRECTORY", None)
@@ -123,9 +124,7 @@ def apply_cmap(data: numpy.ndarray, colormap: ColorMapType) -> DataMaskType:
123
124
  return data[:-1], data[-1]
124
125
 
125
126
 
126
- def apply_discrete_cmap(
127
- data: numpy.ndarray, colormap: GDALColorMapType
128
- ) -> DataMaskType:
127
+ def apply_discrete_cmap(data: numpy.ndarray, colormap: GDALColorMapType) -> DataMaskType:
129
128
  """Apply discrete colormap.
130
129
 
131
130
  Args:
@@ -189,7 +188,7 @@ def apply_intervals_cmap(
189
188
  """
190
189
  res = numpy.zeros((data.shape[1], data.shape[2], 4), dtype=numpy.uint8)
191
190
 
192
- for (k, v) in colormap:
191
+ for k, v in colormap:
193
192
  res[(data[0] >= k[0]) & (data[0] < k[1])] = numpy.array(v)
194
193
 
195
194
  data = numpy.transpose(res, [2, 0, 1])
@@ -251,7 +250,9 @@ def parse_color(rgba: Union[Sequence[int], str]) -> Tuple[int, int, int, int]:
251
250
 
252
251
  match = re.match(hex_pattern, rgba)
253
252
  rgba = [
254
- int(n * factor, 16) for n in match.groupdict().values() if n is not None # type: ignore
253
+ int(n * factor, 16)
254
+ for n in match.groupdict().values()
255
+ if n is not None # type: ignore
255
256
  ]
256
257
 
257
258
  if len(rgba) > 4 or len(rgba) < 3:
@@ -901,9 +901,7 @@ class MultiBandReader(SpatialMixin, metaclass=abc.ABCMeta):
901
901
 
902
902
  return bands
903
903
 
904
- def info(
905
- self, bands: Union[Sequence[str], str] = None, *args, **kwargs: Any
906
- ) -> Info:
904
+ def info(self, bands: Union[Sequence[str], str] = None, *args, **kwargs: Any) -> Info:
907
905
  """Return metadata from multiple bands.
908
906
 
909
907
  Args:
@@ -275,9 +275,7 @@ class Reader(BaseReader):
275
275
  meta.update({"colormap": self.colormap})
276
276
 
277
277
  if nodata_type == "Nodata":
278
- meta.update(
279
- {"nodata_value": self.options.get("nodata", self.dataset.nodata)}
280
- )
278
+ meta.update({"nodata_value": self.options.get("nodata", self.dataset.nodata)})
281
279
 
282
280
  return Info(**meta)
283
281
 
@@ -264,9 +264,7 @@ class STACReader(MultiBaseReader):
264
264
  )
265
265
  )
266
266
  if not self.assets:
267
- raise MissingAssets(
268
- "No valid asset found. Asset's media types not supported"
269
- )
267
+ raise MissingAssets("No valid asset found. Asset's media types not supported")
270
268
 
271
269
  @minzoom.default
272
270
  def _minzoom(self):
@@ -1,4 +1,5 @@
1
1
  """rio_tiler.io.xarray: Xarray Reader."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  import warnings
@@ -231,9 +232,7 @@ class XarrayReader(BaseReader):
231
232
  reproject_method = resampling_method
232
233
 
233
234
  if not self.tile_exists(tile_x, tile_y, tile_z):
234
- raise TileOutsideBounds(
235
- f"Tile {tile_z}/{tile_x}/{tile_y} is outside bounds"
236
- )
235
+ raise TileOutsideBounds(f"Tile {tile_z}/{tile_x}/{tile_y} is outside bounds")
237
236
 
238
237
  ds = self.input
239
238
  if nodata is not None:
@@ -229,7 +229,7 @@ class PointData:
229
229
  raise InvalidPointDataError("Empty PointData list.")
230
230
 
231
231
  # validate coordinates
232
- if all([pt.coordinates or pt.crs or None for pt in data]):
232
+ if all(pt.coordinates or pt.crs or None for pt in data):
233
233
  lon, lat, crs = zip(*[(*(pt.coordinates or []), pt.crs) for pt in data])
234
234
  if len(set(lon)) > 1 or len(set(lat)) > 1 or len(set(crs)) > 1:
235
235
  raise InvalidPointDataError(
@@ -245,9 +245,7 @@ class PointData:
245
245
  )
246
246
 
247
247
  band_names = list(
248
- itertools.chain.from_iterable(
249
- [pt.band_names for pt in data if pt.band_names]
250
- )
248
+ itertools.chain.from_iterable([pt.band_names for pt in data if pt.band_names])
251
249
  )
252
250
 
253
251
  metadata = dict(
@@ -439,9 +437,7 @@ class ImageData:
439
437
  # Get cutline mask at highest resolution.
440
438
  max_h, max_w = max(h), max(w)
441
439
  cutline_mask = next(
442
- img.cutline_mask
443
- for img in data
444
- if img.height == max_h and img.width == max_w
440
+ img.cutline_mask for img in data if img.height == max_h and img.width == max_w
445
441
  )
446
442
 
447
443
  if len(set(h)) > 1 or len(set(w)) > 1:
@@ -462,9 +458,7 @@ class ImageData:
462
458
 
463
459
  assets = list(
464
460
  dict.fromkeys(
465
- itertools.chain.from_iterable(
466
- [img.assets for img in data if img.assets]
467
- )
461
+ itertools.chain.from_iterable([img.assets for img in data if img.assets])
468
462
  )
469
463
  )
470
464
 
@@ -627,9 +621,9 @@ class ImageData:
627
621
  ) -> "ImageData":
628
622
  """Resize data and mask."""
629
623
  data = resize_array(self.array.data, height, width, resampling_method)
630
- mask = resize_array(
631
- self.array.mask * 1, height, width, resampling_method
632
- ).astype("bool")
624
+ mask = resize_array(self.array.mask * 1, height, width, resampling_method).astype(
625
+ "bool"
626
+ )
633
627
 
634
628
  return ImageData(
635
629
  numpy.ma.MaskedArray(data, mask=mask),
@@ -3,14 +3,13 @@
3
3
  import contextlib
4
4
  import math
5
5
  import warnings
6
- from enum import IntEnum
7
6
  from typing import Callable, Dict, Optional, Tuple, TypedDict, Union
8
7
 
9
8
  import numpy
10
9
  from affine import Affine
11
10
  from rasterio import windows
12
11
  from rasterio.crs import CRS
13
- from rasterio.enums import ColorInterp, MaskFlags, Resampling
12
+ from rasterio.enums import ColorInterp, Resampling
14
13
  from rasterio.io import DatasetReader, DatasetWriter
15
14
  from rasterio.transform import array_bounds
16
15
  from rasterio.vrt import WarpedVRT
@@ -97,9 +96,7 @@ def read(
97
96
  resampling_method: RIOResampling = "nearest",
98
97
  reproject_method: WarpResampling = "nearest",
99
98
  unscale: bool = False,
100
- post_process: Optional[
101
- Callable[[numpy.ma.MaskedArray], numpy.ma.MaskedArray]
102
- ] = None,
99
+ post_process: Optional[Callable[[numpy.ma.MaskedArray], numpy.ma.MaskedArray]] = None,
103
100
  ) -> ImageData:
104
101
  """Low level read function.
105
102
 
@@ -196,9 +193,7 @@ def read(
196
193
  values = dataset.read(
197
194
  indexes=indexes,
198
195
  window=window,
199
- out_shape=(len(indexes), height, width)
200
- if height and width
201
- else None,
196
+ out_shape=(len(indexes), height, width) if height and width else None,
202
197
  resampling=io_resampling,
203
198
  boundless=boundless,
204
199
  )
@@ -246,9 +241,7 @@ def read(
246
241
  stats = []
247
242
  for ix in indexes:
248
243
  tags = dataset.tags(ix)
249
- if all(
250
- stat in tags for stat in ["STATISTICS_MINIMUM", "STATISTICS_MAXIMUM"]
251
- ):
244
+ if all(stat in tags for stat in ["STATISTICS_MINIMUM", "STATISTICS_MAXIMUM"]):
252
245
  stat_min = float(tags.get("STATISTICS_MINIMUM"))
253
246
  stat_max = float(tags.get("STATISTICS_MAXIMUM"))
254
247
  stats.append((stat_min, stat_max))
@@ -302,9 +295,7 @@ def part(
302
295
  resampling_method: RIOResampling = "nearest",
303
296
  reproject_method: WarpResampling = "nearest",
304
297
  unscale: bool = False,
305
- post_process: Optional[
306
- Callable[[numpy.ma.MaskedArray], numpy.ma.MaskedArray]
307
- ] = None,
298
+ post_process: Optional[Callable[[numpy.ma.MaskedArray], numpy.ma.MaskedArray]] = None,
308
299
  ) -> ImageData:
309
300
  """Read part of a dataset.
310
301
 
@@ -352,12 +343,8 @@ def part(
352
343
  src_bounds = transform_bounds(
353
344
  src_dst.crs, dst_crs, *src_dst.bounds, densify_pts=21
354
345
  )
355
- x_overlap = max(
356
- 0, min(src_bounds[2], bounds[2]) - max(src_bounds[0], bounds[0])
357
- )
358
- y_overlap = max(
359
- 0, min(src_bounds[3], bounds[3]) - max(src_bounds[1], bounds[1])
360
- )
346
+ x_overlap = max(0, min(src_bounds[2], bounds[2]) - max(src_bounds[0], bounds[0]))
347
+ y_overlap = max(0, min(src_bounds[3], bounds[3]) - max(src_bounds[1], bounds[1]))
361
348
  cover_ratio = (x_overlap * y_overlap) / (
362
349
  (bounds[2] - bounds[0]) * (bounds[3] - bounds[1])
363
350
  )
@@ -500,9 +487,7 @@ def point(
500
487
  resampling_method: RIOResampling = "nearest",
501
488
  reproject_method: WarpResampling = "nearest",
502
489
  unscale: bool = False,
503
- post_process: Optional[
504
- Callable[[numpy.ma.MaskedArray], numpy.ma.MaskedArray]
505
- ] = None,
490
+ post_process: Optional[Callable[[numpy.ma.MaskedArray], numpy.ma.MaskedArray]] = None,
506
491
  ) -> PointData:
507
492
  """Read a pixel value for a point.
508
493
 
@@ -28,7 +28,7 @@ def filter_tasks(
28
28
  if allowed_exceptions is None:
29
29
  allowed_exceptions = ()
30
30
 
31
- for (future, asset) in tasks:
31
+ for future, asset in tasks:
32
32
  try:
33
33
  if isinstance(future, futures.Future):
34
34
  yield future.result(), asset
@@ -52,9 +52,7 @@ def create_tasks(
52
52
  ]
53
53
  else:
54
54
  logger.debug(f"Running tasks outside ThreadsPool (max_workers={threads})")
55
- return [
56
- (partial(reader, asset, *args, **kwargs), asset) for asset in asset_list
57
- ]
55
+ return [(partial(reader, asset, *args, **kwargs), asset) for asset in asset_list]
58
56
 
59
57
 
60
58
  def multi_arrays(
@@ -112,9 +112,12 @@ def get_array_statistics(
112
112
  percentiles_names = [f"percentile_{int(p)}" for p in percentiles]
113
113
 
114
114
  if coverage is not None:
115
- assert coverage.shape == (
116
- data.shape[1],
117
- data.shape[2],
115
+ assert (
116
+ coverage.shape
117
+ == (
118
+ data.shape[1],
119
+ data.shape[2],
120
+ )
118
121
  ), f"Invalid shape ({coverage.shape}) for Coverage, expected {(data.shape[1], data.shape[2])}"
119
122
 
120
123
  else:
@@ -395,7 +398,7 @@ def get_vrt_transform(
395
398
  def has_alpha_band(src_dst: Union[DatasetReader, DatasetWriter, WarpedVRT]) -> bool:
396
399
  """Check for alpha band or mask in source."""
397
400
  if (
398
- any([MaskFlags.alpha in flags for flags in src_dst.mask_flag_enums])
401
+ any(MaskFlags.alpha in flags for flags in src_dst.mask_flag_enums)
399
402
  or ColorInterp.alpha in src_dst.colorinterp
400
403
  ):
401
404
  return True
@@ -405,10 +408,8 @@ def has_alpha_band(src_dst: Union[DatasetReader, DatasetWriter, WarpedVRT]) -> b
405
408
  def has_mask_band(src_dst: Union[DatasetReader, DatasetWriter, WarpedVRT]) -> bool:
406
409
  """Check for mask band in source."""
407
410
  if any(
408
- [
409
- (MaskFlags.per_dataset in flags and MaskFlags.alpha not in flags)
410
- for flags in src_dst.mask_flag_enums
411
- ]
411
+ (MaskFlags.per_dataset in flags and MaskFlags.alpha not in flags)
412
+ for flags in src_dst.mask_flag_enums
412
413
  ):
413
414
  return True
414
415
  return False
File without changes
File without changes
File without changes
File without changes