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

Страница 651 из 1885
Zart
31.10.2016
11:45:40
"Warning The pseudo-random generators of this module should not be used for security purposes. "

генерация сильных паролей относится к данному случаю

Kill me pls
31.10.2016
11:46:06
Да оно и понятно

От энтропии зависит многое

Google
Zart
31.10.2016
11:46:46
а её там нет

Kill me pls
31.10.2016
11:47:03
А в большом диапазоне если?

Просто будет повторяться?

Zart
31.10.2016
11:47:36
в питоне используется мерсенн-твистер. он вроде не относился к криптостойким

Letalis
31.10.2016
11:49:20
А существует ли не псевдо-рандом, а полностью настоящий рандом?

Zart
31.10.2016
11:49:34
аппаратные источники

интел на чипсетах встраивала всякие tco/rng еще с i810 хренадцать лет назад

Kill me pls
31.10.2016
11:50:46
Zart
31.10.2016
11:51:18
$ ls /lib/modules/4.1.7-100.fc21.x86_64/kernel/drivers/char/hw_random/ amd-rng.ko.xz intel-rng.ko.xz timeriomem-rng.ko.xz tpm-rng.ko.xz via-rng.ko.xz virtio-rng.ko.xz

Letalis
31.10.2016
11:51:37
Настоящий рандом не существует)
Настоящий рандом что-то на уровне квантовых флуктуаций. Возможно, когда через несколько (десятков) лет будут в ходу квантовые компьютеры, такая фича будет в них каким-либо образом реализована )

Kill me pls
31.10.2016
11:52:34
Ахаха

31.10.2016
11:53:50
Igor
31.10.2016
11:54:03
а я бля искал картинку ебался :(

Google
Letalis
31.10.2016
11:54:49
Типа, чем больше "Yes", тем лучше?)

31.10.2016
11:55:34
И либо тут нету столбца с поддержкой неограниченного look ahead/behind либо питон научили этому

Zart
31.10.2016
11:57:32
в стдлибовом питоновском ре лукахеда не было вроде

но если тебе нужна серьезная работа с регулярками и особенно юникодом - сразу ставь https://pypi.python.org/pypi/regex

31.10.2016
11:59:05
А, там вторая таблица еще есть

Спасибо, будем надеется она мне не понадобится)

Zart
31.10.2016
12:06:47
пытаюсь найти линк на офигенную статью про регекспы..

https://swtch.com/~rsc/regexp/regexp1.html вот этот линк на ирц в свое время летал, крайне познавательно.

"Notice that Perl requires over sixty seconds to match a 29-character string. The other approach, labeled Thompson NFA for reasons that will be explained later, requires twenty microseconds to match the string. That's not a typo. The Perl graph plots time in seconds, while the Thompson NFA graph plots time in microseconds: the Thompson NFA implementation is a million times faster than Perl when running on a miniscule 29-character string. The trends shown in the graph continue: the Thompson NFA handles a 100-character string in under 200 microseconds, while Perl would require over 1015 years. (Perl is only the most conspicuous example of a large number of popular programs that use the same algorithm; the above graph could have been Python, or PHP, or Ruby, or many other languages. A more detailed graph later in this article presents data for other implementations.) "

(1015 там - это 10 в 15й степени, бтв, а не тыща пятнадцать)

Андрей
31.10.2016
12:48:24
Ребят, есть скрипт, который запускает внешний скрипт, нужно получить последнюю строчку stdout внешнего скрипта из запускающего _в любой момент времени_. Как это можно сделать?

Lisa
31.10.2016
12:49:56
народ, как вставить переменную внутрь строки в теге static в шаблоне? типа <img src="{% static 'live/ MY_VARIABLE .png' %}"

Dan
31.10.2016
12:51:57
лучше всего мне кажется передавать из въюхи

весь урл

но как вариант <img src="{% static 'live/' %}{{ MY_VARIABLE }} .png"

Lisa
31.10.2016
12:53:47
хммм, только переменную в {{ }}. надо поэкспериментировать %) спасибо

Dan
31.10.2016
12:54:22
ну да :)

Google
Zart
31.10.2016
12:59:23
ну или попен

Андрей
31.10.2016
13:00:16
ну или попен
оно понятно, но как в случайный момент времени получить аутпут?

Zart
31.10.2016
13:00:25
что значит в случайный?

Андрей
31.10.2016
13:01:37
внешний процесс выполняется в фоне, когда пользователь хочет узнать прогресс выполнения внешнего скрипта, он спрашивает

Zart
31.10.2016
13:02:28
у тебя есть скрипт А. скажем ты запускаешь его из шелла. в этом случае его стдаут идёт на консоль он запускает внутри себя скрипт Б. через os.system/subprocess, не суть важно. без редиректов. в этом случае процесс скрипта Б наследует дескрипторы и выдает вывод на тот же стдаут на ту же консоль. скрипт А это ни контролировать, ни мониторить не может (редиректа не было, и я не предполагаю что он создает свои пти)

второй вариант - скрипт А перехватывает вывод Б и выводит его сам в этом случае он всегда знает что через него прошло в произвольный момент времени

Zart
31.10.2016
13:04:42
>>> import sys >>> from subprocess import Popen, PIPE >>> p=Popen('dir', shell=True, stdout=PIPE) >>> for line in p.stdout: ... sys.stdout.write(line) ... Том в устройстве D имеет метку DATA Серийный номер тома: 344B-B140 Содержимое папки D:\ ...

печатать ли line - как хочешь

Zart
31.10.2016
13:06:44
и?

про то какой хуйней занимается скрипт А не было ни слова

Zart
31.10.2016
13:07:33
вариантов несколько, вероятно проще тредом

Андрей
31.10.2016
13:08:35
да, забыл. скрипт А в это время слушает команды пользователя, одна из них, грубо говоря, получить последнюю строку аутпута скрипта Б

Zart
31.10.2016
13:25:01
тредами например: $ python Python 2.7.1 (r271:86832, Apr 12 2011, 16:15:16) [GCC 4.6.0 20110331 (Red Hat 4.6.0-2)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys, threading >>> from subprocess import Popen, PIPE >>> >>> status = None >>> >>> def monitor(): ... p = Popen('cat /usr/share/doc/python-2.7.1/LICENSE | while read line; do echo $line ; sleep 1 ; done', shell=True, stdout=PIPE) ... while 1: ... global status ... status = p.stdout.readline() ... >>> t = threading.Thread(target=monitor) >>> t.setDaemon(True) >>> t.start() >>> status '\n' >>> status '\n' >>> status 'Python was created in the early 1990s by Guido van Rossum at Stichting\n' >>> status 'Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands\n' >>> status "as a successor of a language called ABC. Guido remains Python's\n" >>> status "as a successor of a language called ABC. Guido remains Python's\n" >>> status 'principal author, although it includes many contributions from others.\n' >>> status 'principal author, although it includes many contributions from others.\n' >>> status 'principal author, although it includes many contributions from others.\n' >>> status '\n' >>> status '\n' >>> status '\n' >>> status '\n' >>> status 'In 1995, Guido continued his work on Python at the Corporation for\n' >>> status 'In 1995, Guido continued his work on Python at the Corporation for\n' >>> status 'National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)\n'

в 3.5 можно стильно, модно, молодёжно через https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.create_subprocess_shell

но в примере выше не хватает локов по хорошему

Андрей
31.10.2016
13:29:32
тредами например: $ python Python 2.7.1 (r271:86832, Apr 12 2011, 16:15:16) [GCC 4.6.0 20110331 (Red Hat 4.6.0-2)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys, threading >>> from subprocess import Popen, PIPE >>> >>> status = None >>> >>> def monitor(): ... p = Popen('cat /usr/share/doc/python-2.7.1/LICENSE | while read line; do echo $line ; sleep 1 ; done', shell=True, stdout=PIPE) ... while 1: ... global status ... status = p.stdout.readline() ... >>> t = threading.Thread(target=monitor) >>> t.setDaemon(True) >>> t.start() >>> status '\n' >>> status '\n' >>> status 'Python was created in the early 1990s by Guido van Rossum at Stichting\n' >>> status 'Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands\n' >>> status "as a successor of a language called ABC. Guido remains Python's\n" >>> status "as a successor of a language called ABC. Guido remains Python's\n" >>> status 'principal author, although it includes many contributions from others.\n' >>> status 'principal author, although it includes many contributions from others.\n' >>> status 'principal author, although it includes many contributions from others.\n' >>> status '\n' >>> status '\n' >>> status '\n' >>> status '\n' >>> status 'In 1995, Guido continued his work on Python at the Corporation for\n' >>> status 'In 1995, Guido continued his work on Python at the Corporation for\n' >>> status 'National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)\n'
спасибо большое, достаточно доходчиво

Dmitriy
31.10.2016
16:57:20
Кто знает, как на вход в скрипт в качестве параметра передать мултистринг с кучей кавычек (чтобы они сохранились) ?

Google
Letalis
31.10.2016
17:01:36
'string"string"string'

так?

заключить стринг в ' ' , если внутри используются " "

Igor
31.10.2016
17:09:56
есть докстринги

""" писька """

так же с одинарными

Admin
ERROR: S client not available

Zart
31.10.2016
17:15:00
""" писька """
это не докстринг, если чо

Igor
31.10.2016
17:16:01
согласен, тройные кавычки правильнее

Dmitriy
31.10.2016
17:16:36
тройные одинарные ?

Zart
31.10.2016
17:17:17
>>> "три кавычки: '''" "три кавычки: '''" >>> 'три кавычки: \'\'\'' "три кавычки: '''" >>> '''три кавычки: \'\'\'''' "три кавычки: '''" >>> """три кавычки: \'\'\'""" "три кавычки: '''" >>>

Levent
31.10.2016
17:17:52
""" П и з д а """

Zart
31.10.2016
17:18:23
в питоне строки в одиночных и двойных кавычках взаимозаменяемы, это раз если нужно внутри строки использовать кавычки одного вида, удобно заключить их в кавычки другого - '"' или "'"

в любом случае их можно квотировать - \' \"

тройные одинарные ''' и тройные двойные """ являются мультистроковыми

>>> ''' ... "quoted" ... ''' '\n"quoted"\n'

строковые константы одна за другой склеиваются: >>> 'string1' 'string2' 'string1string2' >>> ('string1' ... 'string2') 'string1string2'

Dmitriy
31.10.2016
17:21:01
не проканало подаю на вход '''{ "https://dockerblahblah.ru:453" : { "auth" : "ZGfja42yLXNjbWRldjpBUDRFfkRKRmZ0Zk5CaHBzem5tR3lIejhxekU=", "email" : "dockerblahblah@somecompany.com" } }''' внутри '''{%

Zart
31.10.2016
17:21:36
\ в конце строки продолжает текущую строку следующей: >>> 'string1\ ... string2' 'string1string2'

а чо, у джангошаблонов разве питоний синтаксис? это же другой язык

Google
Dmitriy
31.10.2016
17:22:47
не, это .dockercfg наполняю

Zart
31.10.2016
17:23:29
а причем тут питон?

Dmitriy
31.10.2016
17:24:00
у докера есть docker-py

Zart
31.10.2016
17:24:05
всё что я перечислял выше - это то как питон парсит

конфигов всё это не касается примерно никак

Dmitriy
31.10.2016
17:24:18
я понимаю, что ты перечислял

агрх

Еще раз, есть скрипт blahblah.py в качестве параметра dockercfgContent принимает мультистринг, который внутри сохраняется в текстовый файл .dockerfcg with open(os.path.realpath(os.path.expanduser('~/.dockercfg')), 'w') as f: f.write(dockercfgContent)

подаю как параметр '''{ "https://dockerblahblah.ru:453" : { "auth" : "ZGfja42yLXNjbWRldjpBUDRFfkRKRmZ0Zk5CaHBzem5tR3lIejhxekU=", "email" : "dockerblahblah@somecompany.com" } }''' в файле - '''{%

похоже он проблем воспринимает как следующий параметр

Zart
31.10.2016
17:26:50
"в файле - '''{%" - это или ты недокопировал сообщение об ошибке, или же рассказываешь нам что в файл записалось чтото иное

Dmitriy
31.10.2016
17:27:24
да, в файл записалось не то, что я передал в качестве параметра

запислось не то, потому что я предпологаю, что не правильно подал на вход

отсюда и был вопрос

Zart
31.10.2016
17:28:37
с учетом expanduser - ты вообще тому юзеру-то пишешь?

Dmitriy
31.10.2016
17:29:15
тому )

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

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