LINUX.ORG.RU

Сообщения noname_user

 

Зачем использовать async для роутов в api?

Яркий пример - https://fastapi.tiangolo.com/tutorial/first-steps/ Никак не могу понять в чем тут выгода? А так же в чем минус не использования async?

p.s markdown выключен(

 ,

noname_user
()

разнообразие response в openapi

Использую https://github.com/tiangolo/fastapi для построения api и документации openapi (он умеет из коробки это делать и выводить в swagger ui) Есть роут с кодом:

@router.post('/auth')
def create_user(user: UserSchemas.UserBase, db: Session = Depends(get_db)):
    # check user for waiting sms
    user_waiting_sms = \
        user_crud.get_user_sms_wait(db, number=user.number, is_active=False)
    if user_waiting_sms is not None and user_waiting_sms.sms_id is not None:
        # if we waiting sms
        if user_waiting_sms.expire_sms > int(time()):
            return {'status': 1, 'msg': 'Wait for sms code'}
        else:
            user_crud.reset_expire_sms(db, number=user.number)
            r = alphasms(user.number, 'test1', 'privet test1')
            if 'id' in r:
                user_crud.update_user_sms_expire(
                        db, number=user.number, sms_id=r['id'], expire_sms=(int(time())+300))
                return {'status': 2, 'msg': 'Sms code is resend'}
            else:
                raise HTTPException(status_code=202, detail="Error send message")
После запуска сервера имеем в сгенеренной документации https://i.imgur.com/ABEhOd7.png
видно что response и validation error по дефолту установлены, окей.
Вопрос заключается в том, разве в openapi спецификации не предусмотрено что ответов может быть несколько ? Успех либо нет, так же несколько ошибок валидации? И как вообще это правильно описывать?

 , ,

noname_user
()

Генерация миграция из множества файлов моделей (alembic)

есть приложение:

app:
    models:
           User.py - это модель
           Other.py - тоже модель
в alembic/env.py я импортирую модель User.py и Other.py, ниже требуется определить переменную target_metadata:
# add your model's MetaData object here
# for 'autogenerate' support
# from myapp import mymodel
# target_metadata = mymodel.Base.metadata
target_metadata = None
соотстветственно я указываю User.Base.metadata и при:
alembic revision --autogenerate
создается таблица для User модели.
Вопрос заключается в том, каким образом мне указать все модели в директории models для автоматической генерации миграций?

p.s. использую для генерации alembic и sqlalchemy (sqlite)

 ,

noname_user
()

нет ответа после проверки socket подключения

есть простое приложение на fastapi с одним запросом:

app = FastAPI()

@app.get("/check/{host}/{user}/{password}")
def read_item(host: str, user: str, password: str):
    if host.split(':') is None:
        return False

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                
    try:
        s.connect((host.split(':')[0], int(host.split(':')[1])))
    except socket.error as e:
        return {'result':'down'}
    finally:
        s.shutdown(socket.SHUT_RDWR)
        s.close()

    c = PyFreeRDP(host, user, password)
    return {'result': c.connect()}


Так вот ответа никак не получить, не могу понять в чем проблема, дальше чем s.connect ничего не происходит

 , ,

noname_user
()

freeedp на arch linux никак?

Собственно freerdp никаким образом не хочет компилится под арчем

[  0%] Built target winpr-asn1
[  1%] Built target winpr-handle
[  3%] Built target winpr-thread
[  5%] Built target winpr-crt
[  6%] Built target winpr-interlocked
[ 10%] Built target winpr-synch
[ 10%] Built target winpr-sysinfo
[ 16%] Built target winpr-utils
[ 17%] Built target winpr-bcrypt
[ 17%] Built target winpr-credentials
[ 18%] Built target winpr-credui
[ 19%] Built target winpr-crypto
[ 20%] Built target winpr-dsparse
[ 20%] Built target winpr-environment
[ 21%] Built target winpr-error
[ 21%] Built target winpr-file
[ 21%] Built target winpr-heap
[ 22%] Built target winpr-input
[ 23%] Built target winpr-io
[ 23%] Built target winpr-library
[ 24%] Built target winpr-path
[ 25%] Built target winpr-pipe
[ 27%] Built target winpr-pool
[ 28%] Built target winpr-registry
[ 32%] Built target winpr-rpc
[ 32%] Building C object winpr/libwinpr/sspi/CMakeFiles/winpr-sspi.dir/NTLM/ntlm_compute.c.o
/home/cr33per/Tools/py-freerdp/sub_modules/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c: В функции «ntlm_compute_message_integrity_check»:
/home/cr33per/Tools/py-freerdp/sub_modules/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c:649:11: ошибка: размер «hmac_ctx» в памяти неизвестен
  649 |  HMAC_CTX hmac_ctx;
      |           ^~~~~~~~
/home/cr33per/Tools/py-freerdp/sub_modules/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c:656:2: предупреждение: неявная декларация функции «HMAC_CTX_init»; имелось в виду «HMAC_CTX_new»? [-Wimplicit-function-declaration]
  656 |  HMAC_CTX_init(&hmac_ctx);
      |  ^~~~~~~~~~~~~
      |  HMAC_CTX_new
/home/cr33per/Tools/py-freerdp/sub_modules/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c:662:2: предупреждение: неявная декларация функции «HMAC_CTX_cleanup» [-Wimplicit-function-declaration]
  662 |  HMAC_CTX_cleanup(&hmac_ctx);
      |  ^~~~~~~~~~~~~~~~
/home/cr33per/Tools/py-freerdp/sub_modules/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c:649:11: предупреждение: неиспользуемая переменная «hmac_ctx» [-Wunused-variable]
  649 |  HMAC_CTX hmac_ctx;
      |           ^~~~~~~~
make[2]: *** [winpr/libwinpr/sspi/CMakeFiles/winpr-sspi.dir/build.make:76: winpr/libwinpr/sspi/CMakeFiles/winpr-sspi.dir/NTLM/ntlm_compute.c.o] Ошибка 1
make[1]: *** [CMakeFiles/Makefile2:1230: winpr/libwinpr/sspi/CMakeFiles/winpr-sspi.dir/all] Ошибка 2
make: *** [Makefile:152: all] Ошибка 2

Кому нибудь это удавалось?)

 ,

noname_user
()

полоса искажения по середине

ОС: Manjaro [Gnome 3]
Graphic: RTX 2080TI
сделал фото с телефона, так как на скриншоте искажения нет- https://i.imgur.com/lcYaEez.jpg
Драйвер несвободный.
В чем может быть проблема?

 , ,

noname_user
()

Как использовать before_request в flask из отдельного ресурса

Пишу приложение с использованием flask и flask-restful.
Вот тестовый ресурс приложения с методом put: https://p.teknik.io/qhrtq
Как мне перед этим методом можно использовать декоратор before_request который вызывается из контекста (app, к примеру @app.before_request)?
структура файлов https://u.teknik.io/ICGic.png
run.py - https://p.teknik.io/ZGYG2
app.py - https://p.teknik.io/AXNmZ

 , ,

noname_user
()

Достать весь список файлов с русскими символами из директории

Есть функция которая возвращает список файлов из диры:

return [f for f in listdir(path) if isfile(join(path, f))]
Если принтануть названия любого файлас русским названием получим соответственно неправильную кодировку, вопрос такой, как достать список с правильной кодировкой?

 ,

noname_user
()

получение доступа к другой директории через php шелл (есть ли вероятность?)

Если злоумышленник залил php шелл (или любой другой) в директорию ресурса и имеет там практически полные права (пользователя), есть соседний ресурс на сервере к которому прав не имеет, есть ли вероятность того, что он все же получит доступ к другим ресурсам?

 , , ,

noname_user
()

получить индетификатор проигрывателя ios (swift, obj-c)

у эпол есть такая «замечательная» дока по их апи, вот этот класс - https://developer.apple.com/documentation/mediaplayer/mpmusicplayercontroller отвечает за проигрывание медиа в ОС (ios), то есть, я могу получить название трека который играет к примеру с google music, либо apple music и т.д.
Все хорошо, но, есть ли возможность получать название или индетификатор плеера который в данный момент проигрывает что либо ? в их апи я ничего такого не нашел, быть может кто из кодеров swift подскажет, либу какую нибудь или еще что то ?

 , , ,

noname_user
()

активация env в python3 + nohup

собственно есть скрипт на python3 и требуется его пускать с помощью nohup, вопрос в том как активировать правильно env в таких условиях?

 ,

noname_user
()

очереди воспроизведения в discord.py

Пилю бота для воспроизведения 30 гб треков на сервере, по команде + начало пригрывания, - стоп, skip следующий. Тут все ясно, вопрос вот в чем, воспроизведение происходит следующим образом через либу :

# подключение
channel = message.author.voice.channel
voice = await channel.connect()
# воспроизведение
voice.play(discord.FFmpegPCMAudio('test.mp3'))
не могу въехать как следить за воспроизведением по очереди

 , , ,

noname_user
()

консольные редакторы не понимают табы

в micro, vim и прочих редакторах пытаюсь поставить таб вместо пробелов, визуально он ставиться, стоит открыть через sublime text, к примеру, там будут 4 пробела, пробовал так же на дефолтных конфигах bash и zsh.
Куда копать? Manjaro last

 , , , ,

noname_user
()

micro editor не понимает табы

Начал юзать https://micro-editor.github.io/ и столкнулся с проблемой, в файле .py ставлю таб где он требуется, но в итоге получаю ошибку:

IndentationError: unindent does not match any outer indentation level
открываю файл в sublime-text и вижу что это 4 пробела, а не полноценный таб.
как его заставить работать с табом?

 , ,

noname_user
()

После попытке установить kali linux отъехал wifi модуль (intel wireless-ac 9260)

Собственно на винде известная ошибка в списке устройств - code 10, линукс не видит вообще ни модуля ни чего остального в общем.
Разве есть вероятность того что модуль отъехал просто из-за попытки установки дистра??? Причем интересный факт, сначала при установке все отлично было, потом я уже перезагрузился и понял что не так как нужно было поставил ОС, ребутнулся и понял что все... мать только купил - gigabyte z390 aorus ultra

 , , ,

noname_user
()

zsh в arch по дефолту

делаю

chsh -s $(which zsh)
ничего не происходит, перезагружаю konsole, изменений так же нет, при попытке прямо выхвать шелл /usr/bin/zsh, работает, до первого закрытия терминала
В чем проблема? на борту арч и kde last

 ,

noname_user
()

хороший аналог Apple Magic Keyboard

по сабжу есть что то годное и компактное на бт? По габаритам что то такое - https://i.citrus.ua/imgcache/size_800/uploads/shop/e/4/e4a54aaf283b3662b4af64...

 

noname_user
()

запуск обработки из файла по 5

Есть файл где есть 700 строк, каждую их них нужно обработать ruby бинарником пр. ./app_bin --arg <строка их файла>
Не могу сообразить каким образом я могу запускать по 5 таких задач, ждать завершения обработки и запускать следующие 5.
Есть более менее приятные решения?

 

noname_user
()

создание бинарника из готового консольного приложения

Есть хорошая тулза https://github.com/foozzi/OpenDoor, интересует возможность собрать это в бинарник (конечно, конфиги и .dat файла отдельно)
Собирал много раз бинарники, но вот никогда не сталкивался с вот в таком виде апами.
Может быть есть какой либо пример или в 2х словах теория?

 , ,

noname_user
()

kde и снова раскладка

Давно не юзал кеды, собрал пк, поставил арч с кедами, хотел забиндить alt+shift, но это оказалось невозможным) собственно вопрос, реально ли это ? когда то прописывал в конфигах иксов бинды, но не помню уже нифига

 ,

noname_user
()

RSS подписка на новые темы