• Anaconda не Python?

    @MazAlVlad Автор вопроса
    'До этого думал, что они эквивалентны' Python.exe из Anaconda и Python.exe тот который из Python.
    requests это https://pypi.org/project/requests/
    и там и там всё одно и тоже, всё одинаково устанавливается через pip.
    Так я и писал в Anaconda, всё тоже самое. Подумаешь обрезок, Python же, какая разница из какой папки.
    А тут в моём файле:

    from requests import post
    RESULT=post(MY_URL,json=MY_DATA,timeout=1)
    , а ответа нет.

    python myfile.py - ответ есть, тот который не из Anaconda.
    И что-то мне как-то не по себе стало.
    А я новичёк в этом деле. Может что-то не так преобразовал, может где-то ошибся, всё облазил, пока не понял, что связи-то нет.;)
  • Anaconda не Python?

    @MazAlVlad Автор вопроса
    'До этого думал, что они эквивалентны' Python.exe из Anaconda и Python.exe тот который из Python.
    requests это https://pypi.org/project/requests/
    и там и там всё одно и тоже, всё одинаково устанавливается через pip.
    Так я и писал в Anaconda, всё тоже самое. Подумаешь обрезок, Python же, какая разница из какой папки.
    А тут в моём файле:

    from requests import post
    RESULT=post(MY_URL,json=MY_DATA,timeout=1)
    , а ответа нет.

    python myfile.py - ответ есть, тот который не из Anaconda.
    И что-то мне как-то не по себе стало.
    А я новичёк в этом деле. Может что-то не так преобразовал, может где-то ошибся, всё облазил, пока не понял, что связи-то нет.;)
  • Можно ли сократить код?

    @MazAlVlad Автор вопроса
    Фактически верно, что-то мысли в последнее время находят что-то сложное.
    Благодарю. На ровном месте трудности создаю, просто генератор трудностей :)
    Но тут ещё помозговать нужно. Допустим VALUES=[0,1,2,3] 'это данные за сутки и их явно не хватило, нужно добавить данных за следующие сутки VALUES={4,5,6...14]
    #any function
    def any_func (End,Value,X,Count):
        Count=Count+1
        if Value>X:
            End=True
        return End,Count
    
    def My_Code(a,b,c):
    
        #End flags
        End_a=[False,False,False,False,False]
        End_b=[False,False,False,False,False]
        End_c=[False,False,False,False,False]
        #End_d=...
        #End_e=...
        #...
    
        #Count result,output data
        Count_a=[0,0,0,0,0]
        Count_b=[0,0,0,0,0]
        Count_c=[0,0,0,0,0]
        #Count_d=...
        #Count_e=...
        #...
        
        #запрос данных эти сутки
        DATA=[0,1,2]       
        while True:
            for VALUE in DATA:
                #indexes
                for j in range(5):              
                    if End_a[j]==False:
                        End_a[j],Count_a[j]=any_func(End_a[j],VALUE,a[j],Count_a[j])
                    if End_b[j]==False:
                        End_b[j],Count_b[j]=any_func(End_b[j],VALUE,b[j],Count_b[j])
                    if End_c[j]==False:
                        End_c[j],Count_c[j]=any_func(End_c[j],VALUE,c[j],Count_c[j])
                    #if End_d==
                        #...
                    #if End_e==
                        #...
                    #...
                       
                #stop data if All End = True
                if (all(End_a) and
                    all(End_b) and
                    all (End_c)):
                    print('данных хватило')
                    return Count_a,Count_b,Count_c
                    
            print('данных не хватило')
            #запрос данных прошлые сутки
            DATA=[3,4,5,6,7,8,9,10,11,12,13,14]
            continue
        
    def threshold (values, x):
        for i, val in enumerate(values, 1):
            if val > x:
                return i
        return None
    
    def My_Code2(a,b,c):
    
        #VALUE - any data to calculation
        VALUES = list(range(14))
    
        Count_a = [threshold(VALUES, x) for x in a]
        Count_b = [threshold(VALUES, x) for x in b]
        Count_c = [threshold(VALUES, x) for x in c]
    
        return Count_a,Count_b,Count_c
    
    if __name__=='__main__':
        
        #input data
        a=[1,2,3,4,5]
        b=[2,4,8,10,12]
        c=[7,6,5,4,3]
        #d=...
        #e=...
        #...
        
        Count_a,Count_b,Count_c = My_Code(a,b,c)
        print(Count_a,Count_b,Count_c)
        
        Count_a,Count_b,Count_c = My_Code2(a,b,c)
        print(Count_a,Count_b,Count_c)
  • Можно ли сократить код?

    @MazAlVlad Автор вопроса
    Всё верно. Я то же так раньше сделал, но тут получается не за один перебор VALUES. Тут получается весь VALUES входит в каждую функцию, напрашивается несколько процессов, чтоб не потерять время. И немного не понятно, как потом процессу добавить VALUES, если значений не хватило, значит Process отпадает. Я пытаюсь один VALUES по очереди использовать для всех значений всех функций. Так мне проще добавить значения VALUES, если их не хватило для расчёта Count_a ,Count_b, Count_c... Всё как-то со временем выросло в огромный снежный ком, когда any_func стало несколько: any_func_1; any_func_2; any_func_3... Вроде и код явно повторяется и не соображу, как от этого "леса дров" уйти.
  • Можно ли сократить код?

    @MazAlVlad Автор вопроса
    "что за чем и почем надо сделать" так для ознакомления
    VALUE массив данных торговых сделок.
    a,b,c массивы настоящих цен
    Count_a,Count_b,Count_c расcчитанные объёмы для a,b,c
    any_func() одна из функций для расчёта Count_a,Count_b,Count_c

    Т.е. смысл всей этой ерунды VALUE [1,2,3... я не могу отправить в фунцию,
    во-первых не знаю какого количества VALUE хватит.
    А во-вторых хочу сделать одним циклом для всех a,b,c (скорость)
  • Можно ли сократить код?

    @MazAlVlad Автор вопроса
    В принципе это и есть задание.
    Должны войти a,b,c и выйти Count_a,Count_b,Count_c.
    Тут не двойной цикл, второй цикл просто отправляет индексы в функцию. Первый цикл только для того чтоб не сломать код, по факту там не
    for VALUE in range (100):
    , а
    for VALUE in (список значений): #всегда разной длины и не всегда имеет конец

    End_a[],End_b[],End_c[] это даёт понять, что дальше считать a[],b[],c[] не нужно.

    Спасибо за совет, почитаю за any и all которыми можно заменить проверку if (End_a[0]==True ...
  • Как при изменении системного времени системы получить верное значение этого времени в уже выполняемой программе на Python?

    @MazAlVlad Автор вопроса
    Хотя х.з., совместим ли Process с Android. У меня старый телефон и там он multiprocessing не понимает?
  • Как при изменении системного времени системы получить верное значение этого времени в уже выполняемой программе на Python?

    @MazAlVlad Автор вопроса
    Кому нужно переносимое универсальное решение, я нашёл. Всё проще паренной репы оказалось. Всё что нужно, в момент, когда нужно получить честное системное время, это создать Process и взять из него время, дальше Process естественно закрыть до следующего момента получения времени.
  • Как при изменении системного времени системы получить верное значение этого времени в уже выполняемой программе на Python?

    @MazAlVlad Автор вопроса
    Я верно понял, что это что то внутреннее Windows и после этого код потеряет переносимость на другие ОС?
  • Как при изменении системного времени системы получить верное значение этого времени в уже выполняемой программе на Python?

    @MazAlVlad Автор вопроса
    Это я к чему. Переход на летнее/зимнее время или изменение часового пояса, и всё приехал?
  • Как при изменении системного времени системы получить верное значение этого времени в уже выполняемой программе на Python?

    @MazAlVlad Автор вопроса
    Время меняется, дата то же. Меняю часовой пояс, системные перевелись, а в программе ничего не поменялось. Есть ли какой-то вариант, чтоб в программе время тоже изменилось?
  • Как при изменении системного времени системы получить верное значение этого времени в уже выполняемой программе на Python?

    @MazAlVlad Автор вопроса
    from datetime import datetime
    from time import sleep
    
    while True:
        print(datetime.now())
        sleep(5)

    #обычный код
    #Время не меняется при изменении часового пояса
    #В каком часовом поясе код запустился, в том и работает
  • Почему multiprocessing.Lock не блокирует доступ к файлу?

    @MazAlVlad Автор вопроса
    А почему тогда интерпретатор в первом случае прожевал
    def to_log(FILE_LOG,STRING):   # 
        LOCK_PROCESS.acquire()      # вот эту строку

    Как он для себя её увидел? Lock тут не передан. По логике интерпретатор должен был ругнуться. Не ругнулся потому что Lock всё таки создан в __main__. Т.е. этот Lock блокирует только __main__, но не блокирует остальное. Простите за щепетильность, я верно понял логику?
  • Многопоточность или же цикл в python?

    @MazAlVlad
    Виктор, Основной смысл работы потока, процесса (разница только в реализации, процесс возник позже и не имеет всех прелестей кода потока, на кое-каких платформах ещё не поддерживается) - работа куска кода отдельно от основной программы. Естественно это управляемо, они могут использовать общие данные, могут останавливаться и продолжаться по условию из вне, кое-какие операторы в этих кусках кода естественно невыполнимы, как пример input(). Так же у них есть ещё одно применение, можно размножить (клонировать как кроликов) работу единственного куска кода в работу нескольких, созданых по образу и подобию, естественно эти нити отличаются идентификацией. Тоже разбираюсь с этим. Например, только что столкнулся, что Lock на стороне принимающей процесс функции не работает как в описании. Должна была принять данные нового процесса только после обработки уже находящегося и его ухода, данные пересеклись. Получается Lock должен стоять на стороне процесса, а не принимаемой функции. По аналогии, мужики должны решить кому сегодня идти, а не принимающая сторона;))) Ну а так, основной смысл потоков, процессов понятен. Нюансы реализации только раздражают.
  • Почему multiprocessing.Lock не блокирует доступ к файлу?

    @MazAlVlad Автор вопроса
    Логинг это хорошо и до него дойдём. Пока для меня там много лишнего и непонятного, чё греха таить, я даже некоторые русские слова и обороты речи не понимаю из инструкции. Свой текстовый файл, я то всяко расшифрую и смогу использовать его данные в своей программке.
  • Почему multiprocessing.Lock не блокирует доступ к файлу?

    @MazAlVlad Автор вопроса
    Я год назад и такое-то слово Python не знал. Про логинг только от Вас узнал. Но опять же не вижу причины всё усложнять, когда должно работать стандартно и просто. Пол года щупал язык. Вроде, нормалёк. А тут бац, и такая канитель с обычным Lock на стороне принимающего. Я вчера своё Буратино на щепки разрубил, чтоб найти маленький карандашик, который плохо пишет. Получается я его не до щупал, не понял принцип блокировки. Но опять же, как получается, что она то фактически работает, но как-то на половину? Если мне кто-нибудь это объяснит эту мелочь, будет на один гвоздь в голове меньше. Я пойму логику работы, и уже не наступлю на грабли. В частности я так понимаю, что Lock работает не на тех местах, где его строка. Либо может какие-то операторы его не слушаются.
  • Как в Python установить паузу в Процессе до нажатия клавиши для целей отладки?

    @MazAlVlad Автор вопроса
    Ладно, согласен по сути вопроса. Нет стандартного решения, не предусмотрено. Может потом, когда по лучше изучу сделаю нестандартное.
  • Объясните новичку Python exec()?

    @MazAlVlad Автор вопроса
    СПС.
    exec(MY_COMMAND,globals())

    Перепутал global и globals, а т.к. опыта нет полез в дебри ключей, примеров, не всегда рабочих, и совсем запутался.
    Это я импортировал пачку одинаковых файлов, но в разных директориях, по условию НАЗВАНИЕ_ДИРЕКТОРИИ.