honeybee-radiance-postprocess 0.4.467__tar.gz → 0.4.468__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.
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/PKG-INFO +1 -1
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/leed/leed.py +1 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/well/well.py +71 -87
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess.egg-info/PKG-INFO +1 -1
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/CODE_OF_CONDUCT.md +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/CONTRIBUTING.md +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/LICENSE +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/MANIFEST.in +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/README.md +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/dev-requirements.txt +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/__init__.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/__main__.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/annual.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/annualdaylight.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/annualirradiance.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/breeam/__init__.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/breeam/breeam.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/__init__.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/abnt.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/breeam.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/datacollection.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/grid.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/leed.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/merge.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/mtxop.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/postprocess.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/schedule.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/translate.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/two_phase.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/util.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/viewfactor.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/cli/well.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/data_type.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/dynamic.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/electriclight.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/en17037.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/helper.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/ies/__init__.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/ies/lm.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/ies/lm_schedule.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/leed/__init__.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/leed/leed_schedule.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/metrics.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/reader.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/results/__init__.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/results/annual_daylight.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/results/annual_irradiance.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/results/results.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/type_hints.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/util.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/vis_metadata.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess/well/__init__.py +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess.egg-info/SOURCES.txt +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess.egg-info/dependency_links.txt +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess.egg-info/entry_points.txt +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess.egg-info/requires.txt +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/honeybee_radiance_postprocess.egg-info/top_level.txt +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/requirements.txt +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/setup.cfg +0 -0
- {honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/setup.py +0 -0
@@ -8,22 +8,16 @@ import numpy as np
|
|
8
8
|
|
9
9
|
from ladybug.analysisperiod import AnalysisPeriod
|
10
10
|
from ladybug.datatype.generic import GenericType
|
11
|
-
from ladybug.color import Colorset
|
12
11
|
from ladybug.datacollection import HourlyContinuousCollection
|
13
|
-
from ladybug.datatype.fraction import Fraction
|
14
|
-
from ladybug.datatype.time import Time
|
15
|
-
from ladybug.legend import LegendParameters
|
16
12
|
from ladybug.header import Header
|
17
13
|
from honeybee.model import Model
|
18
14
|
from honeybee.units import conversion_factor_to_meters
|
19
15
|
from honeybee_radiance.writer import _filter_by_pattern
|
20
|
-
from honeybee_radiance.postprocess.annual import filter_schedule_by_hours
|
21
16
|
|
22
17
|
from ..metrics import da_array2d
|
23
|
-
from ..annual import
|
18
|
+
from ..annual import occupancy_schedule_8_to_6
|
24
19
|
from ..results.annual_daylight import AnnualDaylight
|
25
20
|
from ..util import filter_array, recursive_dict_merge
|
26
|
-
from ..dynamic import DynamicSchedule, ApertureGroupSchedule
|
27
21
|
from ..ies.lm import dynamic_schedule_direct_illuminance
|
28
22
|
|
29
23
|
|
@@ -171,9 +165,8 @@ def _well_summary(
|
|
171
165
|
|
172
166
|
def well_annual_daylight(
|
173
167
|
results: Union[str, AnnualDaylight], grids_filter: str = '*',
|
174
|
-
|
175
|
-
|
176
|
-
threshold: float = 300, target_time: float = 50, sub_folder: str = None):
|
168
|
+
states_schedule: dict = None, threshold: float = 300, target_time: float = 50,
|
169
|
+
sub_folder: str = None):
|
177
170
|
"""Calculate credits for WELL L06.
|
178
171
|
|
179
172
|
Args:
|
@@ -225,7 +218,7 @@ def well_annual_daylight(
|
|
225
218
|
|
226
219
|
if not states_schedule:
|
227
220
|
states_schedule, fail_to_comply, shd_trans_dict = dynamic_schedule_direct_illuminance(
|
228
|
-
results, grids_filter=grids_filter,
|
221
|
+
results, grids_filter=grids_filter, use_states=True)
|
229
222
|
else:
|
230
223
|
raise NotImplementedError(
|
231
224
|
'Custom input for argument states_schedule is not yet implemented.'
|
@@ -243,6 +236,7 @@ def well_annual_daylight(
|
|
243
236
|
if s_grid.mesh is not None:
|
244
237
|
grid_areas.append(s_grid.mesh.face_areas)
|
245
238
|
grid_areas = [np.array(grid) for grid in grid_areas]
|
239
|
+
break
|
246
240
|
if not grid_areas:
|
247
241
|
grid_areas = [None] * len(grids_info)
|
248
242
|
|
@@ -255,58 +249,38 @@ def well_annual_daylight(
|
|
255
249
|
light_paths = [lp[0] for lp in grid_info['light_path']]
|
256
250
|
base_zero_array = np.apply_along_axis(filter_array, 1, np.zeros(
|
257
251
|
(grid_info['count'], len(results.sun_up_hours))), occ_mask)
|
258
|
-
arrays = [base_zero_array.copy()]
|
259
252
|
arrays_blinds_up = [base_zero_array.copy()]
|
260
253
|
arrays_blinds_down = [base_zero_array.copy()]
|
261
254
|
# combine total array for all light paths
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
grid_info, light_path, state=0, res_type='total')
|
282
|
-
array_filter = np.apply_along_axis(
|
283
|
-
filter_array, 1, static_array, occ_mask)
|
284
|
-
arrays_blinds_up.append(array_filter)
|
285
|
-
arrays_blinds_down.append(array_filter)
|
286
|
-
else:
|
287
|
-
for light_path in light_paths:
|
288
|
-
array = results._get_array(
|
289
|
-
grid_info, light_path, res_type='total')
|
255
|
+
array = results._array_from_states(grid_info, states=states_schedule, zero_array=True)
|
256
|
+
array = np.apply_along_axis(filter_array, 1, array, occ_mask)
|
257
|
+
|
258
|
+
for light_path in light_paths:
|
259
|
+
# do an extra pass to calculate with blinds always up or down
|
260
|
+
if light_path != '__static_apertures__':
|
261
|
+
array_blinds_up = results._get_array(
|
262
|
+
grid_info, light_path, state=0, res_type='total')
|
263
|
+
array_filter = np.apply_along_axis(
|
264
|
+
filter_array, 1, array_blinds_up, occ_mask)
|
265
|
+
arrays_blinds_up.append(array_filter)
|
266
|
+
array_blinds_down = results._get_array(
|
267
|
+
grid_info, light_path, state=1, res_type='total')
|
268
|
+
array_filter = np.apply_along_axis(
|
269
|
+
filter_array, 1, array_blinds_down, occ_mask)
|
270
|
+
arrays_blinds_down.append(array_filter)
|
271
|
+
else:
|
272
|
+
static_array = results._get_array(
|
273
|
+
grid_info, light_path, state=0, res_type='total')
|
290
274
|
array_filter = np.apply_along_axis(
|
291
|
-
filter_array, 1,
|
292
|
-
|
293
|
-
|
294
|
-
shd_trans_array = states_schedule[light_path][sun_up_hours]
|
295
|
-
shd_trans_array = shd_trans_array[occ_mask.astype(bool)]
|
296
|
-
arrays.append(array_filter * shd_trans_array)
|
297
|
-
arrays_blinds_up.append(array_filter)
|
298
|
-
arrays_blinds_down.append(
|
299
|
-
array_filter * shd_trans_dict[light_path])
|
300
|
-
else:
|
301
|
-
arrays.append(array_filter)
|
302
|
-
arrays_blinds_up.append(array_filter)
|
303
|
-
arrays_blinds_down.append(array_filter)
|
304
|
-
array = sum(arrays)
|
275
|
+
filter_array, 1, static_array, occ_mask)
|
276
|
+
arrays_blinds_up.append(array_filter)
|
277
|
+
arrays_blinds_down.append(array_filter)
|
305
278
|
|
306
279
|
array_blinds_up = sum(arrays_blinds_up)
|
307
280
|
array_blinds_down = sum(arrays_blinds_down)
|
308
281
|
# calculate da per grid
|
309
282
|
da_grid = da_array2d(array, total_occ=total_occ, threshold=threshold)
|
283
|
+
|
310
284
|
da_grids.append(da_grid)
|
311
285
|
da_blinds_up_grid = da_array2d(
|
312
286
|
array_blinds_up, total_occ=total_occ, threshold=threshold)
|
@@ -318,76 +292,86 @@ def well_annual_daylight(
|
|
318
292
|
pass_sda_blinds_down_grids.append(da_blinds_down_grid >= target_time)
|
319
293
|
|
320
294
|
# create summaries for all grids and each grid individually
|
321
|
-
|
295
|
+
ies_lm_summary, ies_lm_summary_grid = _well_summary(
|
322
296
|
pass_sda_grids, grids_info, grid_areas,
|
323
297
|
pass_sda_blinds_up_grids, pass_sda_blinds_down_grids)
|
324
298
|
|
299
|
+
well_summary = {}
|
300
|
+
|
325
301
|
# credits
|
326
302
|
if not fail_to_comply:
|
327
|
-
if
|
328
|
-
|
329
|
-
|
330
|
-
|
303
|
+
if ies_lm_summary['sda'] >= 75:
|
304
|
+
ies_lm_summary['credits'] = 3
|
305
|
+
well_summary['credits'] = 2
|
306
|
+
elif ies_lm_summary['sda'] >= 55:
|
307
|
+
ies_lm_summary['credits'] = 2
|
308
|
+
well_summary['credits'] = 1
|
309
|
+
elif ies_lm_summary['sda'] >= 40:
|
310
|
+
ies_lm_summary['credits'] = 1
|
311
|
+
well_summary['credits'] = 0
|
331
312
|
else:
|
332
|
-
|
313
|
+
ies_lm_summary['credits'] = 0
|
314
|
+
well_summary['credits'] = 0
|
315
|
+
|
316
|
+
if all(grid_summary['sda'] >= 55 for grid_summary in ies_lm_summary_grid.values()):
|
317
|
+
if ies_lm_summary['credits'] <= 2:
|
318
|
+
ies_lm_summary['credits'] += 1
|
319
|
+
else:
|
320
|
+
ies_lm_summary['credits'] = 'Exemplary performance'
|
333
321
|
else:
|
334
|
-
|
322
|
+
ies_lm_summary['credits'] = 0
|
335
323
|
fail_to_comply_rooms = ', '.join(list(fail_to_comply.keys()))
|
336
324
|
note = (
|
337
325
|
'0 credits have been awarded. The following sensor grids have at '
|
338
326
|
'least one hour where 2% of the floor area receives direct '
|
339
327
|
f'illuminance of 1000 lux or more: {fail_to_comply_rooms}.'
|
340
328
|
)
|
341
|
-
|
329
|
+
ies_lm_summary['note'] = note
|
330
|
+
|
331
|
+
well_summary['total_floor_area'] = sum(np.sum(arr) for arr in grid_areas)
|
342
332
|
|
343
333
|
# convert to datacollection
|
344
334
|
def to_datacollection(aperture_group: str, values: np.ndarray):
|
345
335
|
# convert values to 0 and 1 (0 = no shading, 1 = shading)
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
hourly_data = HourlyContinuousCollection(header=header, values=values)
|
350
|
-
else:
|
351
|
-
values[values == 1] = 0
|
352
|
-
values[values == shd_trans_dict[aperture_group]] = 1
|
353
|
-
header = Header(data_type=GenericType(aperture_group, ''), unit='',
|
354
|
-
analysis_period=AnalysisPeriod(),
|
355
|
-
metadata={'Shade Transmittance': shd_trans_dict[aperture_group]})
|
356
|
-
hourly_data = HourlyContinuousCollection(header=header, values=values.tolist())
|
336
|
+
header = Header(data_type=GenericType(aperture_group, ''), unit='',
|
337
|
+
analysis_period=AnalysisPeriod())
|
338
|
+
hourly_data = HourlyContinuousCollection(header=header, values=values)
|
357
339
|
return hourly_data.to_dict()
|
358
340
|
|
359
|
-
|
360
|
-
states_schedule = {k:to_datacollection(k, v['schedule']) for k, v in states_schedule.to_dict().items()}
|
361
|
-
else:
|
362
|
-
states_schedule = {k:to_datacollection(k, v) for k, v in states_schedule.items()}
|
341
|
+
states_schedule = {k:to_datacollection(k, v['schedule']) for k, v in states_schedule.to_dict().items()}
|
363
342
|
|
364
343
|
if sub_folder:
|
365
344
|
folder = Path(sub_folder)
|
366
345
|
folder.mkdir(parents=True, exist_ok=True)
|
367
346
|
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
347
|
+
ies_lm_folder = folder.joinpath('ies_lm_summary')
|
348
|
+
ies_lm_folder.mkdir(parents=True, exist_ok=True)
|
349
|
+
ies_lm_summary_file = ies_lm_folder.joinpath('ies_lm_summary.json')
|
350
|
+
ies_lm_summary_file.write_text(json.dumps(ies_lm_summary, indent=2))
|
351
|
+
ies_lm_summary_grid_file = ies_lm_folder.joinpath('ies_lm_summary_grid.json')
|
352
|
+
ies_lm_summary_grid_file.write_text(json.dumps(ies_lm_summary_grid, indent=2))
|
353
|
+
states_schedule_file = ies_lm_folder.joinpath('states_schedule.json')
|
373
354
|
states_schedule_file.write_text(json.dumps(states_schedule))
|
374
|
-
grids_info_file =
|
355
|
+
grids_info_file = ies_lm_folder.joinpath('grids_info.json')
|
375
356
|
grids_info_file.write_text(json.dumps(grids_info, indent=2))
|
376
357
|
|
377
358
|
for (da, grid_info) in \
|
378
359
|
zip(da_grids, grids_info):
|
379
360
|
grid_id = grid_info['full_id']
|
380
|
-
da_file =
|
361
|
+
da_file = ies_lm_folder.joinpath('results', 'da', f'{grid_id}.da')
|
381
362
|
da_file.parent.mkdir(parents=True, exist_ok=True)
|
382
363
|
np.savetxt(da_file, da, fmt='%.2f')
|
383
364
|
|
384
|
-
da_grids_info_file =
|
365
|
+
da_grids_info_file = ies_lm_folder.joinpath(
|
385
366
|
'results', 'da', 'grids_info.json')
|
386
367
|
da_grids_info_file.write_text(json.dumps(grids_info, indent=2))
|
387
368
|
|
388
369
|
states_schedule_err_file = \
|
389
|
-
|
370
|
+
ies_lm_folder.joinpath('states_schedule_err.json')
|
390
371
|
states_schedule_err_file.write_text(json.dumps(fail_to_comply))
|
391
372
|
|
392
|
-
|
373
|
+
well_summary_file = folder.joinpath('well_summary.json')
|
374
|
+
well_summary_file.write_text(json.dumps(well_summary, indent=2))
|
375
|
+
|
376
|
+
return (well_summary, ies_lm_summary, ies_lm_summary_grid, da_grids, states_schedule,
|
393
377
|
fail_to_comply, grids_info)
|
{honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/CODE_OF_CONDUCT.md
RENAMED
File without changes
|
{honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/CONTRIBUTING.md
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/dev-requirements.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{honeybee_radiance_postprocess-0.4.467 → honeybee_radiance_postprocess-0.4.468}/requirements.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|