Internet radio browser GUI for music/video streams from various directory services.

⌈⌋ branch:  streamtuner2


Diff

Differences From Artifact [cbe5c8fdc6]:

To Artifact [d7b33fd59d]:


370
371
372
373
374
375
376
377


378
379
380
381
382
383
384
370
371
372
373
374
375
376

377
378
379
380
381
382
383
384
385







-
+
+






#  · frame= automatically extract comment header from caller
#
def plugin_meta(fn=None, src=None, module=None, frame=1, plugin_base="channels"):

    # try via pkgutil first
    if module:
       fn = module
       src = pkgutil.get_data(plugin_base, fn+".py")
       try: src = pkgutil.get_data(plugin_base, fn+".py")
       except: pass

    # get source directly from caller
    elif not src and not fn:
        module = inspect.getmodule(sys._getframe(frame))
        fn = inspect.getsourcefile(module)
        src = inspect.getcomments(module)
414
415
416
417
418
419
420
421

422
423
424
425
426
427
428
415
416
417
418
419
420
421

422
423
424
425
426
427
428
429







-
+






        "type": "module", "api": "python", "doc": ""
    }

    # extract coherent comment block, split doc section
    if not literal:
        src = rx.comment.search(src)
        if not src:
            __print__(dbg.ERR, "Couldn't read source meta information", fn)
            __print__(dbg.ERR, "Couldn't read source meta information:", fn)
            return meta
        src = src.group(0)
        src = rx.hash.sub("", src).strip()
    
    # split comment block
    if src.find("\n\n") > 0:
        src, meta["doc"] = src.split("\n\n", 1)