From f286a0a2bbb6065f0019fff084807163aab6bb9c Mon Sep 17 00:00:00 2001 From: LDericher <40151420+ldericher@users.noreply.github.com> Date: Mon, 23 Aug 2021 13:38:01 +0200 Subject: [PATCH] use pickle instead of yaml serialization --- Pipfile | 1 - Pipfile.lock | 37 +------------------------------------ fftcg/book.py | 12 ++++++------ fftcg/carddb.py | 8 ++++---- fftcg/utils.py | 2 +- 5 files changed, 12 insertions(+), 48 deletions(-) diff --git a/Pipfile b/Pipfile index f6bb417..70327e4 100644 --- a/Pipfile +++ b/Pipfile @@ -9,7 +9,6 @@ verify_ssl = true requests = "*" pillow = "*" roman = "*" -pyyaml = "*" [requires] python_version = "3.9" diff --git a/Pipfile.lock b/Pipfile.lock index d7bb433..e9ad351 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "1618a2855eedd09511a3afe86c6d18bff3251e54d303e1d1475774b0c7960dfd" + "sha256": "a2e1b3f733a9b7697e8f974449a04cf81e78f6959a67945afa0e78446d491690" }, "pipfile-spec": 6, "requires": { @@ -84,41 +84,6 @@ "index": "pypi", "version": "==8.3.1" }, - "pyyaml": { - "hashes": [ - "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf", - "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696", - "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393", - "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77", - "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922", - "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5", - "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8", - "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10", - "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc", - "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018", - "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e", - "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253", - "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347", - "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183", - "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541", - "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb", - "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185", - "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc", - "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db", - "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa", - "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46", - "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122", - "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b", - "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63", - "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df", - "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc", - "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247", - "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6", - "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0" - ], - "index": "pypi", - "version": "==5.4.1" - }, "requests": { "hashes": [ "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24", diff --git a/fftcg/book.py b/fftcg/book.py index f4bb98c..6a8797e 100644 --- a/fftcg/book.py +++ b/fftcg/book.py @@ -1,11 +1,11 @@ import logging +import pickle -import yaml from PIL import Image from .cards import Cards from .imageloader import ImageLoader -from .utils import GRID, RESOLUTION, BOOK_YML_NAME, CARD_BACK_URL +from .utils import GRID, RESOLUTION, BOOK_PICKLE_NAME, CARD_BACK_URL class Book: @@ -64,8 +64,8 @@ class Book: book: dict[str, Cards] try: - with open(BOOK_YML_NAME, "r") as file: - book = yaml.load(file, Loader=yaml.Loader) + with open(BOOK_PICKLE_NAME, "rb") as file: + book = pickle.load(file) except FileNotFoundError: book = {} @@ -79,5 +79,5 @@ class Book: book[page["file_name"]] = page["cards"] # update book.yml file - with open(BOOK_YML_NAME, "w") as file: - yaml.dump(book, file, Dumper=yaml.Dumper) + with open(BOOK_PICKLE_NAME, "wb") as file: + pickle.dump(book, file) diff --git a/fftcg/carddb.py b/fftcg/carddb.py index 010b27b..6d2f0a3 100644 --- a/fftcg/carddb.py +++ b/fftcg/carddb.py @@ -1,10 +1,10 @@ from __future__ import annotations -import yaml +import pickle from fftcg import Card from fftcg.code import Code -from fftcg.utils import BOOK_YML_NAME +from fftcg.utils import BOOK_PICKLE_NAME class CardDB: @@ -27,8 +27,8 @@ class CardDB: # load book.yml file book: dict try: - with open(BOOK_YML_NAME, "r") as file: - book = yaml.load(file, Loader=yaml.Loader) + with open(BOOK_PICKLE_NAME, "rb") as file: + book = pickle.load(file) except FileNotFoundError: book = {} diff --git a/fftcg/utils.py b/fftcg/utils.py index a21f1df..5076087 100644 --- a/fftcg/utils.py +++ b/fftcg/utils.py @@ -3,7 +3,7 @@ from .grid import Grid # constants GRID = Grid((10, 7)) # default in TTsim: 10 columns, 7 rows RESOLUTION = Grid((429, 600)) # default in TTsim: 480x670 pixels per card -BOOK_YML_NAME = "book.yml" +BOOK_PICKLE_NAME = "book.pickle" # card back URL (image by Aurik) CARD_BACK_URL = "http://cloud-3.steamusercontent.com/ugc/948455238665576576/85063172B8C340602E8D6C783A457122F53F7843/"