Skip to content

Commit

Permalink
remove singleton
Browse files Browse the repository at this point in the history
  • Loading branch information
ponty committed Jan 22, 2014
1 parent f5bdf59 commit 069fd05
Show file tree
Hide file tree
Showing 9 changed files with 41 additions and 42 deletions.
27 changes: 21 additions & 6 deletions pyscreenshot/__init__.py
@@ -1,15 +1,25 @@
from easyprocess import EasyProcess
from pyscreenshot.backendloader import BackendLoader
from PIL import Image
from easyprocess import EasyProcess
import logging
import tempfile
from pyscreenshot.loader import BackendLoader
import sys
import tempfile


__version__ = '0.3.2'
__version__ = '0.3.3'

log = logging.getLogger(__name__)
log.debug('version=' + __version__)

BACKEND_LOADER = None


def _get_loader():
global BACKEND_LOADER
if not BACKEND_LOADER:
BACKEND_LOADER = BackendLoader()
return BACKEND_LOADER


def _grab(to_file, childprocess=False, backend=None, bbox=None, filename=None):
if childprocess:
Expand Down Expand Up @@ -37,8 +47,8 @@ def _grab(to_file, childprocess=False, backend=None, bbox=None, filename=None):
return im
else:
if backend:
BackendLoader().force(backend)
backend_obj = BackendLoader().selected()
_get_loader().force(backend)
backend_obj = _get_loader().selected()

if to_file:
return backend_obj.grab_to_file(filename)
Expand Down Expand Up @@ -70,3 +80,8 @@ def grab_to_file(filename, childprocess=False, backend=None):
"""
return _grab(to_file=True, childprocess=childprocess, backend=backend, filename=filename)


def backends():
'''Back-end names as a list'''
return _get_loader().all_names
7 changes: 0 additions & 7 deletions pyscreenshot/backendloader.py

This file was deleted.

6 changes: 3 additions & 3 deletions pyscreenshot/check/speedtest.py
@@ -1,6 +1,6 @@
from entrypoint2 import entrypoint
from pyscreenshot.backendloader import BackendLoader
from pyscreenshot.loader import PluginLoaderError
from pyscreenshot.loader import BackendLoader
from pyscreenshot.loader import BackendLoaderError
import pyscreenshot
import tempfile
import time
Expand Down Expand Up @@ -34,7 +34,7 @@ def run_all(n, to_file, bbox=None):
try:
run(x, n, to_file, bbox)
# print 'grabbing by '+x
except PluginLoaderError as e:
except BackendLoaderError as e:
print e


Expand Down
4 changes: 2 additions & 2 deletions pyscreenshot/check/virtualtest.py
@@ -1,6 +1,6 @@
from entrypoint2 import entrypoint
from pyscreenshot.backendloader import BackendLoader
from pyscreenshot.loader import PluginLoaderError
from pyscreenshot.loader import BackendLoaderError
from pyvirtualdisplay.display import Display
import pyscreenshot
import time
Expand Down Expand Up @@ -33,7 +33,7 @@ def run_all(bgcolor, display, bbox):
# time.sleep(1)
try:
run(x, bbox, bgcolor=bgcolor)
except PluginLoaderError as e:
except BackendLoaderError as e:
print e
except Exception as e:
print e
Expand Down
14 changes: 7 additions & 7 deletions pyscreenshot/examples/showall.py
@@ -1,20 +1,20 @@
from pyscreenshot.backendloader import BackendLoader
from pyscreenshot.loader import PluginLoaderError
import pyscreenshot as ImageGrab
import time
from entrypoint2 import entrypoint
from pyscreenshot import backends
from pyscreenshot.loader import BackendLoaderError
import time

import pyscreenshot as ImageGrab


@entrypoint
def show():
im = []

backends = BackendLoader().all_names
for x in backends:
for x in backends():
try:
print 'grabbing by ' + x
im.append(ImageGrab.grab(bbox=(500, 400, 800, 600), backend=x))
except PluginLoaderError as e:
except BackendLoaderError as e:
print e
print im
for x in im:
Expand Down
8 changes: 4 additions & 4 deletions pyscreenshot/loader.py
Expand Up @@ -4,11 +4,11 @@
log = logging.getLogger(__name__)


class PluginLoaderError(Exception):
class BackendLoaderError(Exception):
pass


class PluginLoader(object):
class BackendLoader(object):

def __init__(self):
self.plugins = dict()
Expand Down Expand Up @@ -65,7 +65,7 @@ def selected(self):
if self.is_forced:
b = self.get_valid_plugin_by_name(self._force_backend)
if not b:
raise PluginLoaderError(
raise BackendLoaderError(
'Forced backend not found, or cannot be loaded:' + self._force_backend)
else:
biglist = self.preference + \
Expand All @@ -80,4 +80,4 @@ def selected(self):

def raise_exc(self):
message = 'Install at least one backend!'
raise PluginLoaderError(message)
raise BackendLoaderError(message)
10 changes: 0 additions & 10 deletions pyscreenshot/singl.py

This file was deleted.

5 changes: 3 additions & 2 deletions tests/test_plugin.py
@@ -1,7 +1,8 @@
import logging
from nose.tools import eq_
from pyscreenshot.backendloader import BackendLoader
from pyscreenshot.loader import BackendLoader
from unittest import TestCase
import logging


logging.basicConfig(level=logging.DEBUG)

Expand Down
2 changes: 1 addition & 1 deletion tests/tox/compare.py
@@ -1,7 +1,7 @@
from easyprocess import EasyProcess
from image_debug import img_debug
from nose.tools import eq_, with_setup
from pyscreenshot.backendloader import BackendLoader
from pyscreenshot.loader import BackendLoader
from pyvirtualdisplay import Display
from PIL import ImageChops
# import Tkinter
Expand Down

0 comments on commit 069fd05

Please sign in to comment.