计算机代考 “””The UCB module contains functions specific to 61A projects at UC Berkel

“””The UCB module contains functions specific to 61A projects at UC Berkeley.”””

import code
import functools

Copyright By PowCoder代写 加微信 powcoder

import inspect
import signal
import sys

def main(fn):
“””Call fn with command line arguments. Used as a decorator.

The main decorator marks the function that starts a program. For example,

def my_run_function():
# function body

Use this instead of the typical __name__ == “__main__” predicate.
if inspect.stack()[1][0].f_locals[‘__name__’] == ‘__main__’:
args = sys.argv[1:] # Discard the script name from command line
fn(*args) # Call the main function

_PREFIX = ”
def trace(fn):
“””A decorator that prints a function’s name, its arguments, and its return
values each time the function is called. For example,

def compute_something(x, y):
# function body
@functools.wraps(fn)
def wrapped(*args, **kwds):
global _PREFIX
reprs = [repr(e) for e in args]
reprs += [repr(k) + ‘=’ + repr(v) for k, v in kwds.items()]
log(‘{0}({1})’.format(fn.__name__, ‘, ‘.join(reprs)) + ‘:’)
_PREFIX += ‘ ‘
result = fn(*args, **kwds)
_PREFIX = _PREFIX[:-4]
except Exception as e:
log(fn.__name__ + ‘ exited via exception’)
_PREFIX = _PREFIX[:-4]
# Here, print out the return value.
log(‘{0}({1}) -> {2}’.format(fn.__name__, ‘, ‘.join(reprs), result))
return result
return wrapped

def log(message):
“””Print an indented message (used with trace).”””
print(_PREFIX + re.sub(‘\n’, ‘\n’ + _PREFIX, str(message)))

def log_current_line():
“””Print information about the current line of code.”””
frame = inspect.stack()[1]
log(‘Current line: File “{f[1]}”, line {f[2]}, in {f[3]}’.format(f=frame))

def interact(msg=None):
“””Start an interactive interpreter session in the current environment.

-D exits the interactive session and returns to normal execution.
In Windows:
-Z exits the interactive session and returns to normal
execution.
# evaluate commands in current namespace
frame = inspect.currentframe().f_back
namespace = frame.f_globals.copy()
namespace.update(frame.f_locals)

# exit on interrupt
def handler(signum, frame):
signal.signal(signal.SIGINT, handler)

if not msg:
_, filename, line, _, _, _ = inspect.stack()[1]
msg = ‘Interacting at File “{0}”, line {1} \n’.format(filename, line)
msg += ‘ Unix: -D continues the program; \n’
msg += ‘ Windows: -Z continues the program; \n’
msg += ‘ exit() or -C exits the program’

code.interact(msg, None, namespace)

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com