climpact-web 0.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 (254) hide show
  1. climpact_web-0.1.0/.gitignore +22 -0
  2. climpact_web-0.1.0/LICENSE +675 -0
  3. climpact_web-0.1.0/PKG-INFO +97 -0
  4. climpact_web-0.1.0/README.md +59 -0
  5. climpact_web-0.1.0/pyproject.toml +92 -0
  6. climpact_web-0.1.0/src/climpact_web/__init__.py +7 -0
  7. climpact_web-0.1.0/src/climpact_web/__main__.py +7 -0
  8. climpact_web-0.1.0/src/climpact_web/batch/__init__.py +0 -0
  9. climpact_web-0.1.0/src/climpact_web/batch/apps.py +13 -0
  10. climpact_web-0.1.0/src/climpact_web/batch/check.py +542 -0
  11. climpact_web-0.1.0/src/climpact_web/batch/forms.py +179 -0
  12. climpact_web-0.1.0/src/climpact_web/batch/migrations/0001_initial.py +62 -0
  13. climpact_web-0.1.0/src/climpact_web/batch/migrations/__init__.py +0 -0
  14. climpact_web-0.1.0/src/climpact_web/batch/models.py +126 -0
  15. climpact_web-0.1.0/src/climpact_web/batch/retention.py +40 -0
  16. climpact_web-0.1.0/src/climpact_web/batch/sample_data/climpact.sample.batch.metadata.txt +3 -0
  17. climpact_web-0.1.0/src/climpact_web/batch/templates/batch/_options.html +26 -0
  18. climpact_web-0.1.0/src/climpact_web/batch/templates/batch/_progress.html +126 -0
  19. climpact_web-0.1.0/src/climpact_web/batch/templates/batch/_retention.html +8 -0
  20. climpact_web-0.1.0/src/climpact_web/batch/templates/batch/check.html +155 -0
  21. climpact_web-0.1.0/src/climpact_web/batch/templates/batch/results.html +33 -0
  22. climpact_web-0.1.0/src/climpact_web/batch/templates/batch/start.html +84 -0
  23. climpact_web-0.1.0/src/climpact_web/batch/urls.py +19 -0
  24. climpact_web-0.1.0/src/climpact_web/batch/views.py +585 -0
  25. climpact_web-0.1.0/src/climpact_web/charts/__init__.py +0 -0
  26. climpact_web-0.1.0/src/climpact_web/charts/apps.py +7 -0
  27. climpact_web-0.1.0/src/climpact_web/charts/data.py +506 -0
  28. climpact_web-0.1.0/src/climpact_web/charts/sample_outputs/sydney/indices/sydney_3month_spi_MON.csv +968 -0
  29. climpact_web-0.1.0/src/climpact_web/charts/sample_outputs/sydney/indices/sydney_prcptot_ANN.csv +88 -0
  30. climpact_web-0.1.0/src/climpact_web/charts/sample_outputs/sydney/indices/sydney_txx_ANN.csv +88 -0
  31. climpact_web-0.1.0/src/climpact_web/charts/sample_outputs/sydney/indices/sydney_txx_MON.csv +968 -0
  32. climpact_web-0.1.0/src/climpact_web/charts/sample_outputs/sydney/trend/sydney_trend.csv +24 -0
  33. climpact_web-0.1.0/src/climpact_web/charts/templatetags/__init__.py +0 -0
  34. climpact_web-0.1.0/src/climpact_web/charts/templatetags/charts.py +56 -0
  35. climpact_web-0.1.0/src/climpact_web/charts/urls.py +14 -0
  36. climpact_web-0.1.0/src/climpact_web/charts/views.py +255 -0
  37. climpact_web-0.1.0/src/climpact_web/cli.py +308 -0
  38. climpact_web-0.1.0/src/climpact_web/core/__init__.py +0 -0
  39. climpact_web-0.1.0/src/climpact_web/core/apps.py +9 -0
  40. climpact_web-0.1.0/src/climpact_web/core/context_processors.py +14 -0
  41. climpact_web-0.1.0/src/climpact_web/core/forms.py +47 -0
  42. climpact_web-0.1.0/src/climpact_web/core/management/__init__.py +0 -0
  43. climpact_web-0.1.0/src/climpact_web/core/management/commands/__init__.py +0 -0
  44. climpact_web-0.1.0/src/climpact_web/core/management/commands/design_snapshots.py +293 -0
  45. climpact_web-0.1.0/src/climpact_web/core/navigation.py +161 -0
  46. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/chart-palette.json +85 -0
  47. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/css/climpact.css +2 -0
  48. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/icons/favicon.svg +1 -0
  49. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/icons/icons.svg +46 -0
  50. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/js/charts.js +979 -0
  51. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/js/gridded.js +21 -0
  52. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/js/qc.js +108 -0
  53. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/js/results.js +78 -0
  54. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/js/sector.js +18 -0
  55. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/js/tour.js +191 -0
  56. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/js/ui.js +353 -0
  57. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/vendor/htmx/README.md +14 -0
  58. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/vendor/htmx/htmx.min.js +1 -0
  59. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/vendor/uplot/LICENSE +21 -0
  60. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/vendor/uplot/README.md +23 -0
  61. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/vendor/uplot/uPlot.iife.min.js +2 -0
  62. climpact_web-0.1.0/src/climpact_web/core/static/climpact_web/vendor/uplot/uPlot.min.css +1 -0
  63. climpact_web-0.1.0/src/climpact_web/core/storage.py +70 -0
  64. climpact_web-0.1.0/src/climpact_web/core/tailwind/base.css +246 -0
  65. climpact_web-0.1.0/src/climpact_web/core/tailwind/climpact.css +81 -0
  66. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/batch.css +94 -0
  67. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/buttons.css +105 -0
  68. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/cards.css +158 -0
  69. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/charts.css +188 -0
  70. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/dialog.css +44 -0
  71. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/disclosure.css +38 -0
  72. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/feedback.css +301 -0
  73. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/forms.css +205 -0
  74. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/gridded.css +197 -0
  75. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/header.css +263 -0
  76. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/help.css +268 -0
  77. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/home.css +21 -0
  78. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/layout.css +98 -0
  79. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/patterns.css +47 -0
  80. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/qc.css +105 -0
  81. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/results.css +307 -0
  82. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/sector.css +41 -0
  83. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/stations.css +94 -0
  84. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/stepper.css +117 -0
  85. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/tables.css +52 -0
  86. climpact_web-0.1.0/src/climpact_web/core/tailwind/components/tabs.css +54 -0
  87. climpact_web-0.1.0/src/climpact_web/core/tailwind/theme.css +109 -0
  88. climpact_web-0.1.0/src/climpact_web/core/templates/404.html +7 -0
  89. climpact_web-0.1.0/src/climpact_web/core/templates/413.html +9 -0
  90. climpact_web-0.1.0/src/climpact_web/core/templates/500.html +20 -0
  91. climpact_web-0.1.0/src/climpact_web/core/templates/base.html +79 -0
  92. climpact_web-0.1.0/src/climpact_web/core/templates/components/alert.html +15 -0
  93. climpact_web-0.1.0/src/climpact_web/core/templates/components/badge.html +2 -0
  94. climpact_web-0.1.0/src/climpact_web/core/templates/components/button.html +9 -0
  95. climpact_web-0.1.0/src/climpact_web/core/templates/components/card.html +10 -0
  96. climpact_web-0.1.0/src/climpact_web/core/templates/components/chart_frame.html +62 -0
  97. climpact_web-0.1.0/src/climpact_web/core/templates/components/dialog.html +20 -0
  98. climpact_web-0.1.0/src/climpact_web/core/templates/components/disclosure.html +5 -0
  99. climpact_web-0.1.0/src/climpact_web/core/templates/components/dropzone.html +15 -0
  100. climpact_web-0.1.0/src/climpact_web/core/templates/components/empty_state.html +7 -0
  101. climpact_web-0.1.0/src/climpact_web/core/templates/components/field.html +33 -0
  102. climpact_web-0.1.0/src/climpact_web/core/templates/components/field_errors.html +1 -0
  103. climpact_web-0.1.0/src/climpact_web/core/templates/components/form_errors.html +16 -0
  104. climpact_web-0.1.0/src/climpact_web/core/templates/components/messages.html +7 -0
  105. climpact_web-0.1.0/src/climpact_web/core/templates/components/progress.html +9 -0
  106. climpact_web-0.1.0/src/climpact_web/core/templates/components/skeleton.html +10 -0
  107. climpact_web-0.1.0/src/climpact_web/core/templates/components/stages.html +12 -0
  108. climpact_web-0.1.0/src/climpact_web/core/templates/components/stat.html +2 -0
  109. climpact_web-0.1.0/src/climpact_web/core/templates/components/steps.html +20 -0
  110. climpact_web-0.1.0/src/climpact_web/core/templates/components/summary_list.html +4 -0
  111. climpact_web-0.1.0/src/climpact_web/core/templates/components/table.html +18 -0
  112. climpact_web-0.1.0/src/climpact_web/core/templates/components/tabs.html +17 -0
  113. climpact_web-0.1.0/src/climpact_web/core/templates/components/theme_toggle.html +6 -0
  114. climpact_web-0.1.0/src/climpact_web/core/templates/components/toasts.html +12 -0
  115. climpact_web-0.1.0/src/climpact_web/core/templates/core/home.html +117 -0
  116. climpact_web-0.1.0/src/climpact_web/core/templates/core/language_switcher.html +12 -0
  117. climpact_web-0.1.0/src/climpact_web/core/templates/core/patterns.html +291 -0
  118. climpact_web-0.1.0/src/climpact_web/core/templates/core/patterns_table.html +1 -0
  119. climpact_web-0.1.0/src/climpact_web/core/templatetags/__init__.py +0 -0
  120. climpact_web-0.1.0/src/climpact_web/core/templatetags/ui.py +63 -0
  121. climpact_web-0.1.0/src/climpact_web/core/tokens.py +90 -0
  122. climpact_web-0.1.0/src/climpact_web/core/urls.py +11 -0
  123. climpact_web-0.1.0/src/climpact_web/core/views.py +189 -0
  124. climpact_web-0.1.0/src/climpact_web/gridded/__init__.py +0 -0
  125. climpact_web-0.1.0/src/climpact_web/gridded/apps.py +13 -0
  126. climpact_web-0.1.0/src/climpact_web/gridded/forms.py +499 -0
  127. climpact_web-0.1.0/src/climpact_web/gridded/inspection.py +412 -0
  128. climpact_web-0.1.0/src/climpact_web/gridded/maps.py +444 -0
  129. climpact_web-0.1.0/src/climpact_web/gridded/migrations/0001_initial.py +73 -0
  130. climpact_web-0.1.0/src/climpact_web/gridded/migrations/__init__.py +0 -0
  131. climpact_web-0.1.0/src/climpact_web/gridded/models.py +109 -0
  132. climpact_web-0.1.0/src/climpact_web/gridded/retention.py +44 -0
  133. climpact_web-0.1.0/src/climpact_web/gridded/sample_data/climpact.sampledata.gridded.3x4.1991-2010.nc +0 -0
  134. climpact_web-0.1.0/src/climpact_web/gridded/templates/gridded/_browser.html +23 -0
  135. climpact_web-0.1.0/src/climpact_web/gridded/templates/gridded/_checks.html +29 -0
  136. climpact_web-0.1.0/src/climpact_web/gridded/templates/gridded/_chooser.html +27 -0
  137. climpact_web-0.1.0/src/climpact_web/gridded/templates/gridded/_explore.html +131 -0
  138. climpact_web-0.1.0/src/climpact_web/gridded/templates/gridded/_progress.html +93 -0
  139. climpact_web-0.1.0/src/climpact_web/gridded/templates/gridded/_retention.html +1 -0
  140. climpact_web-0.1.0/src/climpact_web/gridded/templates/gridded/_series_table.html +8 -0
  141. climpact_web-0.1.0/src/climpact_web/gridded/templates/gridded/results.html +27 -0
  142. climpact_web-0.1.0/src/climpact_web/gridded/templates/gridded/setup.html +196 -0
  143. climpact_web-0.1.0/src/climpact_web/gridded/templates/gridded/start.html +73 -0
  144. climpact_web-0.1.0/src/climpact_web/gridded/urls.py +23 -0
  145. climpact_web-0.1.0/src/climpact_web/gridded/views.py +892 -0
  146. climpact_web-0.1.0/src/climpact_web/help/__init__.py +0 -0
  147. climpact_web-0.1.0/src/climpact_web/help/apps.py +8 -0
  148. climpact_web-0.1.0/src/climpact_web/help/guides/en/accessibility.md +89 -0
  149. climpact_web-0.1.0/src/climpact_web/help/guides/en/base-period.md +70 -0
  150. climpact_web-0.1.0/src/climpact_web/help/guides/en/batch.md +93 -0
  151. climpact_web-0.1.0/src/climpact_web/help/guides/en/faq.md +72 -0
  152. climpact_web-0.1.0/src/climpact_web/help/guides/en/gridded.md +86 -0
  153. climpact_web-0.1.0/src/climpact_web/help/guides/en/indices.md +137 -0
  154. climpact_web-0.1.0/src/climpact_web/help/guides/en/quality-control.md +113 -0
  155. climpact_web-0.1.0/src/climpact_web/help/guides/en/sector.md +77 -0
  156. climpact_web-0.1.0/src/climpact_web/help/guides/en/station-file.md +89 -0
  157. climpact_web-0.1.0/src/climpact_web/help/guides/en/trends.md +67 -0
  158. climpact_web-0.1.0/src/climpact_web/help/guides.py +288 -0
  159. climpact_web-0.1.0/src/climpact_web/help/index_messages.py +145 -0
  160. climpact_web-0.1.0/src/climpact_web/help/indices.py +310 -0
  161. climpact_web-0.1.0/src/climpact_web/help/templates/help/_results.html +20 -0
  162. climpact_web-0.1.0/src/climpact_web/help/templates/help/_search_form.html +15 -0
  163. climpact_web-0.1.0/src/climpact_web/help/templates/help/_topic.html +11 -0
  164. climpact_web-0.1.0/src/climpact_web/help/templates/help/_tour.html +16 -0
  165. climpact_web-0.1.0/src/climpact_web/help/templates/help/guide.html +35 -0
  166. climpact_web-0.1.0/src/climpact_web/help/templates/help/index.html +67 -0
  167. climpact_web-0.1.0/src/climpact_web/help/templates/help/search.html +11 -0
  168. climpact_web-0.1.0/src/climpact_web/help/templates/help/topics.html +31 -0
  169. climpact_web-0.1.0/src/climpact_web/help/templatetags/__init__.py +0 -0
  170. climpact_web-0.1.0/src/climpact_web/help/templatetags/help.py +40 -0
  171. climpact_web-0.1.0/src/climpact_web/help/topics.py +795 -0
  172. climpact_web-0.1.0/src/climpact_web/help/tour.py +58 -0
  173. climpact_web-0.1.0/src/climpact_web/help/urls.py +12 -0
  174. climpact_web-0.1.0/src/climpact_web/help/views.py +67 -0
  175. climpact_web-0.1.0/src/climpact_web/jobs/__init__.py +0 -0
  176. climpact_web-0.1.0/src/climpact_web/jobs/apps.py +10 -0
  177. climpact_web-0.1.0/src/climpact_web/jobs/context_processors.py +7 -0
  178. climpact_web-0.1.0/src/climpact_web/jobs/forms.py +13 -0
  179. climpact_web-0.1.0/src/climpact_web/jobs/management/__init__.py +0 -0
  180. climpact_web-0.1.0/src/climpact_web/jobs/management/commands/__init__.py +0 -0
  181. climpact_web-0.1.0/src/climpact_web/jobs/management/commands/purgejobs.py +22 -0
  182. climpact_web-0.1.0/src/climpact_web/jobs/management/commands/runworker.py +41 -0
  183. climpact_web-0.1.0/src/climpact_web/jobs/migrations/0001_initial.py +75 -0
  184. climpact_web-0.1.0/src/climpact_web/jobs/migrations/__init__.py +0 -0
  185. climpact_web-0.1.0/src/climpact_web/jobs/models.py +170 -0
  186. climpact_web-0.1.0/src/climpact_web/jobs/registry.py +76 -0
  187. climpact_web-0.1.0/src/climpact_web/jobs/retention.py +99 -0
  188. climpact_web-0.1.0/src/climpact_web/jobs/runners.py +587 -0
  189. climpact_web-0.1.0/src/climpact_web/jobs/stages.py +41 -0
  190. climpact_web-0.1.0/src/climpact_web/jobs/storage.py +76 -0
  191. climpact_web-0.1.0/src/climpact_web/jobs/templates/jobs/_progress.html +83 -0
  192. climpact_web-0.1.0/src/climpact_web/jobs/templates/jobs/_status.html +2 -0
  193. climpact_web-0.1.0/src/climpact_web/jobs/templates/jobs/job_detail.html +20 -0
  194. climpact_web-0.1.0/src/climpact_web/jobs/templates/jobs/job_list.html +35 -0
  195. climpact_web-0.1.0/src/climpact_web/jobs/urls.py +14 -0
  196. climpact_web-0.1.0/src/climpact_web/jobs/views.py +177 -0
  197. climpact_web-0.1.0/src/climpact_web/jobs/worker.py +402 -0
  198. climpact_web-0.1.0/src/climpact_web/locale/en/LC_MESSAGES/django.po +7828 -0
  199. climpact_web-0.1.0/src/climpact_web/middleware.py +69 -0
  200. climpact_web-0.1.0/src/climpact_web/settings.py +264 -0
  201. climpact_web-0.1.0/src/climpact_web/stations/__init__.py +0 -0
  202. climpact_web-0.1.0/src/climpact_web/stations/apps.py +13 -0
  203. climpact_web-0.1.0/src/climpact_web/stations/downloads.py +184 -0
  204. climpact_web-0.1.0/src/climpact_web/stations/forms.py +295 -0
  205. climpact_web-0.1.0/src/climpact_web/stations/forms_indices.py +397 -0
  206. climpact_web-0.1.0/src/climpact_web/stations/migrations/0001_initial.py +98 -0
  207. climpact_web-0.1.0/src/climpact_web/stations/migrations/0002_batch_origin.py +30 -0
  208. climpact_web-0.1.0/src/climpact_web/stations/migrations/0003_qc_params.py +17 -0
  209. climpact_web-0.1.0/src/climpact_web/stations/migrations/__init__.py +0 -0
  210. climpact_web-0.1.0/src/climpact_web/stations/models.py +180 -0
  211. climpact_web-0.1.0/src/climpact_web/stations/preview.py +98 -0
  212. climpact_web-0.1.0/src/climpact_web/stations/qc_plots.py +338 -0
  213. climpact_web-0.1.0/src/climpact_web/stations/qc_review.py +856 -0
  214. climpact_web-0.1.0/src/climpact_web/stations/results.py +793 -0
  215. climpact_web-0.1.0/src/climpact_web/stations/retention.py +57 -0
  216. climpact_web-0.1.0/src/climpact_web/stations/sample_data/sydney_observatory_hill_1936-2015.txt.gz +0 -0
  217. climpact_web-0.1.0/src/climpact_web/stations/sample_data/wheat_yield_nsw_1922-1999.csv +79 -0
  218. climpact_web-0.1.0/src/climpact_web/stations/sector_file.py +345 -0
  219. climpact_web-0.1.0/src/climpact_web/stations/sector_plots.py +374 -0
  220. climpact_web-0.1.0/src/climpact_web/stations/station_file.py +406 -0
  221. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_download_link.html +1 -0
  222. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_indices_unit.html +49 -0
  223. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_problems.html +17 -0
  224. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_qc_box_plot.html +27 -0
  225. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_qc_check.html +14 -0
  226. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_qc_distributions.html +77 -0
  227. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_qc_form.html +20 -0
  228. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_qc_missing.html +40 -0
  229. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_qc_progress.html +26 -0
  230. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_qc_summary.html +54 -0
  231. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_qc_table.html +34 -0
  232. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_results_progress.html +67 -0
  233. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_retention.html +16 -0
  234. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_sector_progress.html +40 -0
  235. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_sector_results.html +94 -0
  236. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_spark.html +1 -0
  237. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_summary.html +105 -0
  238. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/_unit.html +33 -0
  239. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/downloads.html +104 -0
  240. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/indices.html +108 -0
  241. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/load.html +62 -0
  242. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/qc.html +133 -0
  243. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/result.html +118 -0
  244. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/results.html +143 -0
  245. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/results_progress.html +24 -0
  246. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/sector.html +91 -0
  247. climpact_web-0.1.0/src/climpact_web/stations/templates/stations/upload.html +73 -0
  248. climpact_web-0.1.0/src/climpact_web/stations/urls.py +51 -0
  249. climpact_web-0.1.0/src/climpact_web/stations/views.py +530 -0
  250. climpact_web-0.1.0/src/climpact_web/stations/views_downloads.py +53 -0
  251. climpact_web-0.1.0/src/climpact_web/stations/views_indices.py +545 -0
  252. climpact_web-0.1.0/src/climpact_web/stations/views_sector.py +219 -0
  253. climpact_web-0.1.0/src/climpact_web/urls.py +14 -0
  254. climpact_web-0.1.0/src/climpact_web/wsgi.py +9 -0
@@ -0,0 +1,22 @@
1
+ # Plots from the R reference runs; the CSVs are committed
2
+ reference/output/**/*.png
3
+ reference/output/**/*.pdf
4
+
5
+ # Python
6
+ .venv/
7
+ __pycache__/
8
+ *.egg-info/
9
+ .pytest_cache/
10
+ .ruff_cache/
11
+ dist/
12
+ build/
13
+ reference/.ghcn-cache/
14
+
15
+ # The standalone Tailwind CLI (scripts/fetch-tailwind.sh, #118)
16
+ bin/
17
+
18
+ # The R parity summary the test run writes (tests/parity/conftest.py)
19
+ .parity-summary.txt
20
+
21
+ # The Droplet's real env file for deploy/compose.yaml (#121); never committed
22
+ deploy/.env