diff options
author | Juergen Bocklage-Ryannel <juergen@ryannel.org> | 2018-12-24 13:28:16 +0100 |
---|---|---|
committer | Juergen Bocklage-Ryannel <juergen@ryannel.org> | 2018-12-24 13:28:16 +0100 |
commit | f354532d7cc9e3663b005f5413baf03833c60398 (patch) | |
tree | e2bcb28bb3d8f3d3efc86bb1c064380cd5579e60 /qface/filters.py | |
parent | 22840dd0a67644afd20c1b9c4dfffa2c23cb4c6d (diff) | |
download | qtivi-qface-f354532d7cc9e3663b005f5413baf03833c60398.tar.gz |
- introduce qface script mode
- add ability to load dynamic filters for qface script mode
- extract generic filters
- fixed some issues with cpp macros
Diffstat (limited to 'qface/filters.py')
-rw-r--r-- | qface/filters.py | 68 |
1 files changed, 19 insertions, 49 deletions
diff --git a/qface/filters.py b/qface/filters.py index 5969a64..236c7b3 100644 --- a/qface/filters.py +++ b/qface/filters.py @@ -1,58 +1,28 @@ -import json -import hashlib +from .helper import generic from .helper import qtqml from .helper import qtcpp from .helper import doc +import importlib.util -def jsonify(symbol): - """ returns json format for symbol """ - try: - # all symbols have a toJson method, try it - return json.dumps(symbol.toJson(), indent=' ') - except AttributeError: - pass - return json.dumps(symbol, indent=' ') +def get_filters(): + filters = {} + filters.update(generic.get_filters()) + filters.update(qtqml.Filters.get_filters()) + filters.update(qtcpp.Filters.get_filters()) + filters.update(doc.get_filters()) + return filters -def upper_first(s): - """ uppercase first letter """ - s = str(s) - return s[0].upper() + s[1:] +def load_filters(path): + if not path.exists(): + print('filter module does not exist') + return {} + extra_filters = {} + spec = importlib.util.spec_from_file_location('filters', path.abspath()) + filters_module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(filters_module) + filters_module.get_filters(extra_filters) + return extra_filters -def lower_first(s): - s = str(s) - return s[0].lower() + s[1:] - - -def hash(symbol, hash_type='sha1'): - """ create a hash code from symbol """ - code = hashlib.new(hash_type) - code.update(str(symbol).encode('utf-8')) - return code.hexdigest() - - -def path(symbol): - """ replaces '.' with '/' """ - return str(symbol).replace('.', '/') - - -def identifier(s): - return str(s).lower().replace('.', '_') - - -filters = { - 'jsonify': jsonify, - 'upper_first': upper_first, - 'lower_first': lower_first, - 'upperfirst': upper_first, - 'lowerfirst': lower_first, - 'hash': hash, - 'path': path, - 'identifier': identifier, -} - -filters.update(qtqml.Filters.get_filters()) -filters.update(qtcpp.Filters.get_filters()) -filters.update(doc.get_filters()) |