Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3487 posts.

Python для новичков » События объектов к функции » Окт. 7, 2011 15:10:00

Вот такой кусок
bot[0].RegisterHandler('message', messageIncoming)
bot[1].RegisterHandler('message', messageIncoming)
Функция следит только за первым объектом, возможно привязать к этой же функции и второй объект?

GUI » Как источнику DropSource получить данные о во время события OnDropText » Окт. 6, 2011 16:14:40

У меня объект окна EditorWindow объект класса - ( производного от wx.Frame ), в нём есть таблица Grid (self.grid). В классе определён следующий метод:
def OnSubindexGridCellLeftClick( self, event ):
....
dragSource = MyDropSource( self.grid )
dragSource.SetData( data )
dragSource.DoDragDrop()
event.Skip()
в конструкторе EditWindow прописан бинд:
self.grid.Bind( wx.grid.EVT_GRID_CELL_LEFT_CLICK, self.OnSubindexGridCellLeftClick )
в другом окне по название “VariableWindow” есть другой grid - “VariablesGrid” а так же определён следующий класс, в том числе и метод OnDropText, который как бы принимает данные из первого Grid :
class VariableDropTarget(wx.TextDropTarget):
def __init__(self, parent):
wx.TextDropTarget.__init__(self)
self.ParentWindow = parent

def OnDropText(self, x, y, data):
x, y = self.ParentWindow.VariablesGrid.CalcUnscrolledPosition(x, y)
....
Объект этого класса установлен как цель в конструкторе “VariableWindow”:
self.VariablesGrid.SetDropTarget(VariableDropTarget(self))
Этот механизм работает нормально. А как я могу получить данные из “VariablesGrid” в EditorWindow (какой-нибудь метод def feedBack) в момент когда делается по нему ( “VariablesGrid”) Drop. Вообще мне желательно в EditorWindow получить всю стоку с данными “VariablesGrid”которой принадлежит ячейка на которую сделали Drop. Это вообще можно реализовать?

Флейм » Нужен программист на Python для оптимизации поисковой системы » Окт. 6, 2011 14:43:59

Нужен хороший программист на Python для оптимизации работающего паука (несколько парсеров) для узкоспециализированной поисковой системы. Желателен опыт в разработке парсеров, а также с библиотеками pyquery, BeautifulSoup, CURL, chardet. Работа удаленная. Сначала разовая, потом по обоюдному желанию возможно постоянное сотрудничество.

Пишите пожалуйста на

Email: bigratfish gmail com
ICQ: 3семь91два96два5

Python для экспертов » Крах приложения на PySide » Окт. 6, 2011 12:27:55

Доброго времени суток, уважаемые питонщики!

есть такой код:
from PySide import QtGui, QtCore
class MainWindow(QtGui.QMainWindow):
def __init__(self, *args):
super(MainWindow, self).__init__(*args)
self.style = self.style()
self.save_act = QtGui.QAction(
self.style.standardIcon(QtGui.QStyle.SP_DialogSaveButton),
“Save”, self)
self.load_act = QtGui.QAction(
self.style.standardIcon(QtGui.QStyle.SP_BrowserReload),
“Load from reg”, self)
self.add_act = QtGui.QAction(
self.style.standardIcon(QtGui.QStyle.SP_DialogOkButton),
“Add”, self)
self.del_act = QtGui.QAction(
self.style.standardIcon(QtGui.QStyle.SP_DialogCancelButton),
“Delete”, self)
self.clear_act = QtGui.QAction(
self.style.standardIcon(QtGui.QStyle.SP_DialogResetButton),
“Clear”, self)
self.edit_toolBar = QtGui.QToolBar(“Edit”, self)
self.edit_toolBar.addAction(self.save_act)
self.edit_toolBar.addAction(self.load_act)
self.edit_toolBar.addAction(self.add_act)
self.edit_toolBar.addAction(self.del_act)
self.edit_toolBar.addAction(self.clear_act)
self.addToolBar(QtCore.Qt.RightToolBarArea, self.edit_toolBar)
self.central_widget = QtGui.QTableWidget()
self.setCentralWidget(self.central_widget)
self.resize(410, 300)
def main():
app = QtGui.QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())

if __name__==“__main__”:
main()

Так приложение завершается нормально, без ошибок.

Но если поменять self.edit_toolBar = QtGui.QToolBar(“Edit”, self) на self.edit_toolBar = QtGui.QToolBar(“Edit”), т.е. не указывать parent, то при закрытии приложения питон упадёт о чем свидетельствует появившееся окно.

Почему так происходит?

Перехожу на PySide с PyQt.
такой вариант на PyQt исправно работает self.edit_toolBar = QtGui.QToolBar(“Edit”), а на PySide нет.

GUI » Kill QThread (QEventLoop) » Окт. 1, 2011 14:36:21

Здравствуйте! Нужно убить поток QThead. В документации написано, что делается это с момощью QEventLoop, но толком не описано как… Подскажите пожалуйста.
class MyThread(QtCore.QThread):
def __init__(self, parent=None):
QtCore.QThread.__init__(self, parent)
def run(self):
print "do something"

class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setupUi(self)

self.thread = MyThread()
self.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.thread.start)
self.connect(self.pushButton2, QtCore.SIGNAL(_fromUtf8("clicked()")), self.thread.exit)

Python для экспертов » получение стека вызовов » Сен. 30, 2011 23:14:22

Здравствуйте.
Есть программа, питон вызывает сишные функции через свиг. Хочется получить стек вызовов сишных функций.
Подскажите возможно ли это вообще, и если возможно, то как ?

Network » Не генерируется exception timeout » Сен. 28, 2011 22:11:17

Доброго времени суток!
Помогите, пожалуйста, разобраться почему в коде, который приведен ниже, после нескольких раз выполнения recv, перестает генериться эксепшин по таймайту
serverSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serverSock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serverSock.connect((serverHost, serverPort))


socksSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socksSock.connect((socksServName, socksServPort))


print "Connect to server successfuly"
socksSock.settimeout(2.0)
while(1):
clientId = (int) ( readControlField(serverSock) )
lenMsg = (int) ( readControlField(serverSock) )
print "Wait message from client"
msg = readMessage(serverSock, lenMsg)
try:
print "Send to socks server: \"",msg[0],"\" "
socksSock.sendall(msg[0])
except:
print "Error write data to server"
break

msg[0] = ""
lenMsg = 0

try:
while(True):
msg[0] += socksSock.recv(1)
print ".",
except socket.timeout:
print "timeout"

msg[0] = (str)(clientId) + "," + (str)( len(msg[0]) ) + "," + msg[0]
print "Send to client: \"",msg[0],"\""
serverSock.sendall(msg[0])


serverSock.close()
Спасибо

Python для новичков » pygame.display.set_caption + кириллица » Сен. 28, 2011 02:56:55

Добрый день. Не могу разобраться, как выводить кириллицу в заголовке окна, с помощью pygame.display.set_caption. Буду очень признателен, если ткнут носом в нужном направлении. В самом окне кириллица выводится без проблем, с помощью строк вида u'Строка', set_caption же на такую конструкцию ругается.

Windows, Python 2.7, pygame-1.9.2a0.win32-py2.7

Python для новичков » python-ldap + AD+шифрование » Сен. 27, 2011 23:17:25

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

Возникла необходимость в скрипте, который меняет (или создаёт) в пользователю в AD пароль.

После изучения вопроса стало ясно, что

1. Пароль назначить или сменить можно только установив зашифрованное соединение с серверов
2. Отправлять пароль необходимо только в кодировке utf-16-le

Вообщем со вторым проблем нет, а вот с первым вылезают грабли
python ldap-test-starttls.py 
Traceback (most recent call last):
File "ldap-test-starttls.py", line 9, in <module>
l.simple_bind_s( "cn=admin,ou=users,dc=test,dc=ru", "password" )
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 206, in simple_bind_s
msgid = self.simple_bind(who,cred,serverctrls,clientctrls)
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 200, in simple_bind
return self._ldap_call(self._l.simple_bind,who,cred,EncodeControlTuples(serverctrls),EncodeControlTuples(clientctrls))
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 96, in _ldap_call
result = func(*args,**kwargs)
ldap.SERVER_DOWN: {'info': 'A TLS packet with unexpected length was received.', 'desc': "Can't contact LDAP server"}
Сам код

import ldap
host = 'ldaps://ldap:636'
l = ldap.initialize(host)
l.set_option( ldap.OPT_X_TLS_DEMAND, True )
l.set_option( ldap.OPT_DEBUG_LEVEL, 255 )
username = 'someUser'
new_pass = 'ne$wP4assw0rd3!'
new_password = ('"%s"' % new_pass).encode("utf-16-le")
l.simple_bind_s( "cn=admin,ou=users,dc=test,dc=ru", "password" )
mod_attrs = [(ldap.MOD_REPLACE, 'unicodePwd', new_password)],[( ldap.MOD_REPLACE, 'unicodePwd', new_password)]
l.modify_s('CN=%s,dc=users,dc=test,dc=ru' % username, mod_attrs)
l.unbind_s()
print "Successfully changed password."
Скорее всего кто-то уже решал подобную задачу. Да, скрипт работает на Centos и использовать py32win нет возможности.

Заранее спасибо.

Python для новичков » PyGTK установка » Сен. 27, 2011 10:07:55

У меня Винда ХР, Питон 2.7, ставлю PYGTK для 2.7, для винды. Удобный инсталятор. Все ок. Захожу в командную строку Питона: import gtk - не найдено имя модуля gtk

Пожалуйста, подскажите.

GUI » PyQt. setContentsMargins через QSS? » Сен. 23, 2011 19:10:33

Приветствую.
Коллеги, никто не в курсе, возможно ли реализовать не совсем, имхо, красивое

layout.setContentsMargins(QMargins(0, 0, 0, 0))
установкой отступов через QSS типа такого:

layout.setProperty("qssMarginlessLayout", True)
QObject[qssMarginlessLayout="true"] {
margin: 0;
}
?

Python проекты » Нужны разработчики для интересного проекта » Сен. 23, 2011 13:05:33

Мне нужны люди , которые сейчас ищют работу.
Веб разработчики Python (Django Framework).

Сейчас у нас такая ситуация есть проект почти готовый. Но работы еще много. Бюджет интересный.
Нужен человек или команда высокого уровня , для оценки сроков , планов работы и стоимости работы.


Все детали в почте info@webdrafting.org
так же можно скайп : webdrafting
Вышлите пожалуйста краткое резюме о себе.

Бюджет 2000-3000 у.е

Флейм » SMSC Server » Сен. 23, 2011 10:40:53

Товарищчи, кто-нибудь может посоветовать сервер, на котором можно тестировать SMPP-подключения? Я нашел Kannel - http://www.kannel.org/ , но вроде как он не поддерживает работу в режиме SMSC.

Нужен не коммерческий продукт, а какая-нибудь локальная простая реализация, чтобы тестировать скрипты.

Базы данных » SQLAlchemy » Сен. 23, 2011 06:42:27

День добрый.
Необходимо обновить данные и получить в результате не количество обновленных записей, а сами эти записи. Возможно ли такое в SQLAlchemy и вообще в SQL?

Флейм » Требуется программист Django/Python » Сен. 21, 2011 18:58:11

Нужно в паре с другим программистом завершить проект (готовность проекта 80% )
Проект- shop.derfenix.ru
Возможно сотрудничество на постоянной основе.
Просьба писать на E-mail alpartnerspb(собака)gmail.com

GUI » PyQt - самодельный виджет: QComboBox+QToolButton » Сен. 21, 2011 18:06:48

Коллеги, помогите, обгуглился - бестолку.
Задача: сделать виджет, состоящий из комобокса и дополнительной кнопки. Виджет должен работать в связке QDataWidgetMapper+QSqlRelationalDelegate полностью аналогично QComboBox (не считая дополнительной функциональности кнопки).

Многочисленные маны предлагают очевидный вариант:
class EllipsisComboBox(QWidget):

def __init__(self, parent = None):
QWidget.__init__(self, parent)
self.horizontalLayout = QHBoxLayout(self)
self.horizontalLayout.setSpacing(0)
self.horizontalLayout.setMargin(0)
self.horizontalLayout.setObjectName(u'horizontalLayout')
self.cbCombo = QComboBox(self)
self.cbCombo.setObjectName(u'cbCombo')
self.horizontalLayout.addWidget(self)
self.tbEllipsis = QToolButton(self)
self.tbEllipsis.setObjectName(u'tbEllipsis')
self.tbEllipsis.setText(u'...')
self.horizontalLayout.addWidget(self.tbEllipsis)
Визуально получается то, что нужно:


Однако, QSqlQSqlRelationalDelegate при установке данных пытается явно преобразовать виджет к QComboBox:
void setEditorData(QWidget *editor, const QModelIndex &index) const
{
const QSqlRelationalTableModel *sqlModel = qobject_cast<const QSqlRelationalTableModel *>(index.model());
QComboBox *combo = qobject_cast<QComboBox *>(editor);
if (!sqlModel || !combo) {
QItemDelegate::setEditorData(editor, index);
return;
}
combo->setCurrentIndex(combo->findText(sqlModel->data(index).toString()));
}
и, если не получилось, использует QItemDelegate.
Сдается мне, что очевидный вариант не прокатит, ну не сможет QWidget преобразоваться к комбобоксу.

По хорошему, надо бы наследоваться от QComboBox, но тогда я не знаю, как добиться потребного внешнего вида :(
Помогите, люди добрые…

Web » Режим http сервера в uWSGI » Сен. 21, 2011 17:35:25

Помогите, пожалуйста с режимом http сервера в uWSGI
Берем простейшее тестовое приложение из примеров:
def application(environ, start_response):
start_response('200 OK', [('Content-type', 'text/plain')])
return ['Hello here']
Если оно запускается в связке nginx+uwsgi через unix сокет, все работает корректно, в браузере я вижу Hello here.
Теперь пробуем запустить uWSGI в режиме http сервера http://projects.unbit.it/uwsgi/wiki/HTTPserver
#uwsgi --uid 80 --gid 80 --http :8080 --wsgi-file test.py
или
#uwsgi --uid 80 --gid 80 --http :8080 --module test
то в браузере я вижу пустой экран, хотя в выводе uWSGI видны
[pid: 18730|app: 0|req: 1/1] 91.214.128.99 () {36 vars in 612 bytes} [Wed Sep 21 16:58:54 2011] GET / => generated [b]10[/b] bytes in 0 msecs (HTTP/1.1 200) 1 headers in 45 bytes (1 switches on core 0)
Причем тот же самый результат при
 
#telnet 127.0.0.1 8080
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1

HTTP/1.1 200 OK
Content-type: text/html

Connection closed by foreign host.
Но с другой стороны по логу видно, что скрипт успешно сгенерировал 10 байт ('Hello here'), и, даже, это именно эта строка, так как, если заменить return на return , то генерятся уже 100 байт
[pid: 22533|app: 0|req: 1/1] 91.214.128.99 () {36 vars in 612 bytes} [Wed Sep 21 17:27:36 2011] GET / => generated [b]100[/b] bytes in 0 msecs (HTTP/1.1 200) 1 headers in 45 bytes (1 switches on core 0)
Подскажите, пожалуйста, в чем я ошибаюсь, и что делаю не так?

Django » Automatic database routing » Сен. 21, 2011 01:07:59

Есть два Django проекта…каталог фирм, каталог товаров…нужно в каталоге товаров получить доступ каталогу фирм…

файл models.py от каталога фирм копирую в каталог товаров
нужно чтобы заработал следующий код в models.py каталога товаров
 company = models.ForeignKey(firms)
где firms это модель базы каталога фирм, и соответственно данные должны браться у БД каталога фирм

Гуглю и нахожу Multiple databases, подключаю две БД
Теперь нужно настроить роутинг ДБ, чтобы если таблица firms не будет найдена в базе данных по умолчанию, данные брались со второй БД

Вот пример роутера с офф, доки
 
class MyAppRouter(object):
"""A router to control all database operations on models in
the myapp application"""

def db_for_read(self, model, **hints):
"Point all operations on myapp models to 'other'"
if model._meta.app_label == 'myapp':
return 'other'
return None

def db_for_write(self, model, **hints):
"Point all operations on myapp models to 'other'"
if model._meta.app_label == 'myapp':
return 'other'
return None

def allow_relation(self, obj1, obj2, **hints):
"Allow any relation if a model in myapp is involved"
if obj1._meta.app_label == 'myapp' or obj2._meta.app_label == 'myapp':
return True
return None

def allow_syncdb(self, db, model):
"Make sure the myapp app only appears on the 'other' db"
if db == 'other':
return model._meta.app_label == 'myapp'
elif model._meta.app_label == 'myapp':
return False
return None

class MasterSlaveRouter(object):
"""A router that sets up a simple master/slave configuration"""

def db_for_read(self, model, **hints):
"Point all read operations to a random slave"
return random.choice(['slave1','slave2'])

def db_for_write(self, model, **hints):
"Point all write operations to the master"
return 'master'

def allow_relation(self, obj1, obj2, **hints):
"Allow any relation between two objects in the db pool"
db_list = ('master','slave1','slave2')
if obj1._state.db in db_list and obj2._state.db in db_list:
return True
return None

def allow_syncdb(self, db, model):
"Explicitly put all models on all databases."
return True
Помогите правильно написать роутер и правильно настроить связь ForeignKey между ДБ
Спасибо !

Django » Выпадающий список. » Сен. 20, 2011 10:36:51

Возможно подобные вопросы уже задавались… совсем не понял как обрабатывать принимаемые из формы данные выпадающего списка? Тэг “select” возвращает код

например:
<select name="rstatus" class="i-text">
<option value="" selected>-- АКТИВНЫЕ --
<option value="3">Заявка на оплату составлена
<option value="6">Комплектующие установлены
<option value="0">Новая
<option value="9">Отменена
<option value="1">Подписана
<option value="8">Ремонт выполнен
<option value="2">Согласована Фин. службой
<option value="4">Счет оплачен
<option value="5">Счет оплачен частично
<option value="7">Услуги по ремонту оказаны
</select>
как сохранять полученные данные?

Вопрос снят

GUI » Tkinter перевод "экранных единиц " в пикселы » Сен. 20, 2011 08:43:28

Как известно если на кнопке написан текст, то высота и ширина считается в экранных единицах, а если на кнопке картинка, то в пикселах.
1 Как узнать каков размер кнопки в экранных единицах (ибо в таких случаях width и height =0)
2 Как перевести экранные единицы в пикселы.