pyolian: make the library and the generator importable from another folder
authorDave Andreoli <dave@gurumeditation.it>
Fri, 29 Dec 2017 08:27:49 +0000 (09:27 +0100)
committerWonki Kim <wonki_.kim@samsung.com>
Wed, 10 Jan 2018 11:08:13 +0000 (20:08 +0900)
.gitignore
src/scripts/pyolian/__init__.py [new file with mode: 0644]
src/scripts/pyolian/eolian.py
src/scripts/pyolian/generator.py

index 5d33fa3..822a39b 100644 (file)
@@ -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 (file)
index 0000000..e69de29
index 5baa2d3..8a3d21f 100644 (file)
@@ -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  ############################################################
index b1e9bca..5fad248 100755 (executable)
@@ -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