diff options
| author | Eric Atkin <eatkin@certusllc.us> | 2019-02-15 15:59:13 -0700 |
|---|---|---|
| committer | Michael Merickel <michael@merickel.org> | 2019-03-21 22:24:36 -0500 |
| commit | c380d0226fdc5ade67f10dadc1adabdc6e50cb70 (patch) | |
| tree | 527dd3a1ce0b117c6277c184759edd4457b4793d /src | |
| parent | eda95b5105ec8050a97e34ad76bea35cc8f8fb7b (diff) | |
| download | pyramid-c380d0226fdc5ade67f10dadc1adabdc6e50cb70.tar.gz pyramid-c380d0226fdc5ade67f10dadc1adabdc6e50cb70.tar.bz2 pyramid-c380d0226fdc5ade67f10dadc1adabdc6e50cb70.zip | |
Add ignore_files to pserve configuration section
Diffstat (limited to 'src')
| -rw-r--r-- | src/pyramid/scripts/pserve.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/pyramid/scripts/pserve.py b/src/pyramid/scripts/pserve.py index bf5662a19..350ab4d6d 100644 --- a/src/pyramid/scripts/pserve.py +++ b/src/pyramid/scripts/pserve.py @@ -25,8 +25,10 @@ from pyramid.path import AssetResolver from pyramid.settings import aslist -def main(argv=sys.argv, quiet=False): - command = PServeCommand(argv, quiet=quiet) +def main(argv=sys.argv, quiet=False, original_ignore_files=None): + command = PServeCommand( + argv, quiet=quiet, original_ignore_files=original_ignore_files + ) return command.run() @@ -131,13 +133,15 @@ class PServeCommand(object): _scheme_re = re.compile(r'^[a-z][a-z]+:', re.I) - def __init__(self, argv, quiet=False): + def __init__(self, argv, quiet=False, original_ignore_files=None): self.args = self.parser.parse_args(argv[1:]) if quiet: self.args.verbose = 0 if self.args.reload: self.worker_kwargs = {'argv': argv, "quiet": quiet} self.watch_files = set() + self.ignore_files = set() + self.original_ignore_files = original_ignore_files def out(self, msg): # pragma: no cover if self.args.verbose > 0: @@ -151,6 +155,9 @@ class PServeCommand(object): config_path = self.get_config_path(loader) here = os.path.dirname(config_path) watch_files = aslist(settings.get('watch_files', ''), flatten=False) + self.ignore_files = set( + aslist(settings.get('ignore_files', ''), flatten=False) + ) # track file paths relative to the ini file resolver = AssetResolver(package=None) @@ -232,11 +239,13 @@ class PServeCommand(object): if self.args.reload and not hupper.is_active(): if self.args.verbose > 1: self.out('Running reloading file monitor') + self.worker_kwargs['original_ignore_files'] = self.ignore_files hupper.start_reloader( 'pyramid.scripts.pserve.main', reload_interval=int(self.args.reload_interval), verbose=self.args.verbose, worker_kwargs=self.worker_kwargs, + ignore_files=self.ignore_files, ) return 0 @@ -250,6 +259,15 @@ class PServeCommand(object): reloader = hupper.get_reloader() reloader.watch_files(list(self.watch_files)) + if ( + self.original_ignore_files is not None + and self.original_ignore_files != self.ignore_files + ): + self.out( + 'A change to "ignore_files" was detected but it will not take' + ' effect until pserve is restarted.' + ) + server = server_loader.get_wsgi_server(server_name, config_vars) app = loader.get_wsgi_app(app_name, config_vars) |
