Skip to content
3 changes: 1 addition & 2 deletions src/psyclone/psyir/nodes/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
from psyclone.psyir.nodes.codeblock import (
CodeBlock, Fparser2CodeBlock, TreeSitterCodeBlock)
from psyclone.psyir.nodes.container import Container
from psyclone.psyir.nodes.node import colored, Node
from psyclone.psyir.nodes.node import Node
from psyclone.psyir.nodes.scoping_node import ScopingNode
from psyclone.psyir.nodes.schedule import Schedule
from psyclone.psyir.nodes.return_stmt import Return
Expand Down Expand Up @@ -82,7 +82,6 @@
# The entities in the __all__ list are made available to import directly from
# this package e.g. 'from psyclone.psyir.nodes import Literal'
__all__ = [
'colored',
'ArrayConstructor',
'ArrayMember',
'ArrayReference',
Expand Down
28 changes: 2 additions & 26 deletions src/psyclone/psyir/nodes/node.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,33 +17,11 @@

from psyclone.core import VariablesAccessMap
from psyclone.errors import GenerationError, InternalError
from psyclone.utils import colored

if TYPE_CHECKING:
from psyclone.psyir.symbols import Symbol

# We use the termcolor module (if available) to enable us to produce
# coloured, textual representations of Invoke schedules. If it's not
# available then we don't use colour.
try:
# pylint disable=import-outside-toplevel
from termcolor import colored
except ImportError:
# We don't have the termcolor package available (e.g. installing from)
# Spack) so provide alternative routine
def colored(text, _):
'''
Returns the supplied text argument unchanged. This is a swap-in
replacement for when termcolor.colored is not available.

:param str text: text to return.
:param _: fake argument, only required to match interface
provided by termcolor.colored.

:returns: the supplied text, unchanged.
:rtype: str
'''
return text


class ChildrenList(list):
'''
Expand Down Expand Up @@ -1866,7 +1844,5 @@ def get_last_descendant_node(self) -> "Node":


# For automatic documentation generation
# TODO #913 the 'colored' routine shouldn't be in this module.
__all__ = ["colored",
"ChildrenList",
__all__ = ["ChildrenList",
"Node"]
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
from psyclone.errors import InternalError, GenerationError
from psyclone.psyir.frontend.fortran import FortranReader
from psyclone.psyir.nodes import Reference, Node, Container
from psyclone.psyir.nodes.node import colored
from psyclone.psyir.symbols import RoutineSymbol, DataTypeSymbol, \
StructureType, Symbol, ScalarType
from psyclone.utils import colored


def create_alg_psyir(code):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
from psyclone.errors import GenerationError, InternalError
from psyclone.domain.common.psylayer import GlobalReduction
from psyclone.psyir.nodes import Literal
from psyclone.psyir.nodes.node import colored
from psyclone.psyir.symbols import ScalarType
from psyclone.tests.utilities import get_invoke
from psyclone.utils import colored


def test_globalreduction_node_str_and_dag_name():
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@
import os
from psyclone.domain.lfric import LFRicInvokeSchedule
from psyclone.parse.algorithm import parse
from psyclone.psyir.nodes import Container, colored
from psyclone.psyir.nodes import Container
from psyclone.psyir.symbols import RoutineSymbol
from psyclone.psyGen import PSyFactory
from psyclone.utils import colored


BASE_PATH = os.path.join(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@

from psyclone.domain.lfric.transformations import LFRicExtractTrans
from psyclone.domain.lfric import LFRicConstants
from psyclone.psyir.nodes import colored, ExtractNode, Loop
from psyclone.psyir.nodes import ExtractNode, Loop
from psyclone.psyir.transformations import PSyDataTrans, TransformationError
from psyclone.tests.lfric_build import LFRicBuild
from psyclone.tests.utilities import get_invoke
from psyclone.transformations import (LFRicColourTrans,
LFRicOMPParallelLoopTrans)
from psyclone.utils import colored

# API names
LFRIC_API = "lfric"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
from psyclone.psyGen import InvokeSchedule, BuiltIn
from psyclone.psyir.backend.visitor import VisitorError
from psyclone.psyir.nodes import (
colored, Loop, Schedule, Literal, Directive, OMPDoDirective,
Loop, Schedule, Literal, Directive, OMPDoDirective,
ACCEnterDataDirective, Assignment, Reference)
from psyclone.psyir.symbols import AutomaticInterface, ScalarType, ArrayType
from psyclone.psyir.transformations import (
Expand All @@ -38,6 +38,7 @@
LFRicColourTrans, LFRicOMPLoopTrans, LFRicOMPParallelLoopTrans,
LFRicAsyncHaloExchangeTrans, LFRicKernelConstTrans,
ACCParallelTrans, ACCEnterDataTrans)
from psyclone.utils import colored

# The version of the API that the tests in this file
# exercise.
Expand Down
3 changes: 2 additions & 1 deletion src/psyclone/tests/lfric_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,14 @@
from psyclone.parse.algorithm import Arg, parse
from psyclone.parse.utils import ParseError
from psyclone.psyGen import PSyFactory, InvokeSchedule, HaloExchange, BuiltIn
from psyclone.psyir.nodes import (colored, BinaryOperation, UnaryOperation,
from psyclone.psyir.nodes import (BinaryOperation, UnaryOperation,
Reference, Routine, Container, Schedule)
from psyclone.psyir.symbols import (ArrayType, ScalarType, DataTypeSymbol,
UnsupportedFortranType)
from psyclone.psyir.backend.visitor import VisitorError
from psyclone.tests.lfric_build import LFRicBuild
from psyclone.tests.utilities import get_invoke
from psyclone.utils import colored


# constants
Expand Down
3 changes: 2 additions & 1 deletion src/psyclone/tests/psyGen_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
InvokeSchedule)
from psyclone.psyir.nodes import (Assignment, BinaryOperation, Container,
Literal, Loop, Node, KernelSchedule, Call,
colored, Reference, Schedule)
Reference, Schedule)
from psyclone.psyir.symbols import (DataSymbol, RoutineSymbol, ScalarType,
ImportInterface, ContainerSymbol,
UnresolvedType, SymbolTable)
Expand All @@ -46,6 +46,7 @@
from psyclone.tests.utilities import get_invoke
from psyclone.transformations import (LFRicColourTrans,
Transformation)
from psyclone.utils import colored


BASE_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)),
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/array_constructor_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
Reference, IfBlock)
from psyclone.core import AccessType, Signature
from psyclone.psyir.symbols import ScalarType, DataSymbol
from psyclone.psyir.nodes.node import colored
from psyclone.utils import colored


def test_array_construction_valid():
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/array_reference_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@
import pytest
from psyclone.errors import GenerationError, InternalError
from psyclone.psyir.backend.fortran import FortranWriter
from psyclone.psyir.nodes.node import colored
from psyclone.psyir.nodes import (
Reference, ArrayReference, Assignment,
Literal, BinaryOperation, Range, KernelSchedule, IntrinsicCall)
from psyclone.psyir.symbols import (
ArrayType, DataSymbol, DataTypeSymbol, ScalarType, Symbol,
UnsupportedFortranType, StructureType, UnresolvedType)
from psyclone.tests.utilities import check_links
from psyclone.utils import colored


def test_array_node_str():
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/assignment_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
from psyclone.psyir.nodes import (
Assignment, Reference, Literal, ArrayReference, Range, StructureReference,
ArrayOfStructuresReference, IntrinsicCall)
from psyclone.psyir.nodes.node import colored
from psyclone.psyir.symbols import (
DataSymbol, ScalarType, Symbol, ArrayType, StructureType, DataTypeSymbol)
from psyclone.tests.utilities import check_links
from psyclone.utils import colored


def test_assignment_node_str():
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/call_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
from psyclone.psyir.nodes import (
ArrayReference, BinaryOperation, Call, Literal,
Node, Reference, Routine, Schedule, CallMatchingArgumentsNotFound)
from psyclone.psyir.nodes.node import colored
from psyclone.psyir.symbols import (
ArrayType, ScalarType, ContainerSymbol, DataSymbol, DataTypeSymbol,
NoType, RoutineSymbol, SymbolError, UnresolvedInterface, UnresolvedType)
from psyclone.utils import colored


class SpecialCall(Call):
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/codeblock_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
from psyclone.psyir.nodes.codeblock import (
CodeBlock, Fparser2CodeBlock, TreeSitterCodeBlock
)
from psyclone.psyir.nodes.node import colored
from psyclone.errors import GenerationError, InternalError
from psyclone.tests.utilities import min_version_3_10
from psyclone.utils import colored


# TODO #3416: Skip treesitter tests below 3.10 as they're unsupported by
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/complex_literal_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@

import pytest
from psyclone.errors import GenerationError
from psyclone.psyir.nodes.node import colored
from psyclone.psyir.nodes import (
Literal, ComplexLiteral, Assignment, BinaryOperation, Reference)
from psyclone.psyir.symbols import ScalarType, DataSymbol, SymbolTable
from psyclone.core import Signature, AccessType
from psyclone.utils import colored


def test_complex_literal_create():
Expand Down
3 changes: 2 additions & 1 deletion src/psyclone/tests/psyir/nodes/container_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,11 @@
import pytest
from psyclone.errors import GenerationError
from psyclone.psyir.backend.fortran import FortranWriter
from psyclone.psyir.nodes import (Call, colored, Container, FileContainer,
from psyclone.psyir.nodes import (Call, Container, FileContainer,
KernelSchedule, Return, Routine)
from psyclone.psyir.symbols import DataSymbol, ScalarType, SymbolTable
from psyclone.tests.utilities import check_links
from psyclone.utils import colored


def test_container_init():
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/file_container_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
from psyclone.psyir.nodes import Routine, FileContainer, Container
from psyclone.psyir.symbols import SymbolTable, DataSymbol, ScalarType
from psyclone.psyir.backend.fortran import FortranWriter
from psyclone.psyir.nodes.node import colored
from psyclone.tests.utilities import get_invoke
from psyclone.utils import colored


def test_file_container_init():
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/if_block_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from psyclone.errors import InternalError, GenerationError
from psyclone.psyir.backend.fortran import FortranWriter
from psyclone.tests.utilities import check_links
from psyclone.psyir.nodes.node import colored
from psyclone.utils import colored


def test_ifblock_invalid_annotation():
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/literal_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from psyclone.psyir.symbols import (
ArrayType, DataSymbol, ScalarType, SymbolTable)
from psyclone.errors import GenerationError
from psyclone.psyir.nodes.node import colored
from psyclone.utils import colored


def test_literal_init():
Expand Down
22 changes: 1 addition & 21 deletions src/psyclone/tests/psyir/nodes/node_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@

''' Performs py.test tests on the Node PSyIR node. '''

import builtins
import runpy
import sys
import os
import re
Expand All @@ -27,7 +25,7 @@
from psyclone.psyir.symbols import DataSymbol, SymbolError, \
ScalarType, SymbolTable, ArrayType, RoutineSymbol, NoType
from psyclone.tests.utilities import get_invoke
from psyclone.psyir.nodes.node import colored
from psyclone.utils import colored

BASE_PATH = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(
os.path.abspath(__file__)))), "test_files", "lfric")
Expand Down Expand Up @@ -97,24 +95,6 @@ def dummy(_1, _2):
"package." in str(err.value))


def test_node_colored_fallback_without_termcolor(monkeypatch):
'''Exercise the fallback implementation of ``colored`` when termcolor
cannot be imported.

'''
original_import = builtins.__import__

def fake_import(name, *args, **kwargs):
'''Raise ImportError only for termcolor.'''
if name == "termcolor":
raise ImportError("termcolor unavailable")
return original_import(name, *args, **kwargs)

monkeypatch.setattr(builtins, "__import__", fake_import)
module_globals = runpy.run_path(node.__file__)
assert module_globals["colored"]("text", "green") == "text"


def test_node_str(monkeypatch):
''' Tests for the Node.node_str method. '''
tnode = Node()
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/omp_clause_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@
''' Performs py.test tests on the OpenMP PSyIR Clause nodes. '''

import pytest
from psyclone.psyir.nodes.node import colored
from psyclone.psyir.nodes.omp_clauses import (
OMPGrainsizeClause, OMPNowaitClause, OMPNogroupClause, OMPNumTasksClause,
OMPSharedClause, OMPDependClause, OMPPrivateClause, OMPFirstprivateClause,
OMPDefaultClause, OMPScheduleClause, OMPReductionClause)
from psyclone.psyir.nodes.literal import Literal
from psyclone.psyir.nodes.reference import Reference
from psyclone.psyir.symbols import DataSymbol, ScalarType
from psyclone.utils import colored


def test_nowait_clause():
Expand Down
3 changes: 2 additions & 1 deletion src/psyclone/tests/psyir/nodes/operation_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@
from psyclone.errors import GenerationError, InternalError
from psyclone.psyir.backend.fortran import FortranWriter
from psyclone.psyir.nodes import (
ArrayReference, BinaryOperation, colored, IntrinsicCall,
ArrayReference, BinaryOperation, IntrinsicCall,
Literal, Range, Reference, Return, StructureReference, UnaryOperation)
from psyclone.psyir.symbols import (
ArrayType, DataSymbol, UnresolvedType, ScalarType, Symbol, StructureType,
UnsupportedFortranType)
from psyclone.tests.utilities import check_links
from psyclone.utils import colored


# Test BinaryOperation class
Expand Down
3 changes: 2 additions & 1 deletion src/psyclone/tests/psyir/nodes/reference_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@

from psyclone.psyGen import GenerationError
from psyclone.psyir.nodes import (
ArrayReference, Assignment, CodeBlock, colored,
ArrayReference, Assignment, CodeBlock,
KernelSchedule, Literal, Reference, Loop)
from psyclone.psyir.nodes.array_mixin import ArrayMixin
from psyclone.psyir.symbols import (ArrayType, ContainerSymbol, DataSymbol,
UnresolvedType, ImportInterface,
ScalarType, Symbol, SymbolTable)
from psyclone.psyir.transformations import ProfileTrans
from psyclone.utils import colored


def test_reference_bad_init():
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/return_stmt_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import pytest
from psyclone.psyir.nodes import Return
from psyclone.errors import GenerationError
from psyclone.psyir.nodes.node import colored
from psyclone.utils import colored


def test_return_node_str():
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/schedule_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
import os
import pytest
from psyclone.psyir.nodes import Schedule, Assignment, Range, Statement
from psyclone.psyir.nodes.node import colored
from psyclone.psyir.symbols import SymbolTable
from psyclone.psyGen import PSyFactory
from psyclone.parse.algorithm import parse
from psyclone.errors import GenerationError
from psyclone.utils import colored


BASE_PATH = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(
Expand Down
2 changes: 1 addition & 1 deletion src/psyclone/tests/psyir/nodes/structure_member_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from psyclone.psyir import nodes
from psyclone.psyir import symbols
from psyclone.errors import GenerationError, InternalError
from psyclone.psyir.nodes.node import colored
from psyclone.utils import colored


def create_structure_symbol(table):
Expand Down
Loading
Loading