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
- 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