Skip to content

Commit

Permalink
#108 ensure value not refence passed to closure
Browse files Browse the repository at this point in the history
  • Loading branch information
tuna-f1sh committed Aug 27, 2024
1 parent 20a135e commit 3ebb412
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 6 deletions.
2 changes: 1 addition & 1 deletion examples/multi_dev_fe_power_meter.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def on_device_data(page: int, page_name: str, data):
print(f"FitnessEquipment {page_name} ({page}) update: {data}")

for d in devices:
d.on_found = lambda: on_found(d)
d.on_found = lambda d=d: on_found(d)
d.on_device_data = on_device_data

try:
Expand Down
2 changes: 1 addition & 1 deletion examples/scanner.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def on_found(device_tuple):
try:
dev = auto_create_device(node, device_id, device_type, device_trans)
# closure callback of on_device_data with device
dev.on_device_data = lambda _, page_name, data: on_device_data(
dev.on_device_data = lambda _, page_name, data, dev=dev: on_device_data(
dev, page_name, data
)
devices.append(dev)
Expand Down
7 changes: 4 additions & 3 deletions openant/subparsers/influx.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,11 +109,12 @@ def on_found(device):
print(f"Device {device} found and receiving")

if type(device) == FitnessEquipment:
device.start_workouts(workouts)
if workouts is not None:
device.start_workouts(workouts)

for dev in devices:
dev.on_found = lambda: on_found(dev)
dev.on_device_data = lambda page, page_name, data: write_device_data(
dev.on_found = lambda dev=dev: on_found(dev)
dev.on_device_data = lambda page, page_name, data, dev=dev: write_device_data(
dev, page_name, data
)

Expand Down
2 changes: 1 addition & 1 deletion openant/subparsers/scan.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def on_found(device_tuple):
try:
dev = auto_create_device(node, device_id, device_type, device_trans)
# closure callback of on_device_data with device
dev.on_device_data = lambda _, page_name, data: on_device_data(
dev.on_device_data = lambda _, page_name, data, dev=dev: on_device_data(
dev, page_name, data
)
devices.append(dev)
Expand Down

0 comments on commit 3ebb412

Please sign in to comment.