Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3493 posts.

Python для новичков » GPIO » Фев. 8, 2010 15:43:10

Кто-нибудь работал General Purpose Input and Output. Можете дать пару советов с чего начать?

Network » PPPoE подключение на питоне (python) » Фев. 7, 2010 22:51:38

Возник такой момент нарыл программку http://www.raspppoe.com/99beta/README2K.HTM , что привело меня на мысль , автоматизировать на питоне и чтоб сохранить логин_пароль, название итд, типа переустановил винду нажал на ярлычёк , и ничего настраивать не надо… нарыл в сети еще AutoConnector_PPPoE , однако чтоб под меня подстройку сделали надо платить.. вот и думаю теперь что с этим делать.

Python для новичков » Раблота с потоками и таймаутом соединения urllib2 » Фев. 7, 2010 16:24:23

Добрый день, подскажите как заставить говнокод работать!

Ниже кусок одного класса.
Вызов метода Start запускает 500 потоков, которые начинают разбирать очередь состоящую из проксей,
делая запросы на 2 сайта, если они получают html, то кладут его в другую очередь и идут дальше.

В принципе все работает, но после того как очередь обработалась (proxylist.join()), остается несколько потоков которые почему-то остаются запущенными. Не могу понять почему так происходит.

В принципе я могу собрать все потоки в лист дождаться окончания очереди, а потом сделать всем затупившим нитям что-то типа thread._Thread__stop.
Но мне кажется это не правильные метод.

1. Где то место в моем коде, которое может вызвать зависание потока?
2. Как выйти из потока по времени его выполнения (сказать Worker, что он может насиловать итем из очереди не более X времени)?


    def Opener(self, url, headers, post=None, proxy=None, timeout=None):
socket.setdefaulttimeout(timeout)
upars = urlparse.urlparse(url)
self.headers['Host']= upars.netloc
if proxy:
proxy_handler = urllib2.ProxyHandler({'http':proxy})
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)
socket.setdefaulttimeout(self._Setting.proxy['TimeOut'])
if post:
post = urllib.urlencode(post)
req = urllib2.Request(url, post, headers)
try:
conn = urllib2.urlopen(req)
html, info = conn.read(), conn.info()
if html
return(html, info)
else: return False
except:
return False


def Worker(self):
while not self.proxylist.empty():
try: prox = self.proxylist.get()
except: prox = False
if prox:
curentproxy = prox.split(':')[0]
scripthtml = self.Opener(url='http://site1.ru/', headers=self.headers, post = {'zpost':'zpost'}, proxy = prox)
if scripthtml:
kthtml = self.Opener(url='http://site2.ru/', headers=self.headers, post = None, proxy=prox, timeout=20)
if kthtml:
self.htmlForParse.put_nowait((prox, scripthtml[0], kthtml[0]))
self.proxylist.task_done()
time.sleep(0.1)

def Start(self):
for x in xrange(500):
p = threading.Thread(target = self.Worker)
p.setName('Worker' + str(x))
p.start()

self.proxylist.join()

GUI » [PyQt] Статусбар в QDialog » Фев. 7, 2010 12:13:54

Нужно в диалоговое окно QDialog добавить строку статуса QStatusBar. Сейчас сделал добавление в коде. Но т.к. диалог создается в QtDesigner, хотелось бы и статусбар там же добавлять и настраивать. Возможно ли такое, если да то как?

И второй вопрос. В определеном месте статусбара нужно поместить прогрессбар (например, в крайней правой части), а левую часть оставить под вывод сообщений. Пробовал, но по умолчанию прогрессбар вставляется в крайнее левое положение. Временно решил вставкой двух виджетов: QLabel для сообщений (с большим значением stretch) и QProgressBar. Есть другие способы получить нужный результат?

Python для новичков » Потоки » Фев. 5, 2010 22:09:27

Почему swing-интерфейс блокируется даже если вызывать медленные функции так:
import thread

tread.start_new_thread(self.long, ())

Django » Сохранение по связанным таблицам » Фев. 3, 2010 12:05:13

Имеются модели:
class Item(models.Model):
name = models.CharField(_('Name'), max_length=200)
points = models.IntegerField(_('Points'), default=0)
cluster = models.ForeignKey(Cluster, verbose_name=_('Cluster'))
costumerservice = models.BooleanField(_('Customer Service'), blank=True, default=False)

class Meta:
verbose_name = _('Item')
verbose_name_plural = _('Items')

def __unicode__(self):
return u'%s (%d points)' % (self.name, self.points)

class Report(models.Model):
user = models.ForeignKey(User)
date = models.DateTimeField(_('Date'), default=datetime.now())
country = models.ForeignKey(Country)
publication = models.BooleanField(_('Publication'), blank=True, default=False)
total = models.IntegerField(default=0)

class Meta:
verbose_name = _('Report')
verbose_name_plural = _('Reports')

def cluster_name(self):
return self.country.cluster

def __unicode__(self):
return self.country.country

def save(self, *args, **kwargs):
self.total = 0
for report_item in ReportItem.objects.filter(report=self):
self.total += report_item.item.points * report_item.total
reports = Report.objects.filter(country=self.country, publication=True).all()
super(Report, self).save(*args, **kwargs)


class ReportItem(models.Model):
item = models.ForeignKey(Item)
total = models.IntegerField(default=0)
report = models.ForeignKey(Report, related_name='items', verbose_name=_('Report Item'))
У меня не изменяется при сохранении сразу же результаты report.total чтобы они обновились нужно дважды сохранить модель через админку. Как можно этого избежать? Помогите пожалуйста.

Web » "видимость" хостинга на динамическом ip и dns » Фев. 2, 2010 10:01:59

у меня сайт на динамическом ip и динамическом днс, меня поисковики не регистрируют и не ходят ко мне.
есть ли какой способ сделать сайт “видимым”? или кроме того что покупать статику варианта нет?

Python проекты » commbrowser » Янв. 31, 2010 00:25:31

Простой браузер, умеющий читать файлы описаний Descript.ion, созданные FAR.
Можно редактировать, создавать новые комментарии. Два графических режима - сжатый (только откомментированные файлы) и полный. Есть закладки, сохранение в юникодный файл desc.utf.
Требует PyGTK.

http://commbrowser.googlecode.com/files/commbrowser.tgz

Прошу помочь советом.

GUI » [PyGTK] Как избежать перехвата события key_press_event? » Янв. 30, 2010 20:11:46

Я определил коллбэк функцию для запуска файлов из первой TreeView колонки на нажатие юзером клавиши ‘Return’. Но из-за этого перехватывается управление редактирования второй колонки. Для второй колонки установлено:

self.cell_renderer2.set_property('editable', True)
self.cell_renderer2.connect('edited', edited_cb, self.model)

Можно ли сделать отдельный обработчик для каждой колонки?

Есть другой вариант: определить другой хот-кей для редактирования (напр. ctrl + e).
Но не смог разобраться с CellRenderer.start_editing()
Вот эти два параметра: background_area, cell_area так и не понял, как задать.

Python проекты » Twitter Plasmoid » Янв. 28, 2010 23:32:36

Изучаю питон, и по ходу пишу плазмоид для твиттера
сайт
http://code.google.com/p/twitter-plasmoid/

Django » [админка] Передача параметров в стандартный вид ChangeList » Янв. 28, 2010 15:58:15

Как осуществить

1) передачу параметра в вид ChangeList (из другого вида) для показа только отфильтрованных записей?


админка автоматом обрабатывает только:

event/?id=40178

а если я хочу фильтровать id__in = и вообще говоря обрабатывать переданные параметры в своем коде (до- или переопределяя стандартный обработчик)?

2) отображать в ChangeList (нередакрируемый) список на базе (SQL) запроса (по нескольким таблицам)

Django » Generic Relations и Content Types » Янв. 26, 2010 15:25:48

Пытаюсь сваять интерфейс добавления картинок к статьям. Есть модель Illustration, в которой поле наследуется от ContentType:
class Illustration(models.Model):
class Meta:
verbose_name_plural = 'иллюстрации'
verbose_name = 'иллюстрация'
verbose_name_addition = 'иллюстрацию'

templates = dict(
map(lambda template: (template.__name__, template),
IllustrationTemplate.__subclasses__())
)

template_name = models.CharField(
max_length = 16,
choices = map(lambda template: (template.__name__, template.verbose_name), templates.values())
)
material_type = models.ForeignKey(ContentType)
material_id = models.PositiveIntegerField()
material = generic.GenericForeignKey('material_type', 'material_id')

title = models.CharField(max_length = 256)
width = models.PositiveSmallIntegerField()
height = models.PositiveSmallIntegerField()
image = models.ImageField(width_field = 'width', height_field = 'height', upload_to = settings.ILLUSTRATIONS_PATH)
В модели статьи прописано:
illustrations	= generic.GenericRelation('Illustration')
Мне нужно написать интерфейс заливки картинок при создании статьи с выбором типа и т.п. Подскажите хоть, куда копать, я уже все доки перерыл, понимается с трудом. Как отобразить поле для заливки картинок в админке? И как их потом сразу же после заливки там и отображать? При простом упоминании в admin.py вылезает ошибка:
ImproperlyConfigured at /admin/
'ArticleAdmin.fieldsets' refers to field ‘illustrations’ that is missing from the form.

Python для новичков » Apache + Python » Янв. 26, 2010 14:40:10

Добрый день!

Подскажите, как определить что на виртуальном хостинге для Apache установлен модуль типа mod_python или mod_wsgi? Техподдержка говорит, что python установлен и всё. :(

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

Django » Как обработать HttpResponseNotAllowed? » Янв. 25, 2010 16:38:07

Есть стандартный декоратор @require_POST который в случае обращения не через POST возвращает HttpResponseNotAllowed.
Как обработать/отобразить этот самый HttpResponseNotAllowed?

Ubuntu 9.10, Django 1.1, Django development server

GUI » Врапер к Anti-Grain Geometry » Янв. 19, 2010 18:08:42

Существует ли врапер к agg кроме aggdraw? В оном не нравится привязка к PIL. Хочется работать в контексте wxPython без PIL.

GUI » %*&#$ layout » Янв. 17, 2010 10:43:27

Имеется код на PyQt
        textEdit = QtGui.QTextEdit()
comboSources = self.getSources()
comboModule = self.getModules()
comboPartitions = self.getPartitions()
comboType = self.getTypes()

filds = QtGui.QStackedWidget()
firstFilds = QtGui.QWidget()
layout1 = QtGui.QGridLayout()

layout1.addWidget(varchar20,0,0)
layout1.addWidget(QtGui.QLabel('Name'),0,1)
layout1.addWidget(textEdit,1,0)
layout1.addWidget(QtGui.QLabel('Description'),1,1)
layout1.addWidget(textEdit,2,0)
layout1.addWidget(QtGui.QLabel('Code'),2,1)
layout1.addWidget(comboModule,3,0)
layout1.addWidget(QtGui.QLabel('Module'),3,1)
layout1.addWidget(comboSources,4,0)
layout1.addWidget(QtGui.QLabel('Source'),4,1)

firstFilds.setLayout(layout1)

secondFilds = QtGui.QWidget()
layout1 = QtGui.QGridLayout()

layout1.addWidget(varchar40,0,0)
layout1.addWidget(QtGui.QLabel('Name'),0,1)
layout1.addWidget(varchar40,1,0)
layout1.addWidget(QtGui.QLabel('Description'),1,1)
layout1.addWidget(comboType,2,0)
layout1.addWidget(QtGui.QLabel('Type'),2,1)
layout1.addWidget(varchar40,3,0)
layout1.addWidget(QtGui.QLabel('Address'),3,1)

secondFilds.setLayout(layout1)

thirdFilds = QtGui.QWidget()
layout1 = QtGui.QGridLayout()

layout1.addWidget(varchar20,0,0)
layout1.addWidget(QtGui.QLabel('Name'),0,1)
layout1.addWidget(textEdit,1,0)
layout1.addWidget(QtGui.QLabel('Description'),1,1)
layout1.addWidget(comboPartitions,2,0)
layout1.addWidget(QtGui.QLabel('Partition'),2,1)

thirdFilds.setLayout(layout1)

filds.addWidget(firstFilds)
filds.addWidget(secondFilds)
filds.addWidget(thirdFilds)
при добавлении filds на mainWindow
        tables = QtGui.QComboBox()
tables.addItem('Examples')
tables.addItem('Sources')
tables.addItem('Modules')

filds = self.createFilds()
tables.currentIndexChanged.connect(filds.setCurrentIndex)

gb = QtGui.QWidget()
layout1=QtGui.QGridLayout()
layout1.addWidget(okButton,6,1)
layout1.addWidget(cancelButton,6,2)
layout1.addWidget(tables,6,0)
layout1.addWidget(filds,0,6,6,2)

gb.setLayout(layout1)
self.setCentralWidget(gb)
Происходит какое то колдовство. Для thirdFilds все работает: и текстЕдит и все остальное (Name, Description, Partiotion) отображается, но для остальных (firstFilds, secondFilds) Name и Description (т.е. текстЕдит и лайнЕдит) не отображаются. В чем подвох?

Флейм » Очепятка в переводе форума » Янв. 15, 2010 14:19:05

При создании первого своего сообщения обратил внимание на “Сообщение добавленно. Переадресация…”. Так вот, добавлено пишется с одной Н.

Python для новичков » Как в NetBeas настроить русский текс » Янв. 14, 2010 23:05:12

к примеру
когда пишу код
print “ Привет мир” жму Run и получается

dfhsfjgdhj fsdh

Пожалуйста объясните на пальцах новичку куда заходить , что писать где что выставлять .
Только пожалуйста пошагова если можно буду очень благодарен

Базы данных » Сравнить SQLAlchemy и MongoDB (pymongo) » Янв. 5, 2010 11:32:58

Собственно, сейчас идет выбор основы для нового веб-проекта. Пока сильно склоняемся в сторону Mongo, но хотелось бы для себя составить список преимуществ и различий. Естественно, я уже знаю про почти вдвое большую скорость Mongo и отличную масштабируемость, но хотелось бы услышать мнение специалистов, у которых уже есть опыт такого сравнения или, что еще круче, работы со всем этим делом. На какие критерии стоит еще обратить внимание? Что тестировать в базах и в привязках к ним? И да, не пишите, что реляционка и document-oriented - это совсем разные вещи :) Сам знаю. Потому и пишу.