← All posts tagged Python

rion
Python ARM построил python 2.7.6 под arm. пришлось попотеть. разработчики не удосужились сделать нормальную поддержку кросскомпиляции.
rion
Python озаботился потреблением памяти в одном своем рабочем проекте
инстанция класса примерно со следующим конструктором и гарантированно неизменным количеством и качеством членов класса весит порядка 280 байт
def __init__(self, num, rstr=None):
self.num = num
if rstr is not None:
self.rstr = rstr

а че так дохера-то?
ну я понимаю, что self.__dict__ может быть выделен с запасом и моя строчка rstr тоже может быть длиннее чем действительное количество данных, но блин не на столько же.
rion
Python IDE в связи с обострившимися глюками эклипса+pydev на одной из машин, решил попробовать PyCharm.

стоит признаться, я не думал что это нечто выдающееся и на высказывания коллег про pycharm смотрел с определенной долей скептицизма.

проработал день в PyCharm. желание возвратиться к pydev, не смотря на то, что проработал в нем года 2, уже пропало, даже не смотря на то, что я успел прощупать только совсем меленькую часть всех фич. выводы напрашиваются сами собой.
rion
Python UnitTest столкнулся со странной фичей. модуль с юниттестом не может проимпортить модули с моим кодом(not found) если рядом есть другие модули с юниттестами.
чёэтавообще такое ? как только оставляю только один модуль, сразу начинает работать
rion
Python никогда не привыкну к этой епнутой системе импорта модулей в бидоне..
сделали бы как в плюсах что-то типа хидеров. просто, понятно, и без глюков.
rion
Python Gentoo distutils всё таки в генте делать пакеты/ebuildы для пайтон пакетов — одно удовольствие.
открываешь в vim несуществующий файл ебилда. он сразу создает шаблон. вбиваешь в пустые строки что-то там о пакете и вуаля, готово к использованию.
пример только что сделанного ебилда:

# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=3

inherit distutils

DESCRIPTION="Add support for i18n, documentation and icons to distutils"
HOMEPAGE="https://launchpad.net/python-distutils-extra"
SRC_URI="http://launchpad.net/python-distutils-extra/trunk/${PV}/+download/${P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""

DEPEND=""
RDEPEND="${DEPEND}"
rion
Python Debian а как сделать deb пакет с архитектурой all?
собственно прописал Architecture: any в control файле, но этого недостаточно, ибо генерится всё равно name_ver_arch.deb

ЗЫ уже второй день сижу с этим гавном разбираюсь.. в генте всё в 100500 раз проще делается.
rion
Python SQL от страха перед изучением sqlalchemy придумал свой велосипед (временно)

пример использования:
accounts = [{"server":"brocoTrader.real.1", "number":41}, {"server":"brocoTrader.real.1", "number":1014}]

b = SqlBuilder()
t = b.addTable("transaction")
o = b.addTable("order")
a = b.addTable("account")
p = b.addValuesTable([(acc["server"], acc["number"]) for acc in accounts], ["server", "number"])
b.where((t.id == o.transaction_id) & (a.server == p.server) & (a.number == p.number) & (o.account_id == a.id))
b.select()

то что нагенерилось
SELECT * FROM (VALUES (%(_db_ph1)s,%(_db_ph2)s),(%(_db_ph3)s,%(_db_ph4)s)) as t4(server,number), order as t2, account as t3, transaction as t1 WHERE t1.id=t2.transaction_id AND t3.server=t4.server AND t3.number=t4.number AND t2.account_id=t3.id

после отпуска таки изучу алхимию.
rion
Python gc а что сборщик мусора в бедоне вообще никак не умеет рекурсивные ссылки обрабатывать? :-( аля если два объекта ссылаются друг на друга и больше нет каких-либо ссылок на них, то они всё равно никогда не будут удалены?
rion
Python хых, наткнулся на фичу, что лучше в петоне параметры функций не инициализировать мутабельными обжектами. еле доперло что же блять не так в этом коде.
думаю когда-нибудь я буду ненавидеть пайтон также сильно как похапе и паскаль.
rion
Python jabber.ru странная конференция python@conference.jabber.ru заходишь без права на голос, в привате спросить запрещено, админы спят и за логом не следят. зачем оно вообще надо :)

по сему задаю вопрос здесь.
есть ли в петоне какойнить волшебный __dict__ который виден всегда и везде кроссмодульно(аля built-in) и который можно модифицировать?