def test_m5_2(self):
     c = Includer.Includer()
     path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '0.py')
     lines = [-5, 2]
     with self.assertRaises(Exception) as e:
         text = c.Include(path, lines=lines)
         self.assertEqual(e.msg, '引数linesは 左辺値 <= 右辺値 である必要があります。')
 def test_plus2plus(self):
     c = Includer.Includer()
     path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '0.py')
     lines = [3, 6]
     answer = """class MyClass(object):
 def __init__(self):
     pass
 def Show(self):"""
     text = c.Include(path, lines=lines)
     self.assertEqual(text, answer)
 def test_none_8(self):
     c = Includer.Includer()
     path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '0.py')
     lines = [None, 8]
     with self.assertRaises(Exception) as e:
         text = c.Include(path, lines=lines)
         self.assertEqual(
             e.msg,
             '引数linesはlist型で[start, end]の2つの整数値を指定してください。0を指定するとstartは1, endは最終行数になります。負数を指定すると末尾からの行数です。-1なら最終行-1行目を指定します。'
         )
    def test_5_m2(self):
        c = Includer.Includer()
        path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '0.py')
        lines = [5, -2]
        answer = """        pass
    def Show(self):
        print('this is MyClass.')


if __name__ == '__main__':"""
        text = c.Include(path, lines=lines)
        self.assertEqual(text, answer)
    def test_0_m5(self):
        c = Includer.Includer()
        path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '0.py')
        lines = [0, -5]
        answer = """#!python3
#encoding: utf-8
class MyClass(object):
    def __init__(self):
        pass
    def Show(self):
        print('this is MyClass.')"""
        text = c.Include(path, lines=lines)
        self.assertEqual(text, answer)
    def test_all_none(self):
        c = Includer.Includer()
        path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '0.py')
        lines = None
        answer = """#!python3
#encoding: utf-8
class MyClass(object):
    def __init__(self):
        pass
    def Show(self):
        print('this is MyClass.')


if __name__ == '__main__':
    c = MyClass()
    c.Show()
"""
        text = c.Include(path, lines=lines)
        self.assertEqual(text, answer)
Exemple #7
0
 def __init__(self):
     self.__includer = Includer.Includer()
     self.__wrapper = HtmlWrapper.HtmlWrapper()
import Config
import Includer
import Compiler

logger = logging.getLogger(__name__)

if __name__ == '__main__':
    logging.basicConfig(level=logging.INFO)

    sourcePool = Config.System.JAVA_LIBS
    out = path.join(Config.Path.OUT, Config.System.VERSION, "java")
    if not os.path.exists(out):
        os.mkdir(out)

    imports = set()
    if  len(sys.argv) > 1 and os.path.isfile(Includer.absjoin(out, sys.argv[1].replace(".", "/")+".py")):
        logger.info("input pkg: {}".format(sys.argv[1]))
        os.remove(Includer.absjoin(out, sys.argv[1].replace(".", "/")+".py"))
        imports.add(sys.argv[1])
    else:
        files = Includer.absjoin(Config.Path.OUT, Config.System.VERSION, "Parcel_list")

        # load used creator files
        with open(files, "r") as ffd:
            pkgs = ffd.read().split("\n")
        for pkg in pkgs:
            if  pkg.find(".") > 0:
                imports.add(pkg)

    # empty set
    solvedPkgs = set()
Exemple #9
0
import Includer as inc

# Run()
if __name__ == "__main__":
    # Чтаем исходный файл - единицу компиляции
    fname = "_v2_HOT.asm"
    ftarget = "pp_" + fname  # файл с резултьтатом
    fpath = "../../test-data"
    fullName = fpath + "/" + fname
    fname = fname.replace("/", "\\\\")

    # ! могут быть инглуды задефайнены!!
    # нужно очистить от дефайнов заголовочные файлы, а потом уже блок кода!

    # собрать один файл
    inc.assembleCompileUnit(fullName, ftarget)

    """
	# удаляем комментарии
	print '\nRemoving commints...'
	inc.purgeFromComments( targetFileName )
	
	# пропускаем через макросы - если внутри есть дефайны, то отфильтруем потом
	print '\nRemoving macroses...'
	run( targetFileName )
	
	# пропускаем через definer ! один раз но весь исходник! и все готово, 
	print '\nPurge from ifdefs...'
	inc.ConditionCompile( targetFileName ) 
	# В итоге чистый файл - чистый код, котовый к графическом анализу
	"""
# -*- coding: utf-8 -*-
""" 
	abs. : обрабатывает include директивы
		на входе файл ansii(или и тот и тот)
		на выходе utf8
	file : import testIncluder
"""
import os
import unittest
import Includer as inc

# Run()
if __name__ == "__main__":
    # переходим в директорию с файлом
    os.chdir("src")

    # Чтаем исходный файл - единицу компиляции
    fname = "_v2_HOT.asm"
    fname = "src.asm"
    targetFileName = "pp_" + fname

    # собрать один файл
    modelName = ""
    inc.assembleCompileUnit(fname, targetFileName)