From d0cd7070bceb71ef524c4bf58da5a1f7af7a88f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD=20=D0=9A=D0=B0=D1=81=D0=B8?= =?UTF-8?q?=D0=BC=D0=BE=D0=B2?= Date: Mon, 27 May 2019 22:25:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20watchdog,=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=BE=20?= =?UTF-8?q?=D0=BD=D0=B5=D0=B3=D0=BE=20=D0=B4=D0=BE=D0=BB=D0=B6=D0=B5=D0=BD?= =?UTF-8?q?=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=D1=81=D1=8F=20hupper=20[closes=20#12=20#31=20#20?= =?UTF-8?q?=20#26]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- flatfilecms/__init__.py | 54 +---------------------------------------- setup.py | 1 - 2 files changed, 1 insertion(+), 54 deletions(-) diff --git a/flatfilecms/__init__.py b/flatfilecms/__init__.py index 358cdec..0f7a30d 100644 --- a/flatfilecms/__init__.py +++ b/flatfilecms/__init__.py @@ -1,58 +1,11 @@ -from pathlib import Path - from pyramid.config import Configurator -from pyramid.path import AssetResolver -from watchdog.observers import Observer -from watchdog.events import FileSystemEventHandler -from flatfilecms.resources import Root, root_factory, roots - - -class PagesEventHandler(FileSystemEventHandler): - def __init__(self, root_path): - super(PagesEventHandler, self).__init__() - self.root_path = root_path - self.abspath = AssetResolver().resolve(root_path).abspath() - - def find_dir(self, path): - folder = roots.setdefault(self.root_path, Root(self.root_path)) - path = path.relative_to(self.abspath) - for name in path.parts[:-1]: - folder = folder[name] - return folder - - def on_created(self, event): - super(PagesEventHandler, self).on_created(event) - path = Path( - event.dest_path if hasattr(event, 'dest_path') else event.src_path) - folder = self.find_dir(path) - if event.is_directory: - folder.create_dir(path) - else: - folder.create_file(path) - - def on_deleted(self, event): - super(PagesEventHandler, self).on_deleted(event) - path = Path(event.src_path) - folder = self.find_dir(path) - name = path.stem - if path.suffix not in ['.md', '.yaml', '.j2', '.jinja2'] \ - and path.name != 'index.html': - name = path.name - del folder[name] - - def on_moved(self, event): - super(PagesEventHandler, self).on_moved(event) - self.on_deleted(event) - self.on_created(event) +from flatfilecms.resources import root_factory def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ - from pyramid.settings import asbool - watchdog = asbool(settings.get('watchdog', 'false')) - settings['watchdog'] = watchdog settings.setdefault('pages_path', 'pages') settings.setdefault('data_path', 'data') default_jinja2_filters = """markdown = flatfilecms.filters:markdown2html @@ -66,9 +19,4 @@ def main(global_config, **settings): config.include('pyramid_jinja2') config.include('.routes') config.scan() - if watchdog: - observer = Observer() - event_handler = PagesEventHandler(settings['pages_path']) - observer.schedule(event_handler, event_handler.abspath, recursive=True) - observer.start() return config.make_wsgi_app() diff --git a/setup.py b/setup.py index c655595..00466f4 100644 --- a/setup.py +++ b/setup.py @@ -20,7 +20,6 @@ requires = [ 'Markdown', 'PyYAML', 'python-frontmatter', - 'watchdog < 0.9.0', 'pyramid-htmlmin', 'pyramid-webpack', 'Babel',