LINUX.ORG.RU

Сообщения wojaovlad

 

fifo network linux python

Нужно сделать передачу информации через имнованные каналы по сети. Как это органорганизуется между процессами понятно (mkfifo...), но как бы подключиться по сети к этому пайпу, читал можно через netcat, но в итоге у меня netcat ругался на обращение к нему как предлагали тут. В общем помогите сообразить простенькую программку либо натолкните на путь истинный.

 , , , ,

wojaovlad
()

regexp поиск функций в си коде

Написал паттерн для поиска функций в си коде.

# This regex pattern take code from each function|search all functions in code
# !!! Last brace "}" mast be stay after "\n" - new string
func = re.compile('[void|int|int*]\s+\w+\s*\([^)]*\)\n*\{(.*?)\n\}', re.DOTALL)  #\([^)]*\) - after bracket may follow any symbol, except "close bracket"

Но что-то не всегда отрабатывает наличие либо его отстутвие новой строки перед открывающей фигурной скобкой. Если не сложно подправьте, чтобы адекватно работало. А то уже глаза замылились_)
Не говорите что парсить си код регулярками не камильфо, пробовал pycparser, flex - либо у меня не задалось, либо неважные библиотеки. Я избрал путь регулярок...

 , , ,

wojaovlad
()

Библиотека для анализа си кода на python 2.7

Нужно проанализировать код на си для построения графов. Делал через регулярки, но не вариант. для построения графов использую networkx. Буду благодарен за любой совет.

 , , ,

wojaovlad
()

Tweaks / значок заряда батареи

Доброго времени. Стоит на ноуте elementaryOS (Потому что красиво).
Не могу понять почему tweaks после обновления системы перестал запускаться , идёт бесконечная загрузка.
Значок батареии ну очень стрёмный, причём когда на зарядке - он красивый, когда от батареи - уродец, где это поправить? К тому же проскакивал несколько раз красивый значок, но не из применённой темы явно.
Буду очень рад советам, так как глаза мозолит уже давно.

 , , ,

wojaovlad
()

Оценка сервера «Стоит ли брать»

Добрый день. Встала задача на предприятии купить новый сервер под злощастную 1С. Пользователей 1С до 15. Сейчас стоит HP ProLiant ML150, работает с 2000 года, но уже пора менять. Выбрал такой HP Proliant DL320eG8.
Что скажете по нему? Стоит ли таких денег? Вообще может посоветуете что-то _)
Заранее спасибо.

 , ,

wojaovlad
()

regexp python поиск между

Доброго времени. Помогите составить запрос для регулярного выражения. Нужно найти всё содержимое функции в коде на си.
Вот мой запрос:

func = re.compile(r'int\s+\w+\(\)(.*?)}', re.DOTALL)

Проблема в поиске конца функции. Нужно каким-то образом определить последнюю фигурную скобку.

 , ,

wojaovlad
()

Системы видеонаблюдения

Доброго времени. Поставили задачу поставить камеры видеонаблюдения на СТО. Всего получилось 12 камер (10 внутри, 2 снаружи). На данный момент определился только в том что буду ставить IP камеры. Цель установки видеть кто какой автомобиль ремонтирует (не царапнул ли где работник или ещё что), следить за кассой и за складом.
На СТО и складе думаю такие камеры поставить (нужно чтобы был различим номер автомобиля, хватит ли качества?): http://eurotech.by/p/ip_kamera_vc_ip130p69.html,
на приёмке нужна с записью звука: http://eurotech.by/p/ip_videokamera_beward_bd4330dh_2_mp.html,
а на улице такие: http://eurotech.by/p/ip_kamera_vc_ip20063.html.

Подскажите, правильные ли камеры подобрал? Вообще по каким критериям их лучше смотреть? Как это всё дело соединить лучше? Стоит ли их запитывать по POE? Какое ПО использовать(бесплатное) для хранения, транслирования по сети? По каким критериям выбрать сервер? Нужна ли плата захвата. Стоит ли использовать видеорегистратор? (http://eurotech.by/p/tsr_nv0411_light.html)? Буду очень благодарен за любой совет.

 , , ,

wojaovlad
()

networkx отрисовка

Доброго времени. Изучаю библиотеку networkx. Не могу понять как указать чтобы рисовала к примеру вертикально дерево, а не разбрасывало как попало. Подскажите, пожалуйста.

 , , , ,

wojaovlad
()

Запрос MySql с вложенным select

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


Я попробовал составить запрос (не получается составить сиснтаксис правильный):

select name, avg(B) from faculties join groups on groups.code_fac = faculties.code_fac join students on students.group_number = groups.number (seelct select group_number, count(*) as B from students group by group_number) B group by name;


Я попробовал переделать:

select name, avg(B.*) from faculties join groups on groups.code_fac = faculties.code_fac join students on students.group_number = groups.number where B in (select group_number, count(*) from students group by group_number) group by name;

Так как данная логика по идее даёт мне требуемый результат, не выкладываю предыдущии попытки.

 , , ,

wojaovlad
()

Бекап всего

Посоветуйте средства для бекапа серверов как на Linux, так и на виндовс и машин пользователей. Чтобы автоматически запускался, сам все выгружал. Желательно чтобы это был полный бекап системы либо образ (но тут как показывает практика один бекап будет длиться не один день). Готов поставить для этого новый сервер.

 , , , ,

wojaovlad
()

ПО для систем видеонаблюдения

Доброго времени. Встала задача подставить камеры на СТО. Камеры хочу использовать сетевые, чтобы не париться с новой проводкой. Посоветуйте для всего этого дела программное обеспечение, может даже дистрибутив какой приспособленный.
Так как для СТО то было бы здорово иметь функцию рапознования номеров, так же интересно что есть по этому поводу. Тут наверное придётся уже платные варианты расматривать(

 , , , ,

wojaovlad
()

networkx заполение из массива

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

 , ,

wojaovlad
()

Построение древовидной схемы в pyqt

Доброго времени. Искал в интернете как на python сосздать схему древовидную. Нашёл ete2, штука конечна интересная и вроде не сильно сложная, но не нашёл ничего как её интергрировать в pyqt. Каким образом можно построить схемы в pyqt? Какие есть более менее готовые инструменты, чтобы не сильно заморачиваться и не сутками разбираться. Буду рад ссылкам и примерам_)

 , , , ,

wojaovlad
()

PyQt окна

Доброго времени. Как в PyQt реализуются связи между окнами? Передача даных их полей, получение события закртия дчернего окна? В сулчае если оба окна это разные классы, т.е. в QTdesigner созданные два разных ui файла. Наверное можно перефразировтаь вопрос так: как между классами реализуется передача значений переменных?

 , ,

wojaovlad
()

Вызов функции из другого класса

Доброго времени. Есть два класса. Во втором классе вызываю функцию первого класса, которая использует переменные из других функций первого класса. Мне выдаёт ошибку что не видит таких переменных:

AttributeError: 'Ui_Dialog_cards' object has no attribute 'lol' 

Вот так вызываю в функции closeEvent во втором классе:

class second_window(QtGui.QWidget, Ui_Card_dialog):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.setupUi(self)
        self.dialog_cards = Ui_Dialog_cards()
    def show_edit_window(self):
        self.show()
    def closeEvent(self, event):
        print "close"
        self.dialog_cards.test_print()

 , , ,

wojaovlad
()

pyqt дочерние окна

Не могу ничего найти толкового. Хочу сделать в pyqt чтобы по нажатию кнопки в форме, открылась другая форма дочерняя. Вот для этого создал два ui1.py и ui2.py И вот как тепер мне сделать чтобы открылась ui2 из ui1? Пробовал импортировать, делать show() для класса формы, брал советы из форумов, ничего не получается( должен же быть какой-нибудь простой действенный способ. Подскажите добрые люди, пожалуйста_)

Дочерняя форма:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'edit_cards.ui'
#
# Created: Sun Apr 12 21:42:11 2015
#      by: PyQt4 UI code generator 4.9.1
#
# WARNING! All changes made in this file will be lost!

import os
import sys
import sqlite3 as db
from PyQt4 import QtCore, QtGui, QtSql
from PyQt4.QtCore import QStringList, QString
from PyQt4.QtGui  import QApplication, QMainWindow, QSizePolicy
from PyQt4.QtGui  import QTableWidget, QTableWidgetItem
import re

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_Card_dialog(object):
    def setupUi(self, Card_dialog):
        Card_dialog.setObjectName(_fromUtf8("Card_dialog"))
        Card_dialog.resize(370, 577)
        Card_dialog.setLocale(QtCore.QLocale(QtCore.QLocale.Russian, QtCore.QLocale.RussianFederation))
        self.verticalLayout = QtGui.QVBoxLayout(Card_dialog)
        self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
        self.label = QtGui.QLabel(Card_dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label.setFont(font)
        self.label.setObjectName(_fromUtf8("label"))
        self.verticalLayout.addWidget(self.label)
        self.manufac_lineEdit = QtGui.QLineEdit(Card_dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.manufac_lineEdit.setFont(font)
        self.manufac_lineEdit.setObjectName(_fromUtf8("manufac_lineEdit"))
        self.verticalLayout.addWidget(self.manufac_lineEdit)
        self.label_2 = QtGui.QLabel(Card_dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_2.setFont(font)
        self.label_2.setObjectName(_fromUtf8("label_2"))
        self.verticalLayout.addWidget(self.label_2)
        self.name_lineEdit = QtGui.QLineEdit(Card_dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.name_lineEdit.setFont(font)
        self.name_lineEdit.setObjectName(_fromUtf8("name_lineEdit"))
        self.verticalLayout.addWidget(self.name_lineEdit)
        self.label_3 = QtGui.QLabel(Card_dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_3.setFont(font)
        self.label_3.setObjectName(_fromUtf8("label_3"))
        self.verticalLayout.addWidget(self.label_3)
        self.unit_comboBox = QtGui.QComboBox(Card_dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.unit_comboBox.setFont(font)
        self.unit_comboBox.setObjectName(_fromUtf8("unit_comboBox"))
        self.unit_comboBox.addItem(_fromUtf8(""))
        self.unit_comboBox.addItem(_fromUtf8(""))
        self.unit_comboBox.addItem(_fromUtf8(""))
        self.unit_comboBox.addItem(_fromUtf8(""))
        self.unit_comboBox.addItem(_fromUtf8(""))
        self.unit_comboBox.addItem(_fromUtf8(""))
        self.verticalLayout.addWidget(self.unit_comboBox)
        self.label_4 = QtGui.QLabel(Card_dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_4.setFont(font)
        self.label_4.setObjectName(_fromUtf8("label_4"))
        self.verticalLayout.addWidget(self.label_4)
        self.NDS_comboBox = QtGui.QComboBox(Card_dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.NDS_comboBox.setFont(font)
        self.NDS_comboBox.setObjectName(_fromUtf8("NDS_comboBox"))
        self.NDS_comboBox.addItem(_fromUtf8(""))
        self.NDS_comboBox.addItem(_fromUtf8(""))
        self.NDS_comboBox.addItem(_fromUtf8(""))
        self.verticalLayout.addWidget(self.NDS_comboBox)
        self.label_6 = QtGui.QLabel(Card_dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_6.setFont(font)
        self.label_6.setObjectName(_fromUtf8("label_6"))
        self.verticalLayout.addWidget(self.label_6)
        self.RU_lineEdit = QtGui.QLineEdit(Card_dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.RU_lineEdit.setFont(font)
        self.RU_lineEdit.setObjectName(_fromUtf8("RU_lineEdit"))
        self.verticalLayout.addWidget(self.RU_lineEdit)
        self.label_5 = QtGui.QLabel(Card_dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_5.setFont(font)
        self.label_5.setObjectName(_fromUtf8("label_5"))
        self.verticalLayout.addWidget(self.label_5)
        self.calendarWidget = QtGui.QCalendarWidget(Card_dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.calendarWidget.setFont(font)
        self.calendarWidget.setObjectName(_fromUtf8("calendarWidget"))
        self.verticalLayout.addWidget(self.calendarWidget)

        self.retranslateUi(Card_dialog)
        QtCore.QMetaObject.connectSlotsByName(Card_dialog)

    def retranslateUi(self, Card_dialog):
        Card_dialog.setWindowTitle(QtGui.QApplication.translate("Card_dialog", "Карточка товара", None, QtGui.QApplication.UnicodeUTF8))
        self.label.setText(QtGui.QApplication.translate("Card_dialog", "Прозводитель", None, QtGui.QApplication.UnicodeUTF8))
        self.label_2.setText(QtGui.QApplication.translate("Card_dialog", "Наименование", None, QtGui.QApplication.UnicodeUTF8))
        self.label_3.setText(QtGui.QApplication.translate("Card_dialog", "Единица измерения", None, QtGui.QApplication.UnicodeUTF8))
        self.unit_comboBox.setItemText(0, QtGui.QApplication.translate("Card_dialog", "Упаковка", None, QtGui.QApplication.UnicodeUTF8))
        self.unit_comboBox.setItemText(1, QtGui.QApplication.translate("Card_dialog", "Килограммы", None, QtGui.QApplication.UnicodeUTF8))
        self.unit_comboBox.setItemText(2, QtGui.QApplication.translate("Card_dialog", "Штуки", None, QtGui.QApplication.UnicodeUTF8))
        self.unit_comboBox.setItemText(3, QtGui.QApplication.translate("Card_dialog", "Литры", None, QtGui.QApplication.UnicodeUTF8))
        self.unit_comboBox.setItemText(4, QtGui.QApplication.translate("Card_dialog", "Наборы", None, QtGui.QApplication.UnicodeUTF8))
        self.unit_comboBox.setItemText(5, QtGui.QApplication.translate("Card_dialog", "Флаконы", None, QtGui.QApplication.UnicodeUTF8))
        self.label_4.setText(QtGui.QApplication.translate("Card_dialog", "Ставка НДС", None, QtGui.QApplication.UnicodeUTF8))
        self.NDS_comboBox.setItemText(0, QtGui.QApplication.translate("Card_dialog", "10", None, QtGui.QApplication.UnicodeUTF8))
        self.NDS_comboBox.setItemText(1, QtGui.QApplication.translate("Card_dialog", "18", None, QtGui.QApplication.UnicodeUTF8))
        self.NDS_comboBox.setItemText(2, QtGui.QApplication.translate("Card_dialog", "Без НДС", None, QtGui.QApplication.UnicodeUTF8))
        self.label_6.setText(QtGui.QApplication.translate("Card_dialog", "№ РУ", None, QtGui.QApplication.UnicodeUTF8))
        self.label_5.setText(QtGui.QApplication.translate("Card_dialog", "Дата окнчания РУ", None, QtGui.QApplication.UnicodeUTF8))

def show_me():
        window = Ui_Card_dialog()
        window.show()
        return window

#if __name__ == "__main__":
#    app = QtGui.QApplication(sys.argv)
#    Form = QtGui.QWidget()
#    ex = Ui_Card_dialog()
#    ex.setupUi(Form)
#    Form.show()
#    app.exec_()

Главная форма:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'table_cards.ui'
#
# Created: Sun Apr 12 21:42:36 2015
#      by: PyQt4 UI code generator 4.9.1
#
# WARNING! All changes made in this file will be lost!

import os
import sys
import sqlite3 as db
from PyQt4 import QtCore, QtGui, QtSql
from PyQt4.QtCore import QStringList, QString
from PyQt4.QtGui  import QApplication, QMainWindow, QSizePolicy
from PyQt4.QtGui  import QTableWidget, QTableWidgetItem
import re
import edit_cards

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_Dialog_cards(object):
    def setupUi(self, Dialog_cards):
        Dialog_cards.setObjectName(_fromUtf8("Dialog_cards"))
        Dialog_cards.resize(826, 518)
        self.gridLayout = QtGui.QGridLayout(Dialog_cards)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.tableWidget_cards = QtGui.QTableWidget(Dialog_cards)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.tableWidget_cards.setFont(font)
        self.tableWidget_cards.setObjectName(_fromUtf8("tableWidget_cards"))
        self.tableWidget_cards.setColumnCount(0)
        self.tableWidget_cards.setRowCount(0)
        self.gridLayout.addWidget(self.tableWidget_cards, 0, 0, 1, 3)
        self.Change_Button = QtGui.QPushButton(Dialog_cards)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.Change_Button.setFont(font)
        self.Change_Button.setObjectName(_fromUtf8("Change_Button"))
        self.gridLayout.addWidget(self.Change_Button, 2, 0, 1, 1)
        self.Delete_Button = QtGui.QPushButton(Dialog_cards)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.Delete_Button.setFont(font)
        self.Delete_Button.setObjectName(_fromUtf8("Delete_Button"))
        self.gridLayout.addWidget(self.Delete_Button, 2, 1, 1, 1)
        self.Close_Button = QtGui.QPushButton(Dialog_cards)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.Close_Button.setFont(font)
        self.Close_Button.setObjectName(_fromUtf8("Close_Button"))
        self.gridLayout.addWidget(self.Close_Button, 2, 2, 1, 1)

        self.retranslateUi(Dialog_cards)
        QtCore.QMetaObject.connectSlotsByName(Dialog_cards)

    def retranslateUi(self, Dialog_cards):
        Dialog_cards.setWindowTitle(QtGui.QApplication.translate("Dialog_cards", "Товары", None, QtGui.QApplication.UnicodeUTF8))
        self.Change_Button.setText(QtGui.QApplication.translate("Dialog_cards", "Изменить товар", None, QtGui.QApplication.UnicodeUTF8))
        QtCore.QObject.connect(self.Change_Button, QtCore.SIGNAL('clicked()'), self.show_edit_window)
        self.Delete_Button.setText(QtGui.QApplication.translate("Dialog_cards", "Удалить товар", None, QtGui.QApplication.UnicodeUTF8))
        self.Close_Button.setText(QtGui.QApplication.translate("Dialog_cards", "Закрыть", None, QtGui.QApplication.UnicodeUTF8))

    def show_edit_window(self):
        import edit_cards
        print 'lol'
        edit_cards.show_me()

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    Form = QtGui.QWidget()
    ex = Ui_Dialog_cards()
    ex.setupUi(Form)
    Form.show()
    app.exec_()

 , , ,

wojaovlad
()

PyQt table.Widget SQLite

Доброго времени. Как можно реализовать на pyqt вывод данных из sqlite в table.widget. Я сделал заполение полей через цикл. А вот как удалить выбранную запись из бд. Я хотел по id которое присваевается через autoincrement, но из-за того что после удаления номера строк в таблице не совпадают с id, удаляется не то что надо. Может есть какое-то готовое решение по работе с бд в pyqt и выводе в таблицу? Или какой алгоритм обычно используют в таких случаях?

 , ,

wojaovlad
()

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