Skip to content

Commit 9831d67

Browse files
committed
feat: address more ruff findings
1 parent b3d797b commit 9831d67

File tree

8 files changed

+25
-33
lines changed

8 files changed

+25
-33
lines changed

convert.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@
44

55
import contextlib
66
from os import listdir
7-
from os.path import isfile, join
87
from pathlib import Path
98

109
import layeredimage.io
1110

12-
THISDIR = str(Path(__file__).resolve().parent)
11+
THISDIR = Path(__file__).resolve().parent
1312

14-
files = [join(THISDIR, file) for file in listdir(THISDIR) if isfile(join(THISDIR, file))]
13+
files = [THISDIR / file for file in listdir(THISDIR) if (THISDIR / file).is_file()]
1514
for file in files:
1615
with contextlib.suppress(ValueError):
1716
layeredimage.io.saveLayerImage(file + ".ora", layeredimage.io.openLayerImage(file))

layeredimage/io/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"""Do file io."""
22
from __future__ import annotations
33

4-
from os.path import exists, splitext
54
from pathlib import Path
65

76
from layeredimage.layeredimage import LayeredImage
@@ -61,10 +60,11 @@ def openLayerImage(file: str | Path) -> LayeredImage:
6160
".layered": openLayer_LAYERED,
6261
".layeredc": openLayer_LAYEREDC,
6362
}
64-
if not exists(file):
63+
fp = Path(file)
64+
if not fp.is_file():
6565
print(f"ERROR: {file} does not exist")
6666
raise FileExistsError
67-
fileExt = splitext(file)[1].lower()
67+
fileExt = fp.suffix.lower()
6868
if fileExt not in functionMap:
6969
extNotRecognised(file)
7070
raise ValueError
@@ -100,7 +100,7 @@ def saveLayerImage(fileName: str | Path, layeredImage: LayeredImage) -> None:
100100
".layered": saveLayer_LAYERED,
101101
".layeredc": saveLayer_LAYEREDC,
102102
}
103-
fileExt = splitext(fileName)[1].lower()
103+
fileExt = Path(fileName).suffix.lower()
104104
if fileExt not in functionMap:
105105
extNotRecognised(fileName)
106106
raise ValueError

layeredimage/io/layered.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,9 @@ def openLayer_LAYERED(file: str) -> LayeredImage:
7979
return LayeredImage(layersAndGroups, stack["dimensions"])
8080

8181

82-
def grabLayer_LAYERED(zipFile: ZipFile, layer: dict[str, Any], blendLookup: dict[str, Any]):
82+
def grabLayer_LAYERED(
83+
zipFile: ZipFile, layer: dict[str, Any], blendLookup: dict[str, Any]
84+
) -> Layer:
8385
"""Grab an image from .layered."""
8486
with zipFile.open(f'data/{layer["name"]}.png') as layerImage:
8587
image = Image.open(layerImage).convert("RGBA")
@@ -123,8 +125,9 @@ def writeImage_LAYERED(
123125
"""Write an image to the archive."""
124126
imgByteArr = io.BytesIO()
125127
imageCopy = image.copy()
126-
if compressed and len(set(imageCopy.getcolors(maxcolors=256**3))) < 256:
127-
imageCopy = imageCopy.quantize(colors=256, method=2, kmeans=1)
128+
paletteSize = 256
129+
if compressed and len(set(imageCopy.getcolors(maxcolors=paletteSize**3))) < paletteSize:
130+
imageCopy = imageCopy.quantize(colors=paletteSize, method=2, kmeans=1)
128131
imageCopy.save(imgByteArr, format="PNG", optimize=compressed)
129132
imgByteArr.seek(0)
130133
zipFile.writestr(path, imgByteArr.read())

layeredimage/io/ora.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
"""Do file io - ORA."""
22
from __future__ import annotations
33

4+
from typing import Any
5+
46
from layeredimage.blend import BlendType
57
from layeredimage.layeredimage import LayeredImage
68
from layeredimage.layergroup import Group, Layer
@@ -123,7 +125,7 @@ def saveLayer_ORA(fileName: str, layeredImage: LayeredImage) -> None:
123125
project.save(fileName)
124126

125127

126-
def addLayer_ORA(project, layer, blendLookup):
128+
def addLayer_ORA(project: Any, layer: Any, blendLookup: dict[BlendType, str]) -> Any:
127129
"""Update the project with a shiny new layer."""
128130
project.add_layer(
129131
layer.image,

layeredimage/io/tiff.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ def openLayer_TIFF(file: str) -> LayeredImage:
1515
project = Image.open(file)
1616
layers = []
1717
dimensions = [0, 0]
18-
for index in range(project.n_frames): # type:ignore
18+
for index in range(project.n_frames):
1919
# Load the correct image
2020
project.seek(index)
2121
# Update the project dimensions
2222
for indx, dimension in enumerate(dimensions):
2323
if project.size[indx] > dimension:
2424
dimensions[indx] = project.size[indx]
25-
ifd = project.ifd.named() # type:ignore
25+
ifd = project.ifd.named()
2626
# Offsets
2727
offsetX = 0
2828
offsetY = 0

layeredimage/io/webp.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def openLayer_WEBP(file: str) -> LayeredImage:
1515
project = Image.open(file)
1616
projectSize = project.size
1717
layers = []
18-
for index in range(project.n_frames): # type:ignore
18+
for index in range(project.n_frames):
1919
project.seek(index)
2020
layers.append(
2121
Layer(name=f"Frame {len(layers) + 1}", image=project.copy(), dimensions=projectSize)

layeredimage/layeredimage.py

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from typing import Any
55

66
from blendmodes.imagetools import rasterImageOA, rasterImageOffset, renderWAlphaOffset
7-
from deprecation import deprecated
87
from PIL import Image
98

109
from .blend import blendLayers
@@ -28,6 +27,7 @@ def __init__(
2827
----
2928
layersAndGroups (list[Layer, Group]): List of layers and groups
3029
dimensions (tuple[int, int], optional): dimensions of the canvas. Defaults to None.
30+
**kwargs (Any): add any keyword args to self.extras
3131
"""
3232
# Write here
3333
self.layersAndGroups = layersAndGroups
@@ -67,7 +67,7 @@ def json(self) -> dict[str, Any]:
6767
return {"dimensions": self.dimensions, "layersAndGroups": layersAndGroups}
6868

6969
# Get, set and remove layers or groups
70-
def getLayerOrGroup(self, index: int):
70+
def getLayerOrGroup(self, index: int) -> Layer | Group:
7171
"""Get a LayerOrGroup."""
7272
return self.layersAndGroups[index]
7373

@@ -83,24 +83,11 @@ def removeLayerOrGroup(self, index: int) -> None:
8383
"""Remove a LayerOrGroup at a specific index."""
8484
self.layersAndGroups.pop(index)
8585

86-
# The user may wish to add an image directly
87-
@deprecated(details="use addImageAsLayer", deprecated_in="2021.2.4")
88-
def addLayerRaster(
89-
self, image: Image.Image, name: str
90-
): # pylint:disable=missing-function-docstring
91-
return self.addImageAsLayer(image, name)
92-
9386
def addImageAsLayer(self, image: Image.Image, name: str) -> None:
9487
"""Resize an image to the canvas and add as a layer."""
9588
layer = renderWAlphaOffset(image, self.dimensions)
9689
self.addLayerOrGroup(Layer(name, layer, self.dimensions))
9790

98-
@deprecated(details="use insertImageAsLayer", deprecated_in="2021.2.4")
99-
def insertLayerRaster(
100-
self, image: Image.Image, name: str, index: int
101-
): # pylint:disable=missing-function-docstring
102-
return self.insertImageAsLayer(image, name, index)
103-
10491
def insertImageAsLayer(self, image: Image.Image, name: str, index: int) -> None:
10592
"""Resize an image to the canvas and insert the layer."""
10693
layer = renderWAlphaOffset(image, self.dimensions)
@@ -150,7 +137,7 @@ def flattenLayers(self, *, ignoreHidden: bool = True) -> None:
150137

151138
# The user may hate groups and just want the layers... or just want the
152139
# groups
153-
def extractLayers(self):
140+
def extractLayers(self) -> list[Layer]:
154141
"""Extract the layers from the image."""
155142
layers = []
156143
for layerOrGroup in self.layersAndGroups:
@@ -181,7 +168,7 @@ def updateLayers(self) -> None:
181168
"""Update the layers from the image."""
182169
self.layers = self.extractLayers()
183170

184-
def extractGroups(self):
171+
def extractGroups(self) -> list[Group]:
185172
"""Extract the groups from the image."""
186173
return [
187174
_layerOrGroup
@@ -200,7 +187,7 @@ def flattenLayerOrGroup(
200187
flattenedSoFar: Image.Image | None = None,
201188
*,
202189
ignoreHidden: bool = True,
203-
):
190+
) -> Image.Image:
204191
"""Flatten a layer or group on to an image of what has already been flattened.
205192
206193
Args:
@@ -242,7 +229,7 @@ def flattenAll(
242229
imageDimensions: tuple[int, int],
243230
*,
244231
ignoreHidden: bool = True,
245-
):
232+
) -> Image.Image:
246233
"""Flatten a list of layers and groups.
247234
248235
Args:

layeredimage/layergroup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def __init__(
3737
is often configured per layer or per group by an 'eye' icon).
3838
Defaults to True.
3939
blendmode (Blendtype): The blending mode to use. Defaults to BlendType.NORMAL
40+
**kwargs (Any): add any keyword args to self.extras
4041
"""
4142
self.name = name
4243
self.offsets = offsets

0 commit comments

Comments
 (0)