pycoast 1.7.0__tar.gz → 1.7.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. {pycoast-1.7.0 → pycoast-1.7.1}/MANIFEST.in +0 -1
  2. {pycoast-1.7.0/pycoast.egg-info → pycoast-1.7.1}/PKG-INFO +20 -8
  3. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/cw_base.py +45 -28
  4. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_pycoast.py +19 -9
  5. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/version.py +4 -4
  6. {pycoast-1.7.0 → pycoast-1.7.1/pycoast.egg-info}/PKG-INFO +20 -8
  7. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast.egg-info/requires.txt +7 -7
  8. {pycoast-1.7.0 → pycoast-1.7.1}/pyproject.toml +6 -0
  9. {pycoast-1.7.0 → pycoast-1.7.1}/setup.py +4 -4
  10. {pycoast-1.7.0 → pycoast-1.7.1}/AUTHORS.md +0 -0
  11. {pycoast-1.7.0 → pycoast-1.7.1}/LICENSE.txt +0 -0
  12. {pycoast-1.7.0 → pycoast-1.7.1}/README +0 -0
  13. {pycoast-1.7.0 → pycoast-1.7.1}/docs/Makefile +0 -0
  14. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/api/.gitkeep +0 -0
  15. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/conf.py +0 -0
  16. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/config.rst +0 -0
  17. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/graticule.rst +0 -0
  18. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/high_quality_contours.rst +0 -0
  19. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/BMNG_clouds_201109181715_areaT2.png +0 -0
  20. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/brazil_shapefiles_agg.png +0 -0
  21. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/euro_coast.png +0 -0
  22. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/euro_coast_agg.png +0 -0
  23. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/euro_coast_grid_agg.png +0 -0
  24. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/euro_grid.png +0 -0
  25. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/euro_grid_agg.png +0 -0
  26. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/geos_coast.png +0 -0
  27. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/geos_coast_agg.png +0 -0
  28. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/grid_geos_agg.png +0 -0
  29. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/nh_grid_coarse_agg.png +0 -0
  30. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/nh_points_agg.png +0 -0
  31. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/nh_polygons_agg.png +0 -0
  32. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/images/nh_polygons_lines_agg.png +0 -0
  33. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/index.rst +0 -0
  34. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/installation.rst +0 -0
  35. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/points.rst +0 -0
  36. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/polygons_and_lines.rst +0 -0
  37. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/shapefiles.rst +0 -0
  38. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/test.rst +0 -0
  39. {pycoast-1.7.0 → pycoast-1.7.1}/docs/source/usage.rst +0 -0
  40. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/__init__.py +0 -0
  41. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/conftest.py +0 -0
  42. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/cw_agg.py +0 -0
  43. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/cw_pil.py +0 -0
  44. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/__init__.py +0 -0
  45. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/brazil_shapefiles.png +0 -0
  46. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/brazil_shapefiles_agg.png +0 -0
  47. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/coasts_and_grid.ini +0 -0
  48. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/coasts_and_grid_agg.ini +0 -0
  49. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/contours_europe.png +0 -0
  50. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/contours_europe_agg.png +0 -0
  51. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/contours_europe_alpha.png +0 -0
  52. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/contours_geos.png +0 -0
  53. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/contours_geos_agg.png +0 -0
  54. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/dateline_boundary_cross.png +0 -0
  55. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/dateline_cross.png +0 -0
  56. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/eastern_shapes_agg.png +0 -0
  57. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/eastern_shapes_pil.png +0 -0
  58. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/grid_europe.png +0 -0
  59. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/grid_europe_agg.png +0 -0
  60. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/grid_europe_agg_txt.png +0 -0
  61. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/grid_from_dict_agg.png +0 -0
  62. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/grid_from_dict_pil.png +0 -0
  63. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/grid_geos.png +0 -0
  64. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/grid_geos_agg.png +0 -0
  65. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/grid_germ.png +0 -0
  66. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/grid_nh.png +0 -0
  67. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/grid_nh_agg.png +0 -0
  68. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/grid_nh_cfg_agg.png +0 -0
  69. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/lonlat_boundary_cross.png +0 -0
  70. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_cities_agg.ini +0 -0
  71. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_cities_agg.png +0 -0
  72. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_cities_from_dict_agg.png +0 -0
  73. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_cities_from_dict_pil.png +0 -0
  74. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_cities_pil.ini +0 -0
  75. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_cities_pil.png +0 -0
  76. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_one_shapefile.ini +0 -0
  77. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_points_agg.ini +0 -0
  78. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_points_agg.png +0 -0
  79. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_points_cfg_pil.png +0 -0
  80. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_points_pil.ini +0 -0
  81. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_points_pil.png +0 -0
  82. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_polygons.png +0 -0
  83. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/nh_polygons_agg.png +0 -0
  84. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/no_h_scratch_agg.png +0 -0
  85. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/no_h_scratch_pil.png +0 -0
  86. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/no_v_scratch_agg.png +0 -0
  87. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/no_v_scratch_pil.png +0 -0
  88. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/one_shapefile_from_cfg_agg.png +0 -0
  89. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/one_shapefile_from_cfg_pil.png +0 -0
  90. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/DejaVuSerif.ttf +0 -0
  91. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/CITIES/cities.txt +0 -0
  92. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L1.dbf +0 -0
  93. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L1.prj +0 -0
  94. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L1.shp +0 -0
  95. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L1.shx +0 -0
  96. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L2.dbf +0 -0
  97. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L2.prj +0 -0
  98. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L2.shp +0 -0
  99. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L2.shx +0 -0
  100. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L3.dbf +0 -0
  101. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L3.prj +0 -0
  102. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L3.shp +0 -0
  103. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L3.shx +0 -0
  104. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L4.dbf +0 -0
  105. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L4.prj +0 -0
  106. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L4.shp +0 -0
  107. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/GSHHS_shp/l/GSHHS_l_L4.shx +0 -0
  108. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_border_c_L1.dbf +0 -0
  109. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_border_c_L1.prj +0 -0
  110. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_border_c_L1.shp +0 -0
  111. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_border_c_L1.shx +0 -0
  112. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_border_c_L2.dbf +0 -0
  113. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_border_c_L2.prj +0 -0
  114. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_border_c_L2.shp +0 -0
  115. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_border_c_L2.shx +0 -0
  116. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_border_c_L3.dbf +0 -0
  117. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_border_c_L3.prj +0 -0
  118. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_border_c_L3.shp +0 -0
  119. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_border_c_L3.shx +0 -0
  120. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L01.dbf +0 -0
  121. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L01.prj +0 -0
  122. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L01.shp +0 -0
  123. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L01.shx +0 -0
  124. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L02.dbf +0 -0
  125. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L02.prj +0 -0
  126. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L02.shp +0 -0
  127. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L02.shx +0 -0
  128. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L03.dbf +0 -0
  129. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L03.prj +0 -0
  130. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L03.shp +0 -0
  131. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L03.shx +0 -0
  132. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L04.dbf +0 -0
  133. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L04.prj +0 -0
  134. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L04.shp +0 -0
  135. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L04.shx +0 -0
  136. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L05.dbf +0 -0
  137. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L05.prj +0 -0
  138. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L05.shp +0 -0
  139. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L05.shx +0 -0
  140. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L06.dbf +0 -0
  141. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L06.prj +0 -0
  142. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L06.shp +0 -0
  143. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L06.shx +0 -0
  144. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L07.dbf +0 -0
  145. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L07.prj +0 -0
  146. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L07.shp +0 -0
  147. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L07.shx +0 -0
  148. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L08.dbf +0 -0
  149. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L08.prj +0 -0
  150. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L08.shp +0 -0
  151. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L08.shx +0 -0
  152. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L09.dbf +0 -0
  153. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L09.prj +0 -0
  154. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L09.shp +0 -0
  155. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L09.shx +0 -0
  156. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L1.dbf +0 -0
  157. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L1.shp +0 -0
  158. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L1.shx +0 -0
  159. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L10.dbf +0 -0
  160. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L10.prj +0 -0
  161. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L10.shp +0 -0
  162. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L10.shx +0 -0
  163. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L11.dbf +0 -0
  164. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L11.prj +0 -0
  165. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L11.shp +0 -0
  166. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L11.shx +0 -0
  167. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L2.dbf +0 -0
  168. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L2.shp +0 -0
  169. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L2.shx +0 -0
  170. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L3.dbf +0 -0
  171. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L3.shp +0 -0
  172. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/gshhs/WDBII_shp/c/WDBII_river_c_L3.shx +0 -0
  173. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/Metareas.dbf +0 -0
  174. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/Metareas.mxd +0 -0
  175. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/Metareas.prj +0 -0
  176. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/Metareas.sbn +0 -0
  177. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/Metareas.sbx +0 -0
  178. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/Metareas.shp +0 -0
  179. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/Metareas.shx +0 -0
  180. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/README +0 -0
  181. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/BRASIL.dbf +0 -0
  182. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/BRASIL.shp +0 -0
  183. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/BRASIL.shx +0 -0
  184. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/BR_Capitais.dbf +0 -0
  185. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/BR_Capitais.shp +0 -0
  186. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/BR_Capitais.shx +0 -0
  187. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/BR_Contorno.dbf +0 -0
  188. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/BR_Contorno.shp +0 -0
  189. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/BR_Contorno.shx +0 -0
  190. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/BR_Regioes.dbf +0 -0
  191. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/BR_Regioes.shp +0 -0
  192. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/BR_Regioes.shx +0 -0
  193. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/divisao_politica.txt +0 -0
  194. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/divisao_politica/leia.txt +0 -0
  195. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/metarea5.gsf +0 -0
  196. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/metarea5.tbl +0 -0
  197. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/shapes/metarea5.tbl.info +0 -0
  198. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/test_data/test_config.ini +0 -0
  199. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/two_shapefiles_agg.png +0 -0
  200. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/two_shapefiles_pil.png +0 -0
  201. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/western_shapes_agg.png +0 -0
  202. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast/tests/western_shapes_pil.png +0 -0
  203. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast.egg-info/SOURCES.txt +0 -0
  204. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast.egg-info/dependency_links.txt +0 -0
  205. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast.egg-info/not-zip-safe +0 -0
  206. {pycoast-1.7.0 → pycoast-1.7.1}/pycoast.egg-info/top_level.txt +0 -0
  207. {pycoast-1.7.0 → pycoast-1.7.1}/setup.cfg +0 -0
  208. {pycoast-1.7.0 → pycoast-1.7.1}/versioneer.py +0 -0
@@ -3,7 +3,6 @@ recursive-include docs/source *
3
3
  include pycoast/tests/*.png
4
4
  recursive-include pycoast/tests/ *
5
5
  include LICENSE.txt
6
- include MANIFEST.in
7
6
 
8
7
  include versioneer.py
9
8
  include pycoast/version.py
@@ -1,12 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycoast
3
- Version: 1.7.0
3
+ Version: 1.7.1
4
4
  Summary: Writing of coastlines, borders and rivers to images in Python
5
- Home-page: UNKNOWN
6
5
  Author: Esben S. Nielsen
7
6
  Author-email: esn@dmi.dk
8
- License: UNKNOWN
9
- Platform: UNKNOWN
10
7
  Classifier: Development Status :: 5 - Production/Stable
11
8
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
12
9
  Classifier: Programming Language :: Python
@@ -14,10 +11,27 @@ Classifier: Operating System :: OS Independent
14
11
  Classifier: Intended Audience :: Science/Research
15
12
  Classifier: Topic :: Scientific/Engineering
16
13
  Requires-Python: >3.9
17
- Provides-Extra: docs
18
- Provides-Extra: tests
19
14
  License-File: LICENSE.txt
20
15
  License-File: AUTHORS.md
16
+ Requires-Dist: aggdraw
17
+ Requires-Dist: pyshp
18
+ Requires-Dist: numpy
19
+ Requires-Dist: pyproj
20
+ Requires-Dist: pillow
21
+ Provides-Extra: docs
22
+ Requires-Dist: sphinx; extra == "docs"
23
+ Requires-Dist: pyresample; extra == "docs"
24
+ Requires-Dist: pytest; extra == "docs"
25
+ Requires-Dist: pytest-lazy-fixtures; extra == "docs"
26
+ Requires-Dist: sphinx_rtd_theme; extra == "docs"
27
+ Requires-Dist: sphinxcontrib-apidoc; extra == "docs"
28
+ Provides-Extra: tests
29
+ Requires-Dist: pyresample; extra == "tests"
30
+ Requires-Dist: pytest; extra == "tests"
31
+ Requires-Dist: pytest-cov; extra == "tests"
32
+ Requires-Dist: coverage; extra == "tests"
33
+ Requires-Dist: coveralls; extra == "tests"
34
+ Requires-Dist: pytest-lazy-fixtures; extra == "tests"
21
35
 
22
36
  PyCoast
23
37
  =======
@@ -65,5 +79,3 @@ Example
65
79
  >>> cw.add_rivers(img, area_def, level=5, outline='blue')
66
80
  >>> cw.add_borders(img, area_def, outline=(255, 0, 0))
67
81
  >>> img.show()
68
-
69
-
@@ -26,6 +26,7 @@ import json
26
26
  import logging
27
27
  import math
28
28
  import os
29
+ from pathlib import Path
29
30
  from typing import Generator
30
31
 
31
32
  import numpy as np
@@ -501,11 +502,11 @@ class ContourWriterBase(object):
501
502
  return overlays
502
503
 
503
504
  def add_overlay_from_dict(self, overlays, area_def, cache_epoch=None, background=None):
504
- """Create and return a transparent image adding all the overlays contained in the `overlays` dict.
505
+ """Create and return a transparent image adding all the overlays contained in the ``overlays`` dict.
505
506
 
506
507
  Optionally caches overlay results for faster rendering of images with
507
508
  the same provided AreaDefinition and parameters. Cached results are
508
- identified by hashing the AreaDefinition and the overlays dictionary.
509
+ identified by hashing the AreaDefinition and the ``overlays`` dictionary.
509
510
 
510
511
  Note that if ``background`` is provided and caching is not used, the
511
512
  result will be the final result of applying the overlays onto the
@@ -530,24 +531,33 @@ class ContourWriterBase(object):
530
531
  provided dictionary (see below).
531
532
  background: pillow image instance
532
533
  The image on which to write the overlays on. If it's None (default),
533
- a new image is created, otherwise the provide background is
534
+ a new image is created, otherwise the provided background is
534
535
  used and changed *in place*.
535
536
 
537
+ The keys in ``overlays`` that will be taken into account are:
538
+ cache, coasts, rivers, borders, shapefiles, grid, cities, points
536
539
 
537
- The keys in `overlays` that will be taken into account are:
538
- cache, coasts, rivers, borders, shapefiles, grid, cities, points
540
+ For all of them except ``cache``, the items are the same as the
541
+ corresponding functions in pycoast, so refer to the docstrings of
542
+ these functions (add_coastlines, add_rivers, add_borders,
543
+ add_shapefile_shapes, add_grid, add_cities, add_points).
544
+ For cache, two parameters are configurable:
539
545
 
540
- For all of them except `cache`, the items are the same as the
541
- corresponding functions in pycoast, so refer to the docstrings of
542
- these functions (add_coastlines, add_rivers, add_borders,
543
- add_shapefile_shapes, add_grid, add_cities, add_points).
544
- For cache, two parameters are configurable:
546
+ - `file`:
547
+ specify the directory and the prefix
548
+ of the file to save the caches decoration to (for example
549
+ /var/run/black_coasts_red_borders)
550
+ - `regenerate`:
551
+ True or False (default) to force the overwriting
552
+ of an already cached file.
545
553
 
546
- - `file`: specify the directory and the prefix
547
- of the file to save the caches decoration to (for example
548
- /var/run/black_coasts_red_borders)
549
- - `regenerate`: True or False (default) to force the overwriting
550
- of an already cached file.
554
+ :Returns: PIL.Image.Image
555
+
556
+ Resulting overlays as an Image object. If caching was used then
557
+ the Image wraps an open file and should be closed by the caller.
558
+ If caching was not used or the cached image was recreated then
559
+ this is an in-memory Image object. Regardless, it can be closed
560
+ by calling the ``.close()`` method of the Image.
551
561
 
552
562
  """
553
563
  overlay_helper = _OverlaysFromDict(self, overlays, area_def, cache_epoch, background)
@@ -556,12 +566,22 @@ class ContourWriterBase(object):
556
566
  def add_overlay_from_config(self, config_file, area_def, background=None):
557
567
  """Create and return a transparent image adding all the overlays contained in a configuration file.
558
568
 
569
+ See :meth:`add_overlay_from_dict` for more information.
570
+
559
571
  :Parameters:
560
572
  config_file : str
561
573
  Configuration file name
562
574
  area_def : object
563
575
  Area Definition of the creating image
564
576
 
577
+ :Returns: PIL.Image.Image
578
+
579
+ Resulting overlays as an Image object. If caching was used then
580
+ the Image wraps an open file and should be closed by the caller.
581
+ If caching was not used or the cached image was recreated then
582
+ this is an in-memory Image object. Regardless, it can be closed
583
+ by calling the ``.close()`` method of the Image.
584
+
565
585
  """
566
586
  overlays = self._config_to_dict(config_file)
567
587
  return self.add_overlay_from_dict(overlays, area_def, os.path.getmtime(config_file), background)
@@ -705,8 +725,7 @@ class ContourWriterBase(object):
705
725
  # cities.red is a reduced version of the files avalable at http://download.geonames.org
706
726
  # Fields: 0=name (UTF-8), 1=asciiname, 2=longitude [°E], 3=latitude [°N], 4=countrycode
707
727
  cities_filename = os.path.join(db_root_path, os.path.join("CITIES", "cities.txt"))
708
- cities_parser = GeoNamesCitiesParser(cities_filename)
709
- for city_name, lon, lat in cities_parser.iter_cities_names_lon_lat(cities_list):
728
+ for city_name, lon, lat in iter_cities_names_lon_lat(cities_filename, cities_list):
710
729
  try:
711
730
  x, y = area_def.get_array_indices_from_lonlat(lon, lat)
712
731
  except ValueError:
@@ -1132,14 +1151,12 @@ def _get_pixel_index(shape, area_extent, x_size, y_size, prj, x_offset=0, y_offs
1132
1151
  return index_arrays, is_reduced
1133
1152
 
1134
1153
 
1135
- class GeoNamesCitiesParser:
1136
- """Helper for parsing citiesN.txt files from GeoNames.org."""
1137
-
1138
- def __init__(self, cities_filename: str):
1139
- self._cities_file = open(cities_filename, mode="r", encoding="utf-8")
1140
-
1141
- def iter_cities_names_lon_lat(self, cities_list: list[str]) -> Generator[tuple[str, float, float], None, None]:
1142
- for city_row in self._cities_file:
1154
+ def iter_cities_names_lon_lat(
1155
+ cities_filename: str | Path, cities_list: list[str]
1156
+ ) -> Generator[tuple[str, float, float], None, None]:
1157
+ """Iterate over citiesN.txt files from GeoNames.org."""
1158
+ with open(cities_filename, mode="r", encoding="utf-8") as cities_file:
1159
+ for city_row in cities_file:
1143
1160
  city_info = city_row.split("\t")
1144
1161
  if not city_info or not (city_info[1] in cities_list or city_info[2] in cities_list):
1145
1162
  continue
@@ -1441,7 +1458,7 @@ class _OverlaysFromDict:
1441
1458
  def _apply_cached_foreground_on_background(background, foreground):
1442
1459
  premult_foreground = foreground.convert("RGBa")
1443
1460
  if background.mode == "RGBA":
1444
- # Cached foreground and background are both RGBA, not extra conversions needed
1461
+ # Cached foreground and background are both RGBA, no extra conversions needed
1445
1462
  background.paste(premult_foreground, mask=premult_foreground)
1446
1463
  return
1447
1464
  background_rgba = background.convert("RGBA")
@@ -1521,7 +1538,7 @@ class _GridDrawer:
1521
1538
  min_lons[min_lons > 180] = min_lons[min_lons > 180] - 360
1522
1539
 
1523
1540
  # Get min_lons not in maj_lons
1524
- min_lons = np.lib.arraysetops.setdiff1d(min_lons, maj_lons)
1541
+ min_lons = np.setdiff1d(min_lons, maj_lons)
1525
1542
 
1526
1543
  # lats along major lon lines
1527
1544
  lin_lats = np.arange(
@@ -1542,7 +1559,7 @@ class _GridDrawer:
1542
1559
  min_lats = np.arange(round_lat_min + increase_min_lat, lat_max - shorten_max_lat, dlat)
1543
1560
 
1544
1561
  # Get min_lats not in maj_lats
1545
- min_lats = np.lib.arraysetops.setdiff1d(min_lats, maj_lats)
1562
+ min_lats = np.setdiff1d(min_lats, maj_lats)
1546
1563
 
1547
1564
  # lons along major lat lines (extended slightly to avoid missing the end)
1548
1565
  lin_lons = np.linspace(lon_min, lon_max + Dlon / 5.0, max(self._x_size, self._y_size) // 5)
@@ -30,7 +30,7 @@ import shapefile
30
30
  from PIL import Image, ImageFont
31
31
  from pyproj import CRS
32
32
  from pyresample.geometry import AreaDefinition
33
- from pytest_lazyfixture import lazy_fixture
33
+ from pytest_lazy_fixtures import lf as lazy_fixture
34
34
 
35
35
  LOCAL_DIR = os.path.dirname(__file__)
36
36
 
@@ -1900,6 +1900,7 @@ class TestFromConfig:
1900
1900
  # Create the original cache file
1901
1901
  img = cw.add_overlay_from_dict(overlays, area_def)
1902
1902
  res = np.array(img)
1903
+ img.close()
1903
1904
  cache_glob = glob(os.path.join(tmpdir, "pycoast_cache_*.png"))
1904
1905
  assert len(cache_glob) == 1
1905
1906
  cache_filename = cache_glob[0]
@@ -1910,22 +1911,26 @@ class TestFromConfig:
1910
1911
  # Reuse the generated cache file
1911
1912
  img = cw.add_overlay_from_dict(overlays, area_def)
1912
1913
  res = np.array(img)
1914
+ img.close()
1913
1915
  assert fft_metric(euro_data, res), "Writing of contours failed"
1914
1916
  assert os.path.isfile(cache_filename)
1915
1917
  assert os.path.getmtime(cache_filename) == mtime
1916
1918
 
1917
1919
  # Regenerate cache file
1918
1920
  current_time = time.time()
1919
- cw.add_overlay_from_dict(overlays, area_def, current_time)
1921
+ fg_img = cw.add_overlay_from_dict(overlays, area_def, current_time)
1922
+ fg_img.close()
1920
1923
  mtime = os.path.getmtime(cache_filename)
1921
1924
  assert mtime > current_time
1922
1925
  assert fft_metric(euro_data, res), "Writing of contours failed"
1923
1926
 
1924
- cw.add_overlay_from_dict(overlays, area_def, current_time)
1927
+ fg_img = cw.add_overlay_from_dict(overlays, area_def, current_time)
1928
+ fg_img.close()
1925
1929
  assert os.path.getmtime(cache_filename) == mtime
1926
1930
  assert fft_metric(euro_data, res), "Writing of contours failed"
1927
1931
  overlays["cache"]["regenerate"] = True
1928
- cw.add_overlay_from_dict(overlays, area_def)
1932
+ fg_img = cw.add_overlay_from_dict(overlays, area_def)
1933
+ fg_img.close()
1929
1934
 
1930
1935
  assert os.path.getmtime(cache_filename) != mtime
1931
1936
  assert fft_metric(euro_data, res), "Writing of contours failed"
@@ -1943,7 +1948,8 @@ class TestFromConfig:
1943
1948
  "lat_placement": "lr",
1944
1949
  "lon_placement": "b",
1945
1950
  }
1946
- cw.add_overlay_from_dict(overlays, area_def)
1951
+ fg_img = cw.add_overlay_from_dict(overlays, area_def)
1952
+ fg_img.close()
1947
1953
  os.remove(cache_filename)
1948
1954
 
1949
1955
  def test_caching_with_param_changes(self, tmpdir):
@@ -1962,7 +1968,8 @@ class TestFromConfig:
1962
1968
  }
1963
1969
 
1964
1970
  # Create the original cache file
1965
- cw.add_overlay_from_dict(overlays, area_def)
1971
+ fg_img = cw.add_overlay_from_dict(overlays, area_def)
1972
+ fg_img.close()
1966
1973
  cache_glob = glob(os.path.join(tmpdir, "pycoast_cache_*.png"))
1967
1974
  assert len(cache_glob) == 1
1968
1975
  cache_filename = cache_glob[0]
@@ -1970,7 +1977,8 @@ class TestFromConfig:
1970
1977
  mtime = os.path.getmtime(cache_filename)
1971
1978
 
1972
1979
  # Reuse the generated cache file
1973
- cw.add_overlay_from_dict(overlays, area_def)
1980
+ fg_img = cw.add_overlay_from_dict(overlays, area_def)
1981
+ fg_img.close()
1974
1982
  cache_glob = glob(os.path.join(tmpdir, "pycoast_cache_*.png"))
1975
1983
  assert len(cache_glob) == 1
1976
1984
  assert os.path.isfile(cache_filename)
@@ -1979,7 +1987,8 @@ class TestFromConfig:
1979
1987
  # Remove the font option, should produce the same result
1980
1988
  # font is not considered when caching
1981
1989
  del overlays["grid"]["font"]
1982
- cw.add_overlay_from_dict(overlays, area_def)
1990
+ fg_img = cw.add_overlay_from_dict(overlays, area_def)
1991
+ fg_img.close()
1983
1992
  cache_glob = glob(os.path.join(tmpdir, "pycoast_cache_*.png"))
1984
1993
  assert len(cache_glob) == 1
1985
1994
  assert os.path.isfile(cache_filename)
@@ -1990,7 +1999,8 @@ class TestFromConfig:
1990
1999
  "cache": {"file": os.path.join(tmpdir, "pycoast_cache")},
1991
2000
  "grid": {"width": 2.0},
1992
2001
  }
1993
- cw.add_overlay_from_dict(overlays, area_def)
2002
+ fg_img = cw.add_overlay_from_dict(overlays, area_def)
2003
+ fg_img.close()
1994
2004
  cache_glob = glob(os.path.join(tmpdir, "pycoast_cache_*.png"))
1995
2005
  assert len(cache_glob) == 2
1996
2006
  assert os.path.isfile(cache_filename)
@@ -1,5 +1,5 @@
1
1
 
2
- # This file was generated by 'versioneer.py' (0.28) from
2
+ # This file was generated by 'versioneer.py' (0.19) from
3
3
  # revision-control system data, or from the parent directory name of an
4
4
  # unpacked source archive. Distribution tarballs contain a pre-generated copy
5
5
  # of this file.
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2023-11-30T08:53:01-0600",
11
+ "date": "2024-07-01T10:44:04-0500",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "b2497177a877e25561142af580f3c0534d79397a",
15
- "version": "1.7.0"
14
+ "full-revisionid": "c526f4e2f3c1578b1c7ed95d3bfdfca49b31d1d9",
15
+ "version": "1.7.1"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -1,12 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycoast
3
- Version: 1.7.0
3
+ Version: 1.7.1
4
4
  Summary: Writing of coastlines, borders and rivers to images in Python
5
- Home-page: UNKNOWN
6
5
  Author: Esben S. Nielsen
7
6
  Author-email: esn@dmi.dk
8
- License: UNKNOWN
9
- Platform: UNKNOWN
10
7
  Classifier: Development Status :: 5 - Production/Stable
11
8
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
12
9
  Classifier: Programming Language :: Python
@@ -14,10 +11,27 @@ Classifier: Operating System :: OS Independent
14
11
  Classifier: Intended Audience :: Science/Research
15
12
  Classifier: Topic :: Scientific/Engineering
16
13
  Requires-Python: >3.9
17
- Provides-Extra: docs
18
- Provides-Extra: tests
19
14
  License-File: LICENSE.txt
20
15
  License-File: AUTHORS.md
16
+ Requires-Dist: aggdraw
17
+ Requires-Dist: pyshp
18
+ Requires-Dist: numpy
19
+ Requires-Dist: pyproj
20
+ Requires-Dist: pillow
21
+ Provides-Extra: docs
22
+ Requires-Dist: sphinx; extra == "docs"
23
+ Requires-Dist: pyresample; extra == "docs"
24
+ Requires-Dist: pytest; extra == "docs"
25
+ Requires-Dist: pytest-lazy-fixtures; extra == "docs"
26
+ Requires-Dist: sphinx_rtd_theme; extra == "docs"
27
+ Requires-Dist: sphinxcontrib-apidoc; extra == "docs"
28
+ Provides-Extra: tests
29
+ Requires-Dist: pyresample; extra == "tests"
30
+ Requires-Dist: pytest; extra == "tests"
31
+ Requires-Dist: pytest-cov; extra == "tests"
32
+ Requires-Dist: coverage; extra == "tests"
33
+ Requires-Dist: coveralls; extra == "tests"
34
+ Requires-Dist: pytest-lazy-fixtures; extra == "tests"
21
35
 
22
36
  PyCoast
23
37
  =======
@@ -65,5 +79,3 @@ Example
65
79
  >>> cw.add_rivers(img, area_def, level=5, outline='blue')
66
80
  >>> cw.add_borders(img, area_def, outline=(255, 0, 0))
67
81
  >>> img.show()
68
-
69
-
@@ -1,21 +1,21 @@
1
1
  aggdraw
2
+ pyshp
2
3
  numpy
3
- pillow
4
4
  pyproj
5
- pyshp
5
+ pillow
6
6
 
7
7
  [docs]
8
+ sphinx
8
9
  pyresample
9
10
  pytest
10
- pytest-lazy-fixture
11
- sphinx
11
+ pytest-lazy-fixtures
12
12
  sphinx_rtd_theme
13
13
  sphinxcontrib-apidoc
14
14
 
15
15
  [tests]
16
- coverage
17
- coveralls
18
16
  pyresample
19
17
  pytest
20
18
  pytest-cov
21
- pytest-lazy-fixture
19
+ coverage
20
+ coveralls
21
+ pytest-lazy-fixtures
@@ -14,3 +14,9 @@ exclude = '''
14
14
  )
15
15
 
16
16
  '''
17
+
18
+ [tool.pytest.ini_options]
19
+ filterwarnings = [
20
+ "error",
21
+ "ignore:numpy.ndarray size changed:RuntimeWarning",
22
+ ]
@@ -16,7 +16,7 @@
16
16
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  """Setuptools-based packaging and installation configuration."""
18
18
 
19
- from setuptools import setup
19
+ from setuptools import find_packages, setup
20
20
 
21
21
  import versioneer
22
22
 
@@ -27,11 +27,11 @@ extras_require = {
27
27
  "sphinx",
28
28
  "pyresample",
29
29
  "pytest",
30
- "pytest-lazy-fixture",
30
+ "pytest-lazy-fixtures",
31
31
  "sphinx_rtd_theme",
32
32
  "sphinxcontrib-apidoc",
33
33
  ],
34
- "tests": ["pyresample", "pytest", "pytest-cov", "coverage", "coveralls", "pytest-lazy-fixture"],
34
+ "tests": ["pyresample", "pytest", "pytest-cov", "coverage", "coveralls", "pytest-lazy-fixtures"],
35
35
  }
36
36
 
37
37
  with open("README", "r") as readme_file:
@@ -45,7 +45,7 @@ setup(
45
45
  long_description=long_description,
46
46
  author="Esben S. Nielsen",
47
47
  author_email="esn@dmi.dk",
48
- packages=["pycoast", "pycoast.tests"],
48
+ packages=find_packages(),
49
49
  include_package_data=True,
50
50
  install_requires=requires,
51
51
  extras_require=extras_require,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes