view.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. """
  2. """
  3. import smart
  4. import sys
  5. import json
  6. import pandas as pd
  7. import numpy as np
  8. from multiprocessing import Process
  9. SYS_ARGS = {}
  10. if len(sys.argv) > 1:
  11. N = len(sys.argv)
  12. for i in range(1,N):
  13. value = None
  14. if sys.argv[i].startswith('--'):
  15. key = sys.argv[i][2:] #.replace('-','')
  16. SYS_ARGS[key] = 1
  17. if i + 1 < N:
  18. value = sys.argv[i + 1] = sys.argv[i+1].strip()
  19. if key and value:
  20. SYS_ARGS[key] = value
  21. i += 2
  22. #
  23. # Let's determine what data to return ...
  24. # --folder <name> and/or --app <names>
  25. def format(prefix,pointer,logger,container):
  26. return [{'args':{prefix:term.strip(),'logger':logger},'pointer':pointer} for term in container]
  27. folders = format('path',smart.folder.read,smart.logger.log,SYS_ARGS['folders'].split(',')) if 'folders' in SYS_ARGS else []
  28. apps = format('name',smart.top.read,smart.logger.log,SYS_ARGS['apps'].split(',')) if 'apps' in SYS_ARGS else []
  29. if 'cols' in SYS_ARGS :
  30. cols = [name.strip() for name in SYS_ARGS['cols'].split(',')]
  31. else:
  32. cols = []
  33. nodes = folders + apps
  34. for node in nodes :
  35. if cols :
  36. node['args']['cols'] = cols
  37. pthread = Process(target=node['pointer'],args=(node['args'],))
  38. pthread.start()