Esempio n. 1
0
    def _create_module(code: str):
        from magicalimport import import_from_physical_path
        import tempfile

        # create fake module
        with tempfile.NamedTemporaryFile(mode="w", suffix=".py",
                                         delete=True) as wf:
            print(code, file=wf)
            wf.flush()
            return import_from_physical_path(wf.name)
Esempio n. 2
0
    def test_it(self):
        import math
        client = import_from_physical_path("./00client.py", as_="client")
        app = client.make_app(7777)

        candidates = [("pow1", pow(2, 3)), ("pow2", pow(2, -3)),
                      ("pi", math.atan(1) * 4)]

        itr = client.iter_app(app)

        for name, expected in candidates:
            with self.subTest(name=name):
                self.assertEqual(next(itr), expected)
Esempio n. 3
0
    def test_it2(self):
        client = import_from_physical_path("./00client.py", as_="client")
        app = client.make_app(7777)

        def pow_generator():
            v = None
            while True:
                x, i = yield v
                v = app.pow(x, i)

        itr = pow_generator()
        itr.send(None)
        self.assertEqual(itr.send((10, 3)), 1000)
        self.assertEqual(itr.send((10, -3)), 0.001)
Esempio n. 4
0
    def test_it2(self):
        client = import_from_physical_path("./00client.py", as_="client")
        app = client.make_app(7777)

        def pow_generator():
            v = None
            while True:
                x, i = yield v
                v = app.pow(x, i)

        itr = pow_generator()
        itr.send(None)
        self.assertEqual(itr.send((10, 3)), 1000)
        self.assertEqual(itr.send((10, -3)), 0.001)
Esempio n. 5
0
 def parse_postscript_section(self, items, here=None):
     d = {}
     for k, postscript in items:
         postscript = postscript.strip()
         if postscript and ":" in postscript:
             module_path, fn_name = postscript.rsplit(":", 2)
             try:
                 _, ext = os.path.splitext(module_path)
                 if ext == ".py":
                     module = magicalimport.import_from_physical_path(module_path, here=here)
                 else:
                     module = importlib.import_module(module_path)
                 d[k] = getattr(module, fn_name)
             except (ImportError, AttributeError) as e:
                 sys.stderr.write("could not import {!r}\n{}\n".format(postscript, e))
     return d
Esempio n. 6
0
    def test_it(self):
        import math
        client = import_from_physical_path("./00client.py", as_="client")
        app = client.make_app(7777)

        candidates = [
            ("pow1", pow(2, 3)),
            ("pow2", pow(2, -3)),
            ("pi", math.atan(1) * 4)
        ]

        itr = client.iter_app(app)

        for name, expected in candidates:
            with self.subTest(name=name):
                self.assertEqual(next(itr), expected)
Esempio n. 7
0
import magicalimport
base = magicalimport.import_from_physical_path("base.py",
                                               as_="base",
                                               here=__file__)

LOGGING_LEVEL = "info"
LOGGING_FORMAT = base.LTSV_LOGGING_FORMAT

PORT = 8888
Esempio n. 8
0
import magicalimport
base = magicalimport.import_from_physical_path("base.py", as_="base", here=__file__)

LOGGING_LEVEL = "info"
LOGGING_FORMAT = base.LTSV_LOGGING_FORMAT


PORT = 8888
Esempio n. 9
0
import sys
defaults = list(sys.modules.keys())
from magicalimport import import_from_physical_path  # NOQA
d = import_from_physical_path("../../20170604/example_module_hook/deps2.py")  # NOQA
for k in list(sys.modules.keys()):
    if k not in defaults:
        del sys.modules[k]
dag = d.Dag()  # NOQA
d.setup(hook=dag.add)  # NOQA
factory = d.HookedLoaderFactory(dag.add)
for finder in sys.path_importer_cache.values():
    if finder and hasattr(finder, "_loaders"):
        finder._loaders = factory.new_loaders(finder._loaders)
from wsgiref.simple_server import make_server  # NOQA
print(dag.to_dot())
Esempio n. 10
0
 def setUpClass(cls):
     server = import_from_physical_path("./00server.py", as_="server")
     cls.t = threading.Thread(
         daemon=True, target=lambda: server.run_app(server.make_app(7777)))
     cls.t.start()
Esempio n. 11
0
import uvloop
import asyncio
import magicalimport
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
magicalimport.import_from_physical_path("./02aiohello.py")
Esempio n. 12
0
from handofcats import as_command
from dictknife import loading
from magicalimport import import_from_physical_path
unpatch = import_from_physical_path("../example_jsonpatch/00unpatch.py")


@as_command
def main(*, src: str, dst: str) -> None:
    src = loading.loadfile(src)
    dst = loading.loadfile(dst)
    patches = list(unpatch.unpatch(src, dst, verbose=True))
    loading.dumpfile(patches, format="json")
Esempio n. 13
0
 def from_pyfile(self, path):
     return self.from_object(magicalimport.import_from_physical_path(path))
Esempio n. 14
0
from magicalimport import import_from_physical_path

try:
    m = import_from_physical_path("../../20190521/example_dict/merge.p")
except AttributeError:
    m = import_from_physical_path("../../20190521/example_dict/merge.py")


def merge(left, right, *, prefix="r_"):
    merge_k = "category"
    right = m.with_prefix(prefix, right, exclude=[merge_k])
    return m.merge(left, right, how="outer", on=merge_k)
Esempio n. 15
0
 def setUpClass(cls):
     server = import_from_physical_path("./00server.py", as_="server")
     cls.t = threading.Thread(daemon=True, target=lambda: server.run_app(server.make_app(7777)))
     cls.t.start()