Add annotations

- Add a gtk/types modules
- Add a gtk/const module to prevent circular imports
This commit is contained in:
Philipp Hörist 2018-09-21 15:45:42 +02:00
parent 4aca59051f
commit 95bd86320b
3 changed files with 48 additions and 8 deletions

19
gajim/gtk/const.py Normal file
View File

@ -0,0 +1,19 @@
# This file is part of Gajim.
#
# Gajim is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published
# by the Free Software Foundation; version 3 only.
#
# Gajim is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Gajim. If not, see <http://www.gnu.org/licenses/>.
# Constants for the gtk module
from collections import namedtuple
Filter = namedtuple('Filter', 'name pattern default')

View File

@ -18,7 +18,6 @@
import os
import sys
from pathlib import Path
from collections import namedtuple
from gi.repository import Gtk
from gi.repository import GdkPixbuf
@ -26,11 +25,11 @@ from gi.repository import GObject
from gajim.common import app
from gajim.common.i18n import _
Filter = namedtuple('Filter', 'name pattern default')
from gajim.gtk.const import Filter
from gajim.gtk.types import FilterList # pylint: disable=unused-import
def _require_native():
def _require_native() -> bool:
if app.is_flatpak():
return True
if sys.platform in ('win32', 'darwin'):
@ -85,7 +84,7 @@ class BaseFileChooser:
class BaseFileOpenDialog:
_title = _('Choose File to Send…')
_filters = [Filter(_('All files'), '*', True)]
_filters = [Filter(_('All files'), '*', True)] # type: FilterList
class BaseAvatarChooserDialog:
@ -96,7 +95,7 @@ class BaseAvatarChooserDialog:
if _require_native():
_filters = [Filter(_('PNG files'), '*.png', True),
Filter(_('JPEG files'), '*.jp*g', False),
Filter(_('SVG files'), '*.svg', False)]
Filter(_('SVG files'), '*.svg', False)] # type: FilterList
else:
_filters = [Filter(_('Images'), ['image/png',
'image/jpeg',
@ -106,7 +105,7 @@ class BaseAvatarChooserDialog:
class NativeFileChooserDialog(Gtk.FileChooserNative, BaseFileChooser):
_title = ''
_filters = []
_filters = [] # type: FilterList
_action = Gtk.FileChooserAction.OPEN
def __init__(self, accept_cb, cancel_cb=None, transient_for=None,
@ -161,7 +160,7 @@ class NativeAvatarChooserDialog(BaseAvatarChooserDialog, NativeFileChooserDialog
class GtkFileChooserDialog(Gtk.FileChooserDialog, BaseFileChooser):
_title = ''
_filters = []
_filters = [] # type: FilterList
_action = Gtk.FileChooserAction.OPEN
_preivew_size = (200, 200)

22
gajim/gtk/types.py Normal file
View File

@ -0,0 +1,22 @@
# This file is part of Gajim.
#
# Gajim is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published
# by the Free Software Foundation; version 3 only.
#
# Gajim is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Gajim. If not, see <http://www.gnu.org/licenses/>.
# Types for typechecking
from typing import ClassVar
from typing import List
from gajim.gtk.const import Filter
FilterList = ClassVar[List[Filter]]