comparison piecrust/processing/base.py @ 5:474c9882decf

Upgrade to Python 3.
author Ludovic Chabant <ludovic@chabant.com>
date Mon, 11 Aug 2014 22:36:47 -0700
parents f485ba500df3
children 617191dec18e
comparison
equal deleted inserted replaced
4:7dc71c2dc9a8 5:474c9882decf
2 import time 2 import time
3 import shutil 3 import shutil
4 import os.path 4 import os.path
5 import logging 5 import logging
6 import threading 6 import threading
7 from Queue import Queue, Empty 7 from queue import Queue, Empty
8 from piecrust.chefutil import format_timed 8 from piecrust.chefutil import format_timed
9 from piecrust.processing.tree import (ProcessingTreeBuilder, 9 from piecrust.processing.tree import (ProcessingTreeBuilder,
10 ProcessingTreeRunner, STATE_DIRTY, print_node) 10 ProcessingTreeRunner, STATE_DIRTY, print_node)
11 from piecrust.records import Record 11 from piecrust.records import Record
12 12
181 181
182 if src_dir_or_file is not None: 182 if src_dir_or_file is not None:
183 # Process only the given path. 183 # Process only the given path.
184 # Find out if this source directory is in a mount point. 184 # Find out if this source directory is in a mount point.
185 base_dir = self.app.root_dir 185 base_dir = self.app.root_dir
186 for name, path in self.mounts.iteritems(): 186 for name, path in self.mounts.items():
187 if src_dir_or_file[:len(path)] == path: 187 if src_dir_or_file[:len(path)] == path:
188 base_dir = path 188 base_dir = path
189 189
190 ctx = ProcessingContext(base_dir, queue, record) 190 ctx = ProcessingContext(base_dir, queue, record)
191 logger.debug("Initiating processing pipeline on: %s" % src_dir_or_file) 191 logger.debug("Initiating processing pipeline on: %s" % src_dir_or_file)
198 # Process everything. 198 # Process everything.
199 ctx = ProcessingContext(self.app.root_dir, queue, record) 199 ctx = ProcessingContext(self.app.root_dir, queue, record)
200 logger.debug("Initiating processing pipeline on: %s" % self.app.root_dir) 200 logger.debug("Initiating processing pipeline on: %s" % self.app.root_dir)
201 self.processDirectory(ctx, self.app.root_dir) 201 self.processDirectory(ctx, self.app.root_dir)
202 ctx.is_multi_mount = True 202 ctx.is_multi_mount = True
203 for name, path in self.mounts.iteritems(): 203 for name, path in self.mounts.items():
204 mount_ctx = ProcessingContext(path, queue, record) 204 mount_ctx = ProcessingContext(path, queue, record)
205 logger.debug("Initiating processing pipeline on: %s" % path) 205 logger.debug("Initiating processing pipeline on: %s" % path)
206 self.processDirectory(mount_ctx, path) 206 self.processDirectory(mount_ctx, path)
207 207
208 # Wait on all workers. 208 # Wait on all workers.
323 else: 323 else:
324 escaped_pat = (re.escape(pat) 324 escaped_pat = (re.escape(pat)
325 .replace(r'\*', r'[^/\\]*') 325 .replace(r'\*', r'[^/\\]*')
326 .replace(r'\?', r'[^/\\]')) 326 .replace(r'\?', r'[^/\\]'))
327 re_patterns.append(escaped_pat) 327 re_patterns.append(escaped_pat)
328 return map(lambda p: re.compile(p), re_patterns) 328 return [re.compile(p) for p in re_patterns]
329 329
330 330
331 def re_matchany(filename, patterns): 331 def re_matchany(filename, patterns):
332 for pattern in patterns: 332 for pattern in patterns:
333 if pattern.match(filename): 333 if pattern.match(filename):