
Jenish
12.05.2019
19:26:49
LEXERS = [item for item in get_all_lexers() if item[1]]
не могу понять что тут делает условие if item[1] ?

Yurii
12.05.2019
19:29:22

Jenish
12.05.2019
19:30:29

Oleg
12.05.2019
19:31:14

Google

Oleg
12.05.2019
19:31:27
А вообще, можно запустить код и проверить

?? Eugene
12.05.2019
19:31:43

Jenish
12.05.2019
19:32:22

Oleg
12.05.2019
19:32:49

Jenish
12.05.2019
19:33:30
т.е если в нем существует 2 элемент ?

Oleg
12.05.2019
19:33:51

Jenish
12.05.2019
19:35:22
список кортежей в кортежах
[ ('YAML+Jinja', ('yaml+jinja', 'salt', 'sls'), ('*.sls',), ('text/x-yaml+jinja', 'text/x-sls')), ('YAML', ('yaml',), ('*.yaml', '*.yml'), ('text/x-yaml',))
, ('Zephir', ('zephir',), ('*.zep',), ())]
спасибо)


Dmitry
12.05.2019
19:51:32
Привет. Я получаю ошибку, когда пытаюсь хостить flask-приложение с помощью uwsgi. Кто-нибудь может помочь?
Вызов uwsgi:
uwsgi ./socket-uwsgi.ini
socket-uwsgi.ini:
[uwsgi]
socket = 0.0.0.0:9000
protocol = uwsgi
wsgi-file = app.py
callable = app
flask-приложение (app.py):
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from .config import db_host, db_name, db_user, db_password
from .routes.list import list
from .routes.book import book
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql://{}:{}@{}/{}".format(db_user, db_password, db_host, db_name)
db = SQLAlchemy(app)
app.register_blueprint(list, url_prefix="/list/")
app.register_blueprint(book, url_prefix="/book/")
Ошибка:
--- no python application found, check your startup logs for errors ---

Google

Tishka17
12.05.2019
20:05:55
Что за хостинг?
Не хероку ли?
Хотя


Oleg
12.05.2019
20:14:47
Ребят, помогите с pipes, пожалуйста. Создал два пайпа
in_fd, out_fd = os.pipe()
Создал дескрипторы для каждого
in_pipe = os.fdopen(in_fd, "w")
out_pipe = os.fdopen(out_fd, "r")
Пытаюсь читать с out_pipe - получаю Bad file descriptor. А ещё пытаюсь их открыть одновременно для чтения и записи каждый - получаю File or stream not seekable

Aragaer
12.05.2019
20:15:01
эм

Dan
12.05.2019
20:15:15
Я конечно не питон эксперт

Aragaer
12.05.2019
20:15:17
это один пайп, а не два

Dan
12.05.2019
20:15:25
Но у тебя in == out

Aragaer
12.05.2019
20:15:32
нет, не равны

Dan
12.05.2019
20:16:00

Aragaer
12.05.2019
20:16:00
но у тебя они не в том порядке
из in надо читать, а в out писать

Oleg
12.05.2019
20:17:42
Сейчас я скину весь код, там немного

Aragaer
12.05.2019
20:18:09
>>> import os
>>> in_fd, out_fd = os.pipe()
>>> in_f = os.fdopen(in_fd, "r")
>>> out_f = os.fdopen(out_fd, "w")
>>> out_f.write("hello")
5
>>> out_f.close()
>>> in_f.read()
'hello\n'

Oleg
12.05.2019
20:18:23
https://pastebin.com/n02B0b85

Aragaer
12.05.2019
20:18:42
os.pipe()
Create a pipe. Return a pair of file descriptors (r, w) usable for reading and writing, respectively.
пайп односторонний
ты создаешь один пайп, получаешь два конца
из первого конца можно читать то, что записано во второй

Google

Slam! 538
12.05.2019
20:19:35
это как socket.socketpair

Aragaer
12.05.2019
20:19:51
нет, сокеты как раз двусторонние

Oleg
12.05.2019
20:19:58

Aragaer
12.05.2019
20:20:25
если ты хочешь двунаправленную передачу данных, то надо сделать два пайпа, получить два входных конца и два выходных

Dan
12.05.2019
20:20:32

Oleg
12.05.2019
20:21:10
Я просто видел в примере, как сделали file_descriptor, который может и читать, и писать, я хотел сделать такой же

Aragaer
12.05.2019
20:21:54
мм, наверно это можно как-то сделать, объединив два дескриптора в один file-like object
https://docs.python.org/3/library/io.html#io.BufferedRWPair
вот этой штукой можно

Slam! 538
12.05.2019
20:23:08
А скажите, где может быть полезна os.pipe()

Aragaer
12.05.2019
20:24:34
ну вот тут обсуждали - "надо ждать кучу разных источников эвентов, начинается асинхронщина"
и я сказал - "ну сделать мелкие треды, каждый из которых ждет свой источник, а события засовывает в нормальный канал, который мэйнтред уже через селект/полл ждет"

Oleg
12.05.2019
20:29:14

Aragaer
12.05.2019
20:29:48
делаешь два пайпа и перевязываешь как надо, да
но это будет четыре разных файловых дескриптора
собственно два у тебя и два у него
ты можешь засунуть два своих в buffered rw pair, если хочется

Oleg
12.05.2019
20:30:48

Admin
ERROR: S client not available

Aragaer
12.05.2019
20:31:12
ща, секунду

Google

Oleg
12.05.2019
20:31:16

Aragaer
12.05.2019
20:32:22
короче есть мои модули yet-another-io-channels и runner. Первый дает абстракцию над пайпами и сокетами (и как раз это один "канал" в обе стороны), а второй его использует для связи с запущенными процессами
yet-another-runner
https://github.com/aragaer/runner и https://github.com/aragaer/channels
в раннере есть примеры использования
ну и понятно можно исходники посмотреть
правда мои channels не работают под виндой, потому что мне просто не на чем проверить и запилить соответствующий код 8)

Oleg
12.05.2019
20:35:02

Aragaer
12.05.2019
20:35:17
да, модули есть на pypi, можно их ставить
https://pypi.org/project/yet-another-io-channels-library/ и https://pypi.org/project/yet-another-runner/
https://github.com/aragaer/channels/blob/master/channels/testing.py - ну и кстати вот как раз использование os.pipe
и "объединение" четырех дескрипторов в два двунаправленных канала

Oleg
12.05.2019
20:50:37

Aragaer
12.05.2019
20:51:09
да, номера дескрипторов - целые числа. Такие же, как возвращает os.pipe

Oleg
12.05.2019
21:09:32

Aragaer
12.05.2019
21:10:03
да

Oleg
12.05.2019
21:11:59
да
А они только для unix, по ходу, работают(

Aragaer
12.05.2019
21:13:17
ну да, я же сказал
https://github.com/aragaer/channels/issues/1
вот я даже сам завел issue, потому что у меня нет винды, чтобы это сделать

Google

Oleg
12.05.2019
21:17:55
Я попробую использовать на винде, когда загружусь под ней)

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
12.05.2019
21:18:28
я могу одновременно задать тип переменной и дефолтное значение?
типо
def foo(bar=10:int)

Руденко Ілля
12.05.2019
21:18:32
Тут можно тупые вопросы задавать?

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
12.05.2019
21:18:47

Руденко Ілля
12.05.2019
21:18:49
Что тут не так?