1
0
Fork 0
mirror of https://github.com/ldericher/fftcgtool synced 2025-01-15 15:02:59 +00:00

Python3.9

This commit is contained in:
Jörn-Michael Miehe 2021-08-09 05:32:05 +02:00
parent 418d8f823e
commit 8dda8db72f
8 changed files with 23 additions and 30 deletions

View file

@ -407,7 +407,7 @@ the above requirements apply either way.
8. Termination. 8. Termination.
You may not propagate or modify a covered work except as expressly You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or provided under this License. any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third this License (including any patent licenses granted under the third
paragraph of section 11). paragraph of section 11).

View file

@ -11,4 +11,4 @@ pillow = "*"
roman = "*" roman = "*"
[requires] [requires]
python_version = "3.8" python_version = "3.9"

4
Pipfile.lock generated
View file

@ -1,11 +1,11 @@
{ {
"_meta": { "_meta": {
"hash": { "hash": {
"sha256": "fe611914a3a46d2834978ca4ab586c8273140df68e5fc593e585770f27e145ab" "sha256": "a2e1b3f733a9b7697e8f974449a04cf81e78f6959a67945afa0e78446d491690"
}, },
"pipfile-spec": 6, "pipfile-spec": 6,
"requires": { "requires": {
"python_version": "3.8" "python_version": "3.9"
}, },
"sources": [ "sources": [
{ {

View file

@ -1,5 +1,4 @@
import logging import logging
from typing import List, Tuple, Any
from PIL import Image from PIL import Image
@ -7,7 +6,7 @@ from .cards import Cards
from .imageloader import ImageLoader from .imageloader import ImageLoader
def chunks(whole: List[Any], chunk_size) -> List: def chunks(whole: list[any], chunk_size) -> list:
# while there are elements # while there are elements
while whole: while whole:
# get a chunk # get a chunk
@ -23,7 +22,7 @@ class Book:
# Card back image by Aurik # Card back image by Aurik
__BACK_URL = "http://cloud-3.steamusercontent.com/ugc/948455238665576576/85063172B8C340602E8D6C783A457122F53F7843/" __BACK_URL = "http://cloud-3.steamusercontent.com/ugc/948455238665576576/85063172B8C340602E8D6C783A457122F53F7843/"
def __init__(self, cards: Cards, grid: Tuple[int, int], resolution: Tuple[int, int], language: str, def __init__(self, cards: Cards, grid: tuple[int, int], resolution: tuple[int, int], language: str,
num_threads: int): num_threads: int):
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View file

@ -1,7 +1,5 @@
import re import re
from typing import List, Dict, Any
class Card: class Card:
__ELEMENTS_MAP = { __ELEMENTS_MAP = {
@ -15,7 +13,7 @@ class Card:
'': "Darkness" '': "Darkness"
} }
def __init__(self, data: Dict[str, Any], language: str = "EN"): def __init__(self, data: dict[str, any], language: str = "EN"):
if not data: if not data:
self.__opus = "0" self.__opus = "0"
self.__serial = "000" self.__serial = "000"
@ -79,5 +77,5 @@ class Card:
return self.__text return self.__text
@property @property
def elements(self) -> List[str]: def elements(self) -> list[str]:
return self.__elements return self.__elements

View file

@ -1,14 +1,12 @@
from typing import Dict, Any, List
import requests import requests
from .card import Card from .card import Card
class Cards(List[Card]): class Cards(list[Card]):
__API_URL = "https://fftcg.square-enix-games.com/de/get-cards" __API_URL = "https://fftcg.square-enix-games.com/de/get-cards"
def __init__(self, params: Dict[str, Any]): def __init__(self, params: dict[str, any]):
list.__init__(self) list.__init__(self)
# required params: # required params:

View file

@ -2,14 +2,13 @@ import io
import logging import logging
import queue import queue
import threading import threading
from typing import List, Tuple, Dict
import requests import requests
from PIL import Image from PIL import Image
class ImageLoader(threading.Thread): class ImageLoader(threading.Thread):
def __init__(self, url_queue: queue.Queue, resolution: Tuple[int, int], language: str): def __init__(self, url_queue: queue.Queue, resolution: tuple[int, int], language: str):
threading.Thread.__init__(self) threading.Thread.__init__(self)
self.__queue = url_queue self.__queue = url_queue
@ -45,7 +44,7 @@ class ImageLoader(threading.Thread):
self.__queue.task_done() self.__queue.task_done()
@classmethod @classmethod
def load(cls, urls: List[str], resolution: Tuple[int, int], language: str, num_threads: int) -> List[Image.Image]: def load(cls, urls: list[str], resolution: tuple[int, int], language: str, num_threads: int) -> list[Image.Image]:
url_queue = queue.Queue() url_queue = queue.Queue()
for url in urls: for url in urls:
url_queue.put(url) url_queue.put(url)
@ -61,7 +60,7 @@ class ImageLoader(threading.Thread):
# stitch all "images" dicts together # stitch all "images" dicts together
images = {} images = {}
for loader in loaders: for loader in loaders:
images = {**images, **loader.images} images |= loader.images
# sort images to match the initial "urls" list # sort images to match the initial "urls" list
images = [images[url] for url in urls] images = [images[url] for url in urls]
@ -69,5 +68,5 @@ class ImageLoader(threading.Thread):
return images return images
@property @property
def images(self) -> Dict[str, Image.Image]: def images(self) -> dict[str, Image.Image]:
return self.__images return self.__images

View file

@ -9,33 +9,32 @@ class Opus(Cards):
def __init__(self, opus_id: str): def __init__(self, opus_id: str):
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
params: dict[str, any] = {
"text": "",
# "element": ["darkness"],
}
if opus_id.isnumeric(): if opus_id.isnumeric():
roman_opus_id = roman.toRoman(int(opus_id)) roman_opus_id = roman.toRoman(int(opus_id))
params_add = {"set": [f"Opus {roman_opus_id.upper()}"]} params |= {"set": [f"Opus {roman_opus_id.upper()}"]}
self.__number = opus_id self.__number = opus_id
self.__name = f"opus_{opus_id}" self.__name = f"opus_{opus_id}"
elif opus_id == "chaos": elif opus_id == "chaos":
params_add = {"set": ["Boss Deck Chaos"]} params |= {"set": ["Boss Deck Chaos"]}
self.__number = "B" self.__number = "B"
self.__name = "boss_deck_chaos" self.__name = "boss_deck_chaos"
elif opus_id == "promo": elif opus_id == "promo":
params_add = {"rarity": ["pr"]} params |= {"rarity": ["pr"]}
self.__number = "PR" self.__number = "PR"
self.__name = "promo" self.__name = "promo"
else: else:
params_add = {"set": ["?"]} params |= {"set": ["?"]}
self.__number = "?" self.__number = "?"
self.__name = "?" self.__name = "?"
params = {
"text": "",
# "element": ["darkness"],
**params_add
}
Cards.__init__(self, params) Cards.__init__(self, params)
# remove reprints # remove reprints