LINUX.ORG.RU

312
Всего сообщений: 2483

Приглашаем python – разработчика (разработка бэк энда) Москва . kkosti1973@yandex.ru

Приглашаем python – разработчика (разработка бэк энда) Москва . kkosti1973@yandex.ru

Python, для разработки бэкенда. Необходимо вести разработку данной части проекта. Соответственно, разработка/ поддержка/ архитектурные решения - это зона ответственности привлекаемого специалиста.

Опыт работы с различными бэкофисными системами. Инфраструктура Заказчика географически распределенная, а в проекте будет интеграция с большим количеством разнородных внутренних систем. Таким образом, очень важна экспертиза в работе с различными бэкофисными системами

Условия: Оформление по ТК з/п от 100 000. готовы рассмотреть ожидания разработчика.

 ,

Mikle2016 ()

Наследование FileField в Django

Есть у меня конструкция, вроде:

class someFile(models.Model):
    upload = models.FileField(upload_to='someploads/')

class myFile(models.Model):
    pass

И вот при попыттке создать из админки экземпляр myFile, получаю
InMemoryUploadedFile' object has no attribute '_committed'
Есть мнение, там какой-то общеизвестный принцип с наследованием всяких FileField и ImageField.
Поделитесь пожалуйста.

С уважением,

 ,

Yustas ()

Ищу репетитора по python

Хочу выучить ЯП, у самого выходит хреново. Живу в Москве. Готов платить немного, где-то по 500р в час, 2-4 часа в неделю. Работаю, к сожалению, до 19. Возможен удаленный вариант, главное чтоб знания были структурированы, я понимал, а в конечном итоге мог сам писать. Потому что сейчас я мало-мальски понимаю как и что, но не могу даже начать. А если и начинаю, выходит говно. Считаю, лучше с нуля начать.

Оплата возможна только наличкой. Короче предлагайте варианты, пишите в тему. Может как-нибудь договоримся. Было бы интересно познакомиться с тем кто реально на нём пишет и это его работа.

P.S. Я реально понимаю что за месяц не получится, потому рассматриваю долгосрочное сотрудничество. Но тянуть бабло тоже не выйдет, его нет да и я не лыком шит.

ilya.romashev@gmail.com

Перемещено leave из job

 

Romashev ()

Разное поведение transport.get_extra_info в дефолтном asyncio и uvloop.

Хочу вот перевести свою поделку на uvloop, но столкнулся с такой вот проблемой.

Код:

import asyncio

import uvloop


async def test(loop):
    transport, protocol = await loop.create_datagram_endpoint(
        asyncio.DatagramProtocol, remote_addr=('45.76.92.79', 26000))
    print(type(transport), transport.get_extra_info('sockname'))

loop = asyncio.new_event_loop()
loop.run_until_complete(test(loop))
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
loop = asyncio.new_event_loop()
loop.run_until_complete(test(loop))

Вывод:

<class 'asyncio.selector_events._SelectorDatagramTransport'> ('45.76.92.79', 38734)
<class 'uvloop.loop.UDPTransport'> ('0.0.0.0', 50589)

Почитав сорцы uvloop'а я заметил, что если не указан локальный адрес в аргументах у create_datagram_endpoint, тогда uvloop вызывает socket.bind('0.0.0.0'). Но мне как бы очень нужен локальный айпи, и очень не хочется указывать его в конфиге.

Собственно вопроса два - зачем вызывать бинд на 0.0.0.0, и можно ли как-то автоматически задетектить локальный айпи адрес перед вызовом create_datagram_endpoint?

 , ,

provaton ()

python-xlib фон рабочего стола

Как установить фон рабочего стола через python-xlib? Проблема в том, что фон генерируется программой динамически (~1 раз в секунду) и не сохраняется в файл. Т.е. фон должен рисоваться прямо на рабочий стол.

Нагуглил функцию XSetWindowBackgroundPixmap, но не нашел ее в python-xlib.

 , , ,

Pasha__kun ()

Вышел Python 2.7.14

Сабж. В этом релизе пофиксили кучу багов. Changelog доступен вот по этой ссылке: https://raw.githubusercontent.com/python/cpython/84471935ed2f62b8c5758fd544c7...

Скачать: https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz

 ,

saahriktu ()

smtplib не отпраляет письмо от *@mail.ru

Я пытаюсь использовать smtplib для отправки сообщений при помощи вот этого кода:

file = "path_to_a_file"
part = MIMEBase('application', "octet-stream")
part.set_payload(open(file, "rb").read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file_book))
msg = MIMEMultipart()
msg['From'] = from_email@example.com
msg['To'] = to_email@example.com
msg.attach(part)
smtp = SMTP_SSL()
smtp.connect('smtp.yandex.ru')
smtp.ehlo()
smtp.login('my_email@yandex.ru', 'pass')
try:
    smtp.sendmail('my_email@yandex.ru', 'to_email@example.com', msg.as_string())
except SMTPException as e:
    print("Error: unable to send email: "+str(e))
smtp.quit()

Если в поле в msg['From'] указывать *@yandex.ru или *@gmail.com или *@my_domain.info всё раотает прекрасно. Не меняя ничего больше, просто в теле письма меняю адрес From. Но при попытке отправить с *@mail.ru я получаю вот эту ошибку:

(554, b'5.7.0 Failed to authorize the sender 1505621397-z6HZZunef2-9ulCCxTQ 1505621397-ZhCGNIKkSZ-9uPOg8fd')

Изначально хотел спросить почему smtplib ведёт себя по-иному, если авторизационные данные не меняются, но потом в обсуждениях здесь натолкнулся, что это же ответ сервера, значит smtplib тут уже не причём, а я неправильно составляю запрос? Как же быть тогда, чтобы отправлять письмо указывая в теле From: something@mail.ru?

 , ,

Pupizoid ()

GDAL: как из содержимого Geotiffки получить XYZ-координаты?

I want to get an XYZ-like surface from a Geotiff with GDAL in Python. Собственно, делаю я вот что:

1) Качаю Geotiff отсюда: http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp

2) Пишу вот такой код:

from osgeo import ogr, osr, gdal

file_path = os.path.join(os.path.dirname("/home/yak/dump/srtm_62_05.tif")
gdal_data = gdal.Open(file_path, gdal.GA_ReadOnly)
raster_band = gdal_data.GetRasterBand(1)
raster = raster_band.ReadAsArray()

Всё круто, только, во-первых, ни разу не понятно, в каких попугаях измеряется возвышение (написано, что в метрах, но относительно каких единиц? Да и в тех местах, где море, стоят какие-то страшные -32000 с гаком) — а во-вторых, мне бы это сконвертировать в обычные декартовы XYZ-координаты.

Собственно, имею спросить: а как бы это проделать-то? Явно же есть какие-то стандартные средства в самом GDAL?

 ,

Yak ()

Разыскивается Python-разработчик (NumPy / SciPy), 120-150K

Дизайн-центр ФРТК МФТИ ищет ещё одного Python-разработчика (NumPy/SciPy).

О главном

  • Платить будут 120-150 тысяч
  • График работы гибкий.
  • Сидим в РТ-корпусе МФТИ (Долгопрудный). Это 30 минут на электричке от Савёловского вокзала (или 15 минут маршруткой от Алтуфьево).

Что за проект?

  • Проект – библиотека алгоритмов для моделирования РЛС.
  • Основной язык разработки – Python, с использованием NumPy / SciPy. Отдельные части написаны на C++.
  • Часть вычислений будет выполняться на dask-кластере.

Какие будут требования?

  • Опыт программирования на Python, знание NumPy и SciPy.
  • Знание цифровой обработки сигналов (DSP) и математики вообще (особенно линейной алгебры и матстатистики).
  • Хороший технический английский.
  • Опыт в обработке изображений – приветствется.
  • Опыт именно в радиолокации тоже приветствуется, но не обязателен: если надо, научим = )

Что вам предстоит делать?

  • Участвовать в разработке библиотеки: реализовывать, отлаживать и оптимизировать известные алгоритмы обработки радиолокационных данных.
  • Интегрировать сторонние решения, в том числе написанные на С/C++.

Что ещё от нас?

  • Белая зарплата.
  • Масса интересных задач.
  • Возможность выложить часть кода на GitHub.
  • Чай/кофе/печеньки = )

Подробнее о наших радиолокационных проектах — по ссылке: http://miptdesigncenter.tilda.ws/radars

Если интересно — пишите на почту: mipt-dc@yandex.ru

 , , ,

Yak ()

Google Python Code Style

Зачем Корпорация Света, Тепла и Доброты юзает такой изжопный стиль кода на питоне? «Назло маме не будем пользоваться PEP8?»

https://github.com/google/protobuf/blob/master/python/google/protobuf/message...

Отступы двумя пробелами - если за такое не убивать, то за что вообще убивать?

 , , ,

HeipaVai1o ()

Qtablewidget и contextmenu

  def contextMenuEvent(self, event):
      self.menu = QMenu(self)
      renameAction = QAction('Rename', self)
      renameAction.triggered.connect(lambda: self.renameSlot(event))
      self.menu.addAction(renameAction)
      # add other required actions
      self.menu.popup(QtGui.QCursor.pos())

  def renameSlot(self, event):
      print ("renaming slot called")
      # get the selected row and column
      print (event.pos().x())
      item = self.KLTable.itemAt(event.pos())
      print (item)
      row = self.KLTable.itemAt(event.pos())
      print (row)
      print (col)
      # get the selected cell
      #cell = self.KLTable.item(row, col)
      # get the text inside selected cell (if any)
      # get the widget inside selected cell (if any)
      widget = self.KLTable.cellWidget(row, col)

KLTable - это QtableWidget print (row) выдает None хотя значения в ячейке есть если print (event.pos()) там координаты есть

В чем может быть проблема?

 ,

tits ()

PyQt - драйвер есть, но нет

from PyQt5.QtSql import QSqlDatabase

qq = QSqlDatabase('QMYSQL')

Выхлоп при запуске:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
По трассировке он пытается найти libmysqlclient.so.18, в системе установлен libmysqlclient20. Пробовал делать симлинки с нужным именем - хрен там, работать он с ним не хочет, хотя файл находит:
19:01:26.198239 open("/usr/lib/libmysqlclient.so.18", O_RDONLY|O_CLOEXEC) = 3
Тем более, что драйвер-то оно в доступных выводит, значит, либу как-то всё же, наверное, видит.
WTF и как с этим бороться?

 , ,

WereFox ()

Хочется странного: мат. формулы в конфиге

Доброго времени суток

Есть скрипт мониторинга ( python ), который из множества параметров выбирает те, что указаны в конфиге. Что-то вроде

Eden.Usage.Max = jmx;java.lang:name=PS Eden Space,type=MemoryPool;Usage.max
Eden.Usage.Used = jmx;java.lang:name=PS Eden Space,type=MemoryPool;Usage.used

Хотелось бы в конфиг добавлять переменные, вычисляемые на основе других

Eden.Prct = {Eden.Usage.Used} / {Eden.Usage.Max} * 100

У меня есть рабочий код на perl, но переписывать 10 Кб пока лень :D

Существует ли в python что-то готовое для разбора и вычисления формулы?

 

router ()

Как реализовать параллельный процесс с возможностью прерывания изнутри?

Есть функция которая выполняется над набором значений. Выдаёт либо это значение (подтверждено) либо None
Нужно чтобы по набору 25 подтвержденных значений оно останавливалось и выдавало список.
Сейчас реализовано на joblib Parallel
Соответственно полный перебор всех значений. И после фильтрация None и обрезка до 25.
Если сделать последовательно простым for, то это медленно.
А если joblib, то обрабатывает только полностью и тоже выходит не очень быстро.
Возможно ли как-то сделать то, о чем я говорю или взаимоисключающие параграфы?

 ,

Qwentor ()

Кросс-платформерный гуй для псевдоэнтерпрайз, или как выбрать из ничего?

Приветствую лорчане! Есть тут подозреваю люди имевшие дело с кроссплаформерными GUI-app. Вот завели внутренний проект,который сейчас в зачаточном состоянии. Основные пользователи на Windows и как бэ я топлю за кросс-платформу в виде нынче модных CEF, React, Python и других UI создающихся с помощью скриптовых ЯП в связке с dotNet core(С#), который «команде» знаком всяко лучше Java, и просто интересен ,т.к. удобство C# да еще и с нативной работой под НЕ окнами это круто. В поисках и размышлениях, выбор пал на Electron в связке с Angular 2/4(клиентское приложение будет иметь по задумке ограниченый функционал в плане вычислений, основные расчеты будут происходить на сервере, который как не странно на dotNet Core)

Поработав с ангуляром в принципе остался доволен,но вот все чаще натыкаюсь на критику,мол: «все плюшки TS в нем сводят на нет и вообще...» что конечно натолкнуло более активно поискать альтернативу, попал на Kivy для Python. В принципе последний тоже хорош,но в отличие от Angular 2 на врядли из коробки приспособлен для работы с таблицами,коих будет много и разных.

Основной фичей проекта является модульность. Клиент изначально чист, и после запуска и авторизации начинает загружать свою конфигурацию с сервера со всем необходимым. Так что вариант с WinForms и подобным выглядит очень неприглядно.Да и за адекватные компоненты платить как правило немало надо.(будто того факта что это WinForm мало)

Может кто поделится опытом разработки кроссплатформенного гуя на подобном стеке? Какие есть еще альтернативы? Или лучше сдаваться и идти мучать мертвеца?

Заранее извиняюсь за форму повествования.Благодарю за помощь!

 , , , ,

mister_LOB ()

class python и __str__

Учу деревья, хочу получить читаемую информацию, код:

class Tree():
    def __init__(self, key, data=[], left=None, right=None):
        self.left = left
        self.right = right
        self.key = key
        self.data = data

    def __str__(self): # эти строки интересуют
        return str(self.key)
При создании объекта a = Tree(12)
в интерпретаторе выводит <bst.Tree object at 0x7f920ec64f98> Что я делаю не так?

 ,

masterdilly ()

sqlalchemy MySQL server has gone away

Привет.

Такая проблема. Есть скрипт, который удаляет из базы данных много записей. Для ускорения процесса использую threading. Отрегулировал pool (на сервере max_user_connections=20 и max_allowed_packet=64M), задал pool_size=6, max_overflow=20 в create_engine и в 5 потоков удаляю. Например для удаления 4000 id, по каждому id за один заход удаляются данные из 10 таблиц. Потому я разбиваю эти 4000 на куски по 50 id и в цикле по 5 потоков удаляю. Вроде бы исчезла проблема с max_user_connections, так теперь постоянно куда-то пропадает сервер. Что интересно, если убрать потоки и удалять просто последовательно — всё ок, никаких проблем. До этого на тестовом сервере я удалял по 500 id за заход — тоже без проблем.

Уже и не знаю, куда копать и что делать?

 , , ,

conformist ()

Избежать повторения кода с помощью C++11 range-based for

Допустим, есть какие-то единообразные инструкции над несколькими переменными

if(x % 2 == 0) ++x;
if(y % 2 == 0) ++y;
if(z % 2 == 0) ++z;

Как такое делается в современном c++? Я попробовал range-based for, но заработал только вариант с указателями.

for(auto t: {&x, &y, &z})
    if((*t) % 2 == 0) ++(*t);

Reference/dereference тут выглядит явно неуместно. Можно как-то по-другому?

Update

С помощью анонимусов получилось вот такое решение

#include <cstdio>
#include <initializer_list>
#include <functional>

#define rlist(x, ...) (std::initializer_list<std::reference_wrapper<decltype(x)>>({x, __VA_ARGS__}))

int main()
{
    int x = 2, y = 3, z = 4;
    for(auto t : rlist(x, y, z)) if(t % 2 == 0) ++t;
    printf("%d %d %d\n", x, y, z);
    return 0;
}

При использовнии выглядит достаточно прилично (а на макрос можно не смотреть). Требует стандарта C++11. Что с производительностью - пока не знаю.

Update 2

Решение на шаблонах от eao197

#include <iostream>
using namespace std;

template<typename F> void apply_to_all(F &&) {}

template<typename F, typename T, typename... O>
void apply_to_all(F && f, T && x, O && ...other) {
	f(forward<T>(x));
	apply_to_all(forward<F>(f), forward<O>(other)...);
}

int main() {
	int x = 2, y = 3, z = 4, v = 5, w = 6;
        apply_to_all([](int & v) { if(v % 2 == 0) ++v; },
		     x, y, z, v, w);
        apply_to_all([](int v) { cout << v << " "; },
		     x, y, z, v, w);
        cout << endl;
        return 0;
}
На c++14 можно писать auto вместо int в лямбде.

В С++17 за счет if constexpr не нужно будет делать пустую заглушку для прекращения рекурсии вызовов:

template<typename F, typename T, typename... O>
void apply_to_all(F && f, T && x, O && ...other) {
	f(forward<T>(x));
	if constexpr(0 != sizeof...(other))
		apply_to_all(forward<F>(f), forward<O>(other)...);
}

 , ,

Crocodoom ()

Ищу работу джуном (python) в Москве.

Добрый день.
Начинающий программист ищет постоянную работу в Москве.
Сделал тестовый проект для учебы на голом Flask и Postgresql. https://github.com/master-dilly/learn-python
На http://exercism.io больше половины задач решил, если это имеет значение.
Готов много учиться.

Кто заинтересован, пишите на masterdilly at airmail.cc.

 , , ,

masterdilly ()

А кто запилит производительность golang ?

Все верещат о том, что golang быстр. Есть какая-то синтетика в интернетах, но так чтобы с примерами - нет такого. Что очень сильно намекает.

Хотелось бы такого:

  • код на сpp
  • код на java
  • код на python
  • код на pypy
  • код на golang

И время выполнения для каждого. Чтобы можно было эти куски кода самостоятельно собрать и протестировать скорость. И потом все вместе сравним вот с этим

 , , , ,

bryak ()