misc
- Miscellaneous helpers
Functions
Miscellaneous helpers
- class pyftdi.misc.EasyDict(dictionary=None, **kwargs)
Dictionary whose members can be accessed as instance members
- classmethod copy() a shallow copy of D
- pyftdi.misc.add_custom_devices(ftdicls=None, vpstr=None, force_hex=False)
Helper function to add custom VID/PID to FTDI device identifer map.
The string to parse should match the following format:
[vendor_name=]<vendor_id>:[product_name=]<product_id>
vendor_name and product_name are optional strings, they may be omitted as they only serve as human-readable aliases for vendor and product names.
vendor_id and product_id are mandatory strings that should resolve as 16-bit integer (USB VID and PID values). They may be expressed as decimal or hexadecimal syntax.
- ex:
0x403:0x9999
, vid:pid short syntax, with no alias namesmycompany=0x666:myproduct=0xcafe
, vid:pid complete syntax withaliases
- Parameters:
vpstr (
Optional
[Sequence
[str
]]) – typically, a option switch string describing the device to addftdicls – the Ftdi class that should support the new device.
force_hex (
bool
) – if set, consider that the pid/vid string are hexadecimal encoded values.
- Return type:
None
- class pyftdi.misc.classproperty(fget=None, fset=None, fdel=None, doc=None)
Getter property decorator for a class
- pyftdi.misc.hexdump(data, full=False, abbreviate=False)
Convert a binary buffer into a hexadecimal representation.
Return a multi-line strings with hexadecimal values and ASCII representation of the buffer data.
- Parameters:
data (
Union
[bytes
,bytearray
,Iterable
[int
]]) – binary buffer to dumpfull (
bool
) – use hexdump -Cv formatabbreviate (
bool
) – replace identical lines with ‘*’
- Return type:
str
- Returns:
the generated string
- pyftdi.misc.hexline(data, sep=' ')
Convert a binary buffer into a hexadecimal representation.
Return a string with hexadecimal values and ASCII representation of the buffer data.
- Parameters:
data (
Union
[bytes
,bytearray
,Iterable
[int
]]) – binary buffer to dumpsep (
str
) – the separator string/char
- Return type:
str
- Returns:
the formatted string
- pyftdi.misc.is_iterable(obj)
Tells whether an instance is iterable or not.
- Parameters:
obj (object) – the instance to test
- Returns:
True if the object is iterable
- Return type:
bool
- pyftdi.misc.pretty_size(size, sep=' ', lim_k=1024, lim_m=10485760, plural=True, floor=True)
Convert a size into a more readable unit-indexed size (KiB, MiB)
- Parameters:
size – integral value to convert
sep (
str
) – the separator character between the integral value and the unit specifierlim_k (
int
) – any value above this limit is a candidate for KiB conversion.lim_m (
int
) – any value above this limit is a candidate for MiB conversion.plural (
bool
) – whether to append a final ‘s’ to byte(s)floor (
bool
) – how to behave when exact conversion cannot be achieved: take the closest, smaller value or fallback to the next unit that allows the exact representation of the input value
- Return type:
str
- Returns:
the prettyfied size
- pyftdi.misc.show_call_stack()
Print the current call stack, only useful for debugging purpose.
- pyftdi.misc.to_bool(value, permissive=True, allow_int=False)
Parse a string and convert it into a boolean value if possible.
Input value may be: - a string with an integer value, if allow_int is enabled - a boolean value - a string with a common boolean definition
- Parameters:
value (
Union
[int
,bool
,str
]) – the value to parse and convertpermissive (
bool
) – default to the False value if parsing failsallow_int (
bool
) – allow an integral type as the input value
- Raises:
ValueError – if the input value cannot be converted into an bool
- Return type:
bool
- pyftdi.misc.to_bps(value)
Parse a string and convert it into a baudrate value.
The function accepts common multipliers as K, M and G
- Parameters:
value (str or int or float) – the value to parse and convert
- Return type:
float
- Raises:
ValueError – if the input value cannot be converted into a float
- pyftdi.misc.to_int(value)
Parse a value and convert it into an integer value if possible.
Input value may be: - a string with an integer coded as a decimal value - a string with an integer coded as a hexadecimal value - a integral value - a integral value with a unit specifier (kilo or mega)
- Parameters:
value (
Union
[int
,str
]) – input value to convert to an integer- Returns:
the value as an integer
- Return type:
int
- Raises:
ValueError – if the input value cannot be converted into an int
- pyftdi.misc.xor(_a_, _b_)
XOR logical operation.
- Parameters:
_a_ – first argument
_b_ – second argument
- Return type:
bool
- Returns:
xor-ed value