Некоторое время назад ms допилили powershell, и в linux теперь работает полноценная, а не кастрированная версия. vmware powercli сейчас тоже полноценно работает из-под linux
Есть желание сделать кроссплатформенными свои скрипты для работы с vsphere. Одна проблема: в винде работает доменная аутентификацию (не нужно вводить credentials), в linux нет. Можно сделать workaround с загрузкой credentials из файла. Но не хотелось бы терять доменную аутентификацию при работе в винде
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
Our application will usually have just one instance of this base in a commonly imported module
И вот тут я завис. Похоже, у меня пробел в академических знаниях о питоне. До сих пор я выносил в модули только классы и функции и понятия не имею что будет, когда в модуле окажется инстанс. Это вообще работает? Т.е. глупый вопрос, если б не работало, в документации бы этого не было
Но как, Холмс? Т.е. я в модулях и в __main__ могу импортировать модуль с инстансом, и это будет один и тот же инстанс, как будто я создал его в __main__ ? И в 2.7, и в 3.x?
Сабж. Насколько я понял из документации, работа с sqlalchemy возможна в 2 вариантах: Expression Language и ORM
В документации по ORM части есть информация, как отключить autocommit. В документации по Expression Language ничего подобного не нашёл :\
Пока я не уверен, что мне стоит использовать. Возможно, придётся перейти на ORM. Но хотелось бы понять, можно ли убрать autocommit в Expression Language, или единственная возможность - собирать данные в своём коде и выполнять execute с массивом
Сабж. Есть mediawiki под свои рабочие заметки. В последнее время иногда замечал, что поиск не находит информацию, которую я вроде бы добавлял. Сначала думал, что забыл добавить. Потом оказалось, поиск по заголовкам работает стабильно. А вот поиск по содержимому не видит новую информацию (примерно за последний год). Т.е. отвалилась индексация содержимого. Никаких сторонних движков для поиска не ставил, речь про штатную возможность mediawiki.
Похоже, что перестали отрабатывать какие-то хуки при сохранении страницы
пробовал
updateSearchIndex.php, rebuildtextindex.php - как и ожидалось, не работают с postgresql
rebuildrecentchanges.php - ничего не изменилось
в логах апача и mediawiki-jobrunner ошибок не нашёл
если перенести дамп на другую ВМ, новые страницы начинают индексироваться. но мне и старые тоже нужны :)
включил debug log. сыпятся «DBPerformace» предупреждения, но это вроде не критично: [DBPerformance] Expectation (writes <= 0) by MediaWiki::restInPeace not met (actual: 1):
update. это был баг mediawiki 66650. Дело в переименовании страниц. Поиск по тексту не работает в переименованных страницах. workaround - применить патч для 66650
У меня есть 2 копии git репозитория с моими скриптами: одна на сервере в локальной сети (site), 2я на удалённой площадке (origin)
Чаще я коммитил в origin, коммиты в site иногда опаздывали на неделю
Так получилось, что удалённый репозиторий origin и мой комп одновременно были недоступны длительное время (не спрашивайте..)
На новом компе клонировал устаревший репозиторий site и сделал несколько изменений
Снова доступен удалённый репозиторий origin
В результате в репозиториях site и origin с какого-то коммита ветки master различаются. Я бы хотел снова сделать их копиями. Понятно, что сведение кода к одной версии делать мне, не проблема
Но я не знаю
как найти, с какого коммита ветки master в репозиториях стали различаться?
как в одном из репозиториев УДАЛИТЬ всю историю, начиная с точки расхождения? Работаю с репозиториями я один, поэтому моральный аспект такого изменения можно игнорировать
Есть сторонняя сишная библиотека, которую кровь из носу нужно использовать из python
К сожалению, сразу уровень «хардкор»:
функции получения информации хотят на входе указатель на структуру. Т.е. выделить память нужного размера требуется до вызова
поля структуры разные и интересные, включая unsigned long long
есть полный магии swig, который может автоматом сгенерить wrapper и модуль. с некоторыми недостатками
поля типа unsigned long long возвращает в питон в виде <Swig Object of type 'u_longlong_t *' at 0xa00000000127990>, который ни во что не удаётся перевести ( int(result.field), ctypes.c_ulonglong(result.field) при нескольких вызовах подряд дают разный результат ). Ок, правлю созданный сишный wrapper, чтобы он правильно приводил тип и возвращал resultobj = SWIG_From_int((unsigned long long)(result));
функции swig обернул как есть, т.е. в function1(pointer,size) всё ещё нужно указывать размер области памяти. причём размер сишной структуры я из python не знаю как получить. ок, правлю созданный wrapper, чтобы он самостоятельно подставлял правильный size, игнорируя переданный параметр
этим в принципе можно пользоваться после ручных правок
Но чисто для общего развития, а можно ли вручную создать такой extension без использования swig? Т.е. чтобы на стороне питона операции шли исключительно с объектами? Когда память под структуру инициализируется в конструкторе питоньего объекта, а фукнции можно передать объект, и она корректно возьмёт из его внутренностей структуру?
чтение официальной доки идёт через кровь и слёзы (дано забыл си), но пока я в упор не вижу там похожих примеров, всё на уровне helloworld
и тут внезапно оказалось, что репозиторий perzl с ним немного кофликтует. Многие пакеты из репозитория зависят от db4, а 4-я версия toolbox тащит свою библиотеку. Причём от неё зависит rpm
Т.е. придётся либо сносить все штатные rpm и ставить из perzl ( и повторять при каждом обновлении rpm.rte ), либо пересобирать все нужные пакеты из SRPM под TL5 вручную
Не обновляться до TL5 вообще не вариант, очень нужна новая версия openssh.base.server для работы с ansible
Сабж. Документация по sqlalchemy рассказывает, как создать собственную БД и работать с ней как хранилищем объектов
А возможно ли подключиться к уже существующей БД и читать из неё объекты, не внося никаких изменений? Продублировать существующую структуру таблиц в коде - никаких проблем, главное ничего не писать в базу