* Added field_arg to template grammar * Updated template grammar to match autofile MTL * Added format and filter args from autofile * Added cloud_metadata to PhotoInfo * Version bump, updated docs * Added tests for filters
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
""" Example showing how to use a custom function for osxphotos {function} template
|
|
Use: osxphotos export /path/to/export --filename "{function:/path/to/template_function.py::example}"
|
|
|
|
You may place more than one template function in a single file as each is called by name using the {function:file.py::function_name} format
|
|
"""
|
|
|
|
import pathlib
|
|
from typing import List, Optional, Union
|
|
|
|
from osxphotos import ExportOptions, PhotoInfo
|
|
|
|
|
|
def example(
|
|
photo: PhotoInfo, options: ExportOptions, args: Optional[str] = None, **kwargs
|
|
) -> Union[List, str]:
|
|
"""example function for {function} template; adds suffix of # if photo has adjustments and ! if photo is a favorite
|
|
|
|
Args:
|
|
photo: osxphotos.PhotoInfo object
|
|
options: osxphotos.ExportOptions object
|
|
args: optional str of arguments passed to template function
|
|
**kwargs: not currently used, placeholder to keep functions compatible with possible changes to {function}
|
|
|
|
Returns:
|
|
str or list of str of values that should be substituted for the {function} template
|
|
"""
|
|
|
|
filename = pathlib.Path(photo.original_filename).stem
|
|
if photo.hasadjustments:
|
|
filename += "#"
|
|
if photo.favorite:
|
|
filename += "!"
|
|
|
|
return filename
|