summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2013-12-08 17:05:28 -0500
committeryenatch <yenatch@gmail.com>2013-12-09 01:40:04 -0500
commit94052ab5b94a8817c62f1d3d06da2e1c9d5be658 (patch)
tree8e6afbab081a940e4a7803967c36a0c4c844c9b2
parent9eb2cf3d217e8f9e0e86b8d41eac21ce54dd2ba4 (diff)
prequeue: dont initialize a new preprocessor for each file
-rw-r--r--preprocessor.py15
-rw-r--r--prequeue.py25
2 files changed, 24 insertions, 16 deletions
diff --git a/preprocessor.py b/preprocessor.py
index b5f2e3a4a..c9f90553b 100644
--- a/preprocessor.py
+++ b/preprocessor.py
@@ -51,17 +51,16 @@ def load_pokecrystal_macros():
return ourmacros
-def preprocess(config, macros, lines=None):
- """
- Entry point for the preprocessor.
- """
+def setup_processor():
+ config = configuration.Config()
+ macros = load_pokecrystal_macros()
processor = preprocessor.Preprocessor(config, macros)
- return processor.preprocess(lines=lines)
+ return processor
def main():
- config = configuration.Config()
- macros = load_pokecrystal_macros()
- return preprocess(config, macros)
+ processor = setup_processor()
+ processor.preprocess()
+ processor.update_globals
# only run against stdin when not included as a module
if __name__ == "__main__":
diff --git a/prequeue.py b/prequeue.py
index 2adb03bfb..a91f1b336 100644
--- a/prequeue.py
+++ b/prequeue.py
@@ -8,24 +8,33 @@ a single process.
import os
import sys
-import extras.pokemontools.configuration as configuration
-
import preprocessor
-def main():
- config = configuration.Config()
- macros = preprocessor.load_pokecrystal_macros()
+def preprocess_queue(filenames=sys.argv[1:]):
+ stdin = sys.stdin
stdout = sys.stdout
- for source in sys.argv[1:]:
+ processor = preprocessor.setup_processor()
+
+ for source in filenames:
dest = os.path.splitext(source)[0] + '.tx'
sys.stdin = open(source, 'r')
sys.stdout = open(dest, 'w')
- preprocessor.preprocess(config, macros)
+ processor.preprocess()
- # reset stdout
+ processor.update_globals()
+
+ sys.stdin = stdin
sys.stdout = stdout
+def main():
+ filenames = list(set(sys.argv[1:]))
+ if filenames:
+ num_files = len(filenames)
+ s = '' if num_files == 1 else 's'
+ sys.stdout.write('Preprocessing {0} file{1}...\n'.format(num_files, s))
+ preprocess_queue(filenames)
+
if __name__ == '__main__':
main()