class KiloNum:
def __init__(self, value, round_val=None):
if any([isinstance(value, float), isinstance(value, int)]):
if round_val is None:
round_val = 3
self.round_val = round_val
self.value = value
self.kilo = self.make_value(3)
self.mega = self.make_value(6)
self.giga = self.make_value(9)
def make_value(self, key):
numbers = {3: 'K',
6: 'M',
9: 'G'}
return ''.join([str(round(self.value / 10 ** key, self.round_val)), numbers[key]])
def __repr__(self):
return f'{myvalue.kilo},\n{myvalue.mega},\n{myvalue.giga}'
myvalue = KiloNum(34500101112)
print(myvalue)
print(myvalue.giga)
import re
from pprint import pprint
def replace_old_struct(struct):
changes = {'struct<': 'dict(',
'array<': 'list(',
'>': ')',
':': ': ',
',': ', '}
for key in changes:
struct = struct.replace(key, changes[key])
return struct
def set_mark(struct, patterns):
for pattern in patterns:
regex = re.compile(pattern)
words = set(regex.findall(struct))
for word in words:
repl = f"'{word}'"
struct = struct.replace(word, repl)
return struct
def pair_rbracket(struct: str, rbracket):
counter = 0
for number, symbol in enumerate(struct):
if symbol == '(':
counter += 1
elif symbol == ')':
counter -= 1
if counter < 0:
return struct[:number] + rbracket + struct[number + 1:]
def pair_lbracket(struct, lbracket):
return f'{lbracket}{struct[1:]}'
def pair_brackets(struct, struct_type='dict'):
changes = {'dict': {'(': '{', ')': '}'},
'list': {'(': '[', ')': ']'}}
lbracket = changes[struct_type]['(']
rbracket = changes[struct_type][')']
if struct[0] == '(':
struct = pair_lbracket(struct, lbracket)
struct = pair_rbracket(struct, rbracket)
return struct
def set_struct(struct, struct_type):
structs = struct.split(struct_type, 1)
structs[1] = pair_brackets(structs[1], struct_type)
return ''.join(structs)
def replace_struct(struct, struct_type):
for _ in range(struct.count(struct_type)):
struct = set_struct(struct, struct_type)
return struct
if __name__ == '__main__':
data = ('food',
'struct<Milk:array<struct<id:string,type:string>>,Oil:string,batter:array<struct<id:string,type:string>>>')
my_struct = data[1]
patterns = [r"([\w]+)\:", r"\: ([\w]+)\)"]
struct = set_mark(replace_old_struct(my_struct), patterns)
struct_types = ['dict', 'list']
for struct_type in struct_types:
struct = replace_struct(struct, struct_type)
struct = eval(struct)
pprint(struct)
os.environ['WDM_LOG_LEVEL'] = '0'
warnings.filterwarnings("ignore", category=DeprecationWarning)
chrome_options = Options() chrome_options.add_argument('--headless')
browser = webdriver.Chrome(ChromeDriverManager(print_first_line=False).install(), options=chrome_options)
def print_unic_elements(arr):
[print(i) for i in set(arr) if arr.count(i) == 1]
data = {1448413438: dict(id=1448413438, access_hash=8335995624985435932, title='N', broadcast=True, megagroup=False)}
keys = [*data.keys()]
print(data[keys[0]])
A = """
A
A A
A A
AAAAA
A A
A A
A A
"""
B = """
BBBB
B B
B B
BBBB
B B
B B
BBBB
"""
C = """
CCC
C C
C
C
C
C C
CCC
"""
D = """
DDDD
D D
D D
D D
D D
D D
DDDD
"""
E = """
EEEEE
E
E
EEE
E
E
EEEEE
"""
F = """
FFFFF
F
F
FFF
F
F
F
"""
import alphabet_ascii as alfabet_ascii
alph = {'A':alfabet_ascii.A,
'B': alfabet_ascii.B,
'C': alfabet_ascii.C,
'D': alfabet_ascii.D,
'E': alfabet_ascii.E}
def make_symbols(symbols):
lines = []
for number, _ in enumerate(alph['A'].splitlines()):
line = [alph[symbol].splitlines()[number] for symbol in symbols]
line = ' '.join(line)
lines.append(line)
text = '\n'.join(lines)
return text
print(make_symbols('ABCDE'))
components=[row]
лишние квадратные скобки. create_actionrow(btns)
должна возвращать другой тип (сейчас возвращает список чего-то, надо посмотреть внимательно).