Accept suggestions from new toolchain · rec/hardback@a00f2af

20 files changed

lines changed

Original file line numberDiff line numberDiff line change

@@ -1,10 +1,12 @@

1-

from ..qr.write import write

2-

from ..util import files

31

import itertools

42

import math

53

import os

4+
65

import yaml

76
7+

from ..qr.write import write

8+

from ..util import files

9+
810
911

def write_chunks(hc):

1012

desc = hc.hardback.desc

Original file line numberDiff line numberDiff line change

@@ -1,4 +1,5 @@

11

from pathlib import Path

2+
23

from ebooklib import epub

34
45

CSS_DIR = Path(__file__).parents[2] / "css"

Original file line numberDiff line numberDiff line change

@@ -1,10 +1,12 @@

1-

from .css import make_css

2-

from . import metadata

1+

from pathlib import Path

2+
3+

from ebooklib import epub

4+
35

from ..qr.fill import fill_qr

46

from ..util import hasher

57

from ..util.elapsed_bar import ElapsedBar

6-

from ebooklib import epub

7-

from pathlib import Path

8+

from . import metadata

9+

from .css import make_css

810
911
1012

class Hardback:

Original file line numberDiff line numberDiff line change

@@ -3,11 +3,12 @@

33

representing metadata about the file.

44

"""

55
6-

from ..util import chunk_sequence, hasher

76

import datetime

87

import os

98

import pathlib

109
10+

from ..util import chunk_sequence, hasher

11+
1112
1213

def metadata(desc, source):

1314

stat = os.stat(source)

Original file line numberDiff line numberDiff line change

@@ -1,9 +1,11 @@

1-

from .chunk_writer import write_chunks

2-

from .metadata import format as metadata_format

1+

from pathlib import Path

2+
3+

from ebooklib import epub

4+
35

from ..qr import qr_table

46

from ..util import chunk_sequence

5-

from ebooklib import epub

6-

from pathlib import Path

7+

from .chunk_writer import write_chunks

8+

from .metadata import format as metadata_format

79
810
911

def chapter(hc):

@@ -36,7 +38,7 @@ def metadata(hc):

3638

def qr_html(hc):

3739

def qr_code_images():

3840

chunks = write_chunks(hc)

39-

for block_count, f in enumerate(chunks):

41+

for f in chunks:

4042

f = Path(f)

4143

add_image_item(f)

4244

hc.hardback.desc.remove_image_files and f.unlink()

Original file line numberDiff line numberDiff line change

@@ -1,15 +1,16 @@

1-

from attr import dataclass, Factory

21

from pathlib import Path

32

from typing import List

43
4+

from attr import Factory, dataclass

5+
56
67

@dataclass(slots=True)

78

class Book:

89

identifier: str = ""

910

title: str = ""

1011

cover: str = ""

1112

language: str = "en"

12-

authors: List[str] = Factory(list)

13+

authors: list[str] = Factory(list)

1314
1415

def apply(self, ebook):

1516

ebook.set_identifier(self.identifier)

Original file line numberDiff line numberDiff line change

@@ -1,6 +1,7 @@

1-

from attr import dataclass, Factory

21

from pathlib import Path

32

from typing import List

3+
4+

from attr import Factory, dataclass

45

from PIL import Image, ImageDraw, ImageFont

56
67

# TODO: this only works for MacOS

@@ -17,12 +18,12 @@ def create(self):

1718

suffix = Path(name).suffix

1819

if suffix == ".ttf":

1920

if not self.size:

20-

raise ValueError(f"Size must be set for Truetype fonts")

21+

raise ValueError("Size must be set for Truetype fonts")

2122

return ImageFont.truetype(name, self.size)

2223
2324

if suffix == ".pil":

2425

if self.size:

25-

raise ValueError(f"Size cannot be set for Bitmap fonts")

26+

raise ValueError("Size cannot be set for Bitmap fonts")

2627

return ImageFont.load(name)

2728
2829

raise ValueError(f"Do not understand font {name}")

@@ -33,8 +34,8 @@ class Cover:

3334

title: str = ""

3435

image: str = ""

3536

font: Font = Factory(Font)

36-

margin: List[int] = Factory(lambda: [75, 50])

37-

size: List[int] = Factory(lambda: [1600, 2560])

37+

margin: list[int] = Factory(lambda: [75, 50])

38+

size: list[int] = Factory(lambda: [1600, 2560])

3839
3940

def render(self):

4041

image = Image.new("RGB", self.size, "white")

Original file line numberDiff line numberDiff line change

@@ -1,8 +1,10 @@

11

"""Contains data classes that specify how a book is put together"""

22
3-

from ..qr.qr import QR

4-

from attr import dataclass, Factory

53

from typing import List

4+
5+

from attr import Factory, dataclass

6+
7+

from ..qr.qr import QR

68

from .book import Book

79
810

@@ -15,9 +17,9 @@ class Chapter:

1517
1618

@dataclass(slots=True)

1719

class Hardback:

18-

sources: List[str] = Factory(list)

20+

sources: list[str] = Factory(list)

1921

book: Book = Factory(Book)

20-

dimensions: List[int] = Factory(lambda: [5, 7])

22+

dimensions: list[int] = Factory(lambda: [5, 7])

2123

outfile: str = ""

2224

qr: QR = Factory(QR)

2325
Original file line numberDiff line numberDiff line change

@@ -1,8 +1,10 @@

1-

from .book import cursor, hardback, sections

2-

from .data import serialize, dataclass

31

import pathlib

2+
43

import yaml

54
5+

from .book import cursor, hardback, sections

6+

from .data import dataclass, serialize

7+
68

_DATA_SUFFIXES = ".json", ".yml"

79

NEW_CHAPTERS = False

810
Original file line numberDiff line numberDiff line change

@@ -1,4 +1,5 @@

1-

from attr import dataclass, Factory

1+

from attr import Factory, dataclass

2+
23

from .raw_codes import RAW_CODES

34
45