
Sergey
19.06.2019
09:54:58
Мыши плакали, кололись, но продолжали жрать ?

Ruslan
19.06.2019
09:57:38
Что это за магия?
wtf>
('test', 0)
...
('test', 999)
<wtf
и как видно, достигло конца процесса, но при этом он удерживается (WaitUserRequest и WaitWrQueue) по API видно что стоит на RtlReleaseSRWLockExclusive
import multiprocessing as mp
def wtf(q):
print('wtf>')
for i in range(1000):
item = ('test', i)
q.put(item)
print(item)
print('<wtf')
if __name__ == '__main__':
q = mp.Queue()
magic = mp.Process(target=wtf, args=(q,))
magic.start()
magic.join()
если поменять 'test' на чтото другое то может и не зависнуть
q.close() не помогает
sleep(.001) или sleep(.01) перед put не помог
q.put(obj=item, block=True) что block=False без разницы, итог прежний
также пробовал tuple(('test', i)) , ['test', i] и list(['test', i])
добавил все опробованные попытки разрешить проблему
кто сталкивался с этим?


Владимир
19.06.2019
10:00:44
теперь другая ошибка H:\Programs\python3.7.3\python3\python.exe: Error while finding module specification for 'deepcoder.scripts.solve-problems' (ModuleNotFoundError: No module named 'deepcoder')

Ruslan
19.06.2019
10:01:36

Google

Alex
19.06.2019
10:05:21
у datetime.time datetime.date и datetime.datetime классов есть метод strftime

Владимир
19.06.2019
10:07:23
python -m deepcoder.scripts.solve-problems dataset/T=2_test.json --T 2 --mode dfs --gas 1000
открыл каталог где файл ввожу команду и ничего не происходит просто открывается новая строка
Помогите

Tigran
19.06.2019
10:08:50
а загрузку CPU проверял?
выглядит, как штука с долгими расчётами

Владимир
19.06.2019
10:09:22
цпу 10%

Tishka17
19.06.2019
10:11:30
Может оно ввод ждёт?

Владимир
19.06.2019
10:11:35
а загрузку CPU проверял?
как вставил команду подскочило до 36% и выдало опять ошибку нет файла! хотя он есть!
как оформить путь с командой?
h:/Programs/!Progect/Relis DeepCoder/deepcoder-master/deepcoder-master/dataset/dataset/
python -m deepcoder.scripts.solve-problems dataset/T=2_test.json --T 2 --mode dfs --gas 1000'

Tishka17
19.06.2019
10:11:59

Владимир
19.06.2019
10:12:51

Tigran
19.06.2019
10:13:54
dataset/dataset/T=2_test.json

Владимир
19.06.2019
10:16:21

Google

Tigran
19.06.2019
10:17:06
?♂️

Tishka17
19.06.2019
10:17:47

Владимир
19.06.2019
10:18:03
python -m deepcoder.scripts.solve-problems dataset/dataset/T=2_test.json --T 2 --mode dfs --gas 1000
до тукал! поехали!

Subbotin
19.06.2019
10:21:05
class Field(str):
def __new__(cls, *args, locked=False, **kwargs):
instance = super(Field, cls).__new__(cls, *args, **kwargs)
instance.locked = locked
return instance
хочу сделать вот такую штуку. Чтоб потом делать f = Field("ololo", locked=True) или f2 = Field("trololo")
всё б хорошо, но такой код не пашет под вторым питоном

Valery
19.06.2019
10:21:07

Владимир
19.06.2019
10:21:53
там мои просьбы не признают, сработал = python -m deepcoder.scripts.solve-problems dataset/dataset/T=2_test.json --T 2 --mode dfs --gas 1000

Sergey
19.06.2019
10:22:01

Tishka17
19.06.2019
10:22:05

Subbotin
19.06.2019
10:22:43
ну потому что хочу конкатенацию и прочую хрень но не писать при этом сто методов

Tishka17
19.06.2019
10:22:43

Владимир
19.06.2019
10:23:21
всем спасибо пока двигаюсь дальше

Valery
19.06.2019
10:23:57

Tishka17
19.06.2019
10:24:05

Subbotin
19.06.2019
10:24:28

Tishka17
19.06.2019
10:26:34

Subbotin
19.06.2019
10:27:34
хочу объект, который ведет себя как строка но есть ещё атрибут, который может быть задан при инициализации.

Google

Tishka17
19.06.2019
10:28:46
просто при любых операциях с ним как со строкой ты это атрибут потеряешь

Subbotin
19.06.2019
10:29:07
я понимаю

Tishka17
19.06.2019
10:29:16


Ruslan
19.06.2019
10:29:27
Что это за магия?
wtf>
('test', 0)
...
('test', 999)
<wtf
и как видно, достигло конца процесса, но при этом он удерживается (WaitUserRequest и WaitWrQueue) по API видно что стоит на RtlReleaseSRWLockExclusive
import multiprocessing as mp
def wtf(q):
print('wtf>')
for i in range(1000):
item = ('test', i)
q.put(item)
print(item)
print('<wtf')
if __name__ == '__main__':
q = mp.Queue()
magic = mp.Process(target=wtf, args=(q,))
magic.start()
magic.join()
если поменять 'test' на чтото другое то может и не зависнуть
q.close() не помогает
sleep(.001) или sleep(.01) перед put не помог
q.put(obj=item, block=True) что block=False без разницы, итог прежний
также пробовал tuple(('test', i)) , ['test', i] и list(['test', i])
еще земечено что размер очереди имеет заначение
при range() больше 384 - также виснет

Subbotin
19.06.2019
10:29:31

Tishka17
19.06.2019
10:29:48
просто переставь locked перед *args, должно помочь. Хотя я бы переписал реальную игнатуру из str
Что это за магия?
wtf>
('test', 0)
...
('test', 999)
<wtf
и как видно, достигло конца процесса, но при этом он удерживается (WaitUserRequest и WaitWrQueue) по API видно что стоит на RtlReleaseSRWLockExclusive
import multiprocessing as mp
def wtf(q):
print('wtf>')
for i in range(1000):
item = ('test', i)
q.put(item)
print(item)
print('<wtf')
if __name__ == '__main__':
q = mp.Queue()
magic = mp.Process(target=wtf, args=(q,))
magic.start()
magic.join()
если поменять 'test' на чтото другое то может и не зависнуть
q.close() не помогает
sleep(.001) или sleep(.01) перед put не помог
q.put(obj=item, block=True) что block=False без разницы, итог прежний
также пробовал tuple(('test', i)) , ['test', i] и list(['test', i])
а пробовал чиать из очереди?


Subbotin
19.06.2019
10:31:23
короче я сделаль
class Field(str):
def __new__(cls, *args, **kwargs):
if "locked" in kwargs:
locked = kwargs["locked"]
del kwargs["locked"]
else:
locked = False
instance = super(Field, cls).__new__(cls, *args, **kwargs)
instance.locked = locked
return instance
в 2019-м году есть ещё пидоры которые сидят на втором питоне. типа опенстак

?
19.06.2019
10:33:36

Ruslan
19.06.2019
10:35:24

Alex
19.06.2019
10:36:31
Что это за магия?
wtf>
('test', 0)
...
('test', 999)
<wtf
и как видно, достигло конца процесса, но при этом он удерживается (WaitUserRequest и WaitWrQueue) по API видно что стоит на RtlReleaseSRWLockExclusive
import multiprocessing as mp
def wtf(q):
print('wtf>')
for i in range(1000):
item = ('test', i)
q.put(item)
print(item)
print('<wtf')
if __name__ == '__main__':
q = mp.Queue()
magic = mp.Process(target=wtf, args=(q,))
magic.start()
magic.join()
если поменять 'test' на чтото другое то может и не зависнуть
q.close() не помогает
sleep(.001) или sleep(.01) перед put не помог
q.put(obj=item, block=True) что block=False без разницы, итог прежний
также пробовал tuple(('test', i)) , ['test', i] и list(['test', i])
ты уверен, что показываешь актуальный код?


Ruslan
19.06.2019
10:48:04
ты уверен, что показываешь актуальный код?
чутка поспешил
там после получения всех елементов, еще сек 7-10 была задепржка и решил что зависло опять)
окей, значит очередь локает выход из процесса если в нем больше определенного количества елементов
но как тогда по нормальному дропать? допустим я взял 100 елементов и все break
единственный вариант - в конце убивать процесс?
я то думал для этого создан q.close()

Alex
19.06.2019
11:02:07

Admin
ERROR: S client not available

Alex
19.06.2019
11:02:48
покажи минимальный пример который по твоему убеждению гарантированно "виснет"

Google

Ruslan
19.06.2019
11:04:19


Tishka17
19.06.2019
11:05:08
Что это за магия?
wtf>
('test', 0)
...
('test', 999)
<wtf
и как видно, достигло конца процесса, но при этом он удерживается (WaitUserRequest и WaitWrQueue) по API видно что стоит на RtlReleaseSRWLockExclusive
import multiprocessing as mp
def wtf(q):
print('wtf>')
for i in range(1000):
item = ('test', i)
q.put(item)
print(item)
print('<wtf')
if __name__ == '__main__':
q = mp.Queue()
magic = mp.Process(target=wtf, args=(q,))
magic.start()
magic.join()
если поменять 'test' на чтото другое то может и не зависнуть
q.close() не помогает
sleep(.001) или sleep(.01) перед put не помог
q.put(obj=item, block=True) что block=False без разницы, итог прежний
также пробовал tuple(('test', i)) , ['test', i] и list(['test', i])
у меня не виснет

Alex
19.06.2019
11:05:19
в том конкретном коде я не вижу причин для блокировок

Ruslan
19.06.2019
11:14:34

Ivan
19.06.2019
11:17:05
серьезно? файл? даже скриншотом лучше

Tishka17
19.06.2019
11:19:18
эм. стабильно работает. Какая ОС, какой питон?

Ruslan
19.06.2019
11:21:48
Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32

Tishka17
19.06.2019
11:22:42
хз

Alex
19.06.2019
11:22:55
хм... ну вообще т.к. ты из очереди не читаешь, вполне вероятно ты можешь упереться в размер буфера пайпа.

Tishka17
19.06.2019
11:23:11

Alex
19.06.2019
11:23:38
да, именно
воспроизводится в линуксе если увеличить размер пакета засылаемого в очередь

Tishka17
19.06.2019
11:25:28
угу
ну я сразу предлагал читать из очереди

Alex
19.06.2019
11:28:37
собственно там фокус вот в чем, у тебя процесс queue.put кладет данные во внутренний буфер, которые в фоновом потоке засылаются в пайп

Google

Alex
19.06.2019
11:29:55
Соответственно очередь висит в ожидании потока, пока тот не запишет буфер в пайп. И висит твой дочерний процесс.

Влад
19.06.2019
11:30:13
Ребят, есть 5к заголовков текста, как их автоматически класифицировать( типа nlp) ?

Mename
19.06.2019
11:33:15

Alex
19.06.2019
11:33:15
В multiprocessing.Queue есть метод cancel_join_thread, который позволит дочернему процессу завершиться, но тогда ты потеряешь данные из очереди, которые не успели записаться в пайп.