Как попросить Gitbash снова аутентифицировать меня после того, как моя аутентификация не прошла в первый раз?

Кажется, это невозможно при использовании встроенной функции %run. Тем не менее, ваш вопрос привел меня к кроличьей норе, и я хотел посмотреть, как легко было бы сделать что-то подобное. В конце концов, кажется бессмысленным пойти на все эти усилия, чтобы создать еще одну магическую функцию, которая просто использует execfile(). Возможно, это кому-то будет полезно.

# custom_magics.py
from IPython.core.magic import register_line_magic, magics_class, line_magic, Magics

@magics_class
class StatefulMagics(Magics):
    def __init__(self, shell, data):
        super(StatefulMagics, self).__init__(shell)
        self.namespace = data

    @line_magic
    def my_run(self, line):
        if line[0] != "%":
            return "Not a variable in namespace"
        else:
            filename = self.namespace[line[1:]].split('.')[0]
            filename += ".py"
            execfile(filename)
        return line

class Macro(object):
    def __init__(self, name, value):
        self.name = name
        self._value = value
        ip = get_ipython()
        magics = StatefulMagics(ip, {name: value})
        ip.register_magics(magics)

    def value(self):
        return self._value

    def __repr__(self):
        return self.name

Используя эту пару классов (и учитывая скрипт python tester.py), можно создать и использовать переменную «macro» с недавно созданная магическая функция «my_run»:

In [1]: from custom_magics import Macro

In [2]: Macro("somename", "tester.py")
Out[2]: somename

In [3]: %my_run %somename
I'm the test file and I'm running!
Out[3]: u'%somename'

Да, это огромный и, вероятно, расточительный взлом. В этом ключе, интересно, есть ли способ привязать имя, связанное с объектом Macro, как фактическое имя макроса. Посмотрите на это.

1
задан Anna 16 January 2019 в 00:33
поделиться

1 ответ

Если вы работаете с https, вам нужно удалить этот URL из хранилища учетных данных, которое вы используете.

См .:

0
ответ дан VonC 16 January 2019 в 00:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: