Skip to content

io

Classes:

ArxBuffer

ArxBuffer()

Methods:

Source code in src/arx/io.py
23
24
25
26
27
def __init__(self) -> None:
    """
    title: Initialize ArxBuffer instance.
    """
    self.clean()

clean

clean() -> None
Source code in src/arx/io.py
29
30
31
32
33
34
def clean(self) -> None:
    """
    title: Clean the buffer content.
    """
    self.position = 0
    self.buffer = ""

read

read() -> str
Source code in src/arx/io.py
46
47
48
49
50
51
52
53
54
55
56
57
def read(self) -> str:
    """
    title: Read the buffer content.
    returns:
      type: str
    """
    try:
        i = self.position
        self.position += 1
        return self.buffer[i]
    except IndexError:
        return ""

write

write(text: str) -> None
Source code in src/arx/io.py
36
37
38
39
40
41
42
43
44
def write(self, text: str) -> None:
    """
    title: Write the given text to the buffer.
    parameters:
      text:
        type: str
    """
    self.buffer += text
    self.position = 0

ArxFile

Methods:

create_tmp_file staticmethod

create_tmp_file(content: str) -> str
Source code in src/arx/io.py
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
@staticmethod
def create_tmp_file(content: str) -> str:
    """
    title: Create a temporary file with the given content.
    parameters:
      content:
        type: str
        description: The content of the temporary file.
    returns:
      type: str
      description: The name of the created temporary file.
    """
    # Create a temporary file.
    with tempfile.NamedTemporaryFile(delete=False) as tmpfile:
        tmpfile.write(content.encode())

    # Rename the temporary file with the .cpp extension.
    filename = tmpfile.name
    filename_ext = filename + ".cpp"
    os.rename(filename, filename_ext)

    return filename_ext

delete_file staticmethod

delete_file(filename: str) -> int
Source code in src/arx/io.py
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
@staticmethod
def delete_file(filename: str) -> int:
    """
    title: Delete the specified file.
    parameters:
      filename:
        type: str
        description: The name of the file to be deleted.
    returns:
      type: int
      description: Returns 0 on success, or -1 on failure.
    """
    try:
        os.remove(filename)
        return 0
    except OSError:
        return -1

ArxIO

Methods:

file_to_buffer classmethod

file_to_buffer(filename: str) -> None
Source code in src/arx/io.py
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
@classmethod
def file_to_buffer(cls, filename: str) -> None:
    """
    title: Copy the file content to the buffer.
    parameters:
      filename:
        type: str
        description: The name of the file to be copied to the buffer.
    """
    with open(filename, "r") as arxfile:
        cls.buffer.clean()
        for line in arxfile:
            cls.buffer.write(line + "\n")

get_char classmethod

get_char() -> str
Source code in src/arx/io.py
79
80
81
82
83
84
85
86
87
88
89
@classmethod
def get_char(cls) -> str:
    """
    title: Get a char from the buffer or from the default input.
    returns:
      type: str
      description: A char from the buffer.
    """
    if cls.INPUT_FROM_STDIN:
        return sys.stdin.read(1)
    return cls.buffer.read()

load_input_to_buffer classmethod

load_input_to_buffer() -> None
Source code in src/arx/io.py
117
118
119
120
121
122
123
124
125
126
127
128
129
@classmethod
def load_input_to_buffer(cls) -> None:
    """
    title: Load the content file or the standard input to the buffer.
    """
    if cls.INPUT_FILE:
        input_file_path = os.path.abspath(cls.INPUT_FILE)
        cls.file_to_buffer(input_file_path)
        return

    file_content = sys.stdin.read().strip()
    if file_content:
        cls.string_to_buffer(file_content)

string_to_buffer classmethod

string_to_buffer(value: str) -> None
Source code in src/arx/io.py
105
106
107
108
109
110
111
112
113
114
115
@classmethod
def string_to_buffer(cls, value: str) -> None:
    """
    title: Copy the given string to the buffer.
    parameters:
      value:
        type: str
        description: The string to be copied to the buffer.
    """
    cls.buffer.clean()
    cls.buffer.write(value)