summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Araps <dylan.araps@gmail.com>2017-06-30 10:07:42 +1000
committerDylan Araps <dylan.araps@gmail.com>2017-06-30 10:07:42 +1000
commit6c08e44ca416bfa7637505d5c58b7e6e980a20e6 (patch)
tree7f3f9b37b3d24a1ad9cc8ea215c52cead9b17d21
parent615321de942ac4d75af72ba126ac5b69da203a72 (diff)
general: Split image functions into own module and remove un-needed pathlib imports.
-rwxr-xr-xpywal/__main__.py7
-rwxr-xr-xpywal/gen_colors.py46
-rw-r--r--pywal/image.py48
-rwxr-xr-xpywal/set_colors.py3
4 files changed, 55 insertions, 49 deletions
diff --git a/pywal/__main__.py b/pywal/__main__.py
index 1b93341..2cf6c32 100755
--- a/pywal/__main__.py
+++ b/pywal/__main__.py
@@ -9,6 +9,7 @@ import sys
from pywal.settings import CACHE_DIR, __version__
from pywal import export
+from pywal import image
from pywal import gen_colors
from pywal import set_colors
from pywal import reload
@@ -87,13 +88,13 @@ def process_args(args):
# -i
if args.i:
- image = gen_colors.get_image(args.i)
+ image_file = image.get_image(args.i)
# Create a list of hex colors.
- colors_plain = gen_colors.get_colors(image, args.q)
+ colors_plain = gen_colors.get_colors(image_file, args.q)
if not args.n:
- wallpaper.set_wallpaper(image)
+ wallpaper.set_wallpaper(image_file)
# -f
elif args.f:
diff --git a/pywal/gen_colors.py b/pywal/gen_colors.py
index bd044c2..7dd95b5 100755
--- a/pywal/gen_colors.py
+++ b/pywal/gen_colors.py
@@ -1,9 +1,6 @@
"""
Generate a colorscheme.
"""
-import os
-import pathlib
-import random
import re
import shutil
import subprocess
@@ -13,45 +10,6 @@ from pywal import set_colors
from pywal import util
-def random_img(img_dir):
- """Pick a random image file from a directory."""
- current_wall = pathlib.Path(CACHE_DIR / "wal")
-
- if current_wall.is_file():
- current_wall = util.read_file(current_wall)
- current_wall = os.path.basename(current_wall[0])
-
- # Add all images to a list excluding the current wallpaper.
- file_types = (".png", ".jpg", ".jpeg", ".jpe", ".gif")
- images = [img for img in os.scandir(img_dir)
- if img.name.endswith(file_types) and img.name != current_wall]
-
- # If no images are found, use the current wallpaper.
- if not images:
- print("image: No new images found (nothing to do), exiting...")
- quit(1)
-
- return pathlib.Path(img_dir / random.choice(images).name)
-
-
-def get_image(img):
- """Validate image input."""
- image = pathlib.Path(img)
-
- if image.is_file():
- wal_img = image
-
- elif image.is_dir():
- wal_img = random_img(image)
-
- else:
- print("error: No valid image file found.")
- exit(1)
-
- print("image: Using image", wal_img)
- return str(wal_img)
-
-
def imagemagick(color_count, img):
"""Call Imagemagick to generate a scheme."""
colors = subprocess.Popen(["convert", img, "+dither", "-colors",
@@ -96,8 +54,8 @@ def get_colors(img, quiet):
util.save_file(img, CACHE_DIR / "wal")
# Cache the sequences file.
- cache_file = pathlib.Path(CACHE_DIR / "schemes" / img.replace("/", "_"))
- cache_file = pathlib.Path(cache_file.with_suffix(".json"))
+ cache_file = CACHE_DIR / "schemes" / img.replace("/", "_")
+ cache_file = cache_file.with_suffix(".json")
if cache_file.is_file():
colors = util.read_file_json(cache_file)
diff --git a/pywal/image.py b/pywal/image.py
new file mode 100644
index 0000000..394967d
--- /dev/null
+++ b/pywal/image.py
@@ -0,0 +1,48 @@
+"""
+Get the image file.
+"""
+import os
+import pathlib
+import random
+
+from pywal.settings import CACHE_DIR
+from pywal import util
+
+
+def get_random_image(img_dir):
+ """Pick a random image file from a directory."""
+ current_wall = CACHE_DIR / "wal"
+
+ if current_wall.is_file():
+ current_wall = util.read_file(current_wall)
+ current_wall = os.path.basename(current_wall[0])
+
+ # Add all images to a list excluding the current wallpaper.
+ file_types = (".png", ".jpg", ".jpeg", ".jpe", ".gif")
+ images = [img for img in os.scandir(img_dir)
+ if img.name.endswith(file_types) and img.name != current_wall]
+
+ # If no images are found, use the current wallpaper.
+ if not images:
+ print("image: No new images found (nothing to do), exiting...")
+ quit(1)
+
+ return img_dir / random.choice(images).name
+
+
+def get_image(img):
+ """Validate image input."""
+ image = pathlib.Path(img)
+
+ if image.is_file():
+ wal_img = image
+
+ elif image.is_dir():
+ wal_img = get_random_image(image)
+
+ else:
+ print("error: No valid image file found.")
+ exit(1)
+
+ print("image: Using image", wal_img)
+ return str(wal_img)
diff --git a/pywal/set_colors.py b/pywal/set_colors.py
index 6ac53e7..756aa34 100755
--- a/pywal/set_colors.py
+++ b/pywal/set_colors.py
@@ -2,7 +2,6 @@
Send sequences to all open terminals.
"""
import os
-import pathlib
import re
from pywal.settings import CACHE_DIR
@@ -72,7 +71,7 @@ def send_sequences(colors, vte):
def reload_colors(vte):
"""Reload colors."""
- sequence_file = pathlib.Path(CACHE_DIR / "sequences")
+ sequence_file = CACHE_DIR / "sequences"
if sequence_file.is_file():
sequences = "".join(util.read_file(sequence_file))