irie 0.0.41__py3-none-any.whl → 0.0.42__py3-none-any.whl

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.

irie/pull/nbi.py ADDED
@@ -0,0 +1,304 @@
1
+ #===----------------------------------------------------------------------===#
2
+ #
3
+ # STAIRLab -- STructural Artificial Intelligence Laboratory
4
+ #
5
+ #===----------------------------------------------------------------------===#
6
+ #
7
+ # First run without arguments to generate list of structure numbers and
8
+ # save to JSON. Then run with that JSON as argv[1] to pull inventory data.
9
+ #
10
+ # Adapted from:
11
+ # https://github.com/psychogeekir/ScrapeNBIBridgeInfo/raw/master/getNBIClimateData.py
12
+ #
13
+ # Claudio M. Perez
14
+ #
15
+ # TODO:
16
+ #
17
+ # - Add option for "SELECTED_TAB": "NBETab",
18
+ #
19
+ # - Perhaps add something like:
20
+ # --filter-calid calids.txt
21
+ # This will be useful for testing, eg, (chrystal's first version)
22
+ # python getNBIData.py yearly.json --filter-calid <(echo "33 0214L")
23
+ #
24
+ # or
25
+ # python getNBIData.py | python getNBIData.py /dev/stdin <(echo "33 0214L")
26
+ #
27
+ import sys
28
+ import json
29
+ import requests
30
+ from tqdm import tqdm
31
+ from pathlib import Path
32
+
33
+ NAME = Path(__file__).name
34
+
35
+ EXAMPLES= """"
36
+ Examples:
37
+ run to obtain structure numbers list:
38
+ $ {NAME}
39
+ run to obtain data from JSON list:
40
+ $ {NAME} [structure_numbers]
41
+ run filtering for given structure 33 0214L:
42
+ $ {NAME} [structure_numbers] --filter-calid "33 0214L"
43
+ run filtering for given structures:
44
+ $ {NAME} [structure_numbers] --filter-list [list]
45
+ """
46
+
47
+ HELP=f"""
48
+
49
+ usage: $ {NAME}
50
+ $ {NAME} --help
51
+ $ {NAME} [structure_numbers] [options]
52
+
53
+ Two-step process to obtain data from the National Bridge Inventory.
54
+
55
+ Positional Arguments:
56
+
57
+ Options:
58
+ -fc, --filter-calid filter for specific structure.
59
+ -fl, --filter-list filter for specified structures in txt file.
60
+ -h, --help print this message and exit.
61
+
62
+ {EXAMPLES}
63
+ """
64
+
65
+ def getBridgeList(headers, start_page=1, totalpages=3, pagesize=10, totalbridges=24, page_nums=None, **kwds):
66
+ url = 'https://infobridge.fhwa.dot.gov/Data/GetAllBridges'
67
+
68
+ payload = {
69
+ "isShowBridgesApplied":True,
70
+ "gridParam": {
71
+ "isShowBridgesApplied":True, "IsFilterApplied":False, "SelectedFilters":None,
72
+ "SortOrder":"asc", "SortIndex": "STATE_CODE",
73
+ }
74
+ }
75
+
76
+ pages = []
77
+ def filter(row):
78
+ return int(row["STATE_CODE"]) > 0
79
+
80
+ if page_nums is None:
81
+ page_nums = range(start_page, totalpages + 1)
82
+
83
+ for pageno in page_nums:
84
+ try:
85
+ payload["gridParam"]["PageNumber"] = pageno
86
+ payload["gridParam"]["PageSize"] = pagesize
87
+
88
+ r = requests.post(url, headers=headers, data=json.dumps(payload))
89
+
90
+ if r.status_code == 200:
91
+ try:
92
+ resp = json.loads(eval(r.content.decode('utf-8'))) # [1:-1].replace("\\", ""))
93
+ except:
94
+ print(f"Failed to get page {pageno}", file=sys.stderr)
95
+ continue
96
+
97
+ bridges = [
98
+ {'BRIDGE_YEARLY_ID': row['BRIDGE_YEARLY_ID'],
99
+ 'STRUCTURE_NUMBER': row['STRUCTURE_NUMBER'].strip()}
100
+ for row in resp["Results"]["rows"] # if filter(row)
101
+ ]
102
+ pages.extend(bridges)
103
+ print(pageno, len(pages), len(bridges), resp["Results"]["rows"][-1]["STATE_NAME"], file=sys.stderr)
104
+
105
+ except KeyboardInterrupt:
106
+ break
107
+
108
+ return pages
109
+
110
+
111
+ def getNBIData(headers, bridgeTable, years, tab="NBI",
112
+ keep_query=False):
113
+
114
+ url = 'https://infobridge.fhwa.dot.gov/Data/getBridgeInformation'
115
+
116
+ _headers = headers.copy()
117
+ # payload = {
118
+ # "requestModel": {
119
+ # "SELECTED_TAB": "OverviewTab",
120
+ # "SELECTED_YEAR_ID": None,
121
+ # "IS_NEW_RECORD": True,
122
+ # "IS_YEAR_SELECTED": False,
123
+ # "Is_Overview_Bridge_Selected": False,
124
+ # "SELECTED_YEAR": None,
125
+ # "CURRENT_YEARLY_ID": "25099893",
126
+ # "IS_NBI_TREE_SELECTED": False,
127
+ # "Folder_Name": None,
128
+ # "tabChange": False,
129
+ # "BRIDGE_YEARLY_ID": "25099893",
130
+ # "NEW_BRIDGE_ID": 58813,
131
+ # "SELECTED_NDE_TAB": "General"
132
+ # }
133
+ # }
134
+
135
+ payload = {
136
+ "requestModel":{
137
+ "SELECTED_TAB": f"{tab}Tab",
138
+ "SELECTED_YEAR_ID": None,
139
+ "IS_NEW_RECORD": False,
140
+ "IS_YEAR_SELECTED": False,
141
+ "Is_Overview_Bridge_Selected": False,
142
+ "NEW_BRIDGE_ID": 0,
143
+ "STRUCTURE_NUMBER": None,
144
+ "STATE_NAME": None,
145
+ "STATE_CODE": 0,
146
+ "IS_EXPERIMENTAL": False,
147
+ "SELECTED_NDE_TAB": "General",
148
+ #"MERRA_ID": 0,"IS_NBI_TREE_SELECTED": False,"Folder_Name": None,"tabChange": False,
149
+ }
150
+ }
151
+
152
+
153
+ referer = 'https://infobridge.fhwa.dot.gov/Data/BridgeDetail/'
154
+ data = {}
155
+
156
+ for i,bridge in enumerate(tqdm(bridgeTable)):
157
+
158
+ BRIDGE_YEARLY_ID = bridge['BRIDGE_YEARLY_ID']
159
+ STRUCTURE_NUMBER = bridge['STRUCTURE_NUMBER']
160
+
161
+ # data[STRUCTURE_NUMBER] = []
162
+
163
+ for year in years:
164
+ _headers['referer'] = referer + str(BRIDGE_YEARLY_ID)
165
+
166
+ payload["requestModel"].update({
167
+ "SELECTED_YEAR": year,
168
+ "CURRENT_YEARLY_ID": BRIDGE_YEARLY_ID,
169
+ "BRIDGE_YEARLY_ID": BRIDGE_YEARLY_ID,
170
+ })
171
+
172
+ r = requests.post(url, data=json.dumps(payload), headers=_headers)
173
+
174
+ if r.status_code == 200:
175
+ htmlcontent = r.content.decode('utf-8')
176
+ # print(data[STRUCTURE_NUMBER][0])
177
+ try:
178
+ data[STRUCTURE_NUMBER] = [{
179
+ k: (
180
+ v if k != "Results" else {
181
+ kk: vv for kk, vv in v.items() if (kk != "NBIDataQuery" or keep_query)
182
+ }
183
+ ) for k, v in json.loads(htmlcontent).items()
184
+ }]
185
+ except Exception as e:
186
+ print(f">> Error: {e}", file=sys.stderr)
187
+ continue
188
+
189
+ else:
190
+ print(f">> Error ({year}) {r.status_code}: {r.content}", file=sys.stderr)
191
+
192
+ if i % 500 == 0:
193
+ with open(f"nbi_data-{i}.json", "w") as f:
194
+ json.dump(data, f, indent=2)
195
+
196
+ return data
197
+
198
+
199
+ if __name__ == '__main__':
200
+ user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0"
201
+ request_verification_token = 'CfDJ8M6CuWz5hhxGnmUVXw2yDHQlfeNDzVoF03IbAJ0p3LdaDW7poklPvy74ykYda-qwcrtUXD4rnNzn583Ug7PWbR9IlomGzQh1OQIw_pa9d5TNwdN5p77SDfIfz3yq1nWPzxemEn_8bbh7TGGK9FIwcRY'
202
+ cookie = "_ga=GA1.1.478241025.1718907711; _ga_0623JYSC1Q=GS1.1.1718922743.2.0.1718922743.0.0.0; _ga_VW1SFWJKBB=GS1.1.1730789269.3.0.1730789272.0.0.0; _ga_CSLL4ZEK4L=GS1.1.1730789269.3.0.1730789272.0.0.0; _ga_NQ5ZN114SB=GS1.1.1730789269.3.0.1730789272.0.0.0; .AspNetCore.Session=CfDJ8M6CuWz5hhxGnmUVXw2yDHRQxNlIdqc8pBGKOJhMcHphMelhCyOQD7cnzYLVUWcsfCE8KOO8TNogarX5FbmvNQeSW1pTphWgR%2B6RLzPiUWuR4yPiDmb6rg82isfHqoEBhFoziXpFlU2o9pMgQICLsy7WbaeZbSgOl6FTg5Y0vLQ5; __RequestVerificationToken=CfDJ8M6CuWz5hhxGnmUVXw2yDHQXNjHWpjZ61I-CMSrl0yWsdWpCyt2QhUoeZ2L2aY0sqNpGy-wrD8ToMph6-wbfcRPpqORdlVci0ghxWu-3i4PCuWsiOkq90E1WupEYErSXnhsQVwHHGcD63WI7qyXZd7w; _ga_GNYE9X3V7H=GS1.1.1730825963.2.1.1730825988.0.0.0"
203
+
204
+ headers = {
205
+ 'authority': 'infobridge.fhwa.dot.gov',
206
+ 'origin': 'https://infobridge.fhwa.dot.gov',
207
+ 'sec-fetch-site': 'same-origin',
208
+ 'sec-fetch-mode': 'cors',
209
+ 'accept-encoding': 'gzip, deflate, br',
210
+ 'accept-language': 'en-US,en;q=0.9',
211
+
212
+ '__requestverificationtoken': request_verification_token,
213
+ 'user-agent': user_agent,
214
+ 'cookie': cookie
215
+ }
216
+
217
+ if len(sys.argv) == 1:
218
+
219
+ headers.update({
220
+ 'x-requested-with': 'XMLHttpRequest',
221
+ 'content-type': 'application/json; charset=UTF-8',
222
+ 'accept': 'application/json, text/javascript, */*; q=0.01',
223
+ 'referer': 'https://infobridge.fhwa.dot.gov/Data',
224
+ })
225
+
226
+ bridgeTable = getBridgeList(headers, start_page=511, totalpages=808, pagesize=100)
227
+ print(json.dumps(bridgeTable, indent=2))
228
+ with open(f"nbi_codes-california-test.json","w") as f:
229
+ # with open(f"nbi_codes-california.json","w") as f:
230
+ json.dump(bridgeTable,f,indent=2)
231
+ sys.exit()
232
+
233
+ elif len(sys.argv) == 2:
234
+ headers.update({
235
+ 'datatype': 'json',
236
+ 'content-type': 'application/json; charset=UTF-8',
237
+ 'accept': 'application/json, text/plain, */*'
238
+ })
239
+ bridgeTable = json.load(open(sys.argv[1]))
240
+ bridgeTable = [
241
+ i for i in bridgeTable
242
+ if " " in i["STRUCTURE_NUMBER"] and len(i["STRUCTURE_NUMBER"]) in {7, 8}
243
+ ]
244
+
245
+ # calids = list(map(str.strip, open("init/calid.txt").readlines()))
246
+ # bridgeTable = [i for i in bridgeTable if i["STRUCTURE_NUMBER"] in calids]
247
+
248
+ nbi_data = getNBIData(headers, bridgeTable[:], years=(2024,)) #range(2020, 2024))
249
+ print(json.dumps(nbi_data, indent=2))
250
+ with open(f"nbi_data-california-test.json","w") as f:
251
+ # with open(f"nbi_data-california.json","w") as f:
252
+ json.dump(nbi_data,f,indent=2)
253
+
254
+ else:
255
+ arg1 = sys.argv[1]
256
+ args2 = iter(sys.argv[2:])
257
+
258
+ if arg1 in ["--help", "-h"]:
259
+ print(HELP)
260
+ sys.exit
261
+ else:
262
+ headers.update({
263
+ 'datatype': 'json',
264
+ 'content-type': 'application/json; charset=UTF-8',
265
+ 'accept': 'application/json, text/plain, */*'
266
+ })
267
+ bridgeTable = json.load(open(sys.argv[1]))
268
+ for arg in args2:
269
+ if arg in ["--help", "-h"]:
270
+ print(HELP)
271
+ sys.exit
272
+ elif arg in ["--filter-calid", "-fc"]:
273
+ calid = next(args2)
274
+ bridgeTable = [
275
+ i for i in bridgeTable
276
+ if calid in i["STRUCTURE_NUMBER"]
277
+ ]
278
+ file_ending = calid
279
+ elif arg in ["--filter-list", "-fl"]:
280
+ filename = next(args2)
281
+ with open(filename, 'r') as file:
282
+ # Check if this is dependent on a specific txt structure (currently 1 bridge/line)
283
+ calid = [line.strip() for line in file]
284
+ # print(calid)
285
+ bridgeTable = [
286
+ i for i in bridgeTable
287
+ if any(j in i["STRUCTURE_NUMBER"] for j in calid)
288
+ ]
289
+ # print(bridgeTable)
290
+ file_ending = Path(filename).name
291
+
292
+ # calids = list(map(str.strip, open("init/calid.txt").readlines()))
293
+ # bridgeTable = [i for i in bridgeTable if i["STRUCTURE_NUMBER"] in calids]
294
+
295
+ nbi_data = getNBIData(headers, bridgeTable[:], years=(2024,)) #range(2020, 2024))
296
+ print(json.dumps(nbi_data, indent=2))
297
+
298
+ # TODO: remove this and replace with arg parsing
299
+ tab = ...
300
+
301
+ with open(f"{tab}_data-{file_ending}.json","w") as f:
302
+ # with open(f"nbi_data-california.json","w") as f:
303
+ json.dump(nbi_data,f,indent=2)
304
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: irie
3
- Version: 0.0.41
3
+ Version: 0.0.42
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
@@ -61,7 +61,7 @@ irie/apps/inventory/admin.py,sha256=e_W8ls_ARLLf8rn3oJd-YkPdTGMIrcN-mRrxk2BcY3c,
61
61
  irie/apps/inventory/apps.py,sha256=bZ6qYIwPMG4_4IeLfg9N4WuZAEgEVj84oOswV-7_MAI,424
62
62
  irie/apps/inventory/calid.py,sha256=3L8MbPIGOE3kzDnqeyY055pRBiF2O2l0cmpuDbTsdTg,3014
63
63
  irie/apps/inventory/fields.py,sha256=J3nTImPsuCeiOWBizSL4tnuKs36sPfXALNTKEZY-wVg,79
64
- irie/apps/inventory/filters.py,sha256=8ge94J5OlGhLRIo6EtBYVe2c9QxW7YCBLxJzfoFHzSg,2185
64
+ irie/apps/inventory/filters.py,sha256=_UtDkZzHg_efZhfGRRCpbHq4jX5cNQh4e-3o3BrYchY,2191
65
65
  irie/apps/inventory/forms.py,sha256=y8tcIGInXDg7KCf1OWd1jtc4umJsm8rf8-4O8nDhNd4,1244
66
66
  irie/apps/inventory/models.py,sha256=sYDGpFK41Ga7JXvD5kV6hLc4zr77XFqu7t9IHHO86dQ,5424
67
67
  irie/apps/inventory/sitemaps.py,sha256=Nha1MTsIH_ad7JyoxwonPytp7MNuEhDNszkEUOmlN0o,826
@@ -108,7 +108,7 @@ irie/apps/prediction/migrations/0002_alter_predictormodel_protocol.py,sha256=nrQ
108
108
  irie/apps/prediction/migrations/0003_alter_predictormodel_protocol.py,sha256=4N_vqjUddxMQBdzP1ZGBIP4uTlqWQfyBg3Dnt_w3T9A,518
109
109
  irie/apps/prediction/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
110
  irie/apps/prediction/runners/__init__.py,sha256=1ABdBWttfOdjI87YxJGEFcFSLcgXMHvMqUQWNpRuxS4,2033
111
- irie/apps/prediction/runners/hazus.py,sha256=IxEnXlpvWR92Iq9NOby_qqcWW4TjZ8zKWxNw6XyJKjQ,30463
111
+ irie/apps/prediction/runners/hazus.py,sha256=sWQDDmwN82wKSHW9EGx46JOOPo_IN2CTK7RF23Rx4c4,31207
112
112
  irie/apps/prediction/runners/ssid.py,sha256=Y36FMPVzjNMXknQO6LegTBFUF2X-l7TXyddY4Z8SDmA,18701
113
113
  irie/apps/prediction/runners/opensees/__init__.py,sha256=QlInYqEKc1oYBnw6TeF4dS3VnOxmQeLptF9EKr-blfM,21177
114
114
  irie/apps/prediction/runners/opensees/metrics.py,sha256=HU1V0RYQDXrhTcHqwpnU2KOSl4UPNo9S6QP3sz2VcUY,6428
@@ -142,9 +142,9 @@ irie/apps/static/assets/content_images/brace/mdof.svg,sha256=SJpy7HpeTceur85_wmH
142
142
  irie/apps/static/assets/content_images/brace/opensees.jpg,sha256=ZX1lhOLNBfGo1lgTLTvX2O5rgPhlzhcld75KvTSNTTU,50369
143
143
  irie/apps/static/assets/content_images/brace/sdof.svg,sha256=czlgN6GGodtOIsr-UARUoKMooeh0r33ewL_c_wbNfJ8,8415
144
144
  irie/apps/static/assets/content_images/brace/sees.png,sha256=tAbxCCxATDWJopqDEj58_Vl6ep8Id8MeLnUqNPtSp4U,49562
145
- irie/apps/static/assets/css/brace.css,sha256=N5Zhj0HiB54Mj5F12ZSkN1Yb_aRhYovp3sd8NK61uMQ,704614
146
- irie/apps/static/assets/css/brace.css.map,sha256=sBN22zoP9jzvkEWLzX9ieLhQUjwQFkcDcUFeTt13mMs,1646094
147
- irie/apps/static/assets/css/brace.min.css,sha256=ATaM5TPfY8sMNH4wUwDpDSTkD0yismRqHtO5DiRV5v8,578302
145
+ irie/apps/static/assets/css/brace.css,sha256=7Q7ujrQ5MPsxhCJ6-sR8MwNjFOSfuQImCxXSGtivYBU,704596
146
+ irie/apps/static/assets/css/brace.css.map,sha256=xviBNnXGhmA7AT8Mzip0pZAe3yROGhEBUTUD2wWkIG8,1646066
147
+ irie/apps/static/assets/css/brace.min.css,sha256=IXRK-ESV4SCFP1j41WxYbaCCa5JAJr6p-fVwbmqJDb0,578291
148
148
  irie/apps/static/assets/css/uPlot.min.css,sha256=N9lS8A3wBs6rAzJn4F8FDO3Y1pBkZ8yGUl3ueV3Ppqk,1883
149
149
  irie/apps/static/assets/img/brace2-no_text.png,sha256=NrwgN3GLIBfWvV_HfOzmKEv7e72OpdeUkvqVx8eNk9E,825872
150
150
  irie/apps/static/assets/img/colStrains.svg,sha256=By5LEjXbQ1D6pSoy-5DkYfKzHKjhtR4LdexMaaVEKfQ,189260
@@ -248,7 +248,7 @@ irie/apps/static/assets/inventory/ll89735.svg,sha256=5U8IN4IAO1foB6XhQHiaGAsiUgd
248
248
  irie/apps/static/assets/inventory/ll89736.svg,sha256=NqbRFY_-8s5dXV6ECthYBkUgVy9-BVMQfyXDpsFZmlQ,1098734
249
249
  irie/apps/static/assets/inventory/ll89973.svg,sha256=vGQCrGj1fSzkpDeeSn8pw4Fvniycce7Ubkoa7TK84Eg,1092572
250
250
  irie/apps/static/assets/js/787.545aecf5.chunk.js,sha256=M1ZHjaLV3MTw76zYIC5eJcpQvQNytXUIdbsx1P-Q2Dw,4599
251
- irie/apps/static/assets/js/brace.js,sha256=Vxh4R1LhNnbmt2ts4HZAxfrh66v-wcybAnDGiSuHGpc,35722
251
+ irie/apps/static/assets/js/brace.js,sha256=yKJ6DwgYMrKL8szRmgGVS7IOhptyYwvAvYflPoOMyhc,35724
252
252
  irie/apps/static/assets/js/d3.v4.min.js,sha256=hYXbQJK4qdJiAeDVjjQ9G0D6A0xLnDQ4eJI9dkm7Fpk,221957
253
253
  irie/apps/static/assets/js/events_api.js,sha256=SapCoJwzIaEMeaS-oZUyDd7U6GSRYEYGitRb2Jz7hR0,4643
254
254
  irie/apps/static/assets/js/events_page.js,sha256=qu9ah1hclAp7w9z1QO1AmzcKJCQ4avcwuJUDMzTUhk0,10285
@@ -391,9 +391,9 @@ irie/apps/templates/includes/footer.html,sha256=dnfLJUYN70gdHFY_Xzkj5KuISD4ve-kK
391
391
  irie/apps/templates/includes/modal-report.html,sha256=iqD6g9R4R7G426wLVL46H5fufWYAA3K8Acav9b0DQoU,3592
392
392
  irie/apps/templates/includes/navigation.html,sha256=iUblmqRGBT0GRCsvOUKy6a1O1buq-IkJRKSlmbhevb4,13670
393
393
  irie/apps/templates/includes/paginate.js,sha256=dAaL4uFQzEIbm61c_USEHlQLFkKc2ndJdR3bGzELtNc,3991
394
- irie/apps/templates/includes/scripts.html,sha256=1Up6xJJSTpdLTJp0tDAa3JubevvSlicOE4_j1vEOkek,1190
394
+ irie/apps/templates/includes/scripts.html,sha256=W5uNEWkgcRcI5hsPgvQ0bbdx9ZjIrwmRjCYbTDawDpo,1471
395
395
  irie/apps/templates/includes/settings-box.html,sha256=_YubYOyAJ8IldTgVlXP2wLLXpKpInp8hJ88FN6i6rmw,2488
396
- irie/apps/templates/includes/sidebar.html,sha256=m2TahYwFnysqcLkK4ANYZhUf8xGVId_tiJFBKrQD4Cw,12386
396
+ irie/apps/templates/includes/sidebar.html,sha256=DDwvNQI0SYNSsxBe_3MbrY3A-xR859RBaj-2Ml8y7yo,13012
397
397
  irie/apps/templates/inventory/asset-evals.html,sha256=KzbdJJ7ildMpfO4IQDuXqGBcPzUTlYpJ_Y3Wg4payVc,2700
398
398
  irie/apps/templates/inventory/asset-event-summary.html,sha256=5G7uZVf7kVL0wBaAfsEtTEEA5HRuBCzx8NrgDFheWI4,51357
399
399
  irie/apps/templates/inventory/asset-profile.html,sha256=rfj9tEXcUoTNHGAq_yVr2y1Io0f9qXZ6_EuWy9nWBJE,13585
@@ -406,7 +406,7 @@ irie/apps/templates/inventory/preamble.tex,sha256=TmRhIWg2-Pxj_e2OBctANRZPwU8RWM
406
406
  irie/apps/templates/inventory/report.tex,sha256=A1XKpwknlBrAZjFzzxVIDwypjXteqzoCQiuo1tQANfw,45228
407
407
  irie/apps/templates/inventory/sensor-upload.html,sha256=EhoRfPb_dPMzspgb7OLZ_YjW7uKYru5m3rZnvrjakKc,18351
408
408
  irie/apps/templates/layouts/base-fullscreen.html,sha256=q1nKewLnQ8inBxsUcHlq2Iv_s_qrw6k6bumX7mLR1mI,2579
409
- irie/apps/templates/layouts/base.html,sha256=phiHZX_CjuOhmkJgqyMAGTPdwm0qqrJCKZZwKLGTtQY,2387
409
+ irie/apps/templates/layouts/base.html,sha256=IGcw6i9-lox07mLvM9PBUfhk6oqg5qOmJvjnub6qA_0,2410
410
410
  irie/apps/templates/layouts/json-form.html,sha256=cT6Pd2168Z3p8RODS7SulUC79LnuzSs0EVLVxkGOXAo,1333
411
411
  irie/apps/templates/networks/corridor_table.html,sha256=SW6WMmxGsw2li1BXqvCRj1CFJ3IPUulfk-KHJBIMFx0,876
412
412
  irie/apps/templates/networks/networks.html,sha256=XMBwHhBqkG4ty2zgozlzeJNgyyXAzdbD95iyNJi4gJE,5745
@@ -455,6 +455,7 @@ irie/init/calid.py,sha256=1tj1Qu-aoxbbtmVHQ80EEg0tuD2zDRROPETG5_1WikQ,8315
455
455
  irie/init/getCGSData.py,sha256=iZG3Ab1Y_rhiliKCPNy0MZrKBsfEe6ShgSFz2ttvTUU,2916
456
456
  irie/init/getCGSevents.py,sha256=4dBkFFJQrUs6gfl1Nj-_R2UOZj0B_T017a6tC7fUHOw,421
457
457
  irie/init/getNBIData.py,sha256=m_sBK9WoeqEGXpX1FfmywGvVzuiVWZghl0sfcFOcbYI,9402
458
+ irie/init/getNBIData2.py,sha256=JIbdG2iMq9mUNXBlw_3j_lr71wk7ScVgSWYZOUdZBvo,11782
458
459
  irie/init/hayward.zip,sha256=WECOnYLP_3EeKHQzdxm17MHTncF2QdgXI28Vm6Iopt0,124675
459
460
  irie/init/data/cgs-stations.json,sha256=h-KKF-u31j_OQnQZQlmFzDjqgi0AcsPNzohn7bCNq0Q,105563
460
461
  irie/init/data/cgs_data.json,sha256=l2lADALMXVLKY6jn-rvEZjYWcZjGHLk22ZudocdR81Q,27752
@@ -467,10 +468,11 @@ irie/init/management/commands/init_assets.py,sha256=4EK194gtub1erZ1WoezF60sP5q94
467
468
  irie/init/management/commands/init_cesmd.py,sha256=00aNGLN6M_oDhMyKySJuqaPW0IwJal3TxsxCKn1lCjs,1200
468
469
  irie/init/management/commands/init_corridors.py,sha256=EzLk0HUiFxlco-2u0rypewOc9mAo_raqXC2_UCG8a_w,1241
469
470
  irie/init/management/commands/init_predictors.py,sha256=jdD7rd8l2qxuUuR5GOYuHXp-ZQkAK477TefksBMdlOw,2362
471
+ irie/pull/nbi.py,sha256=KpBjJ9GEU72Qk1t4bGN9cg0QBeVJ8k9XcI3Y1oSgIR0,11478
470
472
  irie/rest/__main__.py,sha256=6Nf_-Rr9zGmMyp_wqCFDO7ls9QPnPd9UyUgN17rIGYw,3680
471
473
  irie/usgs/__main__.py,sha256=HiSvPn5IW5IqRiCk1qRRq5dCy3-7iISw7v1P_w2rLrk,5049
472
- irie-0.0.41.dist-info/METADATA,sha256=U96niJZqeHwSvQ69s9UhykVJrHjeBIcE1Tm_VUWyqbU,3207
473
- irie-0.0.41.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
474
- irie-0.0.41.dist-info/entry_points.txt,sha256=A_3h9wPBGfxGQ78_MGa-nO6Z0foxOYeAnIE47jxEztg,44
475
- irie-0.0.41.dist-info/top_level.txt,sha256=zVCxi5E2nkISZPzKq8VEhWe_dGuPcefLYV1tYqQdwlY,5
476
- irie-0.0.41.dist-info/RECORD,,
474
+ irie-0.0.42.dist-info/METADATA,sha256=-a7q2xA5HKd1p6K_hZUYCAAMDAJJ1Fl7FWuYCyjQsvs,3207
475
+ irie-0.0.42.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
476
+ irie-0.0.42.dist-info/entry_points.txt,sha256=A_3h9wPBGfxGQ78_MGa-nO6Z0foxOYeAnIE47jxEztg,44
477
+ irie-0.0.42.dist-info/top_level.txt,sha256=zVCxi5E2nkISZPzKq8VEhWe_dGuPcefLYV1tYqQdwlY,5
478
+ irie-0.0.42.dist-info/RECORD,,
File without changes