irie 0.0.50__tar.gz → 0.0.51__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.

Potentially problematic release.


This version of irie might be problematic. Click here for more details.

Files changed (514) hide show
  1. {irie-0.0.50 → irie-0.0.51}/PKG-INFO +2 -3
  2. {irie-0.0.50 → irie-0.0.51}/pyproject.toml +2 -2
  3. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/filters.py +11 -29
  4. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/models.py +3 -3
  5. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/views.py +9 -2
  6. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/admin.py +2 -1
  7. irie-0.0.51/src/irie/apps/prediction/migrations/0004_sensorassignment.py +31 -0
  8. irie-0.0.51/src/irie/apps/prediction/migrations/0005_remove_sensorassignment_offset_x_and_more.py +53 -0
  9. irie-0.0.51/src/irie/apps/prediction/migrations/0006_remove_sensorassignment_show_x_and_more.py +25 -0
  10. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/models.py +22 -3
  11. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/__init__.py +11 -2
  12. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/opensees/__init__.py +114 -62
  13. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/ssid.py +9 -10
  14. irie-0.0.51/src/irie/apps/prediction/urls.py +25 -0
  15. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/views.py +81 -24
  16. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/css/brace.css +5 -31
  17. irie-0.0.51/src/irie/apps/static/assets/css/brace.css.map +1 -0
  18. irie-0.0.51/src/irie/apps/static/assets/css/brace.min.css +32 -0
  19. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/includes/paginate.js +6 -0
  20. irie-0.0.51/src/irie/apps/templates/includes/scripts.html +22 -0
  21. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/asset-on-map.html +5 -5
  22. irie-0.0.51/src/irie/apps/templates/inventory/bridge.html +1 -0
  23. irie-0.0.51/src/irie/apps/templates/inventory/sensor-upload.html +292 -0
  24. irie-0.0.50/src/irie/apps/templates/networks/networks.html → irie-0.0.51/src/irie/apps/templates/networks/_networks.html +0 -1
  25. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/networks/networks.js +6 -4
  26. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/prediction/asset-predictors.html +41 -47
  27. irie-0.0.50/src/irie/apps/templates/prediction/form-submission.html → irie-0.0.51/src/irie/apps/templates/prediction/create-mdof.html +0 -21
  28. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/prediction/new-runner.html +0 -20
  29. irie-0.0.51/src/irie/apps/templates/prediction/predictor-profile.html +40 -0
  30. irie-0.0.51/src/irie/apps/templates/prediction/viewer/veux-viewer.js +186 -0
  31. irie-0.0.51/src/irie/apps/templates/prediction/xara-profile.html +221 -0
  32. irie-0.0.51/src/irie/apps/templates/sensors/render-sensors.js +152 -0
  33. {irie-0.0.50 → irie-0.0.51}/src/irie.egg-info/PKG-INFO +2 -3
  34. {irie-0.0.50 → irie-0.0.51}/src/irie.egg-info/SOURCES.txt +10 -3
  35. irie-0.0.50/src/irie/apps/prediction/urls.py +0 -20
  36. irie-0.0.50/src/irie/apps/static/assets/css/brace.css.map +0 -1
  37. irie-0.0.50/src/irie/apps/static/assets/css/brace.min.css +0 -32
  38. irie-0.0.50/src/irie/apps/templates/includes/scripts.html +0 -35
  39. irie-0.0.50/src/irie/apps/templates/inventory/sensor-upload.html +0 -457
  40. irie-0.0.50/src/irie/apps/templates/prediction/predictor-profile.html +0 -166
  41. {irie-0.0.50 → irie-0.0.51}/README.md +0 -0
  42. {irie-0.0.50 → irie-0.0.51}/setup.cfg +0 -0
  43. {irie-0.0.50 → irie-0.0.51}/src/irie/__init__.py +0 -0
  44. {irie-0.0.50 → irie-0.0.51}/src/irie/__main__.py +0 -0
  45. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/__init__.py +0 -0
  46. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/admin_dash/__init__.py +0 -0
  47. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/admin_dash/admin.py +0 -0
  48. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/admin_dash/apps.py +0 -0
  49. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/admin_dash/forms.py +0 -0
  50. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/admin_dash/models.py +0 -0
  51. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/admin_dash/templatetags/__init__.py +0 -0
  52. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/admin_dash/templatetags/admin_material.py +0 -0
  53. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/admin_dash/templatetags/replace_value.py +0 -0
  54. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/admin_dash/urls.py +0 -0
  55. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/admin_dash/utils.py +0 -0
  56. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/admin_dash/views.py +0 -0
  57. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/authentication/__init__.py +0 -0
  58. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/authentication/admin.py +0 -0
  59. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/authentication/config.py +0 -0
  60. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/authentication/forms.py +0 -0
  61. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/authentication/migrations/__init__.py +0 -0
  62. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/authentication/models.py +0 -0
  63. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/authentication/tests.py +0 -0
  64. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/authentication/urls.py +0 -0
  65. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/authentication/views.py +0 -0
  66. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/config.py +0 -0
  67. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/context_processors.py +0 -0
  68. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/documents/__init__.py +0 -0
  69. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/documents/apps.py +0 -0
  70. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/documents/documents.py +0 -0
  71. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/documents/migrations/__init__.py +0 -0
  72. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/documents/tests.py +0 -0
  73. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/documents/urls.py +0 -0
  74. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/documents/views.py +0 -0
  75. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/evaluation/__init__.py +0 -0
  76. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/evaluation/admin.py +0 -0
  77. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/evaluation/apps.py +0 -0
  78. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/evaluation/daemon.py +0 -0
  79. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/evaluation/identification.py +0 -0
  80. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/evaluation/migrations/0001_initial.py +0 -0
  81. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/evaluation/migrations/0002_evaluation_status.py +0 -0
  82. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/evaluation/migrations/__init__.py +0 -0
  83. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/evaluation/models.py +0 -0
  84. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/evaluation/urls.py +0 -0
  85. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/evaluation/views.py +0 -0
  86. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/__init__.py +0 -0
  87. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/admin.py +0 -0
  88. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/apps.py +0 -0
  89. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/migrations/0001_initial.py +0 -0
  90. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/migrations/0002_rename_event_eventrecord.py +0 -0
  91. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/migrations/0003_hazardevent.py +0 -0
  92. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/migrations/__init__.py +0 -0
  93. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/models.py +0 -0
  94. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/tests.py +0 -0
  95. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/tests_events.py +0 -0
  96. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/urls.py +0 -0
  97. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/views.py +0 -0
  98. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/events/views_events.py +0 -0
  99. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/__init__.py +0 -0
  100. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/admin.py +0 -0
  101. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/apps.py +0 -0
  102. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/archive/CESMD.py +0 -0
  103. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/archive/calid.py +0 -0
  104. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/fields.py +0 -0
  105. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/forms.py +0 -0
  106. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/migrations/0001_initial.py +0 -0
  107. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/migrations/0002_alter_asset_bridge_sensors_and_more.py +0 -0
  108. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/migrations/0003_asset_notes.py +0 -0
  109. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/migrations/0004_datum_sensorgroup_sensor.py +0 -0
  110. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/migrations/0005_alter_sensor_group.py +0 -0
  111. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/migrations/0006_datum_asset_datum_locate_x_datum_locate_y_and_more.py +0 -0
  112. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/migrations/0007_sensor_name.py +0 -0
  113. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/migrations/0008_alter_sensor_dx_alter_sensor_dy_alter_sensor_dz_and_more.py +0 -0
  114. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/migrations/__init__.py +0 -0
  115. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/services/render.py +0 -0
  116. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/sitemaps.py +0 -0
  117. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/tables.py +0 -0
  118. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/templatetags/__init__.py +0 -0
  119. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/templatetags/get.py +0 -0
  120. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/templatetags/nbi.py +0 -0
  121. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/inventory/urls.py +0 -0
  122. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/management/__init__.py +0 -0
  123. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/management/commands/__init__.py +0 -0
  124. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/networks/__init__.py +0 -0
  125. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/networks/apps.py +0 -0
  126. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/networks/forms.py +0 -0
  127. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/networks/migrations/__init__.py +0 -0
  128. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/networks/models.py +0 -0
  129. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/networks/networks.py +0 -0
  130. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/networks/tests.py +0 -0
  131. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/networks/urls.py +0 -0
  132. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/networks/views.py +0 -0
  133. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/__init__.py +0 -0
  134. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/apps.py +0 -0
  135. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/forms.py +0 -0
  136. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/metrics.py +0 -0
  137. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/migrations/0001_initial.py +0 -0
  138. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/migrations/0002_alter_predictormodel_protocol.py +0 -0
  139. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/migrations/0003_alter_predictormodel_protocol.py +0 -0
  140. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/migrations/__init__.py +0 -0
  141. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/predictor.py +0 -0
  142. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/hazus.py +0 -0
  143. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/opensees/metrics.py +0 -0
  144. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/opensees/schemas/__init__.py +0 -0
  145. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/opensees/schemas/hwd_analysis.schema.json +0 -0
  146. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/opensees/schemas/hwd_analysis_default.json +0 -0
  147. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/opensees/schemas/hwd_conf.schema.json +0 -0
  148. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/opensees/schemas/hwd_conf_default.json +0 -0
  149. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/opensees/schemas/hwd_results.schema.json +0 -0
  150. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/opensees/schemas/hwd_results_default.json +0 -0
  151. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/opensees/utilities.py +0 -0
  152. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/opensees/xmlutils.py +0 -0
  153. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/runners/opensees/zipped.py +0 -0
  154. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/templatetags/__init__.py +0 -0
  155. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/templatetags/predictor.py +0 -0
  156. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/prediction/views_api.py +0 -0
  157. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/site/__init__.py +0 -0
  158. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/site/admin.py +0 -0
  159. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/site/config.py +0 -0
  160. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/site/migrations/__init__.py +0 -0
  161. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/site/models.py +0 -0
  162. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/site/templatetags/__init__.py +0 -0
  163. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/site/templatetags/indexing.py +0 -0
  164. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/site/tests.py +0 -0
  165. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/site/urls.py +0 -0
  166. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/site/view_sdof.py +0 -0
  167. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/site/view_utils.py +0 -0
  168. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/site/views.py +0 -0
  169. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/sitemaps.py +0 -0
  170. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/content_images/brace/mdof.svg +0 -0
  171. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/content_images/brace/opensees.jpg +0 -0
  172. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/content_images/brace/sdof.svg +0 -0
  173. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/content_images/brace/sees.png +0 -0
  174. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/css/uPlot.min.css +0 -0
  175. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/brace2-no_text.png +0 -0
  176. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/brand/dark.svg +0 -0
  177. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/brand/light.svg +0 -0
  178. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/colStrains.svg +0 -0
  179. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/colStrains_big.png +0 -0
  180. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/colStrains_small.png +0 -0
  181. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/colStrains_svg_optimizer.svg +0 -0
  182. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/colStrains_svg_optimizer.xml +0 -0
  183. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/drift.svg +0 -0
  184. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/earthquake-hazard.png +0 -0
  185. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/favicon/android-chrome-192x192.png +0 -0
  186. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/favicon/android-chrome-512x512.png +0 -0
  187. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/favicon/apple-touch-icon.png +0 -0
  188. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/favicon/browserconfig.xml +0 -0
  189. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/favicon/favicon-16x16.png +0 -0
  190. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/favicon/favicon-32x32.png +0 -0
  191. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/favicon/favicon.ico +0 -0
  192. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/favicon/manifest.json +0 -0
  193. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/favicon/mstile-150x150.png +0 -0
  194. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/favicon/safari-pinned-tab.svg +0 -0
  195. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/favicon/site.webmanifest +0 -0
  196. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/icons/github.svg +0 -0
  197. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/icons/google-tag-manager.svg +0 -0
  198. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/icons/google_analytics.svg +0 -0
  199. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/illustrations/404.svg +0 -0
  200. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/illustrations/500.svg +0 -0
  201. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/illustrations/bs5-illustrations.svg +0 -0
  202. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/illustrations/signin.svg +0 -0
  203. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/marker.svg +0 -0
  204. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/metric.png +0 -0
  205. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/painter.png +0 -0
  206. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/paypal-logo.svg +0 -0
  207. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/peer-black.svg +0 -0
  208. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/peer-light.svg +0 -0
  209. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/predictors.png +0 -0
  210. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/profile-cover.jpg +0 -0
  211. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/soga-logo.jpeg +0 -0
  212. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/img/twin.png +0 -0
  213. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll01336.svg +0 -0
  214. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll01336_1.svg +0 -0
  215. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll13705.svg +0 -0
  216. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll13795.svg +0 -0
  217. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll14406.svg +0 -0
  218. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll23631.svg +0 -0
  219. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll23631_1.svg +0 -0
  220. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll24694.svg +0 -0
  221. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll24704.svg +0 -0
  222. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll24706.svg +0 -0
  223. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll24775.svg +0 -0
  224. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll33742.svg +0 -0
  225. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll47315.svg +0 -0
  226. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll54730.svg +0 -0
  227. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58600-2.svg +0 -0
  228. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58600-3.svg +0 -0
  229. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58600-4.svg +0 -0
  230. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58600.svg +0 -0
  231. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58601-2.svg +0 -0
  232. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58601-3.svg +0 -0
  233. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58601-4.svg +0 -0
  234. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58601.svg +0 -0
  235. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58632-2.svg +0 -0
  236. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58632-3.svg +0 -0
  237. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58632-4.svg +0 -0
  238. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58632-5.svg +0 -0
  239. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58632-6.svg +0 -0
  240. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58632-7.svg +0 -0
  241. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58632-8.svg +0 -0
  242. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58632.svg +0 -0
  243. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58658-2.svg +0 -0
  244. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58658-3.svg +0 -0
  245. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58658.svg +0 -0
  246. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58658_1.svg +0 -0
  247. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58658_2.svg +0 -0
  248. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58658_3.svg +0 -0
  249. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58700-1.svg +0 -0
  250. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58700-3.svg +0 -0
  251. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58700-4.svg +0 -0
  252. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll58700.svg +0 -0
  253. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68184.svg +0 -0
  254. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68185-2.svg +0 -0
  255. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68185-3.svg +0 -0
  256. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68185-4.svg +0 -0
  257. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68185-5.svg +0 -0
  258. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68185-6.svg +0 -0
  259. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68185-7.svg +0 -0
  260. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68185-8.svg +0 -0
  261. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68185.svg +0 -0
  262. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68682-2.svg +0 -0
  263. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68682-3.svg +0 -0
  264. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68682-4.svg +0 -0
  265. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68682-5.svg +0 -0
  266. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll68682.svg +0 -0
  267. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll79421.svg +0 -0
  268. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll89324.svg +0 -0
  269. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll89324_2.svg +0 -0
  270. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll89686.svg +0 -0
  271. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll89708-2.svg +0 -0
  272. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll89708.svg +0 -0
  273. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll89735.svg +0 -0
  274. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll89736.svg +0 -0
  275. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/inventory/ll89973.svg +0 -0
  276. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/js/787.545aecf5.chunk.js +0 -0
  277. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/js/brace.js +0 -0
  278. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/js/d3.v4.min.js +0 -0
  279. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/js/events_api.js +0 -0
  280. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/js/events_page.js +0 -0
  281. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/js/fmkFunctions.js +0 -0
  282. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/js/jsonview.bundle.js +0 -0
  283. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/js/login_page.js +0 -0
  284. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/js/main.1c459f17.js +0 -0
  285. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/js/uPlot.iife.min.js +0 -0
  286. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper-base.js +0 -0
  287. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper-base.js.flow +0 -0
  288. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper-lite.js +0 -0
  289. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper-lite.js.flow +0 -0
  290. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper.js +0 -0
  291. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper.js.flow +0 -0
  292. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/createPopper.js +0 -0
  293. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/contains.js +0 -0
  294. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getBoundingClientRect.js +0 -0
  295. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getClippingRect.js +0 -0
  296. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getCompositeRect.js +0 -0
  297. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getComputedStyle.js +0 -0
  298. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getDocumentElement.js +0 -0
  299. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getDocumentRect.js +0 -0
  300. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getHTMLElementScroll.js +0 -0
  301. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getLayoutRect.js +0 -0
  302. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getNodeName.js +0 -0
  303. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getNodeScroll.js +0 -0
  304. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getOffsetParent.js +0 -0
  305. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getParentNode.js +0 -0
  306. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getScrollParent.js +0 -0
  307. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getViewportRect.js +0 -0
  308. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getWindow.js +0 -0
  309. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getWindowScroll.js +0 -0
  310. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getWindowScrollBarX.js +0 -0
  311. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/instanceOf.js +0 -0
  312. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/isScrollParent.js +0 -0
  313. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/isTableElement.js +0 -0
  314. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/listScrollParents.js +0 -0
  315. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/enums.js +0 -0
  316. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/index.js +0 -0
  317. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/applyStyles.js +0 -0
  318. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/arrow.js +0 -0
  319. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/computeStyles.js +0 -0
  320. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/eventListeners.js +0 -0
  321. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/flip.js +0 -0
  322. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/hide.js +0 -0
  323. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/index.js +0 -0
  324. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/offset.js +0 -0
  325. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/popperOffsets.js +0 -0
  326. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/preventOverflow.js +0 -0
  327. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/popper-base.js +0 -0
  328. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/popper-lite.js +0 -0
  329. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/popper.js +0 -0
  330. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/types.js +0 -0
  331. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/computeAutoPlacement.js +0 -0
  332. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/computeOffsets.js +0 -0
  333. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/debounce.js +0 -0
  334. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/detectOverflow.js +0 -0
  335. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/expandToHashMap.js +0 -0
  336. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/format.js +0 -0
  337. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getAltAxis.js +0 -0
  338. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getAltLen.js +0 -0
  339. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getBasePlacement.js +0 -0
  340. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getFreshSideObject.js +0 -0
  341. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getMainAxisFromPlacement.js +0 -0
  342. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getOppositePlacement.js +0 -0
  343. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getOppositeVariationPlacement.js +0 -0
  344. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getVariation.js +0 -0
  345. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/math.js +0 -0
  346. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/mergeByName.js +0 -0
  347. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/mergePaddingObject.js +0 -0
  348. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/orderModifiers.js +0 -0
  349. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/rectToClientRect.js +0 -0
  350. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/uniqueBy.js +0 -0
  351. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/validateModifiers.js +0 -0
  352. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/within.js +0 -0
  353. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper-base.min.js +0 -0
  354. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper-base.min.js.flow +0 -0
  355. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper-lite.min.js +0 -0
  356. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper-lite.min.js.flow +0 -0
  357. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper.min.js +0 -0
  358. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper.min.js.flow +0 -0
  359. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-grid.min.css +0 -0
  360. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-grid.rtl.min.css +0 -0
  361. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-reboot.min.css +0 -0
  362. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-reboot.rtl.min.css +0 -0
  363. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-utilities.min.css +0 -0
  364. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-utilities.rtl.min.css +0 -0
  365. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap.min.css +0 -0
  366. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap.rtl.min.css +0 -0
  367. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/bootstrap/dist/js/bootstrap.bundle.min.js +0 -0
  368. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/bootstrap/dist/js/bootstrap.esm.min.js +0 -0
  369. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/bootstrap/dist/js/bootstrap.min.js +0 -0
  370. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/chartist-plugin-tooltips/dist/chartist-plugin-tooltip.css +0 -0
  371. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/chartist-plugin-tooltips/dist/chartist-plugin-tooltip.min.js +0 -0
  372. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/notyf/notyf.es.js +0 -0
  373. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/notyf/notyf.min.css +0 -0
  374. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/notyf/notyf.min.js +0 -0
  375. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/notyf/notyf.umd.js +0 -0
  376. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/nouislider/distribute/nouislider.min.css +0 -0
  377. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/nouislider/distribute/nouislider.min.js +0 -0
  378. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/nouislider/distribute/nouislider.min.mjs +0 -0
  379. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/nouislider/distribute/nouislider.mjs +0 -0
  380. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/onscreen/dist/index.js +0 -0
  381. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/onscreen/dist/on-screen.es6.js +0 -0
  382. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/onscreen/dist/on-screen.umd.min.js +0 -0
  383. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar-core.esm.js +0 -0
  384. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar.esm.js +0 -0
  385. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar.min.css +0 -0
  386. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar.min.js +0 -0
  387. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar.umd.js +0 -0
  388. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/smooth-scroll/dist/smooth-scroll.min.js +0 -0
  389. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/smooth-scroll/dist/smooth-scroll.polyfills.min.js +0 -0
  390. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/sweetalert2/dist/sweetalert2.all.min.js +0 -0
  391. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/sweetalert2/dist/sweetalert2.min.css +0 -0
  392. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/sweetalert2/dist/sweetalert2.min.js +0 -0
  393. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/waypoints/lib/jquery.waypoints.min.js +0 -0
  394. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/waypoints/lib/noframework.waypoints.min.js +0 -0
  395. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/waypoints/lib/shortcuts/infinite.min.js +0 -0
  396. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/waypoints/lib/shortcuts/inview.min.js +0 -0
  397. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/waypoints/lib/shortcuts/sticky.min.js +0 -0
  398. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/waypoints/lib/waypoints.debug.js +0 -0
  399. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/waypoints/lib/zepto.waypoints.min.js +0 -0
  400. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/waypoints/licenses.txt +0 -0
  401. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/assets/vendor/waypoints/testem.json +0 -0
  402. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/favicon.ico +0 -0
  403. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/static/sitemap.xml +0 -0
  404. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/accounts/login.html +0 -0
  405. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/accounts/register.html +0 -0
  406. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/admin/base_site.html +0 -0
  407. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/admin/color_theme_toggle.html +0 -0
  408. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/bridges/InteractiveTwin-CE58658.html +0 -0
  409. /irie-0.0.50/src/irie/apps/templates/inventory/bridge.html → /irie-0.0.51/src/irie/apps/templates/components/json-table.html +0 -0
  410. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/css/admin-extra.css +0 -0
  411. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/documents/documents.html +0 -0
  412. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/events/EarthquakeResponse.html +0 -0
  413. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/events/event-table.html +0 -0
  414. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/events/events.html +0 -0
  415. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/events/login.html +0 -0
  416. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/events/react_and_bootstrap.html +0 -0
  417. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/home/asset.html +0 -0
  418. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/includes/asset-event-table.html +0 -0
  419. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/includes/footer.html +0 -0
  420. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/includes/modal-report.html +0 -0
  421. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/includes/navigation.html +0 -0
  422. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/includes/settings-box.html +0 -0
  423. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/includes/sidebar.html +0 -0
  424. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/asset-evals.html +0 -0
  425. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/asset-event-summary.html +0 -0
  426. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/asset-profile.html +0 -0
  427. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/asset-sensors.html +0 -0
  428. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/asset-table.html +0 -0
  429. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/bridge-dashboard.html +0 -0
  430. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/dashboard.html +0 -0
  431. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/map-inventory.html +0 -0
  432. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/map-inventory2.html +0 -0
  433. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/map-single-asset.html +0 -0
  434. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/map-single-asset2.html +0 -0
  435. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/map-terrain.html +0 -0
  436. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/preamble.tex +0 -0
  437. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/report.tex +0 -0
  438. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/inventory/three-maps.html +0 -0
  439. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/layouts/base-fullscreen.html +0 -0
  440. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/layouts/base.html +0 -0
  441. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/layouts/json-form.html +0 -0
  442. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/networks/corridor_table.html +0 -0
  443. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/networks/styled_inputs.html +0 -0
  444. /irie-0.0.50/src/irie/apps/templates/prediction/predictor-upload.html → /irie-0.0.51/src/irie/apps/templates/prediction/create-model.html +0 -0
  445. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/prediction/hazus/event.html +0 -0
  446. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/prediction/hazus/history.html +0 -0
  447. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/prediction/hazus/history.js +0 -0
  448. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/about.html +0 -0
  449. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/asset_map.html +0 -0
  450. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/components-forms.html +0 -0
  451. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/index.html +0 -0
  452. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/json-form.html +0 -0
  453. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/page-400-sidebar.html +0 -0
  454. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/page-400.html +0 -0
  455. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/page-403.html +0 -0
  456. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/page-404-sidebar.html +0 -0
  457. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/page-404.html +0 -0
  458. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/page-500.html +0 -0
  459. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/page-forgot-password.html +0 -0
  460. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/page-lock.html +0 -0
  461. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/page-reset-password.html +0 -0
  462. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/page-sign-in.html +0 -0
  463. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/page-sign-up.html +0 -0
  464. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/qr-0001.html +0 -0
  465. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/qr-0002.html +0 -0
  466. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/qr-0003.html +0 -0
  467. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/qr-0004.html +0 -0
  468. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/robots.txt +0 -0
  469. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/settings.html +0 -0
  470. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/tables-bootstrap-tables.html +0 -0
  471. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/transactions.html +0 -0
  472. {irie-0.0.50 → irie-0.0.51}/src/irie/apps/templates/site/unused-dashboard-cards.html +0 -0
  473. {irie-0.0.50 → irie-0.0.51}/src/irie/core/__init__.py +0 -0
  474. {irie-0.0.50 → irie-0.0.51}/src/irie/core/asgi.py +0 -0
  475. {irie-0.0.50 → irie-0.0.51}/src/irie/core/settings.py +0 -0
  476. {irie-0.0.50 → irie-0.0.51}/src/irie/core/urls.py +0 -0
  477. {irie-0.0.50 → irie-0.0.51}/src/irie/core/wsgi.py +0 -0
  478. {irie-0.0.50 → irie-0.0.51}/src/irie/fhwa/__init__.py +0 -0
  479. {irie-0.0.50 → irie-0.0.51}/src/irie/fhwa/__main__.py +0 -0
  480. {irie-0.0.50 → irie-0.0.51}/src/irie/fhwa/fields/nbi001.py +0 -0
  481. {irie-0.0.50 → irie-0.0.51}/src/irie/fhwa/fields/nbi001b.py +0 -0
  482. {irie-0.0.50 → irie-0.0.51}/src/irie/fhwa/fields/nbi002.py +0 -0
  483. {irie-0.0.50 → irie-0.0.51}/src/irie/fhwa/fields.py +0 -0
  484. {irie-0.0.50 → irie-0.0.51}/src/irie/init/__init__.py +0 -0
  485. {irie-0.0.50 → irie-0.0.51}/src/irie/init/__main__.py +0 -0
  486. {irie-0.0.50 → irie-0.0.51}/src/irie/init/bridges.py +0 -0
  487. {irie-0.0.50 → irie-0.0.51}/src/irie/init/calid.py +0 -0
  488. {irie-0.0.50 → irie-0.0.51}/src/irie/init/data/cgs-stations.json +0 -0
  489. {irie-0.0.50 → irie-0.0.51}/src/irie/init/data/cgs_data.json +0 -0
  490. {irie-0.0.50 → irie-0.0.51}/src/irie/init/data/nbe_data-california.json +0 -0
  491. {irie-0.0.50 → irie-0.0.51}/src/irie/init/data/nbi/04.tar +0 -0
  492. {irie-0.0.50 → irie-0.0.51}/src/irie/init/data/nbi_codes-california-filtered.json +0 -0
  493. {irie-0.0.50 → irie-0.0.51}/src/irie/init/data/nbi_codes-california.json +0 -0
  494. {irie-0.0.50 → irie-0.0.51}/src/irie/init/data/nbi_data-california.json +0 -0
  495. {irie-0.0.50 → irie-0.0.51}/src/irie/init/data/nbi_data_cesmd.json +0 -0
  496. {irie-0.0.50 → irie-0.0.51}/src/irie/init/data/nbi_definitions.json +0 -0
  497. {irie-0.0.50 → irie-0.0.51}/src/irie/init/data/networks/soga_corridors.json +0 -0
  498. {irie-0.0.50 → irie-0.0.51}/src/irie/init/getBridgeData.py +0 -0
  499. {irie-0.0.50 → irie-0.0.51}/src/irie/init/getCGSData.py +0 -0
  500. {irie-0.0.50 → irie-0.0.51}/src/irie/init/getCGSevents.py +0 -0
  501. {irie-0.0.50 → irie-0.0.51}/src/irie/init/getNBIData.py +0 -0
  502. {irie-0.0.50 → irie-0.0.51}/src/irie/init/hayward.zip +0 -0
  503. {irie-0.0.50 → irie-0.0.51}/src/irie/init/management/commands/init_assets.py +0 -0
  504. {irie-0.0.50 → irie-0.0.51}/src/irie/init/management/commands/init_cesmd.py +0 -0
  505. {irie-0.0.50 → irie-0.0.51}/src/irie/init/management/commands/init_corridors.py +0 -0
  506. {irie-0.0.50 → irie-0.0.51}/src/irie/init/management/commands/init_predictors.py +0 -0
  507. {irie-0.0.50 → irie-0.0.51}/src/irie/init/management/commands/make_asset.py +0 -0
  508. {irie-0.0.50 → irie-0.0.51}/src/irie/pull/nbi.py +0 -0
  509. {irie-0.0.50 → irie-0.0.51}/src/irie/rest/__main__.py +0 -0
  510. {irie-0.0.50 → irie-0.0.51}/src/irie/usgs/__main__.py +0 -0
  511. {irie-0.0.50 → irie-0.0.51}/src/irie.egg-info/dependency_links.txt +0 -0
  512. {irie-0.0.50 → irie-0.0.51}/src/irie.egg-info/entry_points.txt +0 -0
  513. {irie-0.0.50 → irie-0.0.51}/src/irie.egg-info/requires.txt +0 -0
  514. {irie-0.0.50 → irie-0.0.51}/src/irie.egg-info/top_level.txt +0 -0
@@ -1,15 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: irie
3
- Version: 0.0.50
3
+ Version: 0.0.51
4
4
  Summary: An infrastructure resilience engine
5
5
  Author-email: "Claudio M. Perez" <50180406+claudioperez@users.noreply.github.com>
6
6
  Project-URL: Repository, https://github.com/STAIRLab
7
7
  Project-URL: Documentation, https://stairlab.berkeley.edu/software/irie/
8
- Keywords: visualization,seismic,opensees,resilience,post-processing,finite-element-analysis,glTF
8
+ Keywords: visualization,seismic,opensees,resilience,post-processing,structural-health-monitoring,finite-element-analysis,glTF
9
9
  Classifier: Development Status :: 4 - Beta
10
10
  Classifier: Intended Audience :: Science/Research
11
11
  Classifier: Intended Audience :: Developers
12
- Classifier: License :: OSI Approved :: BSD License
13
12
  Classifier: Programming Language :: C
14
13
  Classifier: Programming Language :: Python
15
14
  Classifier: Programming Language :: Python :: 3
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "irie"
3
- version = "0.0.50"
3
+ version = "0.0.51"
4
4
  authors = [
5
5
  {name="Claudio M. Perez", email="50180406+claudioperez@users.noreply.github.com"}
6
6
  ]
@@ -14,6 +14,7 @@ keywords = [
14
14
  "opensees",
15
15
  "resilience",
16
16
  "post-processing",
17
+ "structural-health-monitoring",
17
18
  "finite-element-analysis",
18
19
  "glTF"
19
20
  ]
@@ -55,7 +56,6 @@ classifiers = [
55
56
  'Development Status :: 4 - Beta',
56
57
  'Intended Audience :: Science/Research',
57
58
  'Intended Audience :: Developers',
58
- 'License :: OSI Approved :: BSD License',
59
59
  'Programming Language :: C',
60
60
  'Programming Language :: Python',
61
61
  'Programming Language :: Python :: 3',
@@ -5,37 +5,32 @@ class AssetFilter(django_filters.FilterSet):
5
5
  search = django_filters.CharFilter(
6
6
  lookup_expr="icontains",
7
7
  field_name="calid",
8
- label='Search'
8
+ label="Search"
9
9
  )
10
10
 
11
11
  cesmd_not_null = django_filters.BooleanFilter(
12
- label='Instrumented',
12
+ label="Instrumented",
13
13
  widget=CheckboxInput(),
14
- method='filter_cesmd_exists'
14
+ method="filter_cesmd_exists"
15
15
  )
16
16
 
17
17
  is_streaming = django_filters.BooleanFilter(
18
- # field_name='is_complete',
19
- label='Streaming',
18
+ # field_name="is_complete",
19
+ label="Streaming",
20
20
  widget=CheckboxInput(),
21
- method='filter_is_streaming'
21
+ method="filter_is_streaming"
22
22
  )
23
23
 
24
24
  district = django_filters.CharFilter(
25
- label='District',
26
- method='filter_district'
25
+ label="District",
26
+ method="filter_district"
27
27
  )
28
28
 
29
29
  max_year = django_filters.NumberFilter(
30
- label='Max Year',
31
- method='filter_year',
32
- # widget=django_filters.widgets.DateInput(attrs={'type': 'date'})
30
+ label="Max Year",
31
+ method="filter_year"
33
32
  )
34
- # max_year = django_filters.DateFilter(
35
- # label='Max Year',
36
- # field_name='nbi_data__NBI_BRIDGE__Year Built',
37
- # lookup_expr='lte'
38
- # )
33
+
39
34
  def filter_year(self, queryset, name, value):
40
35
  ids = {
41
36
  asset.id for asset in queryset if (
@@ -43,19 +38,6 @@ class AssetFilter(django_filters.FilterSet):
43
38
  )
44
39
  }
45
40
  return queryset.filter(id__in=ids)
46
- if value:
47
- return queryset.filter(
48
- nbi_data__NBI_BRIDGE__Year_Built__lte=int(value) #.year
49
- )
50
- return
51
-
52
- if value:
53
- filtered_ids = [
54
- asset.id for asset in queryset if (
55
- asset.nbi_data and asset.nbi_data["NBI_BRIDGE"]["Year Built"] <= value.year
56
- )
57
- ]
58
- return queryset.filter(id__in=filtered_ids)
59
41
 
60
42
 
61
43
  def filter_cesmd_exists(self, queryset, name, value):
@@ -63,7 +63,7 @@ class Asset(models.Model):
63
63
  from irie.apps.prediction.models import PredictorModel
64
64
  return {
65
65
  p.name: PREDICTOR_TYPES[p.protocol](p)
66
- for p in PredictorModel.objects.filter(asset=self)
66
+ for p in reversed(PredictorModel.objects.filter(asset=self))
67
67
  }
68
68
 
69
69
  @property
@@ -123,7 +123,7 @@ class SensorGroup(models.Model):
123
123
  # network = models.CharField(max_length=100)
124
124
  # events = None
125
125
  def __str__(self):
126
- return f"{self.name} - {self.datum}"
126
+ return f"{self.asset.calid} - {self.name} ({self.datum})"
127
127
 
128
128
  class Sensor(models.Model):
129
129
  # class Status:
@@ -141,7 +141,7 @@ class Sensor(models.Model):
141
141
  group = models.ForeignKey(SensorGroup, related_name="sensors", on_delete=models.RESTRICT)
142
142
 
143
143
  def __str__(self):
144
- return f"{self.name} ({self.group.name})"
144
+ return f"{self.group.asset.calid} - {self.name} ({self.group.name})"
145
145
 
146
146
 
147
147
 
@@ -24,6 +24,7 @@ from irie.apps.events.models import EventRecord
24
24
  from irie.apps.site.view_utils import raise404
25
25
  from irie.apps.inventory.models import Asset, SensorGroup, Sensor, Datum
26
26
  from irie.apps.inventory.forms import SensorGroupForm, SensorForm, SensorFormSet
27
+ from irie.apps.prediction.models import PredictorModel
27
28
  from .filters import AssetFilter
28
29
  # Predictors
29
30
  from irie.apps.prediction.runners.hazus import hazus_fragility
@@ -439,12 +440,18 @@ def sensor_upload(request, calid):
439
440
  group_form = SensorGroupForm(asset=asset)
440
441
  formset = SensorFormSet()
441
442
 
442
- return render(request, "inventory/sensor-upload.html", {
443
+ context = {
443
444
  "group_form": group_form,
444
445
  "formset": formset,
446
+ "renderings": [
447
+ {"name": predictor.name, "glb": predictor.render_file.url}
448
+ for predictor in PredictorModel.objects.filter(asset=asset, protocol="IRIE_PREDICTOR_V1")
449
+ if predictor.render_file and predictor.render_file.url
450
+ ],
445
451
  "asset": asset,
446
452
  "datums": list(datums)
447
- })
453
+ }
454
+ return render(request, "inventory/sensor-upload.html", context)
448
455
 
449
456
 
450
457
  def _filter_asset_table(request):
@@ -4,6 +4,7 @@
4
4
  #
5
5
  #===----------------------------------------------------------------------===#
6
6
  from django.contrib import admin
7
- from .models import PredictorModel
7
+ from .models import PredictorModel, SensorAssignment
8
8
 
9
9
  admin.site.register(PredictorModel)
10
+ admin.site.register(SensorAssignment)
@@ -0,0 +1,31 @@
1
+ # Generated by Django 5.1.2 on 2025-04-28 01:52
2
+
3
+ import django.db.models.deletion
4
+ from django.db import migrations, models
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ('apps_prediction', '0003_alter_predictormodel_protocol'),
11
+ ('irie_apps_inventory', '0008_alter_sensor_dx_alter_sensor_dy_alter_sensor_dz_and_more'),
12
+ ]
13
+
14
+ operations = [
15
+ migrations.CreateModel(
16
+ name='SensorAssignment',
17
+ fields=[
18
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
19
+ ('node', models.IntegerField()),
20
+ ('role', models.CharField(choices=[('input', 'Input'), ('output', 'Output')], max_length=16)),
21
+ ('orient_z', models.FloatField()),
22
+ ('orient_x', models.FloatField(default=0.0)),
23
+ ('orient_y', models.FloatField(default=0.0)),
24
+ ('offset_x', models.FloatField(default=0.0)),
25
+ ('offset_y', models.FloatField(default=0.0)),
26
+ ('offset_z', models.FloatField(default=0.0)),
27
+ ('predictor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='apps_prediction.predictormodel')),
28
+ ('sensor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='irie_apps_inventory.sensor')),
29
+ ],
30
+ ),
31
+ ]
@@ -0,0 +1,53 @@
1
+ # Generated by Django 5.1.2 on 2025-04-28 02:12
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('apps_prediction', '0004_sensorassignment'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.RemoveField(
14
+ model_name='sensorassignment',
15
+ name='offset_x',
16
+ ),
17
+ migrations.RemoveField(
18
+ model_name='sensorassignment',
19
+ name='offset_y',
20
+ ),
21
+ migrations.RemoveField(
22
+ model_name='sensorassignment',
23
+ name='offset_z',
24
+ ),
25
+ migrations.AddField(
26
+ model_name='sensorassignment',
27
+ name='show_x',
28
+ field=models.FloatField(default=0),
29
+ preserve_default=False,
30
+ ),
31
+ migrations.AddField(
32
+ model_name='sensorassignment',
33
+ name='show_y',
34
+ field=models.FloatField(default=0),
35
+ preserve_default=False,
36
+ ),
37
+ migrations.AddField(
38
+ model_name='sensorassignment',
39
+ name='show_z',
40
+ field=models.FloatField(default=0),
41
+ preserve_default=False,
42
+ ),
43
+ migrations.AlterField(
44
+ model_name='sensorassignment',
45
+ name='orient_x',
46
+ field=models.FloatField(),
47
+ ),
48
+ migrations.AlterField(
49
+ model_name='sensorassignment',
50
+ name='orient_y',
51
+ field=models.FloatField(),
52
+ ),
53
+ ]
@@ -0,0 +1,25 @@
1
+ # Generated by Django 5.1.2 on 2025-04-28 02:26
2
+
3
+ from django.db import migrations
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('apps_prediction', '0005_remove_sensorassignment_offset_x_and_more'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.RemoveField(
14
+ model_name='sensorassignment',
15
+ name='show_x',
16
+ ),
17
+ migrations.RemoveField(
18
+ model_name='sensorassignment',
19
+ name='show_y',
20
+ ),
21
+ migrations.RemoveField(
22
+ model_name='sensorassignment',
23
+ name='show_z',
24
+ ),
25
+ ]
@@ -5,15 +5,14 @@
5
5
  #===----------------------------------------------------------------------===#
6
6
  from django.db import models
7
7
 
8
- from irie.apps.inventory.models import Asset
8
+ from irie.apps.inventory.models import Asset, Sensor
9
+
9
10
 
10
11
  class PredictorModel(models.Model):
11
12
  # https://docs.djangoproject.com/en/4.2/ref/models/fields/
12
13
  class Protocol(models.TextChoices):
13
14
  TYPE1 = "IRIE_PREDICTOR_V1"
14
15
  TYPE2 = "IRIE_PREDICTOR_T2"
15
- # TYPE3 = "IRIE_PREDICTOR_T3"
16
- # TYPE4 = "IRIE_PREDICTOR_T4"
17
16
 
18
17
  id = models.BigAutoField(primary_key=True)
19
18
  name = models.CharField(max_length=35)
@@ -36,6 +35,26 @@ class PredictorModel(models.Model):
36
35
  return f"{self.asset.calid} - {self.name} : {self.description}"
37
36
 
38
37
 
38
+ class SensorAssignment(models.Model):
39
+ predictor = models.ForeignKey(PredictorModel, on_delete=models.CASCADE)
40
+ sensor = models.ForeignKey(Sensor, on_delete=models.CASCADE)
41
+ node = models.IntegerField()
42
+ role = models.CharField(
43
+ max_length=16,
44
+ choices=[
45
+ ('input', 'Input'),
46
+ ('output', 'Output'),
47
+ ]
48
+ )
49
+
50
+ orient_z = models.FloatField()
51
+ orient_x = models.FloatField()
52
+ orient_y = models.FloatField()
53
+ # show_x = models.FloatField()
54
+ # show_y = models.FloatField()
55
+ # show_z = models.FloatField()
56
+
57
+
39
58
  # class PhysicsPredictor(models.Model):
40
59
  # class Units(models.TextChoices):
41
60
  # iks = "IKS"
@@ -20,7 +20,8 @@ class Runner:
20
20
 
21
21
  if isinstance(pred, dict):
22
22
  # Create from dict when posted from API; this
23
- # is used to create a new PredictorModel
23
+ # is used to create a new PredictorModel.
24
+ # In the future this may be removed.
24
25
  self.name: str = pred["name"]
25
26
  self.description = pred.get("description", "")
26
27
  self.conf = pred["config"]
@@ -28,7 +29,7 @@ class Runner:
28
29
  self.entry_point = pred["entry_point"]
29
30
  self.active = pred.get("active", True)
30
31
  else:
31
- # Create from PredictorModel when loaded from database.
32
+ # Create from existing PredictorModel when loaded from database.
32
33
  # This is done when running analysis
33
34
  self.id = pred.id
34
35
  self.asset = pred.asset
@@ -38,9 +39,17 @@ class Runner:
38
39
  self.entry_point = pred.entry_point
39
40
  self.metrics = pred.metrics
40
41
  self.active = pred.active
42
+
43
+ # NEW:
44
+ self.predictor = pred
45
+
46
+ self.runs = {}
41
47
  if pred.config_file:
42
48
  self.model_file = Path(pred.config_file.path).resolve()
43
49
  self.out_dir = Path(__file__).parents[0]/"Predictions"
50
+ else:
51
+ self.model_file = None
52
+ self.out_dir = None
44
53
  self.runs = {}
45
54
 
46
55
  @abstractmethod
@@ -47,7 +47,7 @@ def new_cd(x):
47
47
  class OpenSeesRunner(Runner):
48
48
  @property
49
49
  def platform(self):
50
- return self.conf.get("platform", "")
50
+ return self.conf.get("platform", "xara")
51
51
 
52
52
 
53
53
  @classmethod
@@ -58,9 +58,7 @@ class OpenSeesRunner(Runner):
58
58
  # TODO
59
59
  data.pop("file")
60
60
  uploaded_file = request.FILES.get('config_file', None)
61
- print(uploaded_file)
62
61
  if uploaded_file:
63
-
64
62
  with open(uploaded_file.name, 'wb+') as destination:
65
63
  for chunk in uploaded_file.chunks():
66
64
  destination.write(chunk)
@@ -499,72 +497,126 @@ class OpenSeesRunner(Runner):
499
497
  return {}
500
498
  return {}
501
499
 
500
+ #
501
+ # Viewing methods
502
+ #
503
+ def structural_section(self, name):
504
+ from shps.shapes import from_aisc
505
+ from openbim.csi._frame.section import section_geometry, section_mesh
502
506
 
503
- import subprocess
504
- class Event: pass
507
+ from openbim.csi import load, create_model, collect_outlines
508
+ # 1) Parse the CSI file
509
+ try:
510
+ csi_file = self.predictor.config_file
511
+ csi = load((str(line.decode()).replace("\r\n","\n") for line in csi_file.readlines()))
512
+ except:
513
+ return None
514
+
515
+ mesh = section_mesh(csi, name)
516
+ return {}, mesh
517
+ mesh = from_aisc("W12x14").create_mesh(mesh_kwds={"engine": "meshpy"})
518
+ mesh = (mesh.nodes, mesh.cells())
519
+ # return {}, mesh
520
+
505
521
 
506
- class PredictorType1(Runner):
507
- @property
508
- def platform(self):
509
- return self.conf.get("platform", "")
510
522
 
511
- @classmethod
512
- def create(cls, asset, request):
513
- from irie.apps.prediction.models import PredictorModel
514
- predictor = PredictorModel()
515
- data = json.loads(request.data.get("json"))
516
- predictor.entry_point = [
517
- sys.executable, "-m", "opensees"
518
- ]
519
- data["metrics"] = []
520
-
521
- predictor.name = data.pop("name")
522
- predictor.config = data
523
- predictor.asset = asset
524
- predictor.protocol = "IRIE_PREDICTOR_T1"
525
- predictor.active = False
526
- return predictor
527
523
 
524
+ def structural_members(self):
528
525
 
529
- @classproperty
530
- def schema(cls):
531
- from irie.apps.prediction.runners.opensees import schemas
532
- return {
533
- "title": "Structural Model",
534
- "options": {"disable_collaps": True},
535
- "schema": "http://json-schema.org/draft-04/schema#",
536
- "type": "object",
537
- "properties": {
538
- "platform": {
539
- "type": "string",
540
- "title": "Platform",
541
- "enum": ["OpenSees","CSiBridge"]
542
- },
543
- "model": schemas.load("hwd_conf.schema.json"),
544
- "analysis": schemas.load("hwd_analysis.schema.json"),
545
- }
546
- }
526
+ from openbim.csi import load, create_model, collect_outlines
527
+ # 1) Parse the CSI file
528
+ csi_file = self.predictor.config_file
529
+ try:
530
+ csi = load((str(line.decode()).replace("\r\n","\n") for line in csi_file.readlines()))
531
+ except Exception as e:
532
+ import sys
533
+ print(f"Error loading CSiBridge file: {e}", file=sys.stderr)
534
+ csi = {}
535
+
536
+ for item in csi.get("BRIDGE BENT DEFINITIONS 2 - COLUMN DATA",[]):
537
+ if "ColNum" in item and "Section" in item:
538
+ yield {
539
+ "name": item["ColNum"],
540
+ "type": "Column",
541
+ "section": item["Section"],
542
+ }
547
543
 
548
- def newPrediction(self, event: Event) -> RunID:
549
- self.event = event
550
- event_file = Path(event.event_file.path).resolve()
551
- command = [*self.entry_point, "new", event_file]
552
- run_id = subprocess.check_output(command).decode().strip()
553
- return RunID(int(run_id))
544
+ for item in csi.get("BRIDGE OBJECT DEFINITIONS 03 - SPANS 1 - GENERAL", []):
545
+ if "SpanName" in item and "BridgeSect" in item:
546
+ yield {
547
+ "name": item["SpanName"],
548
+ "type": "Span",
549
+ "section": None,
550
+ }
554
551
 
555
- def runPrediction(self, run_id: RunID):
556
- command = [*self.entry_point, "run", str(run_id)]
557
552
 
558
- if "scale" in self.event.upload_data:
559
- command.extend(["--scale", str(float(self.event.upload_data["scale"]))])
560
- print(":: Running ", command, file=sys.stderr)
561
- subprocess.check_output(command)
562
553
 
563
- print(f":: Model {self.name} returned", file=sys.stderr)
564
- return
565
554
 
566
- def getMetricData(self, run, metric):
567
- try:
568
- return json.loads(subprocess.check_output([*self.entry_point, "get", str(run), metric]).decode())
569
- except json.decoder.JSONDecodeError:
570
- return {}
555
+ # import subprocess
556
+ # class Event: pass
557
+
558
+ # class PredictorType1(Runner):
559
+ # @property
560
+ # def platform(self):
561
+ # return self.conf.get("platform", "")
562
+
563
+ # @classmethod
564
+ # def create(cls, asset, request):
565
+ # from irie.apps.prediction.models import PredictorModel
566
+ # predictor = PredictorModel()
567
+ # data = json.loads(request.data.get("json"))
568
+ # predictor.entry_point = [
569
+ # sys.executable, "-m", "opensees"
570
+ # ]
571
+ # data["metrics"] = []
572
+
573
+ # predictor.name = data.pop("name")
574
+ # predictor.config = data
575
+ # predictor.asset = asset
576
+ # predictor.protocol = "IRIE_PREDICTOR_T1"
577
+ # predictor.active = False
578
+ # return predictor
579
+
580
+
581
+ # @classproperty
582
+ # def schema(cls):
583
+ # from irie.apps.prediction.runners.opensees import schemas
584
+ # return {
585
+ # "title": "Structural Model",
586
+ # "options": {"disable_collaps": True},
587
+ # "schema": "http://json-schema.org/draft-04/schema#",
588
+ # "type": "object",
589
+ # "properties": {
590
+ # "platform": {
591
+ # "type": "string",
592
+ # "title": "Platform",
593
+ # "enum": ["OpenSees","CSiBridge"]
594
+ # },
595
+ # "model": schemas.load("hwd_conf.schema.json"),
596
+ # "analysis": schemas.load("hwd_analysis.schema.json"),
597
+ # }
598
+ # }
599
+
600
+ # def newPrediction(self, event: Event) -> RunID:
601
+ # self.event = event
602
+ # event_file = Path(event.event_file.path).resolve()
603
+ # command = [*self.entry_point, "new", event_file]
604
+ # run_id = subprocess.check_output(command).decode().strip()
605
+ # return RunID(int(run_id))
606
+
607
+ # def runPrediction(self, run_id: RunID):
608
+ # command = [*self.entry_point, "run", str(run_id)]
609
+
610
+ # if "scale" in self.event.upload_data:
611
+ # command.extend(["--scale", str(float(self.event.upload_data["scale"]))])
612
+ # print(":: Running ", command, file=sys.stderr)
613
+ # subprocess.check_output(command)
614
+
615
+ # print(f":: Model {self.name} returned", file=sys.stderr)
616
+ # return
617
+
618
+ # def getMetricData(self, run, metric):
619
+ # try:
620
+ # return json.loads(subprocess.check_output([*self.entry_point, "get", str(run), metric]).decode())
621
+ # except json.decoder.JSONDecodeError:
622
+ # return {}
@@ -13,20 +13,13 @@ import io
13
13
  import base64
14
14
  import numpy as np
15
15
  # Ensure Agg backend is set for non-interactive plotting
16
- import matplotlib
17
- matplotlib.use('Agg')
18
- from matplotlib import pyplot as plt, ticker, cm
16
+
19
17
  import quakeio
20
18
  from mdof import transform
21
19
  from scipy.signal import find_peaks
22
20
  from mdof.utilities import Config, extract_channels
23
- from matplotlib import colormaps
24
21
  import subprocess
25
- # try:
26
- # import scienceplots
27
- # plt.style.use(["science"])
28
- # except ImportError:
29
- # pass
22
+
30
23
 
31
24
  N_PEAKS = 5 # number of "significant" peaks per record
32
25
  MISSING_CHANNEL_LIMIT = 3 # number of missing output channels allowed before skipping event
@@ -439,6 +432,10 @@ def plot_spectral_surface(ax, traces, **options):
439
432
 
440
433
 
441
434
  def _plot_mountains(spectra, accellim=None):
435
+ import matplotlib
436
+ matplotlib.use('Agg')
437
+ from matplotlib import pyplot as plt, ticker, cm
438
+ from matplotlib import colormaps
442
439
  fig = plt.figure(figsize=(13,13))
443
440
  ax = fig.add_subplot(projection='3d')
444
441
 
@@ -512,7 +509,6 @@ def make_mountains(asset, conf=None, output_channels=None):
512
509
  buffer = io.BytesIO()
513
510
  fig.savefig(buffer, format="png")
514
511
  buffer.seek(0)
515
- # plt.show()
516
512
 
517
513
  # Encode the image as Base64
518
514
  return base64.b64encode(buffer.read()).decode("utf-8")
@@ -549,6 +545,9 @@ def parse_args(args):
549
545
  if __name__ == '__main__':
550
546
 
551
547
  import sys
548
+ from matplotlib import pyplot as plt, ticker, cm
549
+ from matplotlib import colormaps
550
+
552
551
  procedure = parse_args(sys.argv)
553
552
  STATION_TYPE = procedure['STATION_TYPE']
554
553
  outdir = Path(procedure['outdir'])
@@ -0,0 +1,25 @@
1
+ #===----------------------------------------------------------------------===#
2
+ #
3
+ # STAIRLab -- STructural Artificial Intelligence Laboratory
4
+ #
5
+ #===----------------------------------------------------------------------===#
6
+ #
7
+ # Author: Claudio Perez
8
+ #
9
+ #----------------------------------------------------------------------------#
10
+ from django.urls import re_path
11
+ from .views import (
12
+ asset_predictors, predictor_profile, predictor_profile_detail,
13
+ create_mdof, create_model, asset_map
14
+ )
15
+
16
+ _ROOT = "^inventory/(?P<calid>[0-9 A-Z-]*)/predictors"
17
+
18
+ urlpatterns = [
19
+ re_path(f"{_ROOT}/(?P<preid>[0-9]{{1,}})/$", predictor_profile),
20
+ re_path(f"{_ROOT}/(?P<preid>[0-9]{{1,}})/detail/", predictor_profile_detail),
21
+ re_path(f"{_ROOT}/create/map/$", asset_map),
22
+ re_path(f"{_ROOT}/create/model/$", create_model),
23
+ re_path(f"{_ROOT}/create/v1/$", create_mdof),
24
+ re_path(f"{_ROOT}/$", asset_predictors, name="asset_predictors")
25
+ ]