home / github / issue_comments

Menu
  • Search all tables
  • GraphQL API

issue_comments: 1008354207

This data as json

html_url issue_url id node_id user created_at updated_at author_association body reactions issue performed_via_github_app
https://github.com/simonw/sqlite-utils/issues/371#issuecomment-1008354207 https://api.github.com/repos/simonw/sqlite-utils/issues/371 1008354207 IC_kwDOCGYnMM48GkOf 9599 2022-01-09T18:54:54Z 2022-01-09T18:54:54Z OWNER

This seems to work: ```python def _compile_code(code, imports, variable="value"): locals = {} globals = {"r": recipes, "recipes": recipes} # If user defined a convert() function, return that try: exec(code, globals, locals) return locals["convert"] except (AttributeError, SyntaxError, NameError, KeyError, TypeError): pass

# Try compiling their code as a function instead
body_variants = [code]
# If single line and no 'return', try adding the return
if "\n" not in code and not code.strip().startswith("return "):
    body_variants.insert(0, "return {}".format(code))

for variant in body_variants:
    new_code = ["def fn({}):".format(variable)]
    for line in variant.split("\n"):
        new_code.append("    {}".format(line))
    try:
        code_o = compile("\n".join(new_code), "<string>", "exec")
        break
    except SyntaxError:
        # Try another variant, e.g. for 'return row["column"] = 1'
        continue

for import_ in imports:
    globals[import_.split(".")[0]] = __import__(import_)
exec(code_o, globals, locals)
return locals["fn"]

```

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
1097128334  
Powered by Datasette · Queries took 1.089ms · About: github-to-sqlite