Check-in [ed1c185f7c]
Overview
Comment: | Changed pyz base path determination method (no more rx.zipfn guessing). |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
ed1c185f7c6d07daa5ddc4beea098504 |
User & Date: | mario on 2015-04-05 16:15:03 |
Other Links: | manifest | tags |
Context
2015-04-05
| ||
16:15 | Fixed some help page typos, added streamedit description, and some screenshots for the configuration window. check-in: ec3a49e365 user: mario tags: trunk | |
16:15 | Changed pyz base path determination method (no more rx.zipfn guessing). check-in: ed1c185f7c user: mario tags: trunk | |
14:12 | Capitalize remaining menu entries, update PNG icon to 64x64, remove examples from logo/banner template, default to size of 315ยท115 px. check-in: ce13199e0f user: mario tags: trunk | |
Changes
Makefile became executable with contents [cf2c20dc2e].
︙ | ︙ |
Modified config.py from [8430e295e9] to [51ce82a04c].
︙ | ︙ | |||
296 297 298 299 300 301 302 | # 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) | > > > | > | > > > | | < < | | | | 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 | # 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) # real filename/path elif fn and os.path.exists(fn): src = open(fn).read(4096) # assume it's within a zip elif fn: intfn = "" while fn and len(fn) and not os.path.exists(fn): fn, add = os.path.split(fn) intfn = add + "/" + intfn if len(fn) >= 3 and intfn and zipfile.is_zipfile(fn): src = zipfile.ZipFile(fn, "r").read(intfn.strip("/")) return plugin_meta_extract(src or "", fn) # Actual comment extraction logic def plugin_meta_extract(src="", fn=None, literal=False): # defaults meta = { "id": os.path.splitext(os.path.basename(fn or "")), "fn": fn, "title": fn, "description": "no description", "config": [], "type": "module", "api": "python", "doc": "" } # extract coherent comment block, split doc section if not literal: |
︙ | ︙ | |||
350 351 352 353 354 355 356 | for field in rx.options.findall(entry): opt[field[0]] = (field[1] or field[2] or field[3] or "").strip() config.append(opt) return config # Comment extraction regexps class rx: | < < < < | 355 356 357 358 359 360 361 362 363 364 365 366 367 368 | for field in rx.options.findall(entry): opt[field[0]] = (field[1] or field[2] or field[3] or "").strip() config.append(opt) return config # Comment extraction regexps class rx: comment = re.compile(r"""(^ {0,4}#.*\n)+""", re.M) hash = re.compile(r"""(^ {0,4}# *)""", re.M) keyval = re.compile(r""" ^([\w-]+):(.*$(?:\n(?![\w-]+:).+$)*) # plain key:value lines """, re.M|re.X) config = re.compile(r""" [\{\<] (.+?) [\}\>] # JSOL/YAML scheme {...} dicts |
︙ | ︙ |