From b5e3853e9dc4f755072e3e8d20c7c84d30104ad1 Mon Sep 17 00:00:00 2001 From: Dave Andreoli Date: Fri, 29 Dec 2017 09:27:49 +0100 Subject: [PATCH] pyolian: make the library and the generator importable from another folder --- .gitignore | 2 ++ src/scripts/pyolian/__init__.py | 0 src/scripts/pyolian/eolian.py | 14 +++++++++++++- src/scripts/pyolian/generator.py | 22 +++++++++++++++++----- 4 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 src/scripts/pyolian/__init__.py diff --git a/.gitignore b/.gitignore index 76dd79784d..195dfdc64c 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,8 @@ tags *.eot.cs *.eo.lua *.luac +*.pyc +__pycache__ .dir-locals.el /efl-*-doc.tar.bz2 /ar-lib diff --git a/src/scripts/pyolian/__init__.py b/src/scripts/pyolian/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/scripts/pyolian/eolian.py b/src/scripts/pyolian/eolian.py index 5baa2d3d7d..8a3d21f00a 100644 --- a/src/scripts/pyolian/eolian.py +++ b/src/scripts/pyolian/eolian.py @@ -14,11 +14,23 @@ You can directly use the python API provided here if you need direct access to eolian, or we suggest to look at the template-based generator.py if you just need to generate some sort of text files out of the eolian database. +To use this library from outside this directory, you need to hack sys.path in +a way that this folder will be available on PYTHON_PATH, fe: + + pyolian_path = os.path.join(EFL_ROOT_PATH, 'src', 'scripts') + sys.path.insert(0, pyolian_path) + from pyolian import eolian + from pyolian.generator import Template + """ from enum import IntEnum from ctypes import cast, byref, c_char_p, c_void_p -from eolian_lib import lib +try: + from .eolian_lib import lib +except ImportError: + from eolian_lib import lib + ### Eolian Enums ############################################################ diff --git a/src/scripts/pyolian/generator.py b/src/scripts/pyolian/generator.py index b1e9bca786..5fad2484a5 100755 --- a/src/scripts/pyolian/generator.py +++ b/src/scripts/pyolian/generator.py @@ -15,9 +15,6 @@ For example (from this source folder): ...of course you can pass any other class or namespace to the example above. -You can also import this module and use the provided Template class if you -are more confortable from within python. - The generator is based on the great pyratemp engine (THANKS!), you can find the full template syntax at: www.simple-is-better.org/template/pyratemp.html @@ -30,12 +27,27 @@ Just keep in mind the syntax is a bit different in this implementation: comment_start = "#!" comment_end = "!#" + +You can also import this module and use the provided Template class if you +are more confortable from within python. To import from outside this directory +you need to hack sys.path in a way that this folder will be available on +PYTHON_PATH, fe: + + pyolian_path = os.path.join(EFL_ROOT_PATH, 'src', 'scripts') + sys.path.insert(0, pyolian_path) + from pyolian.generator import Template + + """ import os import datetime -import eolian -import pyratemp +try: + from . import eolian + from . import pyratemp +except ImportError: + import eolian + import pyratemp # logging utils