Watcher handlers

This component contains watchdog handlers to use to watch a project sources.

class optimus.watchers.BaseHandler[source]

Base class for handlers.

Assume children inheriting this class have a settings attribute with a valid SettingsModel instance as value.

get_relative_template_path(path)[source]

Retrieve relative path from templates directory.

Parameters:path (str) – Path to a template file.
Returns:Relative path either from templates directory or untouched if file does not belong to template dir.
Return type:string
get_relative_asset_path(path)[source]

Retrieve relative path from assets directory.

Parameters:path (str) – Path to an asset file.
Returns:Relative path either from assets directory or untouched if file does not belong to assets dir.
Return type:string
class optimus.watchers.templates.TemplatesWatchEventHandler(settings, pages_builder, *args, **kwargs)[source]

Template events handler.

Parameters:
Keyword Arguments:
 

kwargs – Optionnal keyword arguments commonly for watchdog API.

settings

As given from arguments.

Type:optimus.conf.model.SettingsModel
pages_builder

As given from arguments.

Type:optimus.pages.builder.PageBuilder
logger

Optimus logger.

Type:logging.Logger
build_for_item(path)[source]

Build all pages using given template path.

If template is a snippet included in other templates they will be flagged for build too. This is recursive so a snippet in a snippet in a snippet will raises to page templates.

path argument is a template path

Parameters:path (string) – Template path.
Returns:List of builded pages.
Return type:list
on_moved(event)[source]

Called when a file or a directory is moved or renamed.

Many editors don’t directly change a file, instead they make a transitional file like *.part then move it to the final filename.

Parameters:event – Watchdog event, either watchdog.events.DirMovedEvent or watchdog.events.FileModifiedEvent.
on_created(event)[source]

Called when a new file or directory is created.

Parameters:event – Watchdog event, either watchdog.events.DirCreatedEvent or watchdog.events.FileCreatedEvent.
on_modified(event)[source]

Called when a file or directory is modified.

Parameters:event – Watchdog event, watchdog.events.DirModifiedEvent or watchdog.events.FileModifiedEvent.
class optimus.watchers.assets.AssetsWatchEventHandler(settings, assets_env, pages_builder, *args, **kwargs)[source]

Assets events handler

Since assets filename change when they are rebuiled, this handler also performs page rebuild to include the right assets urls.

Parameters:
  • settings (optimus.conf.model.SettingsModel) – Project settings.
  • assets_env (webassets.Environment) – Webasset environment.
  • pages_builder (optimus.pages.builder.PageBuilder) – Page builder object that is triggered to perform page building.
  • args – Additional arguments to be passed to handler, commonly for watchdog API.
Keyword Arguments:
 

kwargs – Optionnal keyword arguments commonly for watchdog API.

settings

As given from arguments.

Type:optimus.conf.model.SettingsModel
assets_env

Webasset As given from arguments.

Type:webassets.Environment
pages_builder

As given from arguments.

Type:optimus.pages.builder.PageBuilder
logger

Optimus logger.

Type:logging.Logger
build_for_item(path)[source]

Build bundle containing given asset path and all pages.

Parameters:path (string) – Asset path.
Returns:List of builded pages.
Return type:list
on_moved(event)[source]

Called when a file or a directory is moved or renamed.

Many editors don’t directly change a file, instead they make a transitional file like *.part then move it to the final filename.

Parameters:event – Watchdog event, either watchdog.events.DirMovedEvent or watchdog.events.FileModifiedEvent.
on_created(event)[source]

Called when a new file or directory is created.

Parameters:event – Watchdog event, either watchdog.events.DirCreatedEvent or watchdog.events.FileCreatedEvent.
on_modified(event)[source]

Called when a file or directory is modified.

Parameters:event – Watchdog event, watchdog.events.DirModifiedEvent or watchdog.events.FileModifiedEvent.