When using the BlueapiClient, if I check the avaliable methods for a device, it will give me the following results:
>>> devs.ew4000
Device(ew4000)
>>> devs.ew4000.
devs.ew4000.capitalize() devs.ew4000.index( devs.ew4000.isspace() devs.ew4000.removeprefix( devs.ew4000.splitlines(
devs.ew4000.casefold() devs.ew4000.isalnum() devs.ew4000.istitle() devs.ew4000.removesuffix( devs.ew4000.startswith(
devs.ew4000.center( devs.ew4000.isalpha() devs.ew4000.isupper() devs.ew4000.replace( devs.ew4000.strip(
devs.ew4000.count( devs.ew4000.isascii() devs.ew4000.join( devs.ew4000.rfind( devs.ew4000.swapcase()
devs.ew4000.encode( devs.ew4000.isdecimal() devs.ew4000.ljust( devs.ew4000.rindex( devs.ew4000.title()
devs.ew4000.endswith( devs.ew4000.isdigit() devs.ew4000.lower() devs.ew4000.rjust( devs.ew4000.translate(
devs.ew4000.expandtabs( devs.ew4000.isidentifier() devs.ew4000.lstrip( devs.ew4000.rpartition( devs.ew4000.upper()
devs.ew4000.find( devs.ew4000.islower() devs.ew4000.maketrans( devs.ew4000.rsplit( devs.ew4000.zfill(
devs.ew4000.format( devs.ew4000.isnumeric() devs.ew4000.model devs.ew4000.rstrip(
devs.ew4000.format_map( devs.ew4000.isprintable() devs.ew4000.partition( devs.ew4000.split(
When the only methods which should be available to the user are the ones we expose e.g model I think is the only one that should be available so they can check the device bluesky protocols. These extra methods come from class DeviceRef inheriting str and is rather confusing. It is done this way so that when passing the "device" to the plan, the device is treated as the device name for the server to lookup.
Acceptance Criteria
- DeviceRef no longer inherits from str.
When using the BlueapiClient, if I check the avaliable methods for a device, it will give me the following results:
When the only methods which should be available to the user are the ones we expose e.g model I think is the only one that should be available so they can check the device bluesky protocols. These extra methods come from class
DeviceRefinheritingstrand is rather confusing. It is done this way so that when passing the "device" to the plan, the device is treated as the device name for the server to lookup.Acceptance Criteria