From 8ec9f68131ff3ff6f3dab3af5f27fa25e6d66f45 Mon Sep 17 00:00:00 2001
From: emkael <emkael@tlen.pl>
Date: Thu, 2 Jan 2020 00:55:55 +0100
Subject: Adjustments to the result info client model to make it usable with
 PyInstaller

---
 jfr_playoff/data/info.py                | 15 +++++----------
 jfr_playoff/data/match/__init__.py      |  7 +++++++
 jfr_playoff/data/tournament/__init__.py |  7 +++++++
 3 files changed, 19 insertions(+), 10 deletions(-)

(limited to 'jfr_playoff')

diff --git a/jfr_playoff/data/info.py b/jfr_playoff/data/info.py
index 342a878..55cc926 100644
--- a/jfr_playoff/data/info.py
+++ b/jfr_playoff/data/info.py
@@ -1,7 +1,5 @@
 import copy
-import glob
 import inspect
-from os.path import dirname, basename, isfile, join
 from urlparse import urljoin
 
 from jfr_playoff.dto import Match, Team
@@ -35,14 +33,11 @@ class ResultInfo(object):
     @property
     def _client_classes(self):
         module = __import__(self.submodule_path, fromlist=[''])
-        for f in glob.glob(join(dirname(module.__file__), "*.py")):
-            if isfile(f) and not f.endswith('__init__.py'):
-                submodule_name = basename(f)[:-3]
-                submodule_path = self.submodule_path + '.' + submodule_name
-                submodule = __import__(submodule_path, fromlist=[''])
-                for member in inspect.getmembers(submodule, inspect.isclass):
-                    if member[1].__module__ == submodule_path:
-                        yield member[1]
+        for submodule_path in module.CLIENTS:
+            submodule = __import__(submodule_path, fromlist=[''])
+            for member in inspect.getmembers(submodule, inspect.isclass):
+                if member[1].__module__ == submodule_path:
+                    yield member[1]
 
     def _fill_client_list(self, *args):
         all_clients = [c(*args) for c in self._client_classes]
diff --git a/jfr_playoff/data/match/__init__.py b/jfr_playoff/data/match/__init__.py
index 6137078..b397be6 100644
--- a/jfr_playoff/data/match/__init__.py
+++ b/jfr_playoff/data/match/__init__.py
@@ -13,3 +13,10 @@ class MatchInfoClient(ResultInfoClient):
 
     def running_link(self):
         raise NotImplementedError
+
+
+CLIENTS = [
+    'jfr_playoff.data.match.jfrdb',
+    'jfr_playoff.data.match.jfrhtml',
+    'jfr_playoff.data.match.tcjson'
+]
diff --git a/jfr_playoff/data/tournament/__init__.py b/jfr_playoff/data/tournament/__init__.py
index 792f634..996a399 100644
--- a/jfr_playoff/data/tournament/__init__.py
+++ b/jfr_playoff/data/tournament/__init__.py
@@ -10,3 +10,10 @@ class TournamentInfoClient(ResultInfoClient):
 
     def get_tournament_results(self):
         raise NotImplementedError
+
+
+CLIENTS = [
+    'jfr_playoff.data.tournament.jfrdb',
+    'jfr_playoff.data.tournament.jfrhtml',
+    'jfr_playoff.data.tournament.tcjson'
+]
-- 
cgit v1.2.3