Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3493 posts.

Python для новичков » вопрос по cx_Oracle и Ораклу в целом... » Май 18, 2009 16:33:13

есть тесты…которые проверяют расчеты в БД Oracle.
некотроые запросы идут по 5-10 мин…
как через cx_Oracle удостовериться что сессия оборвалась..и не продолжает безконтрольно орудовать в базе?

Web » mod_apache: Загрузка и выгрузка модулей handler'ов » Май 18, 2009 12:07:11

Доброе время суток!
Для разработки веб-приложений использую apache+mod_python и его publisher handler (процесс разработки упрощается и нет проблем со статическим контентом). Для подключения к БД использую пул SQLAlchemy. Все работает, все прекрасно.
Когда возникла необходимость держать пул POP3-подключений, пришлось немного поимпровизировать:
1) в модуле index.py, содержащем все обработчики, объявлен словарь:
pop3_pool = {}
2) при обработке запроса проверяется, содержит ли “пул” подключение для текущей сессии:
if session.id() in pop3_pool:
3) если подключение не установлено, происходит редирект на страницу логина, в противном случае запрос обрабатывается (отображается список писем, отображается выбранное письмо и т.д.)
Однако, через некоторое время заметил фичу: если не отправлять запросы серверу некоторое время, словарь pop3_pool опустошается. Проверка подтвердила, что при отсутствии запросов модуль выгружается из памяти, и его глобальные переменные, соответственно, инициализируются заново. При использовании пула подключений к БД я этого не замечал, поскольку переподключение при вызове create_engine происходило автоматически. В данном случае такое поведение неприемлемо, т.к. при переподключении индекс письма может измениться (например, при удалении письма с другого подключения) и операция будет произведена не над тем письмом, которое было выбрано для обработки.
Как можете посоветовать решить такую проблему? WSGI, FastCGI (не сталкивался ранее ни с тем, ни с другим)? Опции Python* в .htaccess'е?
Заранее спасибо!

Zope/Plone/Bluebream » Обзор обновлений некоторых продуктов Plone » Май 14, 2009 16:06:29

Обзор включает в себя информацию об изменениях и обновлениях в следующих продуктах Plone:

* Plone Comments
* PloneFormGen
* Poi
* Faculty Staff Directory
* PloneSEO
* Real Estate Broker
* Plone Get Paid
* Singing & Dancing
* Plone True Gallery

Обзор опубликован в разделе Plone: Обзор недавних релизов Продуктов Plone.

Оригинал статьи на www.contentmanagementsoftware.info
http://www.komtet.ru/info/plone/obzor-nedavnih-relizov-produktov-plone

Pyramid / Pylons / TurboGears » Открыт код движка Orphereus » Май 14, 2009 08:45:41

Новость с ЛОР:
Состоялся релиз движка имиджборд «Orphereus» - системы, разработанной на Python-фреймворке Pylons и включающей множество новаторских возможностей. под GPLv2
http://code.google.com/p/orphereus/source/browse/

Интересно будет код посмотреть ;)

Network » структура приложения для twisted-based » Май 10, 2009 10:59:47

У меня похоже совершенно не совместимая с twisted версия мозга… Все эти tap'ки и tac'и… :/ А пока я жду выхода апдейта не подскажите ли какую структуру лучше сделать для следующего приложения:

Есть основная часть которая представляет из себя только совокупность сервисов сетевых (если быть точным то conch который SSH, web и pymodbus) и должна запускаеться как демон и есть отдельный модуль-сервис который не занимается сетью напрямую а представляет из себя только тред для вычислений (спасибо тов. bw) который со всем остальным взаимодействует через контексты. Последний сервис должен иметь возможность динамически подгружаться/выгружаться (тоесть можно стартовать и без него), конфиг для него очень большой и посему а также по еще некоторым причинам будет лежать в недрах яйца как просто .py-файл…

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

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

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