Skip to content
Snippets Groups Projects
Commit b3cccd95 authored by Karl-Hermann Wieners's avatar Karl-Hermann Wieners
Browse files

Added global function 'get_file' to expand input file names for scripts

parent cd831e30
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,14 @@ Make Experiments!
Release Changes
---------------
Release 0.4.1
=============
Templates
---------
* Added global function 'get_file' to expand input file names for scripts
Release 0.4.0
=============
......
Source diff could not be displayed: it is too large. Options to address this: view the blob.
No preview for this file type
files.py 0 → 100644
'''
Utilities for handling 'files' section
'''
import os
import re
def get_file(section, name):
'''
Expand input files into full file names
'''
# Create section list
parent = section
ancestry = [parent]
while not parent.parent is parent:
ancestry.append(parent.parent)
parent = parent.parent
ancestry.reverse()
# Extract directory name
dir_name = ''
for parent in ancestry:
if '.base_dir' in parent:
dir_name = parent['.base_dir']
elif '.sub_dir' in parent:
dir_name = os.path.join(dir_name, parent['.sub_dir'])
result = os.path.join(dir_name, section.get(name))
result = re.sub(r'\$\{(\w+)\}', lambda m: section.main[m.group(1)], result)
return result
......@@ -21,6 +21,7 @@ from jinja2 import Environment, ChoiceLoader, FileSystemLoader, \
from expconfig import ExpConfig, ExpConfigError
import feedback
import files
#
# Basic settings
......@@ -296,12 +297,17 @@ template_env = Environment(
extensions=['jinja2.ext.do']
)
# Helper function to get context information within templates
# Additional global functions
# - Helper function to get context information within templates
@jinja2.contextfunction
def get_context(ctx, key=None):
return ctx.resolve(key) if key else ctx
template_env.globals['context'] = get_context
# - Utility to get full file name from 'files' section
template_env.globals['get_file'] = files.get_file
# Additional filters
# - A better wordwrap filter
......
from distutils.core import setup
name = 'mkexp'
version = '0.4.0'
version = '0.4.1dev'
setup(
name = name,
......@@ -11,7 +11,7 @@ setup(
author = 'Karl-Hermann Wieners',
author_email = 'karl-hermann.wieners@mpimet.mpg.de',
url = 'http://code.zmaw.de/projects/esmenv',
py_modules = ['configobj', 'validate', 'feedback', 'expconfig'],
py_modules = ['configobj', 'validate', 'feedback', 'expconfig', 'files'],
scripts = ['mkexp', 'getexp', 'rmexp', 'diffexp', 'diffpath', 'cpexp', 'cppath'],
data_files = [('share/doc/'+name, ['doc/mkexp.pdf'])],
platforms = ['Posix'],
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment