LINUX.ORG.RU

Сообщения mikron

 

Свой тип данных через дескрипторы Python (генерация тестовых данных)

Форум — Development

Доброго времени суток,

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

Общая идея такая:

class Entity:
    # Общие полезности

    def get_insert_statement(self):
        template = 'INSERT INTO {TABLE} ({FIELDS}) VALUES ({VALUES});'

        fields = [f for f in dir(self) if f.startswith('f_')]
        values = []
        for field in fields:
            if isinstance(getattr(self, field), VarcharField):
                values.append('\'' + getattr(self, field) + '\'')

        return template.format(**{'TABLE': self.table,
                                  'FIELDS': ','.join([f[2:] for f in fields]),
                                  'VALUES': ','.join(values)})


class VarcharField:
    def __init__(self, init_value=None):
        self._data = init_value

    def __get__(self, instance, owner):
        return self._data

    def __set__(self, instance, value):
        self._data = str(value)


class Employee(Entity):
    table = 'EMPLOYEE'
    f_employee_id = VarcharField()

if __name__ == '__main__':
    
    emp = Employee()
    emp.f_employee_id = '12345'
    
    print(emp.get_insert_statement())

Столкнулся с тем, что isinstance(getattr(self, field), VarcharField) работает не так как ожидал, а именно тип поля равен типу возвращаемого __get__ значения, а не типу-дескриптору. По сути все данные будут представленны строками(в том числе числа и даты), свои же типы нужны для правильной обвязки значений в выходных форматах.

Хотелось бы получить совет - какие еще возможны подходы(попробовал тип-класс с get/set методами - довольно громоздко использовать, также рассматриваю вариант генерить имена полей с префиксом отражающим тип, например f_v[archar]_employee_id)

P.S. Готовые ORM не брал, так как все они предназначены скорее именно для работы с БД, мне же нужно именно генерировать наборы данных(в том числе и не корректных, типа строк в числовом типе) с дальнейшей сериализацией в тектовые файлы/sql/бинарные форматы.

 

mikron
()

Помогите найти cap_mkdb

Форум — Admin

Здравствуйте,

есть некий сервак с NAS4Free на борту, возникла необходимость локализовать консоль(криво отображаются русские имена файлов в Samba шаре, в конфиге самбы unix charset = UTF-8), я с FreeBSD знаком мало, а ситуация из разряда «помоги, тыжпрограммист». В общем нашел пару инструкций на просторах сети, в них правится /etc/login.conf и после этого необходимо вызвать cap_mkdb, но этой программы я не смог найти. ЧЯДНТ? Помогите советом.

Дополнение, файла /etc/login.conf.db нет в системе, значит ли это что настройки читаются напрямую из /etc/login.conf?

 

mikron
()

Сайзеры в wxPython

Форум — Development

Никогда раньше не программировал GUI, а тут вот понадобилось наговнокодить небольшой редактор табличных данных. Непродолжительное гугление привело к выбору wxPython, но вот возникла проблема, при открытии файла создаю закладку на Notebook, на нее сайзер, на него сетку(Grid) с ключом wx.EXPAND. Но сетка не ресайзится по размеру окна, то есть если я запускаю приложение, открываю файл, потом разворачиваю окно на весь экран и сетка остается того же размера что и была. Как сделать так чтоб размер сетки менялся при изменении размеров окна?

import wx
import wx.grid as grid_

class MyFrame(wx.Frame):
    def __init__(self, parent=None, id=wx.ID_ANY, pos=wx.DefaultPosition, title='Editor'):
        wx.Frame.__init__(self, parent, id, title, pos, (600,600))

        # Menu
        menuBar = wx.MenuBar()
        menu = wx.Menu()
        m_eopen = menu.Append(wx.ID_ANY, "&Open file")
        m_exit = menu.Append(wx.ID_EXIT, "E&xit\tAlt-X", "Close window and exit program.")
        menuBar.Append(menu, "&File")
        self.SetMenuBar(menuBar)
        self.Bind(wx.EVT_MENU, self.OnOpen, m_eopen)
        self.Bind(wx.EVT_MENU, self.OnClose, m_exit)
        # Notebook
        self.notebook = wx.Notebook( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 )

    def OnOpen(self, event):
        dirname = " "
        dlg = wx.FileDialog(self, "Choose a file to open", dirname, " ", "*.*", wx.OPEN)
        if dlg.ShowModal() == wx.ID_OK:
            filename = dlg.GetFilename()
            dirname = dlg.GetDirectory()

            # Create new tab
            tab_panel = wx.Panel( self.notebook, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
            self.notebook.AddPage( tab_panel, filename, False )
            extract_tab = wx.Panel( tab_panel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )

            # Create Grid
            data_grid = grid_.Grid( tab_panel, wx.ID_ANY, wx.DefaultPosition, tab_panel.GetSize(), wx.HSCROLL|wx.VSCROLL )
            data_grid.CreateGrid( 5, 100)


            grid_sizer = wx.BoxSizer( wx.HORIZONTAL )
            grid_sizer.Add(data_grid, 1 , wx.EXPAND |wx.ALL)
            grid_sizer.FitInside(extract_tab)
            extract_tab.SetSizer(grid_sizer)
            extract_tab.Layout()

    def OnClose(self, event):
        dlg = wx.MessageDialog(self,
            "Do you really want to close this application?",
            "Confirm Exit", wx.OK|wx.CANCEL|wx.ICON_QUESTION)
        if dlg.ShowModal() == wx.ID_OK:
            self.Destroy()

 ,

mikron
()

Умножение float на числа кратные 10 в Python

Форум — Development

Уважаемые лоровцы, подскажите причину такого поведения в Python 2.7:

>>> -100900.96 * 100
-10090096.0
>>> -1009.96 * 100
-100996.0
>>> -10090.96 * 100
-1009095.9999999999

и как быть, если необходимо из float -1009.96 получить int -100996

 ,

mikron
()

ksh, строки, bad substitution

Форум — Development

Привет.Опыта в написании скриптов не имею,но вот возникла необходимость переименовать файлы в каталоге,для этих целей такой скрипт:

#!/bin/ksh
for i in  *.ext
do
ii=`basename $i .ext`
echo $ii
ii=${ii//,/}
ii=${ii:0:21}
echo $ii
cat $i > $ii
done
exit 1

в общем надо убрать знаки препинания, расширение и обрезать имя до нужной длинны.Получаю ./script/test.sh[7]: ii=${ii//,/}: bad substitution

mikron
()

Irrlicht в eclipse помогите скомпилить hello world

Форум — Development

пытаюсь собрать из примеров Irrlicht «Hello World» в eclipse, вывод консоли вот такой:

make all Building target: 111 Invoking: GCC C++ Linker g++ -L"/home/a/workspace/irrlichtTest/lib" -o"111" ./main.o -l"/home/a/irrlicht-1.7.2/lib/Linux/libIrrlicht.a" /usr/bin/ld: cannot find -l/home/a/irrlicht-1.7.2/lib/Linux/libIrrlicht.a collect2: выполнение ld завершилось с кодом возврата 1 make: *** [111] Ошибка 1

Путь до библиотеки правильный, она там есть, почему ее не видит линковщик?

mikron
()

Обновление arch

Форум — Linux-install

Доброго времени суток,я знаю что вопрос который я задам довольно расплывчатый,но тем немение прошу подсказать мне.У меня стоит ArchLinux,который я последний раз обновлял года 1,5-2 назад(я имею ввиду полное обновление системы.Сейчас вот хочу снова обновиться,но опасаюсь что все полетит к чертям.Подскажите к чему стоит приготовиться после обновления?pacman предлагает заменить следующее:

pacman -Syu

:: Синхронизируются базы данных пакетов...

core не устарел

extra не устарел

community не устарел

testing не устарел

:: Запускается полное обновление системы...

предупреждение: fluxbox: пропуск обновления пакета (1.1.1-1 => 1.3.2-1)

:: Заменить heimdal на core/krb5? [Y/n]

предупреждение: hsqldb-java: установленная версия (1.8.1.2-1) новее, чем

в extra (1.8.0.10-1)

:: Заменить iwlwifi-3945-ucode на core/linux-firmware? [Y/n]

:: Заменить iwlwifi-4965-ucode на core/linux-firmware? [Y/n]

:: Заменить iwlwifi-5000-ucode на core/linux-firmware? [Y/n]

:: Заменить kernel26 на core/linux? [Y/n]

:: Заменить kernel26-firmware на core/linux-firmware? [Y/n] q

:: Заменить kernel26-headers на core/linux-headers? [Y/n] n

:: Заменить libdjvu на extra/djvulibre? [Y/n]

:: Заменить libelf на extra/elfutils? [Y/n]

:: Заменить libjpeg на extra/libjpeg-turbo? [Y/n]

:: Заменить libsigc++2.0 на extra/libsigc++? [Y/n]

:: Заменить mailx на core/heirloom-mailx? [Y/n]

:: Заменить openoffice-base на extra/libreoffice-common? [Y/n]

:: Заменить openoffice-ru на extra/libreoffice-ru? [Y/n]

:: Заменить perlxml на extra/perl-xml-parser? [Y/n]

:: Заменить pkgconfig на core/pkg-config? [Y/n]

:: Заменить procinfo на core/procinfo-ng? [Y/n]

:: Заменить pycairo на extra/python2-cairo? [Y/n]

:: Заменить pygobject на extra/python2-gobject2? [Y/n]

:: Заменить util-linux-ng на core/util-linux? [Y/n]

:: Заменить virtualbox-ose на community/virtualbox? [Y/n]

и выдает еще кучу сообщений о не совместимости программ,типа «Gvim не совместим с vim Удалить vim[y/N]»(кстати с чего это они не совместимы?мне нужно и то и другое) и т.п.

Как подготовиться к обновлению,чтоб уменьшить возможные негативные последствия?

mikron
()

Форматирование флешки Silicon Power

Форум — Linux-hardware

Проблема в следующем,есть флешка упомянутой фирмы на 8гб. Я ее отформатировал в fat32 средствами linux (создал новый раздел с помощью fdisk,потом mkfs.vfat на этот раздел).после этого fdisk - l показывал нормальную таблицу разделов,флешку можно было использовать на компьютерах под lin и win,но флешку не определяли dvd-проигрыватель и проигрыватель в машине.После этого я отформатировал ее под win,теперь флешку видно на проигрывателях и в винде,а вот под linux она не монтируется. fdisk пишет вот это:

Диск /dev/sdb: 8011 МБ, 8011120640 байт
247 heads, 62 sectors/track, 1021 cylinders
Units = цилиндры of 15314 * 512 = 7840768 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6f20736b

Это не похоже на таблицу разделов
Возможно, вы выбрали неверное устройство.

Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 ? 50813 125353 570754815+ 72 Неизвестный
Раздел 1 имеет различные физические/логические начала (не-Linux?): физ=(357, 116, 40) логич=(50812, 15, 11)
Раздел 1 имеет различные физические/логические окончания: физ=(357, 32, 45) логич=(125352, 80, 51)
Раздел 1 не заканчивается на границе цилиндра.
/dev/sdb2 ? 11016 137438 968014120 65 Novell Netware 386
Раздел 2 имеет различные физические/логические начала (не-Linux?): физ=(288, 115, 43) логич=(11015, 93, 47)
Раздел 2 имеет различные физические/логические окончания: физ=(367, 114, 50) логич=(137437, 121, 42)
Раздел 2 не заканчивается на границе цилиндра.
/dev/sdb3 ? 122103 248525 968014096 79 Неизвестный
Раздел 3 имеет различные физические/логические начала (не-Linux?): физ=(366, 32, 33) логич=(122102, 184, 30)
Раздел 3 имеет различные физические/логические окончания: физ=(357, 32, 43) логич=(248524, 211, 39)
Раздел 3 не заканчивается на границе цилиндра.
/dev/sdb4 ? 188435 188438 27749+ d Неизвестный
Раздел 4 имеет различные физические/логические начала (не-Linux?): физ=(372, 97, 50) логич=(188434, 46, 25)
Раздел 4 имеет различные физические/логические окончания: физ=(0, 10, 0) логич=(188437, 200, 33)
Раздел 4 не заканчивается на границе цилиндра.

Пункты таблицы разделов расположены не в дисковом порядке

в чем проблема?

mikron
()

как подпилить стиль gtk

Форум — Desktop

Такая проблема,поменял тему GTK (поставил NewSlikness-round).После этого в FF шрифт в меню стал очень-очень бледный,неактивный пункты серые и хорошо видны,а вот активные вообще не разобрать. в остальных приложениях фон меню черный и там это выглядит нормально,собственно в теме так и задумано.Но в FF своя тема - Full Flat.Как это можно исправить? И еще кое-что,в меню неактивные пункты отображаются выдавленным шрифтом,что выглядит отвратно.Где это можно изменить?

mikron
()

Arch и шрифты

Форум — Desktop

Такая проблема.Х не видят шрифты.Например terminus, который я прописал для xterm. В соответствии с арчвики настроил HAL, но и xorg.conf тоже есть и в нем прописаны пути к шрифтам(все лежат в /usr/share/fonts).Но Х их не цепляют. Если сделать в консоли xset +fp /usr/share/fonts/local и xset fp rehash то они сразу цепляются,но только до перезапуска иксов.Не хочу прописывать эти команды куда-нибудь вроде .xsessions. Как сделать так,чтоб они автоматом находились? И почему игнорятся пути из xorg.conf?

mikron
()

Загрузка текста в Sonata

Форум — General

Собственно сабж работает,но не так как надо.От текста загружается только несколько первых строчек,потом стоит троеточие в квадратных скобках и ... все.В файлах сохраняется тоже самое.Как заставить сонату загружать полный текст? Версия 1.5.3

mikron
()

Проблема с двойной загрузкой на ноутбуке

Форум — Desktop

На ноуте samsung R710 стоит Archlinux и винда второй системой.Пользуюсь в основном линуксом,если загружать винду,то первый раз загружается до логотипа и ... перезагружается ноут,по второму разу загрузка идет нормально,только уже предлагает выбрать обычную загрузку,безопасный режим и т.п., т.к. предыдущий раз загрузка была неудачной.Если после этого перегрузиться и в загрузчике выбрать линукс - то же самое происходит,начинает грузиться,перегружается ноут,по второму разу все нормально проходит.Из-за чего это может происходить?Загрузчик grub.Раньше стояли слака и винда(Загрузчик lilo),было тоже самое.

mikron
()

mkvmerge не распознает .avi mencoder'a

Форум — General

Перекодировал mencoder'ом dvd такой командой:

mencoder -aspect 16:9 -sws 1 -vf softskip,pullup,scale=-2:576,crop=1024:416:0:80,harddup -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=3665:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo -nosound -of rawvideo -o source.avi dvd://01 -dvd-device source

получил файл source.avi, после этого пытаюсь его собрать в mkvmerge, на что получаю ошибку что файл 'source.avi' неизвестного типа,хотя в списке поддерживаемых есть.Что я не так сделал?

mikron
()

Как отформатировать флешку в NTFS

Форум — Linux-hardware

Делаю так

fdisk /dev/sdb - удаляю все разделы,создаю один новый - тип 87 (NTFS)

mkfs.ntfs /dev/sdb - создается файловая система,все нормально,после этого могу примонтировать диск.

Но в винде в свойствах флешки стоит файловая система RAW и ничего соответственно прочитать нельзя.Как отформатировать тк,чтоб и там и там работало?

mikron
()

VtM - Bloodlines под wine

Форум — Games

Установил англ. версию игры(с пиратки).Шрифты выше чем отведенное под них место в строке(то есть заглавная Т выглядит просто палкой вертикальной - не видно верхней перекладины),соответственно текст довольно сложно читать.Это только в роликах,когда титры сверху всплывают и в меню настроек игры.В диалогах вроде нормально.Патч 1.2 стоит.Кто-нибудь может мне подсказать решение этой проблемы? И еще при запуске в главном меню фона не видно.На wineHQ написано что надо в реестр пару ключей добавить,я добавил но ничего не изменилось.Есть мысли?

mikron
()

kconf_update

Форум — General

У меня стоит slackware 12.2,fluxbox и amarok.Во время старта амарока стартует некто "kconf_update" и благополучно зависает.Пока его руками не убью амарок не стартует.Так вот,кто это и как бы сделать так,чтоб он не запускался и не насиловал мой мозг?

mikron
()

Не определяется сетевая карта на ноуте

Форум — Linux-hardware

Поставил Debian 5, ядро 2.6.26, в выводе ifconfig -a только lo и wlan0. lspci пишет про карту следующее "Marvell Technology Group Ltd. 88E8055 PCI-E Gigabit Ethernet Controller (rev 13)". Ноут Samsung R710 FS05RU. До этого стояла слака,там все сразу после установки подцепилось и проблем не было. Что сделать чтобы дебиан увидел карту и дал мне eth0?

mikron
()

помогите настроить интернет.

Форум — General

Проблема заключается в следующем.Имею Slackware 12.2,KDE,адсл-модем Zyxel настроенный бриджем.Какое-то время назад настроил инет с помощью pppoe,все работало хорошо,еще позхавчера выходил в инет,все было нормально.Сегодня включил комп,вбил pppoe-start,соединение установилось,но ни с чем не могу соеденится.Не припоминаю чтоб я что-то менял в настройках,Рядом стоит машина с виндой,с нее все нормально работает,а вот из под линукса - нет.В какую сторону копать,подскажите...

mikron
()

Хочу поставить Slackware на ноут.

Форум — Linux-hardware

Недавно приобрел ноутбук Samsung f710-fs05(http://www.samsung.ru/products/computers/notebooks/standart/r710-fs05/?tab=sp... желанием поставить на него linux,при этом хотелось бы поставить Slackware,т.к. ставил уже на десктопе - понравилась(по сравнению с убунтой и федорой).В связи с этим вопрос,на что стоит рассчитывать "искаропки",какие железки поднимутся сами,а что придется прикручивать самому(хотелось бы в итоге получить работающим все,кроме,пожалуй,модема).

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

Попробовал загрузится с livecd Slax и Knoppix.Под кнопиксом lspci ничего не определил,разрешение меньше возможного и не меняется,в общем что-то не так.А вот слакс показал себя лучше,вот такой вывод у lspci: 00:00.0 Host bridge: Intel Corporation Cantiga Memory Controller Hub(rev 07) 00:01.0 PCI bridge: Intel Corporation Cantiga PCI Express Graphics Port (rev 07) 00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03) 00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03) 00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03) 00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03) 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03) 00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03) 00:1c.2 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 3 (rev 03) 00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 (rev 03) 00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03) 00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03) 00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03) 00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93) 00:1f.0 ISA bridge: Intel Corporation ICH9M LPC Interface Controller (rev 03) 00:1f.2 SATA controller: Intel Corporation ICH9M/M-E SATA AHCI Controller (rev 03) 00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03) 01:00.0 VGA compatible controller: nVidia Corporation Unknown device 0649 (rev a1) 02:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01) 06:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8055 PCI-E Gigabit Ethernet Controller (rev 13)

mikron
()

Как запустить Fluxbox.

Форум — General

Помогите разобраться пожалуйста.Я установил Slackware 12,из оконных менеджеров из дистрибутива оставил только twm.Потом из исходников установил Fluxbox.Но не знаю как его теперь запустить.при startx запускаются иксы с twm(наверное,так как на экране эмулятор крнсоли без рамки и курсор в виде Х,если в этой консоли написать startfluxbox то выдает несколько ошибок чтения каких-то параметров из ~/.fluxbox/init и зависает).Куда и что надо прописать чтобы стартовал Fluxbox?Linux можно сказать поставил первый раз и не все еще понимаю.

>>>

mikron
()

RSS подписка на новые темы