format code according to conventions [skip ci]
parent
7329c2d02d
commit
a4c2a9b083
|
@ -4,6 +4,7 @@
|
||||||
import hjson
|
import hjson
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
|
||||||
|
|
||||||
class KLE2xy(list):
|
class KLE2xy(list):
|
||||||
"""Abstract interface for interacting with a KLE layout.
|
"""Abstract interface for interacting with a KLE layout.
|
||||||
"""
|
"""
|
||||||
|
@ -13,17 +14,7 @@ class KLE2xy(list):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.invert_y = invert_y
|
self.invert_y = invert_y
|
||||||
self.key_width = Decimal('19.05')
|
self.key_width = Decimal('19.05')
|
||||||
self.key_skel = {
|
self.key_skel = {'decal': False, 'border_color': 'none', 'keycap_profile': '', 'keycap_color': 'grey', 'label_color': 'black', 'label_size': 3, 'label_style': 4, 'width': Decimal('1'), 'height': Decimal('1'), 'x': Decimal('0'), 'y': Decimal('0')}
|
||||||
'decal': False,
|
|
||||||
'border_color': 'none',
|
|
||||||
'keycap_profile': '',
|
|
||||||
'keycap_color': 'grey',
|
|
||||||
'label_color': 'black',
|
|
||||||
'label_size': 3,
|
|
||||||
'label_style': 4,
|
|
||||||
'width': Decimal('1'), 'height': Decimal('1'),
|
|
||||||
'x': Decimal('0'), 'y': Decimal('0')
|
|
||||||
}
|
|
||||||
self.rows = Decimal(0)
|
self.rows = Decimal(0)
|
||||||
self.columns = Decimal(0)
|
self.columns = Decimal(0)
|
||||||
|
|
||||||
|
@ -34,13 +25,13 @@ class KLE2xy(list):
|
||||||
def width(self):
|
def width(self):
|
||||||
"""Returns the width of the keyboard plate.
|
"""Returns the width of the keyboard plate.
|
||||||
"""
|
"""
|
||||||
return (Decimal(self.columns) * self.key_width) + self.key_width/2
|
return (Decimal(self.columns) * self.key_width) + self.key_width / 2
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def height(self):
|
def height(self):
|
||||||
"""Returns the height of the keyboard plate.
|
"""Returns the height of the keyboard plate.
|
||||||
"""
|
"""
|
||||||
return (self.rows * self.key_width) + self.key_width/2
|
return (self.rows * self.key_width) + self.key_width / 2
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def size(self):
|
def size(self):
|
||||||
|
|
|
@ -31,7 +31,7 @@ class CustomJSONEncoder(json.JSONEncoder):
|
||||||
@cli.subcommand('Convert a KLE layout to a Configurator JSON')
|
@cli.subcommand('Convert a KLE layout to a Configurator JSON')
|
||||||
def kle2json(cli):
|
def kle2json(cli):
|
||||||
"""Convert a KLE layout to QMK's layout format.
|
"""Convert a KLE layout to QMK's layout format.
|
||||||
""" # If filename is a path
|
""" # If filename is a path
|
||||||
if cli.args.filename.startswith("/") or cli.args.filename.startswith("./"):
|
if cli.args.filename.startswith("/") or cli.args.filename.startswith("./"):
|
||||||
file_path = Path(cli.args.filename)
|
file_path = Path(cli.args.filename)
|
||||||
# Otherwise assume it is a file name
|
# Otherwise assume it is a file name
|
||||||
|
@ -45,7 +45,7 @@ def kle2json(cli):
|
||||||
# Check if info.json exists, allow overwrite with force
|
# Check if info.json exists, allow overwrite with force
|
||||||
if Path(out_path, "info.json").exists() and not cli.args.force:
|
if Path(out_path, "info.json").exists() and not cli.args.force:
|
||||||
cli.log.error('File {fg_cyan}%s/info.json{style_reset_all} already exists, use -f or --force to overwrite.', str(out_path))
|
cli.log.error('File {fg_cyan}%s/info.json{style_reset_all} already exists, use -f or --force to overwrite.', str(out_path))
|
||||||
return False;
|
return False
|
||||||
try:
|
try:
|
||||||
# Convert KLE raw to x/y coordinates (using kle2xy package from skullydazed)
|
# Convert KLE raw to x/y coordinates (using kle2xy package from skullydazed)
|
||||||
kle = KLE2xy(raw_code)
|
kle = KLE2xy(raw_code)
|
||||||
|
@ -65,11 +65,9 @@ def kle2json(cli):
|
||||||
}},
|
}},
|
||||||
)
|
)
|
||||||
# Initialize keyboard with json encoded from ordered dict
|
# Initialize keyboard with json encoded from ordered dict
|
||||||
keyboard = json.dumps(keyboard, indent=4, separators=(
|
keyboard = json.dumps(keyboard, indent=4, separators=(', ', ': '), sort_keys=False, cls=CustomJSONEncoder)
|
||||||
', ', ': '), sort_keys=False, cls=CustomJSONEncoder)
|
|
||||||
# Initialize layout with kle2qmk from converter module
|
# Initialize layout with kle2qmk from converter module
|
||||||
layout = json.dumps(kle2qmk(kle), separators=(
|
layout = json.dumps(kle2qmk(kle), separators=(', ', ':'), cls=CustomJSONEncoder)
|
||||||
', ', ':'), cls=CustomJSONEncoder)
|
|
||||||
# Replace layout in keyboard json
|
# Replace layout in keyboard json
|
||||||
keyboard = keyboard.replace('"LAYOUT_JSON_HERE"', layout)
|
keyboard = keyboard.replace('"LAYOUT_JSON_HERE"', layout)
|
||||||
# Write our info.json
|
# Write our info.json
|
||||||
|
|
|
@ -19,9 +19,11 @@ def test_config():
|
||||||
assert result.returncode == 0
|
assert result.returncode == 0
|
||||||
assert 'general.color' in result.stdout
|
assert 'general.color' in result.stdout
|
||||||
|
|
||||||
|
|
||||||
def test_kle2json():
|
def test_kle2json():
|
||||||
assert check_subcommand('kle2json', 'kle.txt', '-f').returncode == 0
|
assert check_subcommand('kle2json', 'kle.txt', '-f').returncode == 0
|
||||||
|
|
||||||
|
|
||||||
def test_doctor():
|
def test_doctor():
|
||||||
result = check_subcommand('doctor')
|
result = check_subcommand('doctor')
|
||||||
assert result.returncode == 0
|
assert result.returncode == 0
|
||||||
|
|
Loading…
Reference in New Issue