From 05a4e1ab28acab94cf28dc82ec61ddef51f8da71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Heger?= Date: Fri, 20 Nov 2020 22:20:52 +0100 Subject: [PATCH 1/4] Add caching of source data into a binary file. --- loreroll/npc.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/loreroll/npc.py b/loreroll/npc.py index d98acc6..f3c6877 100644 --- a/loreroll/npc.py +++ b/loreroll/npc.py @@ -1,6 +1,8 @@ """Module for generating NPCs.""" +import hashlib import os +import pickle import random from collections import namedtuple @@ -18,6 +20,7 @@ ] ) +NPC_BINARY_FILENAME = os.path.join(os.path.dirname(__file__), 'data/npc.bin') NPC_FILENAME = os.path.join(os.path.dirname(__file__), 'data/npc.yaml') NPC_SCHEMA = Map({ @@ -31,9 +34,50 @@ def _read_data(): - """Read NPC data.""" - with open(NPC_FILENAME, 'r') as datafile: - return load(datafile.read(), NPC_SCHEMA) + """Read NPC data. + + Parsing YAML turned out to be really slow -> The function attempts to read + the pre-parsed binary version. If that fails or if it has been generated + for a different YAML data version, read the source YAML and try and store + the data in binary format for future runs. + """ + + def _handle_caching_error(operation, error): + # Catch and ignore (just print warning) any error. This is just + # "caching" and we want to continue with the rest in any case. + print( + f'WARNING: Could not {operation} the cache binary file ' + f'("{NPC_BINARY_FILENAME}"): {error}' + ) + + with open(NPC_FILENAME, 'r') as yaml_datafile: + yaml_data = yaml_datafile.read() + yaml_data_checksum = hashlib.sha512(yaml_data.encode()).hexdigest() + + # Try to read NPC_BINARY_FILENAME ("cached" binary version). + #if os.path.exists(NPC_BINARY_FILENAME): + try: + with open(NPC_BINARY_FILENAME, 'rb') as binary_datafile: + checksum, npc_data = pickle.load(binary_datafile) + if yaml_data_checksum == checksum: + # It has been generated from the current NPC_FILENAME. + return npc_data + else: + print('INFO: Source YAML file has been changed.') + except Exception as error: + _handle_caching_error('read', error) + + # At this point we indeed need to parse the YAML data. Let's do so and + # try and store the parsed data into a binary file for future runs. + npc_data = load(yaml_data, NPC_SCHEMA) + try: + pickle.dump( + (yaml_data_checksum, npc_data), + open(NPC_BINARY_FILENAME, 'wb') + ) + except Exception as error: + _handle_caching_error('store', error) + return npc_data NPC_DATA = _read_data() From ca7a6f9bc6d872b143f13864957e91ffaa6a2482 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Heger?= Date: Fri, 20 Nov 2020 22:33:30 +0100 Subject: [PATCH 2/4] Add pre-parsed binary data --- loreroll/data/npc.bin | Bin 0 -> 435695 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 loreroll/data/npc.bin diff --git a/loreroll/data/npc.bin b/loreroll/data/npc.bin new file mode 100644 index 0000000000000000000000000000000000000000..06bada74844ab10e9d80ce9e97e41242ca04ae37 GIT binary patch literal 435695 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

Q&^ApT} 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 Date: Fri, 20 Nov 2020 23:23:41 +0100 Subject: [PATCH 3/4] Remove unnecessary comment --- loreroll/npc.py | 1 - 1 file changed, 1 deletion(-) diff --git a/loreroll/npc.py b/loreroll/npc.py index f3c6877..d0641f6 100644 --- a/loreroll/npc.py +++ b/loreroll/npc.py @@ -55,7 +55,6 @@ def _handle_caching_error(operation, error): yaml_data_checksum = hashlib.sha512(yaml_data.encode()).hexdigest() # Try to read NPC_BINARY_FILENAME ("cached" binary version). - #if os.path.exists(NPC_BINARY_FILENAME): try: with open(NPC_BINARY_FILENAME, 'rb') as binary_datafile: checksum, npc_data = pickle.load(binary_datafile) From 79dfb1bf7f749fbe0681ab783408deaf761d5990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Heger?= Date: Sat, 21 Nov 2020 00:23:59 +0100 Subject: [PATCH 4/4] Replace binary cache file with JSON ones. As pickle is not considered secure I decided to have a look at other options and JSON turns out to be just as quick (or actually even quicker) than binary file so I'll stick with that for now. Of course it seems kinda stupid to parse (Strict)YAML and dump it to JSON for speed but I'm not yet sure whether I want to: - Drop type checking. - Edit JSON while modifying data. I'll need to take a look at plain YAML and/or JSON with validation but for now I'm sticking with this. --- loreroll/data/npc.bin | Bin 435695 -> 0 bytes loreroll/data/npc.json | 1 + loreroll/npc.py | 38 +++++++++++++++++--------------------- 3 files changed, 18 insertions(+), 21 deletions(-) delete mode 100644 loreroll/data/npc.bin create mode 100644 loreroll/data/npc.json diff --git a/loreroll/data/npc.bin b/loreroll/data/npc.bin deleted file mode 100644 index 06bada74844ab10e9d80ce9e97e41242ca04ae37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435695 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

Q&^ApT} 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 The function attempts to read - the pre-parsed binary version. If that fails or if it has been generated - for a different YAML data version, read the source YAML and try and store - the data in binary format for future runs. + Parsing StrictYAML turned out to be really slow -> The function attempts + to read the pre-parsed JSON version. If that fails or if it has been + generated for a different YAML data version, read the source YAML and try + and store the data in JSON format for future runs. """ def _handle_caching_error(operation, error): # Catch and ignore (just print warning) any error. This is just # "caching" and we want to continue with the rest in any case. print( - f'WARNING: Could not {operation} the cache binary file ' - f'("{NPC_BINARY_FILENAME}"): {error}' + f'WARNING: Could not {operation} the cache JSON file ' + f'("{NPC_JSON_FILENAME}"): {error}' ) with open(NPC_FILENAME, 'r') as yaml_datafile: yaml_data = yaml_datafile.read() yaml_data_checksum = hashlib.sha512(yaml_data.encode()).hexdigest() - # Try to read NPC_BINARY_FILENAME ("cached" binary version). + # Try to read NPC_JSON_FILENAME ("cached" version). try: - with open(NPC_BINARY_FILENAME, 'rb') as binary_datafile: - checksum, npc_data = pickle.load(binary_datafile) - if yaml_data_checksum == checksum: - # It has been generated from the current NPC_FILENAME. + with open(NPC_JSON_FILENAME, 'r') as json_datafile: + npc_data = json.load(json_datafile) + checksum = npc_data.pop('yaml_datafile_checksum') + if checksum == yaml_data_checksum: return npc_data - else: - print('INFO: Source YAML file has been changed.') except Exception as error: _handle_caching_error('read', error) # At this point we indeed need to parse the YAML data. Let's do so and - # try and store the parsed data into a binary file for future runs. - npc_data = load(yaml_data, NPC_SCHEMA) + # try and store the parsed data into a JSON file for future runs. + npc_data = load(yaml_data, NPC_SCHEMA).data try: - pickle.dump( - (yaml_data_checksum, npc_data), - open(NPC_BINARY_FILENAME, 'wb') - ) + npc_data['yaml_datafile_checksum'] = yaml_data_checksum + json.dump(npc_data, open(NPC_JSON_FILENAME, 'w')) except Exception as error: _handle_caching_error('store', error) return npc_data