示例#1
0
    def classes_description_from_file(self, content_as_lines : list, root_path:str)-> list:  # pure function # -> list of ClassDescription
        """ Takes root_path where we have our project and relative filename of .py file
            produces classes description which are found there"""

        class_started = False
        classes_information = []
        current_class = None
        class_description.ClassDescription.root_path = root_path
        for index, line in enumerate(content_as_lines):
            check_result = self.line_parser('class', line)
            if check_result == 'start':
                if class_started:  # need to take into account, that start can represent another class start, i.e. end
                    current_class.line_end = index - 1
                    classes_information.append(current_class)
                    class_started = False
                class_started = True
                class_name = self.name_extractor('class', line)
                start, end = self.extract_brackets_position(line)
                parent_name = line[start + 1:end].strip()
                current_class = class_description.ClassDescription(class_name=class_name,
                                                                   file_name=relative_filename,
                                                                   line_start=index,
                                                                   child_of=parent_name)
            elif check_result == 'end' and class_started:
                current_class.line_end = index - 1
                classes_information.append(current_class)
                class_started = False
                print("This condition works!")

        return classes_information
示例#2
0
import class_description

class_description.ClassDescription.root_path = r'D:/Literature/CASE'

Engine_representation = class_description.ClassDescription(
    class_name='Engine',
    file_name=r'ObjectRelations\association_relations.py',
    line_start=3,
    line_end=25)

Automobile_representation = class_description.ClassDescription(
    class_name='Automobile',
    file_name=r'ObjectRelations\association_relations.py',
    line_start=30,
    line_end=47)

all_classes = [
    Engine_representation,
    Automobile_representation,
]

method = class_description.MethodDescription(
    method_name='__init__',
    line_start=5,
    line_end=10,
    variables=[('engine_manufacturer', 'str'), ('start_probability', 'float')],
)
Engine_representation.add_method(method)

method = class_description.MethodDescription(
    method_name='engine_manufacturer',
示例#3
0
import class_description

class_description.ClassDescription.root_path = r'D:/Literature/CASE'

ClassDescription_representation = class_description.ClassDescription(
    class_name='ClassDescription',
    file_name=r'class_description.py',
    line_start=5,
    line_end=61)

all_classes = [
    ClassDescription_representation,
]

# TODO
ClassDescription_representation.add_method(
    method_name='add_method',
    #TODO add @!!! static_method!!!
    line_start=25,
    line_end=43,
    variables=[
        ('method_name', 'str'),
        ('line_start', 'int'),
        ('line_end', 'int'),
        ('variables', 'list'),
    ])
import class_description

class_description.ClassDescription.root_path = r'D:/Literature/CASE'

MethodDescription_representation = class_description.ClassDescription(
    class_name='MethodDescription',
    file_name=r'class_description.py',
    line_start=5,
    line_end=26)

ClassDescription_representation = class_description.ClassDescription(
    class_name='ClassDescription',
    file_name=r'class_description.py',
    line_start=27,
    line_end=71)

all_classes = [
    MethodDescription_representation,
    ClassDescription_representation,
]

method = class_description.MethodDescription(
    method_name='to_list',
    line_start=19,
    line_end=26,
    variables=[],
)
MethodDescription_representation.add_method(method)

method = class_description.MethodDescription(
    method_name='__init__',
import class_description

class_description.ClassDescription.root_path = r'D:/Literature/CASE'

ManufacturedObject_representation = class_description.ClassDescription(class_name='ManufacturedObject',
                                                                       file_name=r'ObjectRelations\inheritance_relations.py',
                                                                       line_start=3,
                                                                       line_end=12,
                                                                       child_of='object')

ObjectWithInternalEngine_representation = class_description.ClassDescription(class_name='ObjectWithInternalEngine',
                                                                             file_name=r'ObjectRelations\inheritance_relations.py',
                                                                             line_start=13,
                                                                             line_end=27,
                                                                             child_of='ManufacturedObject')

Engine_representation = class_description.ClassDescription(class_name='Engine',
                                                           file_name=r'ObjectRelations\inheritance_relations.py',
                                                           line_start=28,
                                                           line_end=41,
                                                           child_of='ObjectWithInternalEngine')

Automobile_representation = class_description.ClassDescription(class_name='Automobile',
                                                               file_name=r'ObjectRelations\inheritance_relations.py',
                                                               line_start=42,
                                                               line_end=58,
                                                               child_of='ManufacturedObject')

all_classes = [
               ManufacturedObject_representation,
               ObjectWithInternalEngine_representation,