def mac(raw):
if raw.endswith("<STR_LIT::>"):<EOL><INDENT>flat_raw = raw.replace("<STR_LIT::>", "<STR_LIT>")<EOL>raw = "<STR_LIT>".format(<EOL>flat_raw=flat_raw, zeros_stuffed="<STR_LIT:0>" * (<NUM_LIT:12> - len(flat_raw))<EOL>)<EOL><DEDENT>return py23_compat.text_type(EUI(raw, dialect=_MACFormat))<EOL>
Converts a raw string to a standardised MAC Address EUI Format.

:param raw: the raw string containing the value of the MAC Address
:return: a string with the MAC Address in EUI format

Example:

.. code-block:: python

    >>> mac('0123.4567.89ab')
    u'01:23:45:67:89:AB'

Some vendors like Cisco return MAC addresses like a9:c5:2e:7b:6: which is not entirely valid
(with respect to EUI48 or EUI64 standards). Therefore we need to stuff with trailing zeros

Example
>>> mac('a9:c5:2e:7b:6:')
u'A9:C5:2E:7B:60:00'

If Cisco or other obscure vendors use their own standards, will throw an error and we can fix
later, however, still works with weird formats like:

>>> mac('123.4567.89ab')
u'01:23:45:67:89:AB'
>>> mac('23.4567.89ab')
u'00:23:45:67:89:AB'