Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3483 posts.

Флейм » Небольшая презентация про ФП в языках от MS » Авг. 20, 2009 14:20:01

Может и не канонично это на питоновском форуме, но мне было интересно, может и другим.
http://cufp.galois.com/2008/slides/SymeDon.pdf

GUI » wxPropGrid » Авг. 18, 2009 14:51:59

У кого-нибудь получилось собрать под линуком сабж? поделитесь рецептом

Python для новичков » formalchemy+webpy+sqlalchemy » Авг. 17, 2009 19:58:24

Пытаюсь получить данные из формы в FieldSet:

order1 = session.query(Persons_Class).first()
fs = FieldSet(order1, i)

В доке:
dictionary-like object of user-submitted data to validate and/or sync to the model. Scalar attributes should have a single value in the dictionary; multi-valued relations should have a list, even if there are zero or one values submitted. Currently, pylons request.params() objects and plain dictionaries are known to work.
Но не могу понять как это должно выглядеть.

В качестве i пробовал указывать:
import cgi
i = cgi.parse_qs(web.webapi.data(), keep_blank_values=True)

import web
i = web.input()

Подскажите как должны выглядеть данные для FieldSet. Хорошо если найдется простой способ забрать их из post/get.

Mobile Python » RIL dll в WinCE » Авг. 17, 2009 15:43:31

Хочу попробовать подергать функици из RIL.dll (Radio Layer Interface)…

описание для RIL гласит что необходимо делать так…
// keep this handle handy as we need it for further RIL commands
HRIL rilHandle;

...

HRESULT hr = RIL_Initialize(
1, // index of the RIL port to use (e.g., 1 for RIL1:)
&resultCallBack, // this is a pointer to your result call back method
&notifyCallback, // this is a pointer to your notify call back method
RIL_NCLASS_ALL, // all notification (except device specific)
(DWORD) this, // custom param (could be a pointer to an instance of a class)
&rilHandle); // returned handle to RIL instance


...

void CALLBACK resultCallback(
DWORD dwCode,
HRESULT hrCmdID,
const void *lpData,
DWORD cbData,
DWORD dwParam)

{
// handle the results

...

void CALLBACK notifyCallback(
DWORD dwCode,
const void *lpData,
DWORD cbData,
DWORD dwParam)
{
// handle the notification
чем заменить CALLBACK на Python ?

Web » Написание простых RESTful Web Services на Питоне » Авг. 17, 2009 14:34:57

Здравствуйте, уважаемые форумчане! :)

Недавно озадачился такой задачей, как написание XML REST вебсервиса (пока только прототип). Хотелось сделать это максимально просто, но за пару дней не удалось найти очень простых средств для скриптовых языков. Решил написать на Питоне самостоятельно. Вот что получилось (пока что очень сырая версия, некоторые вещи еще хочется добавить): http://code.google.com/p/python-very-simple-web-services/

Пример вебсервиса:

#! /usr/bin/env python

from vsws import url_pattern, Controller
from webob import Request, Response

@url_pattern("/users")
@url_pattern("/all_users")
@url_pattern("/users/${username}/list", ['GET'])
def get_users (response):
response.status = 200
return "Inside get_users()"

@url_pattern("/users/${username}")
def get_user (username):
return {"body": "Inside get_user('%s')" % username, "status": 201}

@url_pattern("/users/${username}/plans", ['GET', 'PUT'])
def get_plans (username):
return "Inside get_plans('%s'), GET or PUT" % username

@url_pattern("/users/${username}/plans", ['POST'])
def get_plans (username):
return "Inside get_plans('%s'), POST" % username

@url_pattern("/users/${username}/plans/${year}")
def get_plan (username, year, method, param2 = ''):
return "Inside get_plan('%s', %s, %s, %s)" % (username, year, method, param2)

print Request.blank ('/users/john/plans/2009?param1=value1&param2=value2').get_response (Controller())
Мне кажется, что это я повторил что-то уже существующее, просто за целый день не смог найти, что именно :) Как бы то ни было, пользуйтесь на здоровье, кому надо. Принимается любая критика.

Инструментальные средства разработки » Komodo + threading » Авг. 17, 2009 13:14:26

Собственно проблема такая.

Берем код
import threading

def proc(p):
print "Start thread " + p

p1 = threading.Thread(target=proc, name="p1", args=["1"])
p2 = threading.Thread(target=proc, name="p2", args=["2"])

p1.start()
p2.start()
Делаем F5, получаем

ERROR: dbgp.client: 
The main thread of this application is exiting while there are still threads
alive. When the main thread exits, it is system defined whether the other
threads survive.

See Caveats at http://docs.python.org/lib/module-thread.html
И усе. В эклипсе например нормально все отрабатывает, IDLE - тоже все переваривает..

Что не так?

Флейм » Легальные книги » Авг. 12, 2009 14:23:58

Тут - сборник легатьной литературы в pdf. Качать можно бесплатно, но надо смотреть рекламу и, желательно, щелкать на ней.

Django » Удаление моделей по быстрому и упрощение подобных простых действий » Авг. 12, 2009 13:49:07

Вообщем есть модели, каждый раз для реализации удаления модели приходится повторять след вещи:
-писать урл в конфиге на вьюшку
-писать вьюшку, с логикой по проверке прав и удалении модели
-делать тег который рисует ссылку или не рисует ссылку если у юзера нет прав
-создавать шаблон для тега в котором отрисовывает ссылка
+еще возможно действия по возврату на страницу (передача next)

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

Вообщем кто как делает? может что дефолтное есть в джанге для этого, чтобы например напрямую контролер на методы напрямую отправлять, минуя написание конфигов, или что-то типа этого?

Инструментальные средства разработки » Eclipse.Не могу изменить файл » Авг. 11, 2009 22:58:06

Доброго времени суток!!!!
У меня есть Eclipse 3.2, WinXP SP3 32, Python 2.6, PyDev последний
Поставил джанго, сотворил новый прожект, далее import->general->file system выбрал файлы , где лежит проект джанго. Он заимпортился. А далее я изменяю файл а он не сохраняется, ничего не матерится. Проверял в блокноте - точно не сохраняется.

Как разблокировать файлы?

Спасибо!!!

Network » Работа с Cookies » Авг. 10, 2009 13:09:44

Создаю opener с автоустановкой cookies следующим образом:

def build_opener(debug=False):
http_handler = urllib2.HTTPHandler(debuglevel=debug)

cookie_jar = cookielib.CookieJar()
cookie_handler = urllib2.HTTPCookieProcessor(cookie_jar)

opener = urllib2.build_opener(http_handler,cookie_handler)
opener.cookie_jar = cookie_jar
return opener

opener = build_opener()

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

Python для новичков » хуки в Python » Авг. 9, 2009 15:15:13

Здравствуте.
Нужно, чтобы обрабатывались нажатия клавиатуры в других приложениях. Для этого, как я понял, нужно использовать хуки Windows, как это можно сделать? Пробовал с помощью PyWin32, но не смог найти в документации ничего про хуки.

GUI - Qt.

Python проекты » LinkExchange » Авг. 6, 2009 20:51:16

LinkExchange — это программная библиотека для языка Python, предназначенная для интеграции различных систем купли-продажи ссылок с сайтом, созданном на Python. Возможности библиотеки включают поддержку сервисов Sape.ru и LinkFeed.ru, а также гибкие возможности разделения ссылок на блоки и их форматирования.

LinkExchange состоит из следующих компонентов:

* клиенты к различным системам купли-продажи ссылок;
* классы форматирования блоков ссылок;
* драйвера подсистемы буферизации;
* вспомогательный код для интеграции с различными основанными на Python веб-приложениями и фреймворками.

Страница проекта: http://linkexchange.org.ua/
Автор: Кориков Константин
Лицензия: LGPL v2
Платформа: не зависит от платформы (но на данный момент есть одно ограничение http://linkexchange.org.ua/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8CLinkExchange )

Еще не выпущено ни одного релиза, версия 0.1 в разработке и близка к выходу, доступен SVN репозитории, а также срез в виде упакованных исходников.

Буду рад обсудить все замечания/предложения по данному проекту.

Python для новичков » класс с итератором » Авг. 6, 2009 11:33:33

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

Помогите разобратся, мне кажется я не совсем правильно создаю последовательность, ну или еще чтото :)

вот код:
from itertools import chain

class cNode:
def __init__(self, name = "", attrs = {}):
self.name = name
self.attrs = attrs

def GetAttrs(self):
return self.attrs.keys()

def GetValue(self, attr):
value = None
try:
value = self.attrs[attr]
except KeyError:
pass

return value

class cTree:
class cData:
def __init__(self, data=None):
self.child = []
self.node = data

def __iter__(self):
#for nn in self.child:
# yield nn
for n in chain([self], *self.child):
yield n

def __init__(self):
self.data = cTree.cData()

def __iter__(self):
for n in self.data:
if isinstance(n.node, cNode):
yield n.node

def Append(self, parent, node):
temp = cTree.cData(node)

if parent is None:
self.data.child.append(temp)
else:
for n in self.data:
if n.node == parent:
n.child.append(temp)
break

tree = cTree()
node1 = cNode("root")
node2 = cNode("3")
node3 = cNode("4")
node4 = cNode("5")
node5 = cNode("1")
node6 = cNode("2")
node7 = cNode("10")
node8 = cNode("11")
node9 = cNode("12")

tree.Append(None, node1)
tree.Append(node1, node2)
tree.Append(node2, node3)
tree.Append(node2, node4)
tree.Append(node1, node5)
tree.Append(node1, node6)
tree.Append(node3, node7)
tree.Append(node3, node8)
tree.Append(node3, node9)

for tn in tree:
print tn.name
вывод программы:
root
3
4
10
11
12
5
1
2
Все замечательно работет если я использую дополнительно chain из itertools
for n in chain(, *self.child):
yield n
а если попытятся обойтись без этого и написать
for nn in self.child:
yield nn
то глубже 1го уровня я попасть немогу. Вот поэтому и есть ощющение - что последовательность кривая получается, а почему - понять немогу.

Всем спасибо.

Python для новичков » polling » Авг. 6, 2009 08:26:21

Добрый день.
Кто-нибудь работал с polling, можете описать общие принципы работы, что да как?

Заранее благодарен.

Web » И снова про twill » Авг. 5, 2009 09:16:43

какая-то засада получается. Пытаюсть авторегер написать.

Запонить двух страничную формочку.

Попробовал twil. Но на второй форме он ругается: more than one form; you must select one (use ‘fv’) before submitting

Попробовал mechanize. Но на второй форме половина контента, как я понял отрисовывается jquery и он просто не находит нужных контролов для заполнения.

Попробовал через win32com подобраться. НО проблема таже в IE я вижу что все отлично отрисовалось, но вызов на этом шаге исходного html показывает что нет нужных контролов, которые строятся через js.


Подскожите, чем сможите, особенно интересен twill и его возможность сабмитить формы по этапам… :rolleyes:


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


UPD!!!
Через win32 все заработало, видимо вчера уже не понимал, что делаю.
Но вопрос про twil и mechanize остался. Как в первом сделать регистрацию на форме в несколько страниц, и как второй заставить втыкать в js.

Web » urllib » Авг. 2, 2009 09:01:05

>>> import urllib
>>> urllib.urlretrieve('http://rpod.ru/personal/external/127646.mp3?d79b5a95986833d39c4daa4be5a29acc7a54e83932b5162e87f352df104a1505', ‘test.mp3’)
('test.mp3', <httplib.HTTPMessage instance at 0xb7c22a4c>)


загружаются первые 400Кб файла, затем обрываеся есть идеи?

Network » Asyncore port forwarding проблема » Июль 31, 2009 00:39:12

http://code.activestate.com/recipes/483732/
Использую этот пример для прокси HTTP. Почему-то иногда reciever не получает никаких данных от клиента (как будто дропает соединение), но у клиента высвечивается пустой экран.
У меня замен не много, весь код впринципе этот же только при чтении у receiver данные модифицируются и добавляется X-Real-Ip.
Что самое интересное происходит это не часто и при высокой нагрузке.
Первый раз страницу открываешь - пусто (ни ошибок, просто будто ответ 200 (хотя ответа нет по логам самого прокси - видимо браузеры выдумывают сами)), от удаленной проксируемой машины через некоторое время появляется ошибка по таймауту стандартная (Bad request method). Что это и как лечить?

Network » Asyncore + multiprocessing » Июль 31, 2009 00:33:48

Реально?
Например для http?
Не могу сообразить как это сделать. Через Queue или Pipe раздавать соединения?

GUI » размер содержимого stackedWidget » Июль 25, 2009 20:26:38

проблем в следующем..
имеем stackedWidget и 2-е страницы(pages).
каждая страница содержит какой-то виджет.

когда делаю ресайз главному окну, то сам stackWidget меняет размер соответственно.
а вот pages остаются со старым размером..

как это можно поправить?