0 #/ˆl–ßi~” JC]Š� Æš¸ÔÅ£Ï ƒ MµÎÁÌ®/# mystrtonum --- convert string to number # # Arnold Robbins, arnold@skeeve.com, Public Domain # February, 2004 # Revised June, 2014 function mystrtonum(str, ret, n, i, k, c) { if (str ~ /^0[0-7]*$/) { # octal n = length(str) ret = 0 for (i = 1; i <= n; i++) { c = substr(str, i, 1) # index() returns 0 if c not in string, # includes c == "0" k = index("1234567", c) ret = ret * 8 + k } } else if (str ~ /^0[xX][[:xdigit:]]+$/) { # hexadecimal str = substr(str, 3) # lop off leading 0x n = length(str) ret = 0 for (i = 1; i <= n; i++) { c = substr(str, i, 1) c = tolower(c) # index() returns 0 if c not in string, # includes c == "0" k = index("123456789abcdef", c) ret = ret * 16 + k } } else if (str ~ \ /^[-+]?([0-9]+([.][0-9]*([Ee][0-9]+)?)?|([.][0-9]+([Ee][-+]?[0-9]+)?))$/) { # decimal number, possibly floating point ret = str + 0 } else ret = "NOT-A-NUMBER" return ret } # BEGIN { # gawk test harness # a[1] = "25" # a[2] = ".31" # a[3] = "0123" # a[4] = "0xdeadBEEF" # a[5] = "123.45" # a[6] = "1.e3" # a[7] = "1.32" # a[8] = "1.32E2" # # for (i = 1; i in a; i++) # print a[i], strtonum(a[i]), mystrtonum(a[i]) # } $1ˆl–ß=¿J µ2ÛR‚œP-\l˜´oÐ „„'?ÏÂÍ/Â1a -@=já.ã@s¨UddlZddlmZmZddlmZddlmZmZm Z m Z m Z m Z m Z ddlmZmZddlmZmZmZmZddlmZddlmZe e¡ZGd d „d eƒZd%ee e!e!d œd d„Z"d&ee!e!dœdd„Z#Gdd„deƒZ$Gdd„de$ƒZ%Gdd„de$ƒZ&Gdd„de$ƒZ'Gdd„de$ƒZ(Gdd„de$ƒZ)gd¢Z*e%e(e'e)e&dœZ+ee e e$fe,d<e e e e dfe e e$d œd!d"„Z-d'e e e e e e e$d œd#d$„Z.dS)(éN)ÚABCÚabstractmethod)Úpartial)ÚCallableÚDictÚIterableÚListÚOptionalÚTypeÚUnion)ÚsubpÚutil)ÚeniÚnetplanÚnetwork_managerÚnetworkd)ÚIproute2)Ú NetworkStatec@s eZdZdS)ÚNoActivatorExceptionN)Ú__name__Ú __module__Ú __qualname__©rrúReturn True if activator is available, otherwise return False.N©ÚNotImplementedError©r)rrrÚ available.szNetworkActivator.available©rrcCs tƒ‚dS)zWBring up interface. Return True is successful, otherwise return False Nr*©rrrrÚbring_up_interface4sz#NetworkActivator.bring_up_interfacecCs tƒ‚dS)zYBring down interface. Return True is successful, otherwise return False Nr*r/rrrÚbring_down_interface=sz%NetworkActivator.bring_down_inte