@python_beginnersЭта группа больше не существует

Страница 1384 из 1885
Dmitry
13.03.2017
10:52:10
не по теме: Кто знает хороший аналог википедии для корпоративного использования?

Igor
13.03.2017
10:52:27
mediawiki? confluence?

Dmitry
13.03.2017
10:54:20
спасибо)

Google
Anton
13.03.2017
10:55:44
код и скриншот в студию :)
import threading import sys from netmiko import ConnectHandler import netmiko import getpass from cmdParser import cmdParsPolicy from cmdParser import cmdGetInventory from cmdParser import cmdGetEigrp maxconn = 5 hostCount = 0 semaphore = None muxwrite = threading.BoundedSemaphore() outfile = open('result.txt','w') def credit(): uname = input('login: ').rstrip() pwd = getpass.getpass('pass: ') return uname, pwd def getMaxConn(): return int(input('max connect: ').rstrip()) def getConnectData(host,uname,pwd,cmd): global hostCount res = False try: net_connect = ConnectHandler(device_type='cisco_ios', ip=host, username=uname, password=pwd) res = True except netmiko.ssh_exception.NetMikoTimeoutException: print(host + ' Timeout') except netmiko.ssh_exception.NetMikoAuthenticationException: print(host + ' Auth Fail') except: print(host + ' Unk') if(res): hostCount = hostCount + 1 prompt = net_connect.find_prompt().rstrip()[:-1] #print(host, prompt) #For eigrp #recieve_raw_data = net_connect.send_command(cmd, delay_factor=0.2) #For crypto recieve_raw_data_0 = net_connect.send_command(cmd[0], delay_factor=0.2) recieve_raw_data_1 = net_connect.send_command(cmd[1], delay_factor=0.2) recieve_raw_data_2 = net_connect.send_command(cmd[2], delay_factor=0.2) net_connect.disconnect() semaphore.release() if(res): #res = cmdGetInventory(recieve_raw_data,host,prompt) #wr = recieve_raw_data #For crypto if(recieve_raw_data_0): print(recieve_raw_data_0) if(recieve_raw_data_1): print(host + ' has cert') if(recieve_raw_data_2): print(host + ' didnt write\n') #For eigrp #if(cmdGetEigrp(recieve_raw_data)): #print(host) #muxwrite.acquire() #outfile.write(host+ '\n') #muxwrite.release() return def main(): global maxconn, semaphore, hostCount if(len(sys.argv) != 2): sys.exit('Usage: ' + sys.argv[0] + ' filename') user,pwd = credit() maxconn = getMaxConn() semaphore = threading.BoundedSemaphore(maxconn) #For crypto cmd_cry_0 = 'sh crypto isakmp sa detail | i 1.1.1.1' cmd_cry_1 = 'sh crypto pki certificates' cmd_cry_2 = 'sh startup-config | i ca trust-point CA' cmd = (cmd_cry_0, cmd_cry_1, cmd_cry_2) #For eigrp #cmd = 'sh ip eigrp topo 0.0.0.0/0 | i from' #cmd = 'sh flash | i crashinfo_20161' #cmd = 'sh policy-map target sub-interface' f = open(sys.argv[1]) print('Crypto parse: In progress...') for i in f: semaphore.acquire() t = threading.Thread(target=getConnectData, args=(i[:-1],user,pwd,cmd)) t.start() #print(str(hostCount) + ' successes hosts') if(__name__ == '__main__'): main()



Вадим
13.03.2017
10:56:50
привет, подскажите с чем такая ошибка связана requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot тг бот крашится через какое то время с такой ошибкой

Bulatbulat48
13.03.2017
10:57:02
Оберни код в три обратные кавычки

Igor
13.03.2017
10:57:44
а где там про питон хоть слово?

Вадим
13.03.2017
10:57:49
Igor
13.03.2017
10:57:56
какой именно ?
он не тебе

Bulatbulat48
13.03.2017
10:58:00
какой именно ?
Это я Антону ))

Вадим
13.03.2017
10:58:11
@botoid
спс

Anton
13.03.2017
10:58:20
это интерпритатор

важно то что я визуально вижу что создаётся столько потоков, сколько я указал в проге

Google
Igor
13.03.2017
10:59:40
и че, ты запустил скрипт с аргументом 43?)

Igor
13.03.2017
11:00:02
а че их на скриншоте 43? =)

Anton
13.03.2017
11:00:16
а че их на скриншоте 43? =)
чёт ты пом ваще не шаришь чувак

Igor
13.03.2017
11:00:22
взаимно)

Di
13.03.2017
11:00:30
?

Anton
13.03.2017
11:00:35
это же не моментальный вывод, там опрос раз в секунду идёт

ествественно 100% соотвествия не будет, потоки шустрее работают чем мониторилка этих потоков

Bulatbulat48
13.03.2017
11:01:06
Igor
13.03.2017
11:01:17
т.е. у тебя в коде где-то убивается поток и пересоздается новый?

Anton
13.03.2017
11:01:17
я могу просецссмонитором канешно точно отследить что там их точно скольк я задал, но мне влом

Думаю ты ошибаешься
возможно, просто нефига меня тоже опускать постоянно

Igor
13.03.2017
11:02:05
я тебя не опускаю, я говорю, что есть отчетливая разница между виндовыми потоками, питоньими потоками и multiprocessingом до кучи

Anton
13.03.2017
11:02:12
т.е. у тебя в коде где-то убивается поток и пересоздается новый?
в функции def getConnectData(host,uname,pwd,cmd): semaphore.release()

Bulatbulat48
13.03.2017
11:02:30
чёт не получается
''' только обратные где тильда '''

Anton
13.03.2017
11:03:07
ну я так вроде и делаю code сам код верно?

Igor
13.03.2017
11:03:12
нет

Anton
13.03.2017
11:03:15
ааа

Igor
13.03.2017
11:03:18
сам код внутрь code

Google
Anton
13.03.2017
11:03:36
я тупой)

сделал

Igor
13.03.2017
11:03:48
жалко, зарта нету

он шарит в винде

Anton
13.03.2017
11:04:55
да в винде я тоже кое что понимаю я ваще не об этом изначально спрашивал воопщем, хоть меня тут и поопсирали малёк, всё равно спасибо за ссылки на статейки

Igor
13.03.2017
11:05:30
кароче. асинхронность это штука типа потоков (питоньих) - она работает в пределах одного процесса

но если потоки переключатся питоном (GILом или чем-то там еще, хуй его знает, я не настолько шарю) сами каждые, скажем, N тиков или N мс

Bulatbulat48
13.03.2017
11:07:04
а если у меня торнадо шлет запросы (асинхронно) то это Потоки, Процессы или что это вообще?

и есть ли разница в этом в 2.7 и 3.6 ?

Igor
13.03.2017
11:07:39
то в случае с асинхронщиной мы переключаемся насильно на следующую задачу (корутину, поток) с помощью ключеового слова await

Anton
13.03.2017
11:07:45
вот, торнадо, как раз попроще в понимании

говорят

Dmitriy
13.03.2017
11:07:57
https://ru.wikipedia.org/wiki/Epoll

Например

Anton
13.03.2017
11:08:11
это я читал

Igor
13.03.2017
11:08:15
торнадо все-таки немножко про другое

но да, можно и его, как вариант

только если ты будешь простое веб-приложение писать, то вопросы у тебя про асинхронщину все равно останутся, и понятнее не станет =)

Google
Anton
13.03.2017
11:10:35
если мы в том же самом потоке

Igor
13.03.2017
11:12:10
потому что если мы не воспользуемся await, код останется синхронным

async/await в питончике просто помогают избежать мозгоебства с коллбэками

надо как-то дать программе понять, что выполняемая в фоне задача завершилась

Anton
13.03.2017
11:13:22
а мозгоёбства с await они не добваляют? )

Igor
13.03.2017
11:13:39
нет?..

Маришка
13.03.2017
11:13:48
С чего бы

Admin
ERROR: S client not available

Bulatbulat48
13.03.2017
11:14:22
а где можно наглядно это посмотреть?

Маришка
13.03.2017
11:14:42
а мозгоёбства с await они не добваляют? )
Только если ты так и не врубишься в async/await

Anton
13.03.2017
11:15:42
почему-то колбак у меня как-то логично вписывается в мировозрение может из-за того что на Си только так и делается а вот await - это наверно инопланетяне нам завесли технологию

Igor
13.03.2017
11:15:57
вот в питон завезли синтаксический сахар

Маришка
13.03.2017
11:16:00
Шарпей посмотри

Igor
13.03.2017
11:16:02
где коллбэки не нужны

просто хуячится следующий асинхронный ивент

Anton
13.03.2017
11:17:24
о кстати, эта фраза мне кажется прояснила что-то

Маришка
13.03.2017
11:19:16
Разве тоже самое не говорят доки и пеп про async/await

Igor
13.03.2017
11:19:36
нашел охуительно подробно (но по-задротски) про async/await

https://snarky.ca/how-the-heck-does-async-await-work-in-python-3-5/

Google
Anton
13.03.2017
11:21:14
Разве тоже самое не говорят доки и пеп про async/await
одной фразой - нет там куча букв, до сути сам докапываешься я хотел начать с интуитивного понимания

Igor
13.03.2017
11:21:29
да не за что

Маришка
13.03.2017
11:22:17
спасибо
Тут тоже многабукаф

Anton
13.03.2017
11:22:45
Тут тоже многабукаф
лан, тада буду бухать

Igor
13.03.2017
11:24:02
а одной фразой про asyncio/async/await я бы описал это так - это фича языка, которая ускоряет код, который работает с диском или сетью, говоря в нужные моменты: – я щас короче буду http-запрос делать на другой сервак, давай-ка ты чем-нить более полезным займешься, а то этот лошара сидит с мобильного интернета на северном полюсе, тут запрос будет 2 секунды обрабатываться, ну его нахрен – ооо, заебись, теперь работаем! когда ты получил ответ от сервака, даешь понять питончику, что всё, работа сделана и надо б теперь с тэим ответом от сервака че-нибудь сделать и питончик такой – о, чё, проснулся? ну ладно, давай свою работу, сделаю, так и быть

бля, че-т все равно одной фразой не получилось

тоже нажрался б щас с удовольствием

Маришка
13.03.2017
11:26:05
Хех

У меня на гите есть парочку ботов для тг с async/await

Anton
13.03.2017
11:27:30
У меня на гите есть парочку ботов для тг с async/await
ну скинь что ли до кучи тоже, если не сложно

Маришка
13.03.2017
11:28:11
https://github.com/Marina-chan/telegram_weather_bot/blob/master/main.py

Anton
13.03.2017
11:29:10
а одной фразой про asyncio/async/await я бы описал это так - это фича языка, которая ускоряет код, который работает с диском или сетью, говоря в нужные моменты: – я щас короче буду http-запрос делать на другой сервак, давай-ка ты чем-нить более полезным займешься, а то этот лошара сидит с мобильного интернета на северном полюсе, тут запрос будет 2 секунды обрабатываться, ну его нахрен – ооо, заебись, теперь работаем! когда ты получил ответ от сервака, даешь понять питончику, что всё, работа сделана и надо б теперь с тэим ответом от сервака че-нибудь сделать и питончик такой – о, чё, проснулся? ну ладно, давай свою работу, сделаю, так и быть
спасибо чувак, реально что-то понимаю только вот вопрос, когда питону сообщают, что типа можешь опять работать с сокетом там например, питон типа преостанавливает то что делал в тот момент и переходит к этой задаче? или в очередь ставит?

Маришка
13.03.2017
11:29:42
В очередь

Маришка
13.03.2017
11:30:19
Если другая корутина еще не закончила, но эта сообщила что может продолжать то она становиться в очередь

Ваня
13.03.2017
11:34:58
Всем добрый день. Скажите пожалуйста, Как лучше поступить. Я хочу научиться программированию. Надо ли на начальном этапе изучать c++ , а потом перейти на python? Или можно сразу изучать python?

Игорь
13.03.2017
11:36:05
В упор не вижу питона, только вижуалстудио, если я не ошибся с названием процесса

Igor
13.03.2017
11:36:08
ну если тебя не отпугнет задротство, идущее вместе с С++, то лучше, конечно, начать с крестов

Страница 1384 из 1885

Эта группа больше не существует Эта группа больше не существует