Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3468 posts.

Python проекты » pylibcurl - обёртка ctypes для curl'a » Май 6, 2009 18:34:06

привет, любители питона.
представляю вам обёртку ctypes для курла, теперь не нужно ставить pycurl

особенности:

* более питонически стиль
* работает из “коробки” не нужно ставитьт pycurl (нужна только библиотека libcurl)
* работает со stackless'ом (возможна работа на greenlet'ах (не тестировал) c эмуляцией или без stackless'а)


подробнее в моём блоге
ссылка на pylibcurl

пример:
from pylibcurl import Curl, const, lib, CurlError

header = []
c = Curl() # или все опции вставить в конструктор c = Curl('http://www.yandex.ru', followlocation=1, maxredirs=20, encoding='')
c.url = 'http://www.yandex.ru'
c.setopt(followlocation=1, maxredirs=20, encoding='')
c.httpheader = ['X-Client: 1', 'Bot: 1']
c.httpheader = ['X-Client: 2', 'Bot: 2']
c.useragent = 'Opera' # или таким образом устанавливаем опции
c.autoreferer = 1

cookie_file = 'cookie.txt'
c.cookiefile = cookie_file
c.cookiejar = cookie_file

c.writefunction = lambda x: x

c.headerfunction = header.append
c.verbose = 0
c.perform()
print c.effective_url # думаю смысл понятен

Django » как правильно массово продекорировать view-шки? » Май 5, 2009 17:57:28

нужно продекорировать все вьюхи из конкретного urls.py
соответственно вопрос: как написать единый декоратор для всех урлов или где про это можно почерпнуть

Network » OpenSSL. Как установить соединение? » Май 5, 2009 11:59:55

Доброго времени суток.
У меня есть тестовый ssl сервер. Сервер не мой. Запускается с ключами:
testssl -cacertfile=<какой-то файл> -certfile=<какой-то файл> -keyfile=<…> -keypass<…>

К нему шли файлы server.pem и client.pem

Работало так:
testssl -cacertfile=server.pem -certfile=server.pem -keyfile=server.pem -port=8888

Код клиента на питоне (2.6 версии):

from socket import socket
import ssl

s = socket()
c = ssl.wrap_socket(s, cert_reqs=ssl.CERT_REQUIRED, ssl_version=ssl.PROTOCOL_SSLv3, ca_certs='client.pem')
c.connect(('localhost', 8888))
cert = c.getpeercert()
print cert
c.write('dsafsadfasfsafads')
c.close()
s.close()
Сервер кидал на консоль строку: dsafsadfasfsafads
Клиент выдавал сведения о сертификате.

Теперь сервер говорит, что срок годности клиента истек.
Ладно, достал openssl и пытался насоздать сам файлов для сервера и клиента, но на любые попытки и любые файлы, или сервер ругается, что они невалидные, или клиент выкидывает такое:
Traceback (most recent call last):
File "D:\projects\sslclient.py", line 6, in <module>
c.connect(('localhost', 8888))
File "D:\Python26\lib\ssl.py", line 309, in connect
self.do_handshake()
File "D:\Python26\lib\ssl.py", line 293, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [Errno 1] _ssl.c:480: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
а иногда такое:
Traceback (most recent call last):
File "D:\projects\sslclient.py", line 6, in <module>
c.connect(('localhost', 8888))
File "D:\Python26\lib\ssl.py", line 309, in connect
self.do_handshake()
File "D:\Python26\lib\ssl.py", line 293, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [Errno 1] _ssl.c:480: error:14094410:SSL routines:SSL3_READ_BYTES: sslv3 alert handshake failure
Я точно знаю, что server.pem и client.pem созданы так же в openssl и являются self-signed.

Вопрос: Как создать подобные файлы для сервера и клиента?
пробовал:
http://www.octaldream.com/~scottm/talks/ssl/opensslca.html
http://blog.taragana.com/index.php/archive/openssl-how-to-create-self-signed-certificate/ru/
http://www.dylanbeattie.net/docs/openssl_iis_ssl_howto.html
В общем:
http://www.google.ru/search?hl=ru&client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&hs=2Zu&q=openssl+Generate+certificate+authority+using+openssl&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=

CA.pl -newca
CA.pl -newreq
CA.pl -sign

Не подходят вообще никак.
Или: есть толковая дока по openSSL? Из серии “для чайников”, чтоб с самого начала, что, где и как применяется, что это за файлы сервера (cacertfile certfile keyfile) и что надо указывать в качестве сертификата клиенту.

Неделю уже не могу достучаться до сервера.

Python для новичков » fapws2 freebsd amd64 » Апрель 30, 2009 20:45:37

сие чудо не хочет правильно работать на amd64, сорибаю его на i386 с той же версией питона и libevent-а и все ок.
кто-то пробывал? можно ли его как-то пофиксить?
проверяю очень просто
python sample/hello/hello_world.py
i386
GET /hello HTTP/1.0
HTTP/1.0 200 WHYNOT
Date: Thu, 30 Apr 2009 20:40:03 GMT
toto: 4444
Server: fapws2/0.3
Hello World!!Connection closed by foreign host.

amd64
GET /hello HTTP/1.0
HTTP/1.0 200 WHYNOT
Hello World!!Connection closed by foreign host.
fapws не отдает header-ы
python 2.5.4
libevent 1.3d

Python для новичков » где взять mod_python 2.6 (при обнолении python 2.5 win32) » Апрель 28, 2009 10:11:27

Всем привет,
решил обновить питон с 2.5 на 2.6, но столкнулся с отсутствием под 2.6 mod_python
http://mirror.prvtgeo.com/apache/httpd/modpython/win/3.3.1/
Как под виндой заставить работать mod_python с апач?
Или пока вернутся на 2.5?
P.S. Я не силен чтобы под виндой компилировать mod_python.

Python для новичков » Python 3.0.1 & Turtle » Апрель 27, 2009 07:52:13

$ ./configure –prefix=/usr/lib/ –exec-prefix=/usr/lib/python3.0/

$make
….INFO: Can't locate Tcl/Tk libs and/or headers
building ‘_struct’ extension

$make test
298 tests OK.
1 test failed:
test_xmlrpc
24 tests skipped:
test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp
test_codecmaps_kr test_codecmaps_tw test_curses test_dbm_gnu
test_dbm_ndbm test_kqueue test_nis test_normalization
test_ossaudiodev test_pep277 test_socketserver test_sqlite
test_startfile test_tcl test_timeout test_urllib2net
test_urllibnet test_winreg test_winsound test_xmlrpc_net
test_zipfile64
3 skips unexpected on linux2:
test_tcl test_dbm_ndbm test_dbm_gnu
make: *** Ошибка 1

Оно конечно собирается и ставится, но
$ /usr/lib/python3.0/bin/python
Python 3.0.1 (r301:69556, Apr 26 2009, 12:56:53)
on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import turtle
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
File “/usr/lib/lib/python3.0/turtle.py”, line 107, in <module>
import tkinter as TK
File “/usr/lib/lib/python3.0/tkinter/__init__.py”, line 39, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

Как бы всё-таки turtle пощупать на предмет turtle.bgpic?

Python проекты » Chestnut FTP Search » Апрель 23, 2009 18:17:57

Chestnut FTP Search — это web-приложение для поиска файлов на FTP серверах, другими словами, поисковая система по FTP. Поиск осуществляется только по именам файлов/каталогов, не по содержимому файлов. Пользователи могут запрашивать файлы по части имени файла, по целому имени, по регулярному выражению, по шаблону оболочки (shell pattern). Программа (скрипт) написана на Python используя web.py. Для хранения индексов файлов используется PostgreSQL или MySQL.

Возможности:

* Пять режимов поиска: быстрый поиск, частичное совпадение, точное совпадение, регулярное выражение, шаблон оболочки. Каждый режим может быть с учетом регистра и без учета регистра
* Есть возможность указания кодировки для отдельных серверов, чтобы разрешить имена файлов не в кодировке ASCII
* Поиск с транслитерацией
* Многопоточный индексировщик
* Индикатор состояния сервера (online/offline)
* Обзор структуры файлов без подключения к файловому серверу
* Поддержка интернационализации

Лицензия: GPL

GUI » Glade 3 + OpenGL » Апрель 23, 2009 13:42:43

Подскажите, есть ли биндинги OpenGL для Glade 3, чтобы, юзая libgtkgl, можно было встраивать в GTK-форму OpenGL - виджет? Что - нибудь потипу entity-gl (так и не разобрался, как его пользовать)

Python для новичков » shell --plain » Апрель 20, 2009 16:07:22

Hi всем

Нужен краткий комментарий по опции –plain:

вот например есть команда:

echo “import sys; print sys.path” | ./manage.py shell –plain

Что значит “plain” Python interpreter и в каких случаях он применим?

GUI » pysvn, постепенный вывод в gtk.TextView » Апрель 20, 2009 12:47:32

народ, кто работал с pysvn. Делаю диплом, пишу прогу для управления проектами и загрузки их на сервер. в качестве репозитория использую subversion.
1. как мне на stdout вывести процесс выгрузки (checkout) или процесс обновления(update). А то все операции происходят в фоне это не очень удобно.
2. как мне получить дату выгрузки прокта в назначенном каталоге? то есть дату checkout или update, в локальноц копии. перебрал все параметры с датами и не че не нашел, только дата последнего комита. Посмотрел файл enteries в .svn там есть дата выгрузки, но не парсить же файл в речную должен быть способ обойтись pysvn.
3. вопро про gtk. Как мне выводить постепенный процесс checkout в окно с gtk.TextView? пробовал так:
….
def Message_stdout(self, textBuffer):
massage_wTree = gtk.glade.XML(“glade_template/message_stdout.glade”)
massage_dvbox = massage_wTree.get_widget(“dialog-vbox1”)
massage_textview = massage_wTree.get_widget(“textview1”)
massage_textview.set_buffer(textBuffer)
massage_dvbox.reparent(self.MESSANGER.vbox)
……
if __name__ == “__main__”:
textBuffer = gtk.TextBuffer()
textBuffer.set_text(“text”)
message = MESSAGE_WINDOW_STDOUT(textBuffer)
message.run()

ну в общем вывожу в gtk.TextView содержимое gtk.TextBuffer

но после первого вывода, добавление текста в соответствующий gtk.TextBuffer результата не дает:(

Zope/Plone/Bluebream » ZOPE3. Игнорируется TAL в html страницах.((( Помогите. » Апрель 19, 2009 08:26:06

Проект сайта, в корне две папки product и town. Сделан макрос для меню(продукты и города), на TAL, в ZPT странице. Этим макросом я могу воспользоваться из другой ZPT страницы(меню отображается), но для перехода на выбранный пункт в папке должен быть index.html, а в нем начисто игнорируются операторы TAL. Как все это работает?

Простая вещь в html странице:
The URL is <span tal:replace="request/URL">
http://www.example.com </span>
выдает результат: The URL is http://www.example.com
в шаблоне результат правильный The URL is http://localhost:8080/index

При создании шаблона есть галочка “выполнять встроенный код”…может тут тож надо где-то поставить.

Инструментальные средства разработки » Как настроить Stanis Python Editor? » Апрель 17, 2009 20:03:53

Стал работать в этом редакторе. Нравится, но есть два вопроса:
1. Можно ли вынести на панель иструментов кнопку для запуска без аргументов?
2. Можно ли сделать так, чтобы при запуске редактор автоматически сохранял текст (без запроса о сохранении текста).
Не очень хочется каждый раз щелкать оп кнопкам в диалоговых окнах с запросом аргументов и запросом о сохраниии файла.

Базы данных » MySQLdb. Потерялся exception. » Апрель 16, 2009 16:57:13

Проблема такая:
Две конкурентные транзакции делают SELECT… FOR UPDATE, первая получает данные, вторая ждёт освобождения innodb_lock_wait_timeout секунд (50 default) и… просто выдаёт пустой результат, как будто в таблице ничего и нет, хотя по логике должна выбросить исключение.
Пример кода на http://showmecode.com/code/597/

Ктонить встречался с подобным? Как лечить? Или может у кого есть идеи как покрасивее обойти этот момент…

select version(); 5.0.45-log
python 2.4, 2.5
MySQLdb 1.2.2, 1.2.3c

Попробовал написать на php подобный кусок кода, он выдал ожидаемое “Lock wait timeout exceeded; try restarting transaction.”

Zope/Plone/Bluebream » Всесвітній день Плону WPD2009, Львів » Апрель 15, 2009 17:59:56

Дата: 22.04.2009

Місце: м. Львів, вул. Наукова 3б

Українська спільнота Плон користувачів запрошує викладачів, студентів, науковців і розробників на святкування 2-го щорічного всесвітнього для Плону (WPD2009), яке відбудеться 22 квітня 2009 року у 33 містах світу, зокрема у Львові.

Плон (Plone) є Системою Управління Вмістом (Content Management System) з Відкритими Джерелами, створеною для розробки веб сайтів та управління документами. Система Управління Вмістом Plone існує з 1999 року, і є доступною за безкоштовною ліцензією GPL. Система Plone є ідеальним інструментом для публікації документів, а також винятково зручним програмним засобом автоматизації колективної роботи. Plone працює в операційних системах Linux, Windows, Mac OSX а також в інших Unix подібних системах.

Основний веб сайт спільноти користувачів Plone: http://plone.org

У програмі святкування такі доповіді:
* Нове в Plone 3.3. Чого чекати від Plone 4
* Перегляд Plone-базованих вебсайтів на мобільних пристроях
* Електронна комерція: базові рішення для Plone системи

Для того щоб взяти участь у WPD2009 у Львові необхідно зареєструватись
http://plug.org.ua/community/wpd2009/register
Остання дата реєстрації - 20 квітня.

Якщо у Вас є питання,ідеї, пропозиції, побажання щодо святкування - напишіть в розсилку http://groups.google.com/group/plone-ukraine

Додаткова інформація:
Веб сайт української спільноти користувачів Плону
http://plug.org.ua
Загальний веб сайт Всесвітнього дня Плону
http://www.worldploneday.org/
Огляд минулорічного WPD2008
http://plug.org.ua/community/wpd2008

Python для новичков » Перекрытие методов и перехват событий родителя » Апрель 10, 2009 15:16:25

Добавляю в программу поддержку подключаемых модулей
В модуле хочу воздействовать на методы и события класса родителя
Вот пример кода
В принципе, всё работает, но может есть более грамотные пути?

Флейм » В google app engine добавили cron » Апрель 8, 2009 20:23:41

Пруфлинк
Ну, заодно и джаву прикрутили.
Уже пробовал кто-то?

Python для новичков » pysvn откат на ревизию в прошлом » Апрель 7, 2009 20:42:49

Прошу помощи. Использую модуль pysvn и не могу понять как сделать откат ревизии. С svn все понятно
$ svn merge -rHEAD:xxxx [путь к svn репозиторию] [путь к локальной копии]
В pysvn же 4 метода и не могу разобраться как и что приложить.

GUI » выравнивание в QCommandLinkButton » Апрель 6, 2009 12:03:16

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

Флейм » Компьютерный фестиваль DE:CODED 2009 » Апрель 4, 2009 13:37:07

С 29-го по 31-ое мая 2009 года во Львове пройдет четвертый всеукраинский фестиваль компьютерного искусства и информационных технологий DE:CODED 2009. Цель фестиваля — создать единую платформу для встречи и общения единомышленников, поиска новых контактов и идей в среде молодых компьютерных специалистов.

Компьютерный фестиваль DE:CODED 2009 - это:
• 72 часа беспрерывного компьютерного шоу
• бесплатный 100 Mb Интернет-канал
• локальная сеть на 250-300 компьютеров
• ярмарка вакансий для компьютерных специалистов
• семинары и мастер-классы от ведущих научный работников, исследователей и компаний (выступления вживую и онлайн)
• соревнования по программированию, дизайну, защите информации, обработке видео и т.п.
• насыщенная развлекательная программа
• участники со всей Украины

Одним из стержней Компьютерного фестиваля есть семинары, выступления, доклады и мастер-классы. Если Вы желаете поделиться собственным опытом, знаниями, идеями, найдя соратников в отрасли компьютерных наук, инженерии или телекоммуникаций – добро пожаловать на страницу http://decoded.org.ua/seminars/ Если Вам проблематично прибыть во Львов в период 29-31 мая, предлагаем провести семинар в режиме онлайн.

Для предоставления запроса на чтение семинара (в т.ч. онлайн-семинара) необходимо отправить письмо по адресу oloktyev@gmail.com.

Дополнительная информация о фестивале размещена на официальном сайте decoded.org.ua

Присоединяйтесь!

Web » Nginx + python fastcgi » Апрель 3, 2009 11:59:53

поставил python-flup nginx рабочий

сделал скрипт в дирректории
#!/usr/bin/env python
def myapp(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
return ['Hello World!\n']

if __name__ == '__main__':
from flup.server.fcgi import WSGIServer
WSGIServer(myapp).run()
в nginx

server {
listen 80;
server_name pytest;
access_log /home/www/python/adserver-access.log combined;
charset utf-8;

location / {
root /home/www/python;
fastcgi_pass unix:/home/www/python/fcgi_wsgi.socket;
fastcgi_intercept_errors off;
fastcgi_index test.py;
fastcgi_param SCRIPT_FILENAME /home/www/python$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT /home/www/python;
fastcgi_param PHP_SELF $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_NAME pytest;
fastcgi_param HTTP_HOST pytest;
fastcgi_param SERVER_PORT 80;
fastcgi_param REMOTE_ADDR $remote_addr;
}
}
но сервер отдает
502 Bad Gateway

в логах
2009/04/03 12:40:06 [crit] 15019#0: *19 connect() to unix:/tmp/fcgi_wsgi.socket failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: pytest, request: "GET /test.py HTTP/1.1", upstream: "fastcgi://unix:/tmp/fcgi_wsgi.socket:", host: "pytest"
как мне запустить fast cgi чтоб создавался сокет и

подобный код
#!/usr/bin/env python
def myapp(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
return ['Hello World!\n']

if __name__ == '__main__':
from flup.server.fcgi import WSGIServer
WSGIServer(myapp).run()
работал ?