irie 0.0.41__tar.gz → 0.0.43__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 (504) hide show
  1. {irie-0.0.41 → irie-0.0.43}/PKG-INFO +1 -1
  2. {irie-0.0.41 → irie-0.0.43}/pyproject.toml +1 -1
  3. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/filters.py +1 -1
  4. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/models.py +27 -0
  5. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/urls.py +3 -0
  6. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/views.py +57 -0
  7. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/forms.py +2 -1
  8. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/models.py +24 -0
  9. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/hazus.py +33 -19
  10. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/urls.py +5 -3
  11. irie-0.0.43/src/irie/apps/prediction/views.py +221 -0
  12. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/css/brace.css +0 -33
  13. irie-0.0.43/src/irie/apps/static/assets/css/brace.css.map +1 -0
  14. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/css/brace.min.css +1 -1
  15. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/js/brace.js +2 -1
  16. irie-0.0.43/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/types.js +0 -0
  17. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/includes/scripts.html +10 -1
  18. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/includes/sidebar.html +19 -11
  19. irie-0.0.43/src/irie/apps/templates/inventory/asset-on-map.html +457 -0
  20. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/inventory/asset-profile.html +1 -2
  21. irie-0.0.43/src/irie/apps/templates/inventory/map-inventory.html +136 -0
  22. irie-0.0.43/src/irie/apps/templates/inventory/map-inventory2.html +143 -0
  23. irie-0.0.43/src/irie/apps/templates/inventory/map-single-asset.html +0 -0
  24. irie-0.0.43/src/irie/apps/templates/inventory/map-single-asset2.html +618 -0
  25. irie-0.0.43/src/irie/apps/templates/inventory/map-terrain.html +214 -0
  26. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/inventory/sensor-upload.html +1 -0
  27. irie-0.0.43/src/irie/apps/templates/inventory/three-maps.html +229 -0
  28. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/layouts/base.html +2 -1
  29. irie-0.0.43/src/irie/apps/templates/prediction/predictor-upload.html +81 -0
  30. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/index.html +36 -27
  31. irie-0.0.43/src/irie/apps/templates/site/page-400-sidebar.html +31 -0
  32. irie-0.0.43/src/irie/apps/templates/site/page-400.html +29 -0
  33. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/page-404-sidebar.html +1 -1
  34. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/page-404.html +1 -1
  35. irie-0.0.43/src/irie/fhwa/__init__.py +132 -0
  36. irie-0.0.43/src/irie/fhwa/__main__.py +79 -0
  37. irie-0.0.43/src/irie/fhwa/fields/nbi001.py +61 -0
  38. irie-0.0.43/src/irie/fhwa/fields/nbi001b.py +1 -0
  39. irie-0.0.43/src/irie/fhwa/fields/nbi002.py +0 -0
  40. irie-0.0.43/src/irie/fhwa/fields.py +32 -0
  41. irie-0.0.43/src/irie/init/__init__.py +0 -0
  42. {irie-0.0.41 → irie-0.0.43}/src/irie/init/__main__.py +0 -4
  43. {irie-0.0.41 → irie-0.0.43}/src/irie/init/calid.py +86 -3
  44. {irie-0.0.41 → irie-0.0.43}/src/irie/init/getNBIData.py +1 -1
  45. irie-0.0.43/src/irie/init/getNBIData2.py +304 -0
  46. {irie-0.0.41 → irie-0.0.43}/src/irie/init/management/commands/init_assets.py +11 -11
  47. {irie-0.0.41 → irie-0.0.43}/src/irie/init/management/commands/init_predictors.py +1 -1
  48. irie-0.0.43/src/irie/init/management/commands/make_asset.py +0 -0
  49. irie-0.0.43/src/irie/pull/nbi.py +304 -0
  50. {irie-0.0.41 → irie-0.0.43}/src/irie.egg-info/PKG-INFO +1 -1
  51. {irie-0.0.41 → irie-0.0.43}/src/irie.egg-info/SOURCES.txt +21 -4
  52. irie-0.0.41/src/irie/apps/inventory/CESMD.py +0 -81
  53. irie-0.0.41/src/irie/apps/inventory/archive/arcGIS.py +0 -1175
  54. irie-0.0.41/src/irie/apps/inventory/traffic.py +0 -175052
  55. irie-0.0.41/src/irie/apps/prediction/views.py +0 -128
  56. irie-0.0.41/src/irie/apps/static/assets/css/brace.css.map +0 -1
  57. irie-0.0.41/src/irie/apps/templates/prediction/predictor-upload.html +0 -35
  58. {irie-0.0.41 → irie-0.0.43}/README.md +0 -0
  59. {irie-0.0.41 → irie-0.0.43}/setup.cfg +0 -0
  60. {irie-0.0.41 → irie-0.0.43}/src/irie/__init__.py +0 -0
  61. {irie-0.0.41 → irie-0.0.43}/src/irie/__main__.py +0 -0
  62. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/__init__.py +0 -0
  63. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/admin_dash/__init__.py +0 -0
  64. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/admin_dash/admin.py +0 -0
  65. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/admin_dash/apps.py +0 -0
  66. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/admin_dash/forms.py +0 -0
  67. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/admin_dash/models.py +0 -0
  68. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/admin_dash/templatetags/__init__.py +0 -0
  69. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/admin_dash/templatetags/admin_material.py +0 -0
  70. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/admin_dash/templatetags/replace_value.py +0 -0
  71. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/admin_dash/urls.py +0 -0
  72. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/admin_dash/utils.py +0 -0
  73. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/admin_dash/views.py +0 -0
  74. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/authentication/__init__.py +0 -0
  75. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/authentication/admin.py +0 -0
  76. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/authentication/config.py +0 -0
  77. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/authentication/forms.py +0 -0
  78. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/authentication/migrations/__init__.py +0 -0
  79. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/authentication/models.py +0 -0
  80. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/authentication/tests.py +0 -0
  81. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/authentication/urls.py +0 -0
  82. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/authentication/views.py +0 -0
  83. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/config.py +0 -0
  84. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/context_processors.py +0 -0
  85. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/documents/__init__.py +0 -0
  86. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/documents/apps.py +0 -0
  87. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/documents/documents.py +0 -0
  88. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/documents/migrations/__init__.py +0 -0
  89. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/documents/tests.py +0 -0
  90. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/documents/urls.py +0 -0
  91. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/documents/views.py +0 -0
  92. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/evaluation/__init__.py +0 -0
  93. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/evaluation/admin.py +0 -0
  94. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/evaluation/apps.py +0 -0
  95. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/evaluation/daemon.py +0 -0
  96. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/evaluation/identification.py +0 -0
  97. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/evaluation/migrations/0001_initial.py +0 -0
  98. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/evaluation/migrations/0002_evaluation_status.py +0 -0
  99. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/evaluation/migrations/__init__.py +0 -0
  100. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/evaluation/models.py +0 -0
  101. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/evaluation/urls.py +0 -0
  102. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/evaluation/views.py +0 -0
  103. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/__init__.py +0 -0
  104. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/admin.py +0 -0
  105. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/apps.py +0 -0
  106. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/migrations/0001_initial.py +0 -0
  107. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/migrations/0002_rename_event_eventrecord.py +0 -0
  108. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/migrations/0003_hazardevent.py +0 -0
  109. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/migrations/__init__.py +0 -0
  110. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/models.py +0 -0
  111. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/tests.py +0 -0
  112. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/tests_events.py +0 -0
  113. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/urls.py +0 -0
  114. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/views.py +0 -0
  115. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/events/views_events.py +0 -0
  116. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/__init__.py +0 -0
  117. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/admin.py +0 -0
  118. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/apps.py +0 -0
  119. /irie-0.0.41/src/irie/apps/inventory/migrations/__init__.py → /irie-0.0.43/src/irie/apps/inventory/archive/CESMD.py +0 -0
  120. {irie-0.0.41/src/irie/apps/inventory → irie-0.0.43/src/irie/apps/inventory/archive}/calid.py +0 -0
  121. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/fields.py +0 -0
  122. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/forms.py +0 -0
  123. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/migrations/0001_initial.py +0 -0
  124. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/migrations/0002_alter_asset_bridge_sensors_and_more.py +0 -0
  125. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/migrations/0003_asset_notes.py +0 -0
  126. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/migrations/0004_datum_sensorgroup_sensor.py +0 -0
  127. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/migrations/0005_alter_sensor_group.py +0 -0
  128. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/migrations/0006_datum_asset_datum_locate_x_datum_locate_y_and_more.py +0 -0
  129. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/migrations/0007_sensor_name.py +0 -0
  130. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/migrations/0008_alter_sensor_dx_alter_sensor_dy_alter_sensor_dz_and_more.py +0 -0
  131. {irie-0.0.41/src/irie/apps/inventory/templatetags → irie-0.0.43/src/irie/apps/inventory/migrations}/__init__.py +0 -0
  132. /irie-0.0.41/src/irie/apps/management/__init__.py → /irie-0.0.43/src/irie/apps/inventory/services/render.py +0 -0
  133. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/sitemaps.py +0 -0
  134. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/tables.py +0 -0
  135. {irie-0.0.41/src/irie/apps/management/commands → irie-0.0.43/src/irie/apps/inventory/templatetags}/__init__.py +0 -0
  136. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/templatetags/get.py +0 -0
  137. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/inventory/templatetags/nbi.py +0 -0
  138. {irie-0.0.41/src/irie/apps/networks → irie-0.0.43/src/irie/apps/management}/__init__.py +0 -0
  139. {irie-0.0.41/src/irie/apps/networks/migrations → irie-0.0.43/src/irie/apps/management/commands}/__init__.py +0 -0
  140. {irie-0.0.41/src/irie/apps/prediction → irie-0.0.43/src/irie/apps/networks}/__init__.py +0 -0
  141. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/networks/apps.py +0 -0
  142. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/networks/forms.py +0 -0
  143. {irie-0.0.41/src/irie/apps/prediction → irie-0.0.43/src/irie/apps/networks}/migrations/__init__.py +0 -0
  144. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/networks/models.py +0 -0
  145. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/networks/networks.py +0 -0
  146. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/networks/tests.py +0 -0
  147. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/networks/urls.py +0 -0
  148. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/networks/views.py +0 -0
  149. {irie-0.0.41/src/irie/apps/prediction/templatetags → irie-0.0.43/src/irie/apps/prediction}/__init__.py +0 -0
  150. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/admin.py +0 -0
  151. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/apps.py +0 -0
  152. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/metrics.py +0 -0
  153. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/migrations/0001_initial.py +0 -0
  154. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/migrations/0002_alter_predictormodel_protocol.py +0 -0
  155. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/migrations/0003_alter_predictormodel_protocol.py +0 -0
  156. {irie-0.0.41/src/irie/apps/site → irie-0.0.43/src/irie/apps/prediction/migrations}/__init__.py +0 -0
  157. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/predictor.py +0 -0
  158. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/__init__.py +0 -0
  159. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/opensees/__init__.py +0 -0
  160. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/opensees/metrics.py +0 -0
  161. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/opensees/schemas/__init__.py +0 -0
  162. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/opensees/schemas/hwd_analysis.schema.json +0 -0
  163. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/opensees/schemas/hwd_analysis_default.json +0 -0
  164. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/opensees/schemas/hwd_conf.schema.json +0 -0
  165. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/opensees/schemas/hwd_conf_default.json +0 -0
  166. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/opensees/schemas/hwd_results.schema.json +0 -0
  167. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/opensees/schemas/hwd_results_default.json +0 -0
  168. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/opensees/utilities.py +0 -0
  169. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/opensees/xmlutils.py +0 -0
  170. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/opensees/zipped.py +0 -0
  171. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/runners/ssid.py +0 -0
  172. {irie-0.0.41/src/irie/apps/site/migrations → irie-0.0.43/src/irie/apps/prediction/templatetags}/__init__.py +0 -0
  173. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/templatetags/predictor.py +0 -0
  174. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/prediction/views_api.py +0 -0
  175. {irie-0.0.41/src/irie/apps/site/templatetags → irie-0.0.43/src/irie/apps/site}/__init__.py +0 -0
  176. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/site/admin.py +0 -0
  177. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/site/config.py +0 -0
  178. {irie-0.0.41/src/irie/init → irie-0.0.43/src/irie/apps/site/migrations}/__init__.py +0 -0
  179. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/site/models.py +0 -0
  180. /irie-0.0.41/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/types.js → /irie-0.0.43/src/irie/apps/site/templatetags/__init__.py +0 -0
  181. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/site/templatetags/indexing.py +0 -0
  182. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/site/tests.py +0 -0
  183. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/site/urls.py +0 -0
  184. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/site/view_sdof.py +0 -0
  185. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/site/view_utils.py +0 -0
  186. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/site/views.py +0 -0
  187. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/sitemaps.py +0 -0
  188. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/content_images/brace/mdof.svg +0 -0
  189. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/content_images/brace/opensees.jpg +0 -0
  190. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/content_images/brace/sdof.svg +0 -0
  191. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/content_images/brace/sees.png +0 -0
  192. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/css/uPlot.min.css +0 -0
  193. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/brace2-no_text.png +0 -0
  194. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/brand/dark.svg +0 -0
  195. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/brand/light.svg +0 -0
  196. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/colStrains.svg +0 -0
  197. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/colStrains_big.png +0 -0
  198. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/colStrains_small.png +0 -0
  199. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/colStrains_svg_optimizer.svg +0 -0
  200. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/colStrains_svg_optimizer.xml +0 -0
  201. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/drift.svg +0 -0
  202. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/earthquake-hazard.png +0 -0
  203. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/favicon/android-chrome-192x192.png +0 -0
  204. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/favicon/android-chrome-512x512.png +0 -0
  205. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/favicon/apple-touch-icon.png +0 -0
  206. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/favicon/browserconfig.xml +0 -0
  207. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/favicon/favicon-16x16.png +0 -0
  208. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/favicon/favicon-32x32.png +0 -0
  209. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/favicon/favicon.ico +0 -0
  210. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/favicon/manifest.json +0 -0
  211. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/favicon/mstile-150x150.png +0 -0
  212. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/favicon/safari-pinned-tab.svg +0 -0
  213. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/favicon/site.webmanifest +0 -0
  214. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/icons/github.svg +0 -0
  215. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/icons/google-tag-manager.svg +0 -0
  216. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/icons/google_analytics.svg +0 -0
  217. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/illustrations/404.svg +0 -0
  218. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/illustrations/500.svg +0 -0
  219. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/illustrations/bs5-illustrations.svg +0 -0
  220. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/illustrations/signin.svg +0 -0
  221. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/marker.svg +0 -0
  222. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/metric.png +0 -0
  223. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/painter.png +0 -0
  224. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/paypal-logo.svg +0 -0
  225. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/peer-black.svg +0 -0
  226. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/peer-light.svg +0 -0
  227. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/predictors.png +0 -0
  228. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/profile-cover.jpg +0 -0
  229. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/soga-logo.jpeg +0 -0
  230. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/img/twin.png +0 -0
  231. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll01336.svg +0 -0
  232. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll01336_1.svg +0 -0
  233. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll13705.svg +0 -0
  234. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll13795.svg +0 -0
  235. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll14406.svg +0 -0
  236. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll23631.svg +0 -0
  237. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll23631_1.svg +0 -0
  238. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll24694.svg +0 -0
  239. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll24704.svg +0 -0
  240. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll24706.svg +0 -0
  241. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll24775.svg +0 -0
  242. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll33742.svg +0 -0
  243. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll47315.svg +0 -0
  244. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll54730.svg +0 -0
  245. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58600-2.svg +0 -0
  246. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58600-3.svg +0 -0
  247. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58600-4.svg +0 -0
  248. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58600.svg +0 -0
  249. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58601-2.svg +0 -0
  250. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58601-3.svg +0 -0
  251. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58601-4.svg +0 -0
  252. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58601.svg +0 -0
  253. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58632-2.svg +0 -0
  254. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58632-3.svg +0 -0
  255. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58632-4.svg +0 -0
  256. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58632-5.svg +0 -0
  257. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58632-6.svg +0 -0
  258. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58632-7.svg +0 -0
  259. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58632-8.svg +0 -0
  260. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58632.svg +0 -0
  261. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58658-2.svg +0 -0
  262. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58658-3.svg +0 -0
  263. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58658.svg +0 -0
  264. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58658_1.svg +0 -0
  265. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58658_2.svg +0 -0
  266. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58658_3.svg +0 -0
  267. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58700-1.svg +0 -0
  268. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58700-3.svg +0 -0
  269. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58700-4.svg +0 -0
  270. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll58700.svg +0 -0
  271. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68184.svg +0 -0
  272. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68185-2.svg +0 -0
  273. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68185-3.svg +0 -0
  274. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68185-4.svg +0 -0
  275. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68185-5.svg +0 -0
  276. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68185-6.svg +0 -0
  277. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68185-7.svg +0 -0
  278. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68185-8.svg +0 -0
  279. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68185.svg +0 -0
  280. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68682-2.svg +0 -0
  281. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68682-3.svg +0 -0
  282. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68682-4.svg +0 -0
  283. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68682-5.svg +0 -0
  284. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll68682.svg +0 -0
  285. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll79421.svg +0 -0
  286. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll89324.svg +0 -0
  287. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll89324_2.svg +0 -0
  288. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll89686.svg +0 -0
  289. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll89708-2.svg +0 -0
  290. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll89708.svg +0 -0
  291. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll89735.svg +0 -0
  292. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll89736.svg +0 -0
  293. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/inventory/ll89973.svg +0 -0
  294. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/js/787.545aecf5.chunk.js +0 -0
  295. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/js/d3.v4.min.js +0 -0
  296. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/js/events_api.js +0 -0
  297. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/js/events_page.js +0 -0
  298. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/js/fmkFunctions.js +0 -0
  299. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/js/jsonview.bundle.js +0 -0
  300. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/js/login_page.js +0 -0
  301. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/js/main.1c459f17.js +0 -0
  302. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/js/uPlot.iife.min.js +0 -0
  303. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper-base.js +0 -0
  304. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper-base.js.flow +0 -0
  305. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper-lite.js +0 -0
  306. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper-lite.js.flow +0 -0
  307. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper.js +0 -0
  308. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper.js.flow +0 -0
  309. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/createPopper.js +0 -0
  310. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/contains.js +0 -0
  311. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getBoundingClientRect.js +0 -0
  312. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getClippingRect.js +0 -0
  313. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getCompositeRect.js +0 -0
  314. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getComputedStyle.js +0 -0
  315. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getDocumentElement.js +0 -0
  316. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getDocumentRect.js +0 -0
  317. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getHTMLElementScroll.js +0 -0
  318. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getLayoutRect.js +0 -0
  319. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getNodeName.js +0 -0
  320. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getNodeScroll.js +0 -0
  321. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getOffsetParent.js +0 -0
  322. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getParentNode.js +0 -0
  323. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getScrollParent.js +0 -0
  324. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getViewportRect.js +0 -0
  325. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getWindow.js +0 -0
  326. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getWindowScroll.js +0 -0
  327. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getWindowScrollBarX.js +0 -0
  328. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/instanceOf.js +0 -0
  329. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/isScrollParent.js +0 -0
  330. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/isTableElement.js +0 -0
  331. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/listScrollParents.js +0 -0
  332. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/enums.js +0 -0
  333. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/index.js +0 -0
  334. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/applyStyles.js +0 -0
  335. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/arrow.js +0 -0
  336. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/computeStyles.js +0 -0
  337. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/eventListeners.js +0 -0
  338. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/flip.js +0 -0
  339. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/hide.js +0 -0
  340. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/index.js +0 -0
  341. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/offset.js +0 -0
  342. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/popperOffsets.js +0 -0
  343. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/preventOverflow.js +0 -0
  344. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/popper-base.js +0 -0
  345. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/popper-lite.js +0 -0
  346. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/popper.js +0 -0
  347. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/computeAutoPlacement.js +0 -0
  348. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/computeOffsets.js +0 -0
  349. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/debounce.js +0 -0
  350. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/detectOverflow.js +0 -0
  351. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/expandToHashMap.js +0 -0
  352. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/format.js +0 -0
  353. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getAltAxis.js +0 -0
  354. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getAltLen.js +0 -0
  355. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getBasePlacement.js +0 -0
  356. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getFreshSideObject.js +0 -0
  357. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getMainAxisFromPlacement.js +0 -0
  358. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getOppositePlacement.js +0 -0
  359. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getOppositeVariationPlacement.js +0 -0
  360. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getVariation.js +0 -0
  361. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/math.js +0 -0
  362. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/mergeByName.js +0 -0
  363. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/mergePaddingObject.js +0 -0
  364. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/orderModifiers.js +0 -0
  365. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/rectToClientRect.js +0 -0
  366. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/uniqueBy.js +0 -0
  367. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/validateModifiers.js +0 -0
  368. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/within.js +0 -0
  369. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper-base.min.js +0 -0
  370. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper-base.min.js.flow +0 -0
  371. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper-lite.min.js +0 -0
  372. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper-lite.min.js.flow +0 -0
  373. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper.min.js +0 -0
  374. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper.min.js.flow +0 -0
  375. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-grid.min.css +0 -0
  376. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-grid.rtl.min.css +0 -0
  377. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-reboot.min.css +0 -0
  378. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-reboot.rtl.min.css +0 -0
  379. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-utilities.min.css +0 -0
  380. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-utilities.rtl.min.css +0 -0
  381. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap.min.css +0 -0
  382. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap.rtl.min.css +0 -0
  383. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/bootstrap/dist/js/bootstrap.bundle.min.js +0 -0
  384. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/bootstrap/dist/js/bootstrap.esm.min.js +0 -0
  385. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/bootstrap/dist/js/bootstrap.min.js +0 -0
  386. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/chartist-plugin-tooltips/dist/chartist-plugin-tooltip.css +0 -0
  387. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/chartist-plugin-tooltips/dist/chartist-plugin-tooltip.min.js +0 -0
  388. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/notyf/notyf.es.js +0 -0
  389. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/notyf/notyf.min.css +0 -0
  390. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/notyf/notyf.min.js +0 -0
  391. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/notyf/notyf.umd.js +0 -0
  392. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/nouislider/distribute/nouislider.min.css +0 -0
  393. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/nouislider/distribute/nouislider.min.js +0 -0
  394. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/nouislider/distribute/nouislider.min.mjs +0 -0
  395. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/nouislider/distribute/nouislider.mjs +0 -0
  396. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/onscreen/dist/index.js +0 -0
  397. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/onscreen/dist/on-screen.es6.js +0 -0
  398. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/onscreen/dist/on-screen.umd.min.js +0 -0
  399. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar-core.esm.js +0 -0
  400. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar.esm.js +0 -0
  401. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar.min.css +0 -0
  402. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar.min.js +0 -0
  403. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar.umd.js +0 -0
  404. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/smooth-scroll/dist/smooth-scroll.min.js +0 -0
  405. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/smooth-scroll/dist/smooth-scroll.polyfills.min.js +0 -0
  406. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/sweetalert2/dist/sweetalert2.all.min.js +0 -0
  407. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/sweetalert2/dist/sweetalert2.min.css +0 -0
  408. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/sweetalert2/dist/sweetalert2.min.js +0 -0
  409. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/waypoints/lib/jquery.waypoints.min.js +0 -0
  410. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/waypoints/lib/noframework.waypoints.min.js +0 -0
  411. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/waypoints/lib/shortcuts/infinite.min.js +0 -0
  412. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/waypoints/lib/shortcuts/inview.min.js +0 -0
  413. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/waypoints/lib/shortcuts/sticky.min.js +0 -0
  414. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/waypoints/lib/waypoints.debug.js +0 -0
  415. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/waypoints/lib/zepto.waypoints.min.js +0 -0
  416. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/waypoints/licenses.txt +0 -0
  417. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/assets/vendor/waypoints/testem.json +0 -0
  418. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/favicon.ico +0 -0
  419. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/static/sitemap.xml +0 -0
  420. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/accounts/login.html +0 -0
  421. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/accounts/register.html +0 -0
  422. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/admin/base_site.html +0 -0
  423. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/admin/color_theme_toggle.html +0 -0
  424. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/bridges/InteractiveTwin-CE58658.html +0 -0
  425. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/css/admin-extra.css +0 -0
  426. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/documents/documents.html +0 -0
  427. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/events/EarthquakeResponse.html +0 -0
  428. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/events/event-table.html +0 -0
  429. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/events/events.html +0 -0
  430. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/events/login.html +0 -0
  431. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/events/react_and_bootstrap.html +0 -0
  432. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/home/asset.html +0 -0
  433. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/includes/asset-event-table.html +0 -0
  434. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/includes/footer.html +0 -0
  435. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/includes/modal-report.html +0 -0
  436. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/includes/navigation.html +0 -0
  437. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/includes/paginate.js +0 -0
  438. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/includes/settings-box.html +0 -0
  439. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/inventory/asset-evals.html +0 -0
  440. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/inventory/asset-event-summary.html +0 -0
  441. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/inventory/asset-sensors.html +0 -0
  442. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/inventory/asset-table.html +0 -0
  443. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/inventory/bridge-dashboard.html +0 -0
  444. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/inventory/bridge.html +0 -0
  445. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/inventory/dashboard.html +0 -0
  446. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/inventory/preamble.tex +0 -0
  447. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/inventory/report.tex +0 -0
  448. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/layouts/base-fullscreen.html +0 -0
  449. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/layouts/json-form.html +0 -0
  450. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/networks/corridor_table.html +0 -0
  451. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/networks/networks.html +0 -0
  452. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/networks/networks.js +0 -0
  453. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/networks/styled_inputs.html +0 -0
  454. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/prediction/asset-predictors.html +0 -0
  455. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/prediction/form-submission.html +0 -0
  456. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/prediction/hazus/event.html +0 -0
  457. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/prediction/hazus/history.html +0 -0
  458. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/prediction/hazus/history.js +0 -0
  459. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/prediction/new-runner.html +0 -0
  460. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/prediction/predictor-profile.html +0 -0
  461. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/about.html +0 -0
  462. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/asset_map.html +0 -0
  463. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/components-forms.html +0 -0
  464. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/json-form.html +0 -0
  465. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/page-403.html +0 -0
  466. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/page-500.html +0 -0
  467. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/page-forgot-password.html +0 -0
  468. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/page-lock.html +0 -0
  469. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/page-reset-password.html +0 -0
  470. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/page-sign-in.html +0 -0
  471. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/page-sign-up.html +0 -0
  472. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/qr-0001.html +0 -0
  473. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/qr-0002.html +0 -0
  474. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/qr-0003.html +0 -0
  475. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/qr-0004.html +0 -0
  476. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/robots.txt +0 -0
  477. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/settings.html +0 -0
  478. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/tables-bootstrap-tables.html +0 -0
  479. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/transactions.html +0 -0
  480. {irie-0.0.41 → irie-0.0.43}/src/irie/apps/templates/site/unused-dashboard-cards.html +0 -0
  481. {irie-0.0.41 → irie-0.0.43}/src/irie/core/__init__.py +0 -0
  482. {irie-0.0.41 → irie-0.0.43}/src/irie/core/asgi.py +0 -0
  483. {irie-0.0.41 → irie-0.0.43}/src/irie/core/settings.py +0 -0
  484. {irie-0.0.41 → irie-0.0.43}/src/irie/core/urls.py +0 -0
  485. {irie-0.0.41 → irie-0.0.43}/src/irie/core/wsgi.py +0 -0
  486. {irie-0.0.41 → irie-0.0.43}/src/irie/init/bridges.py +0 -0
  487. {irie-0.0.41 → irie-0.0.43}/src/irie/init/data/cgs-stations.json +0 -0
  488. {irie-0.0.41 → irie-0.0.43}/src/irie/init/data/cgs_data.json +0 -0
  489. {irie-0.0.41 → irie-0.0.43}/src/irie/init/data/nbi/04.tar +0 -0
  490. {irie-0.0.41 → irie-0.0.43}/src/irie/init/data/nbi_codes-california.json +0 -0
  491. {irie-0.0.41 → irie-0.0.43}/src/irie/init/data/nbi_data-california.json +0 -0
  492. {irie-0.0.41 → irie-0.0.43}/src/irie/init/data/nbi_definitions.json +0 -0
  493. {irie-0.0.41 → irie-0.0.43}/src/irie/init/data/networks/soga_corridors.json +0 -0
  494. {irie-0.0.41 → irie-0.0.43}/src/irie/init/getCGSData.py +0 -0
  495. {irie-0.0.41 → irie-0.0.43}/src/irie/init/getCGSevents.py +0 -0
  496. {irie-0.0.41 → irie-0.0.43}/src/irie/init/hayward.zip +0 -0
  497. {irie-0.0.41 → irie-0.0.43}/src/irie/init/management/commands/init_cesmd.py +0 -0
  498. {irie-0.0.41 → irie-0.0.43}/src/irie/init/management/commands/init_corridors.py +0 -0
  499. {irie-0.0.41 → irie-0.0.43}/src/irie/rest/__main__.py +0 -0
  500. {irie-0.0.41 → irie-0.0.43}/src/irie/usgs/__main__.py +0 -0
  501. {irie-0.0.41 → irie-0.0.43}/src/irie.egg-info/dependency_links.txt +0 -0
  502. {irie-0.0.41 → irie-0.0.43}/src/irie.egg-info/entry_points.txt +0 -0
  503. {irie-0.0.41 → irie-0.0.43}/src/irie.egg-info/requires.txt +0 -0
  504. {irie-0.0.41 → irie-0.0.43}/src/irie.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: irie
3
- Version: 0.0.41
3
+ Version: 0.0.43
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "irie"
3
- version = "0.0.41"
3
+ version = "0.0.43"
4
4
  authors = [
5
5
  {name="Claudio M. Perez", email="50180406+claudioperez@users.noreply.github.com"}
6
6
  ]
@@ -37,7 +37,7 @@ class AssetFilter(django_filters.FilterSet):
37
37
  def filter_year(self, queryset, name, value):
38
38
  ids = {
39
39
  asset.id for asset in queryset if (
40
- asset.nbi_data and int(asset.nbi_data["NBI_BRIDGE"]["Year Built"] or 0) <= int(value) #.year
40
+ asset.nbi_data and int(asset.nbi_data["NBI_BRIDGE"].get("Year Built",0) or 0) <= int(value) #.year
41
41
  )
42
42
  }
43
43
  return queryset.filter(id__in=ids)
@@ -142,3 +142,30 @@ class Sensor(models.Model):
142
142
 
143
143
  def __str__(self):
144
144
  return f"{self.name} ({self.group.name})"
145
+
146
+
147
+
148
+ # class Rendering:
149
+ # def __init__(self, url=None, units, datum):
150
+ # self._url = url
151
+
152
+
153
+ # def url(self):
154
+ # return self._url
155
+
156
+ # def url_or_data(self):
157
+ # pass
158
+
159
+ # def scale_meter(self):
160
+ # pass
161
+
162
+ # class PersistentRendering(models.Model):
163
+ # asset = models.ForeignKey(Asset, on_delete=models.CASCADE)
164
+ # datum = models.ForeignKey(Datum, on_delete=models.CASCADE)
165
+ # units = models.CharField(max_length=3)
166
+
167
+ # class TemporaryRendering(Rendering):
168
+ # def __init__(self, data, units, datum, asset):
169
+ # self._data = data
170
+ # self._units = units
171
+ # self._datum = datum
@@ -27,4 +27,7 @@ urlpatterns = [
27
27
  re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/$", views.asset_profile, name="asset_profile"),
28
28
  re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/sensors/$", views.asset_sensors, name="asset_sensors"),
29
29
  re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/sensor_upload", views.sensor_upload, name="sensor_upload"),
30
+
31
+ path("inventory/map2/", views.map_inventory),
32
+ path("california.json", views.california_json),
30
33
  ]
@@ -221,6 +221,62 @@ def asset_evals(request, calid):
221
221
  return HttpResponse(html_template.render(context, request))
222
222
 
223
223
 
224
+ def california_json(request):
225
+ with open("ca.json") as f:
226
+ return HttpResponse(f.read(), content_type="application/json")
227
+ with open("us_states.json") as f:
228
+ cal = [s for s in json.load(f)["features"] if s["id"] == "CA"][0]
229
+ return HttpResponse(json.dumps({"type": "FeatureCollection", "features": [cal]}), content_type="application/json")
230
+
231
+ def map_inventory(request):
232
+
233
+ import json
234
+ from irie.apps.inventory.models import Asset
235
+
236
+ consumed = {
237
+ "Partial": set(),
238
+ "Complete": set(),
239
+ "Instrumented": set()
240
+ }
241
+
242
+ data = {
243
+ "Partial": [],
244
+ "Complete": [],
245
+ "Instrumented": []
246
+ }
247
+
248
+ for asset in Asset.objects.all():
249
+ if asset.is_complete:
250
+ consumed["Complete"].add(asset.calid)
251
+ lat, lon = asset.coordinates
252
+ data["Complete"].append({
253
+ "lat": lat, "lon": lon
254
+ })
255
+
256
+ from irie.init.calid import CESMD, CESMD_LONG_LAT
257
+ for calid in CESMD:
258
+ if calid not in consumed["Complete"]:
259
+ consumed["Instrumented"].add(asset.calid)
260
+ try:
261
+ lat, lon = CESMD_LONG_LAT[CESMD[calid][0][2:]]
262
+ except:
263
+ continue
264
+ data["Instrumented"].append({
265
+ # "lat": lat, "lon": -lon
266
+ "lat": lat, "lon": lon
267
+ })
268
+
269
+ for asset in Asset.objects.all():
270
+ if asset.calid not in consumed["Instrumented"] and asset.calid not in consumed["Complete"]:
271
+ lat, lon = asset.coordinates
272
+ data["Partial"].append({
273
+ "lat": lat, "lon": lon
274
+ })
275
+
276
+
277
+ html_template = loader.get_template("inventory/map-inventory.html")
278
+ return HttpResponse(html_template.render({"data": json.dumps(data)}, request))
279
+
224
280
  # @login_required(login_url="/login/")
225
281
  def asset_profile(request, calid):
226
282
 
@@ -548,6 +604,7 @@ class AssetMap:
548
604
  weight=1,
549
605
  z_index_offset=10 if b.is_complete else 100000
550
606
  )
607
+
551
608
  if b.is_complete:
552
609
  marker = folium.Marker(
553
610
  location=[lat, lon],
@@ -14,7 +14,8 @@ class PredictorForm(forms.ModelForm):
14
14
  "render_file",
15
15
  "asset",
16
16
  "metrics",
17
- "active",
17
+ "active",
18
+ "description",
18
19
  "entry_point",
19
20
  "config",
20
21
  "protocol"
@@ -35,3 +35,27 @@ class PredictorModel(models.Model):
35
35
  def __str__(self):
36
36
  return f"{self.asset.calid} - {self.name} : {self.description}"
37
37
 
38
+
39
+ # class PhysicsPredictor(models.Model):
40
+ # class Units(models.TextChoices):
41
+ # iks = "IKS"
42
+ # ips = "IPS"
43
+ # fps = "FPS"
44
+ # mks = "MKS"
45
+ # cgs = "CGS"
46
+
47
+ # id = models.BigAutoField(primary_key=True)
48
+ # name = models.CharField(max_length=35)
49
+ # active = models.BooleanField()
50
+ # asset = models.ForeignKey(Asset, on_delete=models.CASCADE)
51
+ # description = models.TextField(default="")
52
+
53
+ # config_file = models.FileField(upload_to="predictor_configs/", null=True, blank=True)
54
+ # render_file = models.FileField(upload_to="renderings/", null=True, blank=True)
55
+ # metrics = models.JSONField(default=list)
56
+
57
+ # units = models.CharField(max_length=3, choices=Units.choices)
58
+
59
+
60
+ # def __str__(self):
61
+ # return f"{self.name} : {self.asset.calid}"
@@ -31,7 +31,6 @@ REFERENCES
31
31
  import math
32
32
  import json
33
33
  from scipy.stats import norm
34
- from irie.apps.events.models import EventRecord
35
34
  from irie.apps.prediction.runners import Runner, RunID
36
35
  from irie.apps.prediction.models import PredictorModel
37
36
 
@@ -181,30 +180,30 @@ def _bridge_info(nbi: dict) -> dict:
181
180
  """
182
181
  try:
183
182
  nbi_bridge = nbi.get("NBI_BRIDGE", {})
184
- nbi_superstructure = nbi.get("NBI_SUPERSTRUCTURE_DECK", {})
183
+ nbi_supers = nbi.get("NBI_SUPERSTRUCTURE_DECK", {})
185
184
 
186
- # Parse "Skew Angle"
187
- skew_angle_str = nbi_bridge.get("Skew Angle", "0")
188
- if "99" in skew_angle_str: # Handle undefined skew
185
+ # 34: "Skew Angle"
186
+ skew_angle_str = nbi_bridge.get("Skew Angle", "99")
187
+ if "99" in skew_angle_str:
189
188
  skew_angle = 0
190
189
  else:
191
190
  skew_angle = float(skew_angle_str.split(" - ")[0])
192
191
 
193
192
  return {
194
193
  "state_code": StateCodes.California,
195
- "year_built": int(nbi_bridge.get("Year Built", 0)),
196
- "skew_angle": skew_angle,
194
+ "year_built": int(nbi_bridge.get("Year Built", 0)), # 27
195
+ "skew_angle": skew_angle, # 34
197
196
  "service_type": int(
198
- nbi_bridge.get("Type of Service on Bridge Code", "0 - Unknown").split(" - ")[0]
199
- + nbi_bridge.get("Type Of Service Under Bridge Code", "0 - Unknown").split(" - ")[0]
197
+ nbi_bridge.get("Type of Service on Bridge Code", "0 - Unknown").split(" - ")[0] # 42A
198
+ + nbi_bridge.get("Type Of Service Under Bridge Code", "0 - Unknown").split(" - ")[0] # 42B
200
199
  ),
201
- "material_flag": int(nbi_superstructure.get("Main Span Material", "0 - Unknown").split(" - ")[0]),
202
- "geometry_flag": int(nbi_superstructure.get("Main Span Design", "0 - Unknown").split(" - ")[0]),
203
- "span_count": int(nbi_superstructure.get("Number of Spans in Main Unit", 0)),
204
- "approach_spans": int(nbi_superstructure.get("Number of Approach Spans", 0)),
205
- "max_span_length": float(nbi_bridge.get("Length of Maximum Span", 0.0)),
206
- "total_length": float(nbi_bridge.get("Structure Length", 0.0)),
207
- "deck_width": float(nbi_bridge.get("Deck Width - Out to Out", 0.0)),
200
+ "material_flag": int(nbi_supers.get("Main Span Material", "0 - Unknown").split(" - ")[0]), # 43A
201
+ "geometry_flag": int(nbi_supers.get("Main Span Design", "0 - Unknown").split(" - ")[0]), # 43B
202
+ "span_count": int(nbi_supers.get("Number of Spans in Main Unit", 0)), # 45
203
+ "approach_spans": int(nbi_supers.get("Number of Approach Spans", 0)), # 46
204
+ "max_span_length": float(nbi_bridge.get("Length of Maximum Span", 0.0)), # 48
205
+ "total_length": float(nbi_bridge.get("Structure Length", 0.0)), # 49
206
+ "deck_width": float(nbi_bridge.get("Deck Width - Out to Out", 0.0)), # 52
208
207
  }
209
208
  except ValueError as e:
210
209
  raise ValueError(f"Error processing NBI data: {e}")
@@ -214,12 +213,20 @@ def _bridge_info(nbi: dict) -> dict:
214
213
 
215
214
  def _hazus_curve(type: int, properties: dict, sa_03s: float, sa_10s: float, soil_type: str) -> dict:
216
215
  """
217
- Compute fragility probabilities for the four damage states and optionally generate fragility curves.
216
+ Compute fragility probabilities for the four damage states
218
217
 
219
218
  See page 7-14 of [1]
220
- Args:
219
+ See reference [3] for details
220
+ See Section 7.1.6.2 of [1] for example
221
+
222
+ Parameters
221
223
  - type (int): Bridge classification (integer from 1 to 28).
222
- - properties (dict): Dictionary containing bridge-specific properties.
224
+ - properties (dict): Dictionary containing NBI data:
225
+ - span_count (N),
226
+ - skew_angle (α),
227
+ - deck_width (W),
228
+ - max_span_length (Lmax), # 48
229
+ - total_length (L), # 49
223
230
  - pga (float): Peak Ground Acceleration (g).
224
231
  - sa_03s (float): Spectral Acceleration at 0.3 seconds (g).
225
232
  - sa_10s (float): Spectral Acceleration at 1.0 seconds (g).
@@ -227,6 +234,10 @@ def _hazus_curve(type: int, properties: dict, sa_03s: float, sa_10s: float, soil
227
234
 
228
235
  Returns:
229
236
  - dict: Fragility probabilities for Slight, Moderate, Extensive, and Complete damage states.
237
+
238
+ Note
239
+ The skew angle is defined as the angle between the centerline of a
240
+ pier and a line normal to the roadway centerline.
230
241
  """
231
242
  # Validate inputs
232
243
  required_keys = {"span_count", "skew_angle"}
@@ -242,6 +253,9 @@ def _hazus_curve(type: int, properties: dict, sa_03s: float, sa_10s: float, soil
242
253
  skew_angle = properties["skew_angle"]
243
254
 
244
255
  # Step 2: Get soil-amplified shaking parameters
256
+ # Evaluate the soil-amplified shaking at the bridge site. That is, get the peak ground acceleration
257
+ # (PGA), spectral accelerations (Sa at 0.3 seconds and Sa at 1.0 second) and the permanent ground
258
+ # deformation (in inches).
245
259
  modified_values = modify_ground_motion(soil_type, None, sa_03s, sa_10s)
246
260
  modified_sa_03s = modified_values['sa_03s']
247
261
  modified_sa_10s = modified_values['sa_10s']
@@ -8,11 +8,13 @@
8
8
  #
9
9
  #----------------------------------------------------------------------------#
10
10
  from django.urls import re_path
11
- from .views import new_prediction, asset_predictors, predictor_profile, predictor_upload
11
+ from .views import new_prediction, asset_predictors, predictor_profile, predictor_upload, asset_map
12
12
 
13
13
  urlpatterns = [
14
14
  re_path("^inventory/[0-9 A-Z-]*/predictors/new", new_prediction),
15
15
  re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/predictors/(?P<preid>[0-9 A-Z-]{1,})", predictor_profile),
16
- re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/predictors/create", predictor_upload),
17
- re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/predictors/", asset_predictors, name="asset_predictors")
16
+ re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/predictors/create/map/$", asset_map),
17
+ re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/map/$", asset_map),
18
+ re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/predictors/create/$", predictor_upload),
19
+ re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/predictors/", asset_predictors, name="asset_predictors")
18
20
  ]
@@ -0,0 +1,221 @@
1
+ #===----------------------------------------------------------------------===#
2
+ #
3
+ # STAIRLab -- STructural Artificial Intelligence Laboratory
4
+ #
5
+ #===----------------------------------------------------------------------===#
6
+ #
7
+ # This module implements the "Configure Predictors" page
8
+ #
9
+ # Author: Claudio Perez
10
+ #
11
+ #----------------------------------------------------------------------------#
12
+ import os
13
+ import json
14
+ import veux
15
+ import uuid
16
+ import base64
17
+
18
+ from django.shortcuts import HttpResponse
19
+ from django.template import loader, TemplateDoesNotExist
20
+ from django.contrib.auth.decorators import login_required
21
+ from django.core.exceptions import ObjectDoesNotExist
22
+ from django.core.files.base import ContentFile
23
+
24
+ from django.shortcuts import render
25
+
26
+ from irie.apps.site.view_utils import raise404
27
+ from irie.apps.inventory.models import Asset
28
+ from irie.apps.prediction.predictor import PREDICTOR_TYPES
29
+ from irie.apps.prediction.models import PredictorModel
30
+ from .forms import PredictorForm
31
+
32
+ @login_required(login_url="/login/")
33
+ def new_prediction(request):
34
+ context = {}
35
+
36
+ page_template = "form-submission.html"
37
+ context["segment"] = page_template
38
+ html_template = loader.get_template("prediction/" + page_template)
39
+ return HttpResponse(html_template.render(context, request))
40
+
41
+
42
+ @login_required(login_url="/login/")
43
+ def asset_predictors(request, calid):
44
+
45
+ context = {"segment": "inventory"}
46
+
47
+ context["runners"] = list(reversed([
48
+ {
49
+ "schema": json.dumps(cls.schema),
50
+ "name": cls.__name__,
51
+ "title": cls.schema.get("title", "NO TITLE"),
52
+ "protocol": key
53
+ }
54
+ for key,cls in PREDICTOR_TYPES.items() if key
55
+ ]))
56
+
57
+
58
+ try:
59
+ context["asset"] = Asset.objects.get(calid=calid)
60
+
61
+ except Asset.DoesNotExist:
62
+ return HttpResponse(
63
+ loader.get_template("site/page-404-sidebar.html").render(context, request)
64
+ )
65
+
66
+ html_template = loader.get_template("prediction/asset-predictors.html")
67
+ return HttpResponse(html_template.render(context, request))
68
+
69
+
70
+ @login_required(login_url="/login/")
71
+ def predictor_profile(request, calid, preid):
72
+
73
+ context = {}
74
+ html_template = loader.get_template("prediction/predictor-profile.html")
75
+ context["segment"] = "inventory"
76
+
77
+ try:
78
+ asset = Asset.objects.get(calid=calid)
79
+ except Asset.DoesNotExist:
80
+ return raise404(request, context)
81
+
82
+ try:
83
+ predictor = PredictorModel.objects.get(pk=int(preid))
84
+ except ObjectDoesNotExist:
85
+ return raise404(request, context)
86
+
87
+ context["asset"] = asset
88
+ context["predictor"] = PREDICTOR_TYPES[predictor.protocol](predictor)
89
+
90
+ try:
91
+ return HttpResponse(html_template.render(context, request))
92
+
93
+ except TemplateDoesNotExist:
94
+ context["rendering"] = None
95
+ return HttpResponse(html_template.render(context, request))
96
+
97
+ except Exception as e:
98
+ if "DEBUG" in os.environ and os.environ["DEBUG"]:
99
+ raise e
100
+ html_template = loader.get_template("site/page-500.html")
101
+ return HttpResponse(html_template.render(context, request))
102
+
103
+
104
+ @login_required(login_url="/login/")
105
+ def asset_map(request, calid):
106
+
107
+
108
+ r200 = loader.get_template("inventory/asset-on-map.html")
109
+ r400 = loader.get_template("site/page-400.html")
110
+ asset = Asset.objects.get(calid=calid)
111
+ context = {
112
+ "asset": asset,
113
+ "viewer": "three",
114
+ "location": json.dumps(list(reversed(list(asset.coordinates)))),
115
+ }
116
+
117
+ if request.method == "GET":
118
+ context["render_src"] = asset.rendering
119
+
120
+ elif request.method == "POST":
121
+ from openbim.csi import load, create_model, collect_outlines
122
+ # context["offset"] = json.dumps(list(reversed(list(asset.coordinates))))
123
+ context["rotate"] = "[0, 0, 0]"
124
+ context["scale"] = 1/3.2808 # TODO
125
+
126
+ uploaded_file = request.FILES.get('config_file')
127
+
128
+ try:
129
+ csi = load((str(line.decode()).replace("\r\n","\n") for line in uploaded_file.readlines()))
130
+ except Exception as e:
131
+ return HttpResponse(r400.render({"message": json.dumps({"error": str(e)})}), status=400)
132
+
133
+ try:
134
+ model = create_model(csi, verbose=True)
135
+ except Exception as e:
136
+ return HttpResponse(r400.render({"message": json.dumps({"error": str(e)})}), status=400)
137
+
138
+
139
+ outlines = collect_outlines(csi, model.frame_tags)
140
+ artist = veux.render(model, canvas="gltf", vertical=3,
141
+ reference={"frame.surface", "frame.axes"},
142
+ model_config={"frame_outlines": outlines})
143
+
144
+ glb = artist.canvas.to_glb()
145
+ glb64 = base64.b64encode(glb).decode("utf-8")
146
+ context["render_glb"] = f"data:application/octet-stream;base64,{glb64}"
147
+
148
+
149
+ try:
150
+ return HttpResponse(r200.render(context, request))
151
+
152
+ except Exception as e:
153
+ r500 = loader.get_template("site/page-500.html")
154
+ return HttpResponse(r500.render({"message": str(e)}, request), status=500)
155
+
156
+
157
+
158
+
159
+ @login_required(login_url="/login/")
160
+ def predictor_upload(request, calid):
161
+
162
+ asset = Asset.objects.get(calid=calid)
163
+ html_template = loader.get_template("prediction/predictor-upload.html")
164
+ r400 = loader.get_template("site/page-400.html")
165
+ context = {
166
+ "asset": asset,
167
+ "segment": "inventory",
168
+ "viewer": "babylon",
169
+ "offset": json.dumps(list(reversed(list(asset.coordinates)))),
170
+ }
171
+
172
+ if request.method == "POST":
173
+ from openbim.csi import load, create_model, collect_outlines
174
+ form = PredictorForm(request.POST, request.FILES)
175
+
176
+ uploaded_file = request.FILES.get('config_file')
177
+
178
+ try:
179
+ csi = load((str(line.decode()).replace("\r\n","\n") for line in uploaded_file.readlines()))
180
+ except Exception as e:
181
+ return HttpResponse(r400.render({"message": json.dumps({"error": str(e)})}), status=400)
182
+
183
+ model = create_model(csi, verbose=True)
184
+
185
+ # Generate the .glb file using veux
186
+ outlines = collect_outlines(csi, model.frame_tags)
187
+ artist = veux.create_artist(model, canvas="gltf", vertical=3,
188
+ model_config={"frame_outlines": outlines}
189
+ )
190
+ artist.draw_surfaces()
191
+ glb = artist.canvas.to_glb()
192
+
193
+ if request.POST.get("action") == "commit":
194
+ if not form.is_valid():
195
+ return HttpResponse(json.dumps({"error": "Invalid form data"}), status=400)
196
+ predictor = PredictorModel()
197
+ predictor.active = False
198
+ predictor.asset = asset
199
+ predictor.name = form.cleaned_data['name']
200
+ predictor.description = "empty"
201
+
202
+ predictor.render_file.save(f"{uuid.uuid4()}.glb", ContentFile(glb), save=True)
203
+ predictor.save()
204
+
205
+ context["form"] = form
206
+
207
+ else: # probably a GET
208
+ context["form"] = PredictorForm()
209
+
210
+
211
+ try:
212
+ return HttpResponse(html_template.render(context, request))
213
+ # return render(request, "prediction/predictor-upload.html", {"form": form})
214
+
215
+ except Exception as e:
216
+ if "DEBUG" in os.environ and os.environ["DEBUG"]:
217
+ raise e
218
+ html_template = loader.get_template("site/page-500.html")
219
+ return HttpResponse(html_template.render({}, request))
220
+
221
+
@@ -22277,38 +22277,6 @@ textarea.form-control-lg {
22277
22277
  color: #3A416F;
22278
22278
  }
22279
22279
 
22280
- .breadcrumb-item {
22281
- font-size: 0.875rem;
22282
- }
22283
- .breadcrumb-item.text-white::before {
22284
- color: #ffffff;
22285
- }
22286
-
22287
- .breadcrumb-dark {
22288
- background-color: #1F2937;
22289
- }
22290
- .breadcrumb-dark .breadcrumb-item {
22291
- font-weight: 600;
22292
- }
22293
- .breadcrumb-dark .breadcrumb-item a {
22294
- color: #F2F4F6;
22295
- }
22296
- .breadcrumb-dark .breadcrumb-item a:hover {
22297
- color: #ffffff;
22298
- }
22299
- .breadcrumb-dark .breadcrumb-item + .breadcrumb-item::before {
22300
- color: #6B7280;
22301
- }
22302
- .breadcrumb-dark .breadcrumb-item.active {
22303
- color: #D1D5DB;
22304
- }
22305
-
22306
- .breadcrumb-links {
22307
- padding: 0;
22308
- margin: 0;
22309
- background: transparent;
22310
- }
22311
-
22312
22280
  .card {
22313
22281
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
22314
22282
  border: 1px solid #E5E7EB;
@@ -23442,7 +23410,6 @@ svg.text-dark .color-background {
23442
23410
  padding-left: 0.75rem;
23443
23411
  padding-right: 0.75rem;
23444
23412
  font-weight: 500;
23445
- color: #ffffff;
23446
23413
  font-size: 0.75rem;
23447
23414
  }
23448
23415
  .navbar-vertical .navbar-nav .nav-link > i {