示例#1
0
    def register_core_by_stack(self,
                               include_stacks: Set[str],
                               *,
                               exclude_stacks: Set[str] = None):
        """Register all instructions that make use of the given type name.

        Parameters
        ----------
        include_stacks
            List of PushType names.

        exclude_stacks
            List of PushType names.

        Returns
        -------
        InstructionSet
            A reference to the InstructionSet.

        """
        for i in core_instructions(self.type_library):
            req_stacks = i.required_stacks()
            if req_stacks <= include_stacks:
                if exclude_stacks is None or len(req_stacks
                                                 & exclude_stacks) == 0:
                    self.register(i)
        return self
示例#2
0
    def register_core_by_stack(
        self,
        include_stacks: Set[str],
        *,
        exclude_stacks: Set[str] = None
    ):
        """Register all instructions that make use of the given type name.

        Parameters
        ----------
        type_names
            List of PushType names.

        Returns
        -------
        InstructionSet
            A reference to the InstructionSet.

        """
        for i in core_instructions(self.type_library):
            req_stacks = i.required_stacks()
            if req_stacks <= include_stacks:
                if exclude_stacks is not None and len(req_stacks & exclude_stacks) > 0:
                    break
                self.register(i)
        return self
示例#3
0
    def register_core(self):
        """Register all core instructions defined in pyshgp.

        Returns
        -------
        InstructionSet
            A reference to the InstructionSet.

        """
        self.register_list(core_instructions(self.type_library))
        return self
示例#4
0
    def register_core(self):
        """Register all core instructions defined in pyshgp.

        Returns
        -------
        InstructionSet
            A reference to the InstructionSet.

        """
        self.register_list(core_instructions(self.type_library))
        return self
示例#5
0
    def register_core_by_name(self, name_pattern: str):
        """Register all instructions whose name match the given pattern.

        Parameters
        ----------
        name_pattern
            A regex string.

        Returns
        -------
        InstructionSet
            A reference to the InstructionSet.

        """
        re_pat = re.compile(name_pattern)
        for i in core_instructions(self.type_library):
            if re.match(re_pat, i.name) is not None:
                self.register(i)
        return self
示例#6
0
    def register_core_by_name(self, name_pattern: str):
        """Register all instructions whose name match the given pattern.

        Parameters
        ----------
        name_pattern
            A regex string.

        Returns
        -------
        InstructionSet
            A reference to the InstructionSet.

        """
        re_pat = re.compile(name_pattern)
        for i in core_instructions(self.type_library):
            if re.match(re_pat, i.name) is not None:
                self.register(i)
        return self
示例#7
0
文件: pyshgp_cli.py 项目: erp12/Pysh
import pyshgp

from pyshgp.push.atoms import Instruction
from pyshgp.push.instruction import (
    SimpleInstruction,
    StateToStateInstruction,
    TakesStateInstruction,
    ProducesManyOfTypeInstruction,
)
from pyshgp.push.instructions import core_instructions
from pyshgp.push.type_library import PushTypeLibrary

# @TODO: Create a way to prepare a release from pyshgp_cli.py

CORE_INSTRUCTIONS = core_instructions(PushTypeLibrary())
DOC_DIR = "build/doc/"


def _generate_instruction_rst(instr: Instruction) -> str:
    lines = []
    lines.append(instr.name)
    lines.append("=" * len(instr.name))

    signature_template = "*Takes: {i} - Produces: {o}*"
    if isinstance(instr, SimpleInstruction):
        signature_line = signature_line = signature_template.format(
            i="[" + ", ".join(instr.input_stacks) + "]",
            o="[" + ", ".join(instr.output_stacks) + "]"
        )
    elif isinstance(instr, StateToStateInstruction):
示例#8
0
import pyshgp

from pyshgp.push.atoms import Instruction
from pyshgp.push.instruction import (
    SimpleInstruction,
    StateToStateInstruction,
    TakesStateInstruction,
    ProducesManyOfTypeInstruction,
)
from pyshgp.push.instructions import core_instructions
from pyshgp.push.type_library import PushTypeLibrary

# @TODO: CLI - Create a way to prepare a release from pyshgp_cli.py

CORE_INSTRUCTIONS = core_instructions(PushTypeLibrary())
DOC_DIR = "build/doc/"


def _generate_instruction_rst(instr: Instruction) -> str:
    lines = [instr.name, "=" * len(instr.name)]

    signature_line = None
    signature_template = "*Takes: {i} - Produces: {o}*"
    if isinstance(instr, SimpleInstruction):
        signature_line = signature_line = signature_template.format(
            i="[" + ", ".join(instr.input_stacks) + "]",
            o="[" + ", ".join(instr.output_stacks) + "]")
    elif isinstance(instr, StateToStateInstruction):
        signature_line = signature_template.format(i="PushState",
                                                   o="PushState")