Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3486 posts.

Django » RTMP в python » Сен. 20, 2010 13:01:08

Давно у меня есть идейка написать небольшой видео-чат. Поискав в интернете, я так толком ничего не нашёл по работе питона с RTMP.
Надежды были на http://rtmpy.org/, но похоже проект мёртв.
Ещё нашёл пример на google app engine, но его я не хочу использывать из принципа.
Может кто слышал, есть ли у питона нормальная поддержка RTMP???

Django » как сделать os.dup2 и Popen из вод mod_wsgi? » Сен. 20, 2010 01:00:37

имеется простенький django (v0.96) сайтик который крутится на связке Ubuntu Hardy 8.04 apache2 + mod_wsgi.
хочется сделать одну вещь:
при заходе на определённый URL помимо выплёвывания в браузер сообщения “Hello World”
параллельно на сервере будет запускаться команда (или несколько команд), стандартный вывод которой должен перенаправляться в заранее указанный файлик.

собственно в той же связке но с mod_python всё получилось примерно так:
views.py
from django.http import HttpResponse
from subprocess import Popen

import threading
import os
import sys

import my_helper
def external(*args,**kwargs):
pid = os.fork()
if pid:
os.waitpid(pid,0)
print "Done"
return
log = open("/var/www/ext.log","a+",0)
log.truncate()


os.dup2(log.fileno(),1)
os.dup2(log.fileno(),2)

proc = Popen("ps aux",shell=True,bufsize=0)
proc.wait()
log.flush()
helper.one()

log.flush()
log.close()
sys.exit()

def start():
thread = threading.Thread(target=external)
thread.setDaemon(True)
thread.start()
import time
def my_view(request):
start()
return HttpResponse('Hello, world!')
helper.py:
from subprocess import Popen
def one():
proc = Popen("cat /proc/%s/maps" %(os.getpid()),shell=True,bufsize=0)
proc.wait()
собственно в связке с mod_python вместо mod_wsgi всё проходит нормально - я вижу вывод px aux и Popen метода one.

а вот с mod_wsgi - в моём лог-файле я вижу только вывод ps aux, но не вижу вывода функции one.

у кого нибудь есть идеи?

Python для новичков » reportlab вопрос » Сен. 19, 2010 13:06:06

При рисовании у canvas есть showPage() которая закрывает текущий лист и начинает с нового.

А если через doc = SimpleDocTemplate(……)

когда набирается

Doc =
Doc.append(Paragraph(..1..))
Doc.append(Paragraph(..2..))

doc.build(Doc)

как сделать что бы Doc.append(Paragraph(..2..)) начинался с новой страницы?

Django » Про оптимизацию gzip с тегом spaceless » Сен. 17, 2010 21:50:04

Инересно когда включен gzip какой эфект дает использование spaceless? Ведь gzip сожмет достаточно эффективно все пробелы тоже.

Спасибо.

Mobile Python » Использование тача » Сен. 15, 2010 23:44:26

  def __init__(self):
self.im=g.Image.new((360,560))
self.ini_vars()
self.ini_img()
a.app.screen='full'
a.app.directional_pad=False
a.app.orientation='portrait'
self.canvas=a.Canvas(event_callback=self.ev_call, redraw_callback=self.redraw)
a.app.body=self.canvas
  def ev_call(self, event):

if not event['type'] in [key_codes.EButton1Up, key_codes.EButton1Down, key_codes.EDrag]:
return
if event['type'] == key_codes.EButton1Down:

if event['pos'][1]>=560:

if self.panel==0:
if event['pos'][0]<=72:
self.panel=1

elif (event['pos'][0]<=144)and(event['pos'][1]>=72):
self.panel=2

elif (event['pos'][0]<=216)and(event['pos'][1]>=144):
self.panel=3

elif (event['pos'][0]<=288)and(event['pos'][1]>=216):
self.panel=4


elif (event['pos'][0]<=360)and(event['pos'][1]>=288):
self.panel=5

self.draw()


elif event['pos'][1]<560:

self.prev_x=event['pos'][0]
self.prev_y=event['pos'][1]
self.im.point((10,10), outline=self.colour, outline=5, width=10, fill=self.colour)
self.draw()


elif event['type'] == key_codes.EDrag:
qw=(self.prev_x, self.prev_y, event['pos'][0], event['pos'][1])
self.im.line(qw , outline=self.colour, outline=5, width=10, fill=self.colour)
self.prev_x=event['pos'][0]
self.prev_y=event['pos'][1]
self.draw()
Проблема в том, что не рисуются точки и линии(последние 2 блока). Все переменные объявлены, в случае с панельками все проходит нормально….
И еще - не появляется консоль с ошибками. На
    q=e32.Ao_lock()
q.signal()
совершенно никак не реагирует…

Python для новичков » Печать псевдографики в консоли (Python 3.1) » Сен. 15, 2010 11:22:06

#!C:/Python31/python.exe -u
#encoding: cp1251

import codecs

s="\x86 1200.00 \x86 340.00 \x86 0"

u=s.encode("cp866","replace")
ss=codecs.decode(u,'cp866')

print(ss)
Просто так напечатать символ “\x86” (символ псевдографической вертикальной линии в cp1251) не удается. Выдается ошибка:

File “c:\python31\lib\encodings\cp866.py”, line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)
UnicodeEncodeError: ‘charmap’ codec can't encode character ‘\x86’ in position 0: character maps to
undefined>

Код выше заменяет символы вызывающие исключения вопросами.

Есть простой способ печати псевдографики в консоли cp866 из файла в кодировке cp1251?

Флейм » Django разработчик. » Сен. 10, 2010 23:00:59

Ищется программист опыт работы с Django обязательный. Работа удаленная, оплата почасовая. Цена часа зависит от уровня специалиста.
Пишите на megaenot (cобaкa) gmail.com
в письме указывайте
- проекты над которыми работали
- пример кода
- кол-во времени которое можете уделять удаленной работе

Network » вопрос scapy » Сен. 10, 2010 22:28:52

Практически не знаком с сетевым программированием, пытаюсь вначале отловить некоторые пакеты, потом послать свои и возможно заменить посылаемые на свои.
вначале написал proxy с twisted, но просто proxy недостаточно, а перехватывать twisted не умеет вроде.
Интересуют пакеты длиннее 40.

Вначале пробовал pcap, вроде все необходимые данные понял как получить:
import dpkt
import pcap
import struct
pc = pcap.pcap()
pc.setfilter('dst port 5190')
for ts, pkt in pc:
pkt = dpkt.ethernet.Ethernet(pkt)
if(pkt.ip.len==40):
continue
src = int(struct.unpack('I', pkt.ip.src)[0])
dst = int(struct.unpack('I', pkt.ip.dst)[0])
srcport = int(pkt.ip.data.sport)
dstport = int(pkt.ip.data.dport)
print pkt.ip.data.data
Но вроде через него нельзя отправить свой пакет.
Поэтому тест на scapy:
from scapy.all import *
while True:
xxx = sniff(filter="dst port 5190", count=1, iface="eth1")
x = xxx[0]
if(x.__dict__['payload'].__dict__['fields']['len']>40):
print x.__dict__['payload'].__dict__['payload'].__dict__['payload'].__dict__['fields']['load']
Вопросы:
1. что почитать чтобы начать в этом ориентироваться?
2. почему получается такой путь до данных в scapy?
3. pcap работал четко, а print в scapy выводит не все пакеты…
4. точно ли в pcap не отослать пакет и есть ли простой пример как отправить пакет в scapy (который был бы идентичен тем что отправляются сейчас сохранить/подменить данные и длину/отправить)
5. может я что то не так делаю? как правильно?

Заранее большое спасибо.

GUI » GUI in symbian 8 » Сен. 10, 2010 19:31:00

Подскажите пожалуйста, какую гуи библиотеку можно использовать symbian 8, красивые компоненты не нужны, пара кнопок и текст боксов. Можно эту библиотеку в месте с программой в одну папку для удобного перетаскивания ?

Zope/Plone/Bluebream » Регистрация на Plone сайте » Сен. 7, 2010 14:55:55

Господа, подскажите где в Plone 2.5 включается регистрация на сайте, а то у меня есть только Логин, Пароль, а регистрации нет.

GUI » Раскрыть wx.Combobox кодом » Сен. 7, 2010 13:11:18

Есть проблемка. Нужно раскрыть wx.ComboBox, только не кликом мышки, а в коде. Каким образом это сделать, а то в доках оно не упоминается?

P.S.
Компонент, который по функциональности полностью заменит wx.ComboBox тоже приветствуется.

Инструментальные средства разработки » UliPad, автодополнение » Сен. 7, 2010 12:41:12

Использую UliPad. При вводе некоторых ключевых слов (например from<пробел>) автоматически вставляется такое
from  import${0}
Насколько я понимаю, можно как-то быстро вместо ${0} ввести имена импортируемых объектов, но никак не могу найти горячие клавиши для этого. Может я что-то не так понимаю? Как этим пользоваться?

Python для новичков » re и кодировка » Сен. 2, 2010 20:55:14

1.Как проверить что слова из русских букв в кодировке UTF-8?
Я понимаю что можно их все перечислить, а есть ли вариант что-то типа
re.match("^[\w_ -]+$", word) #1
re.match("^[а-яА-Я_ -]+$", word) #2
re.match("^[ю-ъЮ-Ъ_ -]+$", word) #3 - работает только из консоли с KOI8-r
2. Если тупо перечислить все 66 символов, как это отразится на производительности?

Python для новичков » Создание дерева объектов. » Сен. 1, 2010 12:33:09

Привет всем.
Думаю как решить такую задачу. Есть некий класс, и нужен еще другой класс, который хранил бы экземпляры первого класса, чтобы можно было их добавлять и удалять, а также пройтись по всему дереву.
Погуглил, а также поискал по этому форуму, понял что решения могут быть разные, и поэтому решил сначала все-таки спросить людей опытных подсказать лучшее решение.
Задача такова что храниться в дереве будет небольшое количество объектов, не больше нескольких десятков, уровень вложенности тоже небольшой, порядка 2-3 уровней.
Может быть стоит использовать вложенные списки для этого дела или есть какие-то другие простые (и/или более правильные) варианты?

Python для экспертов » Выборочная векторизация аргументов функции в numpy » Авг. 28, 2010 18:54:48

Есть некоторая функция с несколькими аргументами, которую векторизуем - делаем возможность этой функции поэлементно обрабатывать массивы и списки:
def g0(T, dic, i):
......................

g0v = numpy.vectorize(g0)
При этом как я понимаю векторизация производится над всеми аргументами. А необходимо это делать например только с первым, так если второй является списком, то функции бы передавался список целиком.

Базы данных » CouchDB на shared хостинге » Авг. 28, 2010 15:58:15

Всем кому интересна база couchDB могут использовать ее на хостинге Webfactional а инструкция по ее установке здесь:
Иструкция по установке couchDB на хостинге

Флейм » Ищется разработчик сервиса для Facebook и Twitter – (API) » Авг. 27, 2010 12:00:06

Ищется разработчик для уникального проекта, сервиса предназначенного для измерения аудитории Facebook и Twitter.

Сервис собирает всю доступную информацию по пользователям и считает метрики по ним. Сервис использует API Facebook и Twitter.

ТЗ тут – https://docs.google.com/document/pub?id=1GCzAd54PyRtluI4IOGrDmuqTiBw8MeYRX2ospGYIXJo
Проект тут - http://www.free-lance.ru/projects/?pid=477088

Python для новичков » wsdl2py и аналоги » Авг. 26, 2010 22:34:36

есть ли аналоги у wsdl2py? ковырял suds, но, как я понял, формировать классы на основании wsdl он не умеет. проблема в том, что при вызове толстой wsdl с кучей xsd клиент не шибко блещет производительностью, а при попытке сделать классы через wsdl2py вовсе провисает во время формирования типов. кто-нибудь сталкивался?

Флейм » Требуется Python/Django программист » Авг. 26, 2010 18:11:19

Ищем Python/Django программиста.
Область приложения: Телеметрия.

Основные обязанности:
* Разработка WEB

Опыт:
* Знания - Python, Django, PostgreSQL
* Навыки - PHP, С/С++, Linux

Требования:
* Самостоятельность и постоянное развитие

Условия работы:
* Метро Таганская
* ЗП - по собеседованию, от 120 т.р.

Занятость:
* Полная

Контакт:
Михаил
email: nagorski@mail.ru
телефон: 8-926-808-8778

Python для новичков » по нажатию на button обновлять текст в radiobutton » Авг. 24, 2010 17:02:41

Добрый вечер!
Программма представляет собой типо тест, с вариантами ответов. Нужно чтобы по нажатию на кнопку менять переманную которая бы обновляла текст в label и radiobutton.
пока что вот так:
...
def doing (event):
n=sca.get()
qst=qstn[n]
r_n=r[n]
label1.configure(text=qst)
rad0.configure(text="1 - "+r_n[0])
rad1.configure(text="2 - "+r_n[1])
def otvet(event):
n=sca.get()
i=var.get()
if i==i_p[n]:
label2.configure(text="BEPHO")
else:
label2.configure(text="HEBEPHO")
...
qst=""
qstn=["vpros1","vopros2","vopros3"]
r0=['v11','v12']
r1=['v21','v22']
r2=['v31','v32
r=[r0,r1,r2]
i_p=[1,0,1]
n=IntVar()
var=IntVar()
var.set(0)
rad0 = Radiobutton(frame,text="",variable=var,value=0)
rad1 = Radiobutton(frame,text="",variable=var,value=1)
...
but=Button(frame,text="OTBET")
but.bind("<Button-1>",otvet)

label2=Label(frame,text="")
label2.grid(row=4,column=1)

but_nxt=Button(frame,text="NEXT")
but_nxt.bind("<Button-1>",doing)

sca = Scale(root,orient=HORIZONTAL,length=100,from_=0,to=2,tickinterval=1,resolution=1)
...
все меняется шкалой, а надо по нажатию на кнопку but_nxt увеличивать n.
Заранее спасибо.
p.s. python 3.1.2