api: Use wal file in __main__.py

This commit is contained in:
dylan araps 2017-07-20 13:40:31 +10:00
parent 8917eef29e
commit 88bdd9ab01
8 changed files with 40 additions and 25 deletions

View File

@ -19,6 +19,11 @@ def main():
# Reload xrdb, i3 and polybar. # Reload xrdb, i3 and polybar.
pywal.reload_env() pywal.reload_env()
# Export template files.
pywal.export_all_templates(colors,
"path/to/templates",
"path/to/save/files/")
# Set the wallpaper. # Set the wallpaper.
pywal.set_wallpaper(image) pywal.set_wallpaper(image)

View File

@ -5,7 +5,9 @@ Created by Dylan Araps.
# flake8: noqa: F401 # flake8: noqa: F401
from pywal.settings import __version__ from pywal.settings import __version__
from pywal.wal import create_palette from pywal.wal import create_palette
from pywal.wal import export_all_templates
from pywal.wal import get_image from pywal.wal import get_image
from pywal.wal import reload_colors
from pywal.wal import reload_env from pywal.wal import reload_env
from pywal.wal import send_sequences from pywal.wal import send_sequences
from pywal.wal import set_wallpaper from pywal.wal import set_wallpaper

View File

@ -8,13 +8,8 @@ import shutil
import sys import sys
from pywal.settings import CACHE_DIR, __version__ from pywal.settings import CACHE_DIR, __version__
from pywal import export from pywal import wal
from pywal import image
from pywal import magic
from pywal import reload
from pywal import sequences
from pywal import util from pywal import util
from pywal import wallpaper
def get_args(): def get_args():
@ -79,7 +74,7 @@ def process_args(args):
# -r # -r
if args.r: if args.r:
sequences.reload_colors(args.t) wal.reload_colors(args.t)
# -v # -v
if args.v: if args.v:
@ -88,8 +83,8 @@ def process_args(args):
# -i # -i
if args.i: if args.i:
image_file = image.get_image(args.i) image_file = wal.get_image(args.i)
colors_plain = magic.get_colors(image_file, args.q) colors_plain = wal.create_palette(image_file, args.q)
# -f # -f
elif args.f: elif args.f:
@ -97,13 +92,13 @@ def process_args(args):
# -i or -f # -i or -f
if args.i or args.f: if args.i or args.f:
sequences.send_sequences(colors_plain, args.t) wal.send_sequences(colors_plain, args.t)
if not args.n: if not args.n:
wallpaper.set_wallpaper(colors_plain["wallpaper"]) wal.set_wallpaper(colors_plain["wallpaper"])
export.export_all_templates(colors_plain) wal.export_all_templates(colors_plain)
reload.reload_env() wal.reload_env()
# -o # -o
if args.o: if args.o:

View File

@ -3,7 +3,6 @@ Export colors in various formats.
""" """
import os import os
from pywal.settings import CACHE_DIR
from pywal import util from pywal import util
@ -27,12 +26,16 @@ def template(colors, input_file, output_dir):
print(f"export: Exported {template_file}.") print(f"export: Exported {template_file}.")
def export_all_templates(colors, template_dir=None, output_dir=CACHE_DIR): def export_all_templates(colors, template_dir=None, output_dir=None):
"""Export all template files.""" """Export all template files."""
# Add the template dir to module path. # Add the template dir to module path.
template_dir = template_dir or \ template_dir = template_dir or \
os.path.join(os.path.dirname(__file__), "templates") os.path.join(os.path.dirname(__file__), "templates")
# Convert path strings into Path types.
template_dir = util.str_to_path(template_dir)
output_dir = util.str_to_path(output_dir)
# Merge all colors (specials and normals) into one dict so we can access # Merge all colors (specials and normals) into one dict so we can access
# their values simpler. # their values simpler.
all_colors = {"wallpaper": colors["wallpaper"], all_colors = {"wallpaper": colors["wallpaper"],

View File

@ -53,7 +53,7 @@ def gen_colors(img):
return [re.search("#.{6}", str(col)).group(0) for col in raw_colors] return [re.search("#.{6}", str(col)).group(0) for col in raw_colors]
def get_colors(img, quiet): def get_colors(img, quiet=False):
"""Get the colorscheme.""" """Get the colorscheme."""
# Cache the wallpaper name. # Cache the wallpaper name.
util.save_file(img, CACHE_DIR / "wal") util.save_file(img, CACHE_DIR / "wal")

View File

@ -53,9 +53,9 @@ def send_sequences(colors, vte):
print("colors: Set terminal colors") print("colors: Set terminal colors")
def reload_colors(vte): def reload_colors(vte, sequence_file=None):
"""Reload the current scheme.""" """Reload the current scheme."""
sequence_file = CACHE_DIR / "sequences" sequence_file = sequence_file or CACHE_DIR / "sequences"
if sequence_file.is_file(): if sequence_file.is_file():
sequences = "".join(util.read_file(sequence_file)) sequences = "".join(util.read_file(sequence_file))

View File

@ -98,3 +98,8 @@ def disown(*cmd):
stdout=subprocess.DEVNULL, stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL, stderr=subprocess.DEVNULL,
preexec_fn=os.setpgrp) preexec_fn=os.setpgrp)
def str_to_path(str_path):
"""Convert a string to a Path type."""
return pathlib.Path(str_path)

View File

@ -2,6 +2,8 @@
wal - Generate and change colorschemes on the fly. wal - Generate and change colorschemes on the fly.
Created by Dylan Araps. Created by Dylan Araps.
""" """
from pywal.settings import CACHE_DIR
from pywal import export
from pywal import image from pywal import image
from pywal import magic from pywal import magic
from pywal import reload from pywal import reload
@ -14,11 +16,9 @@ def get_image(img):
return image.get_image(img) return image.get_image(img)
def create_palette(img): def create_palette(img, quiet=False):
"""Create a palette and return it as a dict.""" """Create a palette and return it as a dict."""
colors = magic.gen_colors(img) return magic.get_colors(img, quiet)
colors = magic.sort_colors(img, colors)
return colors
def send_sequences(colors, vte): def send_sequences(colors, vte):
@ -31,11 +31,16 @@ def reload_env():
reload.reload_env() reload.reload_env()
def export_all_templates(colors, template_dir=None, export_dir=CACHE_DIR):
"""Export all templates."""
export.export_all_templates(colors, template_dir, export_dir)
def set_wallpaper(img): def set_wallpaper(img):
"""Set the wallpaper.""" """Set the wallpaper."""
wallpaper.set_wallpaper(img) wallpaper.set_wallpaper(img)
# def reload_colors(vte): def reload_colors(vte, sequence_file=None):
# """Reload the colors.""" """Reload the colors."""
# sequences.reload_colors(vte) sequences.reload_colors(vte, sequence_file)