Skip to content

Commit

Permalink
Merge pull request #185 from machallboyd/feature/generator-pattern
Browse files Browse the repository at this point in the history
Use more pythonic style for Counter() with a generator expression
  • Loading branch information
nreinicke committed Apr 25, 2023
2 parents 3fd2a1c + 1f7b899 commit 1bddfd8
Showing 1 changed file with 8 additions and 21 deletions.
29 changes: 8 additions & 21 deletions nrel/hive/reporting/handler/time_step_stats_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,10 +140,7 @@ def handle(self, reports: List[Report], runner_payload: RunnerPayload):

# count the number of vehicles in each vehicle state
veh_state_counts = Counter(
map(
lambda v: v.vehicle_state.vehicle_state_type.name,
sim_state.get_vehicles(),
)
v.vehicle_state.vehicle_state_type.name for v in sim_state.get_vehicles()
)

stats_row = {
Expand Down Expand Up @@ -196,21 +193,16 @@ def handle(self, reports: List[Report], runner_payload: RunnerPayload):
stats_row[f"vehicles_{state.lower()}"] = veh_state_counts[state]

available_driver_counts = Counter(
map(
lambda v: v.driver_state.available,
sim_state.get_vehicles(),
)
v.driver_state.available for v in sim_state.get_vehicles()
)

stats_row["drivers_available"] = available_driver_counts[True]
stats_row["drivers_unavailable"] = available_driver_counts[False]

# count number of chargers in use by type
if ReportType.VEHICLE_CHARGE_EVENT in reports_by_type.keys():
charger_counts = Counter(
map(
lambda r: r.report["charger_id"],
reports_by_type[ReportType.VEHICLE_CHARGE_EVENT],
)
r.report["charger_id"] for r in reports_by_type[ReportType.VEHICLE_CHARGE_EVENT]
)
for charger in env.chargers.keys():
stats_row[f"charger_{charger.lower()}"] = charger_counts[charger]
Expand Down Expand Up @@ -281,10 +273,7 @@ def _get_report_filter_func(

# count the number of vehicles in each vehicle state in this fleet
veh_state_counts_in_fleet = Counter(
map(
lambda v: v.vehicle_state.vehicle_state_type.name,
veh_in_fleet,
)
v.vehicle_state.vehicle_state_type.name for v in veh_in_fleet
)

# create stats row with the time step
Expand Down Expand Up @@ -343,18 +332,16 @@ def _get_report_filter_func(
fleet_stats_row[f"vehicles_{state.lower()}"] = veh_state_counts_in_fleet[state]

available_driver_counts_in_fleet = Counter(
map(lambda v: v.driver_state.available, veh_in_fleet)
v.driver_state.available for v in veh_in_fleet
)
fleet_stats_row["drivers_available"] = available_driver_counts_in_fleet[True]
fleet_stats_row["drivers_unavailable"] = available_driver_counts_in_fleet[False]

# count number of chargers in use by type
if ReportType.VEHICLE_CHARGE_EVENT in requests_in_fleet.keys():
charger_counts_in_fleet = Counter(
map(
lambda r: r.report["charger_id"],
requests_in_fleet[ReportType.VEHICLE_CHARGE_EVENT],
)
r.report["charger_id"]
for r in requests_in_fleet[ReportType.VEHICLE_CHARGE_EVENT]
)
for charger in env.chargers.keys():
fleet_stats_row[f"charger_{charger.lower()}"] = charger_counts_in_fleet[
Expand Down

0 comments on commit 1bddfd8

Please sign in to comment.