Как стать автором
Обновить
0
0
Oronro @Oronro

Пользователь

Отправить сообщение
Несколько пожеланий, если хотите чтобы проект не был забыт на этой статье:

— Оформите код по PEP-008;
— Используйте Sphix для генерации документации вместо dir(...);
— Выложите код на github, bitbucket, whatever, раз open source;
— Зарегистрируйте пакет на PyPi (документацию там же можно хостить).

В текущем виде ничего кроме желания «переписать» оно не вызывает.

PEP-8 и PEP-20 не одобряют.
А что на счет возможностей virtualenvwrapper? Он, как я полагаю, не совместим с venv? Какие альтернативы?
HTA, извини, тебе, видимо, просто не повезло с движком =)
А планируется просто перевести 5 простейших туториалов с сайта или все же подвести к статье про использование кролика в боевых условиях?
в случае автора он избыточен, но я просто предупредил на случай запуска скрипта по более «тяжелым» файлам =)
Еще мне не нравится, что вы используете os.walk(), который разбивает имя файла на части, а потом назад его собираете. Но я не нашел другого способа рекурсивно получить все файлы.

os.walk основывается на os.listdir, который оперирует понятиями root path и basename — отсюда и разделение полного пути файла/директории на части.
Оба варианта доставят массу неприятностей если дать им пройтись по коллекции HD-видео, ISO-образов и прочих гигабайтных файлов: именно для таких случаев и существует метод update.
и результаты тестов (Linux x64 Python 2.7.3):
Simple: min 1.85775, max 1.91843, avg 1.87948
Fast: min 0.10335, max 0.10573, avg 0.10444
Deque: min 0.00592, max 0.00609, avg 0.00598
1. Как получить список всех атрибутов объекта

print dir(Foo)



А как же метаклассы? =)

3. Как получить список методов объекта
Поскольку функции и методы в Python являются объектами первого рода (вроде правильно написал?), то для проверки будем использовать функцию getattr, которая возвращает сам аттрибут объекта и функцию callable, которая и осуществляет проверку.

print [arg for arg in dir(Foo) if callable(getattr(Foo, arg))]
# или
print filter(lambda arg: callable(getattr(Foo, arg)), dir(Foo))


Более правильный вариант, учитывая что callable выпилили из 3.х и что вариант из примера вытащит так же все callable-атрибуты, которые не являются методами:

import inspect
print [name for name, item in inspect.getmembers(Foo) if inspect.ismethod(item)]
А на планшетах выводились примеры korn shell'a =)
Забыли дать ссылку, где рассказывается, что за Apache имелся ввиду. Так же пропущены ссылки с разъяснениями о настройке sendmail и postfix, что такое IP адрес, какая Ubuntu сейчас актуальна, DDOS, режим SERVER_BUSY_WRITE. Если уж викифицировать статью, так викифицировать, а гугл еще не закрыли.
Да, и во всяком случае я бы так поступил. Пром. объект содержал бы Embedded данные справочных документов(страна, филиал, организация и т.п.) на момент своего создания, а все справочные данные были бы отдельным документами, из которых можно собрать еще один пром. объект. А то, что организация находится в стране Б, можно оставить ссылку на эту страну — в контексте задачи это все справочные данные. Если организация Foo передает пром.объект организации Bar, то это событие стоит зафиксировать отдельным документом — как бонус получите историю «движения» пром. объекта по организациям.
Можно уже говорить ему «прощай!»
Все проще: Linking для справочных данных и Embedding для событий или тех, чья информационная целостность критична.

Данные, описывающие событие не должны каскадно меняться, поскольку описывают состояние события на определенный момент времени. Linking в этом случае нарушает его целостность и способно скомпроментировать его как факт.

Справочные данные наоборот, являются «строительными кирпичами» событий. Они могут образовывать множество связей между собой и это негативно скажется на попытке поддежания актуальности информации во всех связанных документах, если будет использован Embedding подход. Так же справочные элементы не являются каким либо событием, а просто набором атрибутов для некоего абстрактного объекта, тип которого так же закладывается в этих атрибутах.
И что это дает в плане работы с redmine? В смысле, какой профит для конечного пользователя.
А что нового-то?
Ну какой же это full table scan, когда list функция опирается на результатах view функции, что по сути уже предопределенный результат, который может быть размером меньше, чем все данные базы? Для реляционных это будет форматирование выборки запроса, который уже отработал и знает свой результат.

Так же list функции единственные реализуют chunked response, т.е. порционный ответ маленькими частями — show функции вроде как заявляют тот же подход, но на деле просто его эмулирут и накапливают все чанки во внутреннем стеке. При этом наоборот — если вы захотите представить результат list функции в каком-нибудь бинарном формате, то без дополнительных соглашений о параметре mime типа ;base64 и дополнительном кодировании чанков мало что хорошего получится.

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность