Skip to content

Commit

Permalink
Support empy3 and empy4
Browse files Browse the repository at this point in the history
Signed-off-by: Alejandro Hernández Cordero <[email protected]>
  • Loading branch information
ahcorde committed Aug 1, 2024
1 parent 481c943 commit 0accfa0
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 19 deletions.
33 changes: 24 additions & 9 deletions rosidl_adapter/rosidl_adapter/resource/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,13 @@

from io import StringIO
import os
from packaging import version
import sys

import em

if version.parse(em.__version__) >= version.parse('4.0.0'):
from em import Configuration

def expand_template(template_name, data, output_file, encoding='utf-8'):
content = evaluate_template(template_name, data)
Expand Down Expand Up @@ -45,18 +48,29 @@ def evaluate_template(template_name, data):

output = StringIO()
try:
_interpreter = em.Interpreter(
output=output,
options={
em.BUFFERED_OPT: True,
em.RAW_OPT: True,
})

if version.parse(em.__version__) >= version.parse('4.0.0'):
config = Configuration(
defaultRoot=template_path,
defaultStdout=output,
useProxy=False)
_interpreter = em.Interpreter(
config=config,
dispatcher=False)
else:
_interpreter = em.Interpreter(
output=output,
options={
em.BUFFERED_OPT: True,
em.RAW_OPT: True,
})
with open(template_path, 'r') as h:
content = h.read()
_interpreter.invoke(
'beforeFile', name=template_name, file=h, locals=data)
_interpreter.string(content, template_path, locals=data)
if version.parse(em.__version__) >= version.parse('4.0.0'):
_interpreter.string(content, locals=data)
else:
_interpreter.string(content, template_path, locals=data)
_interpreter.invoke('afterFile')

return output.getvalue()
Expand All @@ -66,7 +80,8 @@ def evaluate_template(template_name, data):
file=sys.stderr)
raise
finally:
_interpreter.shutdown()
if _interpreter is not None:
_interpreter.shutdown()
_interpreter = None


Expand Down
34 changes: 24 additions & 10 deletions rosidl_pycommon/rosidl_pycommon/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,16 @@
from io import StringIO
import json
import os
from packaging import version
import pathlib
import re
import sys

import em

if version.parse(em.__version__) >= version.parse('4.0.0'):
from em import Configuration

from rosidl_parser.definition import IdlLocator
from rosidl_parser.parser import parse_idl_file

Expand Down Expand Up @@ -146,20 +151,29 @@ def expand_template(
template_basepath = template_name.parent
template_name = template_name.name

global interpreter
output = StringIO()
interpreter = em.Interpreter(
output=output,
options={
em.BUFFERED_OPT: True,
em.RAW_OPT: True,
},
)

global template_prefix_path
template_prefix_path.append(template_basepath)
template_path = get_template_path(template_name)

global interpreter
output = StringIO()
if version.parse(em.__version__) >= version.parse('4.0.0'):
config = Configuration(
defaultRoot=template_path,
defaultStdout=output,
useProxy=False)
interpreter = em.Interpreter(
config=config,
dispatcher=False)
else:
interpreter = em.Interpreter(
output=output,
options={
em.BUFFERED_OPT: True,
em.RAW_OPT: True,
},
)

# create copy before manipulating
data = dict(data)
_add_helper_functions(data)
Expand Down

0 comments on commit 0accfa0

Please sign in to comment.