little optimisation

This commit is contained in:
Dmitriy Yefremov
2018-03-13 10:42:56 +03:00
parent d7635370ba
commit 47df44c202
3 changed files with 13 additions and 11 deletions

View File

@@ -2,8 +2,11 @@
For more info see __COMMENT
"""
from functools import lru_cache
from xml.dom.minidom import parse, Document
import os
from .ecommons import POLARIZATION, FEC, SYSTEM, MODULATION, PLS_MODE, Transponder, Satellite, get_key_by_value
__COMMENT = (" File was created in DemonEditor\n\n"
@@ -29,7 +32,7 @@ __COMMENT = (" File was created in DemonEditor\n\n"
def get_satellites(path):
return parse_satellites(path)
return parse_satellites(path, os.path.getsize(path))
def write_satellites(satellites, data_path):
@@ -98,7 +101,8 @@ def parse_sat(elem):
parse_transponders(elem))
def parse_satellites(path):
@lru_cache(maxsize=1)
def parse_satellites(path, file_size):
""" Parsing satellites from xml"""
dom = parse(path)
satellites = []

View File

@@ -1,7 +1,6 @@
""" Common module for showing dialogs """
import locale
from enum import Enum
from functools import lru_cache
from app.commons import run_idle
from . import Gtk, UI_RESOURCES_PATH, TEXT_DOMAIN
@@ -57,7 +56,7 @@ def show_dialog(dialog_type: DialogType, transient, text=None, options=None, act
path = path + "/"
response = path
dialog.hide()
dialog.destroy()
return response
@@ -66,25 +65,25 @@ def show_dialog(dialog_type: DialogType, transient, text=None, options=None, act
entry.set_text(text if text else "")
response = dialog.run()
txt = entry.get_text()
dialog.hide()
dialog.destroy()
return txt if response == Gtk.ResponseType.OK else Gtk.ResponseType.CANCEL
if text:
dialog.set_markup(get_message(text))
response = dialog.run()
dialog.hide()
dialog.destroy()
return response
@lru_cache(maxsize=10)
def get_dialog_from_xml(dialog_type, transient):
builder = Gtk.Builder()
builder.set_translation_domain(TEXT_DOMAIN)
builder.add_from_file(UI_RESOURCES_PATH + "dialogs.glade")
builder.add_objects_from_file(UI_RESOURCES_PATH + "dialogs.glade", (dialog_type.value,))
dialog = builder.get_object(dialog_type.value)
dialog.set_transient_for(transient)
return builder, dialog
@@ -92,6 +91,7 @@ def get_chooser_dialog(transient, options, pattern, name):
file_filter = Gtk.FileFilter()
file_filter.add_pattern(pattern)
file_filter.set_name(name)
return show_dialog(dialog_type=DialogType.CHOOSER,
transient=transient,
options=options,

View File

@@ -1,14 +1,13 @@
import re
from functools import lru_cache
from app.commons import run_idle
from app.eparser import Service, get_satellites
from app.eparser.ecommons import MODULATION, Inversion, ROLL_OFF, Pilot, Flag, Pids, POLARIZATION, \
get_key_by_value, get_value_by_name, FEC_DEFAULT, PLS_MODE
from app.properties import Profile
from . import Gtk, Gdk, UI_RESOURCES_PATH, HIDE_ICON, TEXT_DOMAIN
from .dialogs import show_dialog, DialogType, Action
from .main_helper import get_base_model
from . import Gtk, Gdk, UI_RESOURCES_PATH, HIDE_ICON, TEXT_DOMAIN
class ServiceDetailsDialog:
@@ -259,7 +258,6 @@ class ServiceDetailsDialog:
model.append((pos,))
self.select_active_text(self._sat_pos_combo_box, sat_pos)
@lru_cache(maxsize=1)
def get_sat_positions(self, path):
try:
return ["{:.1f}".format(float(x.position) / 10) for x in get_satellites(path)]