LINUX.ORG.RU

Сообщения IPR

 

Надавайте по рукам

Форум — Development

Шалом.

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

from tkinter import *
from tkinter.constants import *
from googletrans import Translator

RootWindow = Tk()
RootWindow.title('Переводчик')

TextToTranslate = Text(RootWindow, width=40, height=10)
TranslatedText = Text(RootWindow, width=40, height=10)

TranslationButton = Button(RootWindow, text='Перевести')
ExitButton = Button(RootWindow, text='Выход', command=RootWindow.destroy)

LangSrcList = ['ru','en']
LangDestList = LangSrcList.copy()

LangSrcVar = StringVar(RootWindow)
LangSrcVar.set(LangSrcList[0])

LangDestVar = StringVar(RootWindow)
LangDestVar.set(LangDestList[1])

LangSrcMenu = OptionMenu(RootWindow, LangSrcVar, *LangSrcList)
LangDestMenu = OptionMenu(RootWindow, LangDestVar, *LangDestList)

TranslatorObject = Translator()

def TranslatorFunc(text):
	TranslatedText.delete(1.0, END)
	TranslationText = TextToTranslate.get(1.0, END)
	TranslationText = TranslatorObject.translate(TranslationText, src=LangSrcVar.get(), dest=LangDestVar.get()).text
	TranslatedText.insert(1.0, TranslationText)

TranslationButton.bind('<Button-1>', TranslatorFunc)

TextToTranslate.pack()
TranslatedText.pack()

TranslationButton.pack(side=LEFT)
ExitButton.pack(side=RIGHT)

LangSrcMenu.pack(side=LEFT, expand=True)
LangDestMenu.pack(side=RIGHT, expand=True)

RootWindow.mainloop()
Заранее благодарю за истязания.

 , , ,

IPR
()

__new__ и __del__

Форум — Development

Шалом.
Как известно, __init__ не возвращает ничего, кроме None, поэтому использую __new__, дабы возвращать при инициализации экземпляра _io.TextIOWrapper. После отработки сборщик мусора почему-то не закрывает файл, даже при явно прописанном del myfile.

class file:
	def __new__(self, filename):
		self.openfile = open(filename, 'r')
		return self.openfile
		
	def __del__(self):
		print('File', filename, ' closes.')
		self.openfile.close()

	def read(filename):
		for filestr in filename:
			print(filestr)

myfile = file(r'/etc/rc.conf')
print(type(myfile))
file.read(myfile)
del myfile


Подскажите, пожалуйста, почему так происходит? Есть другой пример с __init__, в котором всё отрабатывает как надо:

# class
class Awesome:

    # the init method
    def __init__(self, filename):

        print("Inside the __init__ method.")

        # open file
        self.fobj = open(filename, "w")

    # method
    def writeContent(self, data):

        print("Inside the writeContent method.")

        # write the data
        self.fobj.write(data)

    # the del method
    def __del__(self):

        print("Inside the __del__ method.")

        # close file
        self.fobj.close()

# object
obj = Awesome("helloworld.txt")
obj.writeContent("Hello World")

 

IPR
()

Чем заменить многократные elif

Форум — Development

Шалом.

Сабж, собственно. Изучаю python и хочу узнать, можно ли более красиво и правильно сделать сие:

if  p7 >= 12 and p7 <= 33:
    p8="ССВ"
elif  p7 >= 34 and p7 <= 56:
    p8="СВ"
elif  p7 >= 57 and p7 <= 78:
    p8="ВСВ"
elif  p7 >= 79 and p7 <= 101:
    p8="В"
elif  p7 >= 102 and p7 <= 123:
    p8="ВЮВ"
elif  p7 >= 124 and p7 <= 146:
    p8="ЮВ"
elif  p7 >= 147 and p7 <= 168:
    p8="ЮЮВ"
elif  p7 >= 169 and p7 <= 191:
    p8="Ю"
elif  p7 >= 192 and p7 <= 213:
    p8="ЮЮЗ"
elif  p7 >= 214 and p7 <= 236:
    p8="ЮЗ"
elif  p7 >= 237 and p7 <= 258:
    p8="ЗЮЗ"
elif  p7 >= 259 and p7 <= 281:
    p8="З"
elif  p7 >= 282 and p7 <= 303:
    p8="ЗСЗ"
elif  p7 >= 304 and p7 <= 326:
    p8="СЗ"
elif  p7 >= 327 and p7 <= 348:
    p8="ССЗ"
elif  p7 >= 349 and p7 <= 360:
    p8="С"
elif  p7 >= 0 and p7 <= 11:
    p8="С"
else:
    p8="???"

Заранее благодарю за ответ.
//Вышеприведенное переводит градусы в направление ветра.

 , ,

IPR
()

Посоветуйте шрифт для интерфейса

Форум — Talks

Шалом.

Сабж, моноширинный нужен. Удобный для восприятия, с кириллицей. Желательно pcf. И такой, чтобы строгий, чтоб смотришь в интерфейс, а там вся эпичность интерфейсов военно-космической техники, чтоб как у хакера, чтоб девушки текли при виде моего fluxbox'а.

Заранее благодарю.

P.S.: Терминус приелся.

 

IPR
()

Есть ли тут разработчики Trinity?

Форум — Talks

Всем привет, сабж.
Нужно будет в будущем залить переводы на их git, пользоваться git'ом не умею. Как это правильнее сделать?
Заранее благодарю за ответ.

 , , ,

IPR
()

poedit выдаёт исключение на некоторых файлах

Форум — General

Шалом.

Сабж собственно. Вот пример https://dropmefiles.com/gK5Ul файла.

Произошло непредвиденное исключение: cxxrt::bad_alloc
Собственно в самом файле ничего криминального не увидел.

Помогите, плиз.

 , ,

IPR
()

Плавное и безболезненное завершение работы браузера

Форум — General

Шалом, котаны.

Есть у меня скрипт для завершения работы, кому интересно https://ideone.com/PvS29T При наглом отключении (halt -p и reboot'е) браузер не восстанавливает сессию при следующем включении. Грустно. Как более корректно завершать работу таких приложений (чувствительных к сохранению данных)?

Заранее благодарю за ответ.

 , , ,

IPR
()

Кто-нибудь пользуется Trinity DE?

Форум — Talks

Шалом, сабж.
Имеется ввиду использования на серьёзных щщах, повседневно. Удалось собрать под FreeBSD всё, кроме tdegraphics и tdesdk (tdevelop и tdewebdev зависят от tdesdk), но это вопрос времени.

Думаю использовать, но местами есть недоперевод и ошибки перевода, в свободное время исправляю. Поэтому и хотелось бы знать, заливать перевод им обратно или это нафиг никому не упёрлось?

 , , ,

IPR
()

Философии и нытья тред

Форум — Talks

Шалом.
Дописался до пяти звёзд. 14 лет на ЛОРе. Были ещё аккаунты, но этот первый. Первый пароль на диалап, посему и вспомнил, когда нужно стало.
Но дело не в звёздах, дело во времени. 14 лет - срок регистрации, а для кого-то целая жизнь.
Время - безжалостная сука.

 , ,

IPR
()

Независимое меню приложений

Форум — General

Шалом.

Существует ли в природе независимое меню, чтоб настраиваемое и чтоб не rofi. B чтоб с поиском. И не Qt.

Заранее благодарю за ответ.

// rofi не хочу из-за жирноты и тормознутости.

 ,

IPR
()

Эмулятор терминала с особыми функциями

Форум — General

Всем шалом.

Интересует сабж, который умел бы выпадающие списки, переход по url и директориям, etc. Желательно не Qt и чтобы в портах ФрееБЗД был.

Заранее благодарю за ответ.

 ,

IPR
()

Русские символы меньше английских

Форум — General

Добрый вечор!

Включил 70-yes-bitmaps.conf, в .config/gtk-3.0/settings.ini прописал Terminus 12, но русские символы при этом отображаются размером 8, английские - 12. Проблема замечена в Firefox. Другие GTK3-приложения отображают нормально.

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

P.S.: Гугл не помог. Мучения с fonts.conf тоже.

 , ,

IPR
()

Сглаживание на Terminus TTF Bold

Форум — General

Всем привет.

Вопрос в следующем: как отключить любые действия по сглаживанию и прочим поскудным манипуляциям для terminus ttf bold? Именно для жирного и именно для terminus ttf.

Заранее благодарю за ответ.

P.S.: Дело в том, что в FF он ужасно размазывается и выглядит как сами знаете что.

 , , ,

IPR
()

Вопрос к специалистам по ACPI

Форум — General

Добрый вечор.

В dmesg'е выпадает следующее:

Firmware Warning (ACPI): 32/64X length mismatch in FADT/Pm1aEventBlock: 32/16 (20181003/tbfadt-748)
Firmware Warning (ACPI): 32/64X length mismatch in FADT/PmTimerBlock: 32/24 (20181003/tbfadt-748)
Firmware Warning (ACPI): Invalid length for FADT/Pm1aEventBlock: 16, using default 32 (20181003/tbfadt-850)
Firmware Warning (ACPI): Invalid length for FADT/PmTimerBlock: 24, using default 32 (20181003/tbfadt-850)

Понимаю, что ничего страшного, однако, подскажите пожалуйста, почему так?

Заранее благодарю за ответ.

 , , ,

IPR
()

GeoIP2 tool

Форум — General

Добрый вечор.

Вопрос в следующем: куда делась, как ныне называется утилита, которая возвращала город/страну по ip-адресу?

Заранее благодарю за ответ.

 , , tool

IPR
()

Вопрос по Samba и шарам

Форум — General

Шалом.

Правильно ли я понимаю, что последние версии самбы не заточены под создание банальных шар? Если да, то чем можно заменить для создания оных именно на smb?

Заранее благодарю.

 ,

IPR
()

Подскажите по polybar

Форум — General

Всем шалом.

Вопрос в следующем: умеет ли polybar в две строки? Без разницы, каждым отдельным виджетом или в целом.

Заранее благодарю.

 , , не умею в теги

IPR
()

Что можно улучшить в данном скрипте?

Форум — Development

Шалом.

Сабж. Может что-то можно оптимизировать (для скорости работы, удобства чтения и ПРАВИЛЬНОСТИ)?

#!/bin/sh

# CPUs
getstat_core_temp_separator="/"
getstat_core_temp_suffix="°C"

# Battery
getstat_battery_state_charging="заряжается"
getstat_battery_state_discharging="разряжается"
getstat_battery_state_charged="заряжена"
getstat_battery_state_missing="отсутсвует"
getstat_battery_state_unknown="ошибка"


getstat_sysctl="sysctl -n"
getstat_arg_n="$#"

getstat_core_temperature() {
    getstat_core_n="`${getstat_sysctl} hw.ncpu`"
    while [ ! "$getstat_core_n" -eq "0" ] ; do
	getstat_core_n="$(( ${getstat_core_n} - 1 ))"
	getstat_core_temp="`${getstat_sysctl} dev.cpu.${getstat_core_n}.temperature`"
	getstat_core_temp="`printf "${getstat_core_temp}" | cut -d, -f1`"
	printf "${getstat_core_temp}${getstat_core_temp_suffix}"
	[ "$getstat_core_n" -ge "1" ] && printf "${getstat_core_temp_separator}"
    done
}

getstat_memory_total() {
    getstat_memory_page_size="`${getstat_sysctl} vm.stats.vm.v_page_size`"
    getstat_memory_page_count="`${getstat_sysctl} vm.stats.vm.v_page_count`"
    getstat_memory_total="$(( ${getstat_memory_page_count} * ${getstat_memory_page_size} / 1048576 ))"
    printf "${getstat_memory_total}"
}

getstat_memory_used() {
    getstat_memory_page_size="`${getstat_sysctl} vm.stats.vm.v_page_size`"
    getstat_memory_page_wire="`${getstat_sysctl} vm.stats.vm.v_wire_count`"
    getstat_memory_page_active="`${getstat_sysctl} vm.stats.vm.v_active_count`"
    getstat_memory_used="$(( (${getstat_memory_page_wire} + ${getstat_memory_page_active}) * \
${getstat_memory_page_size} / 1048576 ))"
    printf "${getstat_memory_used}"
}

getstat_memory_free() {
    getstat_memory_free="$(( `getstat_memory_total` - `getstat_memory_used` ))"
    printf "${getstat_memory_free}"
}

getstat_battery_state() {
    getstat_battery_state="`${getstat_sysctl} hw.acpi.battery.state`"
    if [ "$getstat_battery_state" -eq "2" ] ; then
	getstat_battery_state="${getstat_battery_state_charging:=charging}"
    elif [ "$getstat_battery_state" -eq "1" ] ; then
	getstat_battery_state="${getstat_battery_state_discharging:=discharging}"
    elif [ "$getstat_battery_state" -eq "0" ] ; then
	getstat_battery_state="${getstat_battery_state_charged:=charged}"
    elif [ "$getstat_battery_state" -eq "-1" ] ; then
	getstat_battery_state="${getstat_battery_state_missing:=missing}"
    else
	getstat_battery_state="${getstat_battery_state_unknown:=unknown}"
    fi
    printf "${getstat_battery_state}"
}

getstat_battery_life() {
    getstat_battery_life="`${getstat_sysctl} hw.acpi.battery.life`"
    printf "${getstat_battery_life}"
}

while [ "$getstat_arg_n" -ne "0" ] ; do
    getstat_arg_n="$(( ${getstat_arg_n} - 1 ))"
    case ${1} in
	-ct)	getstat_out="${getstat_out} `getstat_core_temperature`" ;;
	-mt)	getstat_out="${getstat_out} `getstat_memory_total`" ;;
	-mu)	getstat_out="${getstat_out} `getstat_memory_used`" ;;
	-mf)	getstat_out="${getstat_out} `getstat_memory_free`" ;;
	-bs)	getstat_out="${getstat_out} `getstat_battery_state`" ;;
	-bl)	getstat_out="${getstat_out} `getstat_battery_life`" ;;
	*)	getstat_out="${getstat_out} `printf "${1}"`" ;;
    esac
    shift
done

echo ${getstat_out}


// Это не конец, будет больше отдавать.

Интересует улучшение конструкции обработки параметров в первую очередь.

Заранее благодарю.

 , devel, ,

IPR
()

Просьба для тех, у кого FreeBSD

Форум — General

Всем привет

У кого есть FreeBSD, скиньте, пожалуйста, сюда (в теге code) выхлоп kenv. Ну или на какой-нить pastebin.

Заранее благодарю.

 , kenv

IPR
()

А существует ли в природе...

Форум — Talks

...какая-нибудь легковесная утилита/скрипт, которая умеет только git clone? Чтобы не тащить весь git. Исключительно из соображения экономии места.

 , , git clone

IPR
()

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