Almenon / Almenon/AREPL-backend

overload print

Abierto
#83 3 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement python
Lenguaje dominante
Python
Estrellas
14
Forks
8
Merge medio
4 d 19 h
PR fusionados (30 d)
4

Descripción

see https://github.com/Almenon/AREPL-vscode/issues/4

```python
from collections import Iterable
import json
import inspect
import sys

class MetaPrint:
def __init__(self, line_num, file_name, values):
self.line_num = line_num
self.file_name = file_name
self.message = values

def print_overload(*values, sep=' ', end='\n', file=sys.stdout, flush=False):
# if print is writing to file we dont want to record metadata
if file != sys.stdout and file != sys.stderr:
print(values, sep, end, file, flush)
return

calling_frame = inspect.currentframe().f_back

calling_filename = calling_frame.f_code.co_filename
calling_lineno = calling_frame.f_lineno

message = str(values[0] if len(values) > 0 else "")
for val in values[1:]:
message += sep + str(val)

metaPrint = MetaPrint(calling_lineno, calling_filename, message)
print_output(metaPrint)

# tests
print_overload()
print_overload("hello world")
print_overload("hello world", 1)
print_overload("hello world", 1, sep='-')

# assign startingLocals print to print_overload
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.