mpu.string

String manipulation, verification and formatting.

For more complex checks, you might want to use the [validators](http://validators.readthedocs.io) package.

mpu.string.human_readable_bytes(nb_bytes: Union[int, float], suffix: str = 'B')str[source]

Convert a byte number into a human readable format.

Parameters
  • nb_bytes (Union[int, float]) –

  • suffix (str, optional (default: "B")) –

Returns

size_str

Return type

str

Examples

>>> human_readable_bytes(123)
'123.0 B'
>>> human_readable_bytes(1025)
'1.0 KiB'
>>> human_readable_bytes(9671406556917033397649423)
'8.0 YiB'
mpu.string.is_email(potential_email_address: str)bool[source]

Check if potential_email_address is a valid e-mail address.

Please note that this function has no false-negatives but many false-positives. So if it returns that the input is not a valid e-mail adress, it certainly isn’t. If it returns True, it might still be invalid. For example, the domain could not be registered.

Parameters

potential_email_address (str) –

Returns

is_email

Return type

bool

Examples

>>> is_email('')
False
>>> is_email('info@martin-thoma.de')
True
>>> is_email('info@math.martin-thoma.de')
True
>>> is_email('Martin Thoma <info@martin-thoma.de>')
False
>>> is_email('info@martin-thoma')
False
>>> is_email('Martin <>')
False
mpu.string.is_float(potential_float: str)bool[source]

Check if potential_float is a valid float.

Returns

is_float

Return type

bool

Examples

>>> is_float('123')
True
>>> is_float('1234567890123456789')
True
>>> is_float('0')
True
>>> is_float('-123')
True
>>> is_float('123.45')
True
>>> is_float('a')
False
>>> is_float('0x8')
False
mpu.string.is_iban(potential_iban: str)bool[source]

Check if a string is a valid IBAN number.

IBAN is described in ISO 13616-1:2007 Part 1.

Spaces are ignored.

# CODE 0 = always zero b = BIC or National Bank code c = Account number i = holder’s kennitala (national identification number) k = IBAN check digits n = Branch number t = Account type x = National check digit or character

Examples

>>> is_iban('DE89 3704 0044 0532 0130 00')
True
>>> is_iban('DE89 3704 0044 0532 0130 01')
False
mpu.string.is_int(potential_int: str)bool[source]

Check if potential_int is a valid integer.

Parameters

potential_int (str) –

Returns

is_int

Return type

bool

Examples

>>> is_int('123')
True
>>> is_int('1234567890123456789')
True
>>> is_int('0')
True
>>> is_int('-123')
True
>>> is_int('123.45')
False
>>> is_int('a')
False
>>> is_int('0x8')
False
mpu.string.is_ipv4(potential_ipv4: str, allow_leading_zeros: bool = False, allow_shortened_addresses: bool = False)bool[source]

Check if a string is a valid IPv4 address.

Parameters
  • potential_ipv4 (str) –

  • allow_leading_zeros (bool (default: False)) –

  • allow_shortened_addresses (bool (default: False)) –

Returns

is_valid

Return type

bool

Examples

>>> is_ipv4("192.168.0.4")
True
>>> is_ipv4("192.168..4")
False
>>> is_ipv4("192.168.01.4", allow_leading_zeros=True)
True
>>> is_ipv4("192.168.01.4", allow_leading_zeros=False)
False
>>> is_ipv4("256.168.01.4")
False
>>> is_ipv4("4", allow_shortened_addresses=True)
True
>>> is_ipv4("4", allow_shortened_addresses=False)
False
mpu.string.is_none(string_: str, default: Literal[raise, False] = 'raise')bool[source]

Check if a string is equivalent to None.

Parameters
  • string (str) –

  • default ({'raise', False}) – Default behaviour if none of the “None” strings is detected.

Returns

is_none

Return type

bool

Examples

>>> is_none('2', default=False)
False
>>> is_none('undefined', default=False)
True
mpu.string.str2bool(string_: str, default: Union[str, bool] = 'raise')bool[source]

Convert a string to a bool.

Parameters
  • string (str) –

  • default ({'raise', False}) – Default behaviour if none of the “true” strings is detected.

Returns

boolean

Return type

bool

Examples

>>> str2bool('True')
True
>>> str2bool('1')
True
>>> str2bool('0')
False
mpu.string.str2bool_or_none(string_: str, default: Literal[raise, False] = 'raise')Optional[bool][source]

Convert a string to a bool or to None.

Parameters
  • string (str) –

  • default ({'raise', False}) – Default behaviour if none of the “true” or “none” strings is detected.

Returns

bool_or_none

Return type

bool or None

Examples

>>> str2bool_or_none('True')
True
>>> str2bool_or_none('1')
True
>>> str2bool_or_none('0')
False
>>> str2bool_or_none('undefined')
mpu.string.str2float_or_none(string_: str)Optional[float][source]

Convert a string to a float or to None.

Parameters

string (str) –

Returns

float_or_none

Return type

float or None

Examples

>>> str2float_or_none('1')
1.0
>>> str2float_or_none('1.2')
1.2
>>> str2float_or_none('undefined')
mpu.string.str2int_or_none(string_: str)Optional[int][source]

Convert a string to a int or to None.

Parameters

string (str) –

Returns

int_or_none

Return type

int or None

Examples

>>> str2int_or_none('2')
2
>>> str2int_or_none('undefined')
mpu.string.str2str_or_none(string_: str)Optional[str][source]

Convert a string to a str or to None.

Parameters

string (str) –

Returns

str_or_none

Return type

bool or None

Examples

>>> str2str_or_none('True')
'True'
>>> str2str_or_none('1')
'1'
>>> str2str_or_none('0')
'0'
>>> str2str_or_none('undefined')