Guest User

Untitled

a guest
Jun 20th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. from openpyxl import load_workbook, Workbook
  2. from bcompiler.utils import project_data_from_master
  3. #from openpyxl.utils import column_index_from_string
  4. import datetime
  5. #from openpyxl.styles import Color, PatternFill, Font, Border
  6. import difflib
  7. from docx import Document
  8. from docx.shared import Cm, Inches, Pt
  9.  
  10. def get_project_names(data):
  11. project_name_list = []
  12. for x in data:
  13. project_name_list.append(x)
  14. return project_name_list
  15.  
  16.  
  17. def compare_dicts(name, dict_1, dict_2):
  18. c_dict = {}
  19. comp = difflib.Differ()
  20. if name in dict_1.keys():
  21. c_dict[name] = {}
  22.  
  23. project_data = dict_1[name]
  24. project_data_old = dict_2[name]
  25. key_list = []
  26. p_list = []
  27. p_list_old = []
  28.  
  29. for x in project_data:
  30. key_list.append(x)
  31. for x in project_data.values():
  32. p_list.append(x)
  33. for x in project_data_old.values():
  34. p_list_old.append(x)
  35.  
  36. for i in range(0, len(p_list)):
  37. a = p_list[i]
  38. b = p_list_old[i]
  39. key = key_list[i]
  40.  
  41. try:
  42. diff = list(comp.compare(a.split(), b.split()))
  43. c_dict[name][key] = diff
  44. except AttributeError:
  45. c_dict[name][key] = 'data - not checked'
  46.  
  47.  
  48. return c_dict
  49.  
  50.  
  51. def print_dict(name, dict_1):
  52. doc.add_paragraph()
  53.  
  54. y = doc.add_paragraph()
  55. y.add_run(name)
  56. a = dict_1[name]
  57. for x in a:
  58. b = a[x]
  59. c = []
  60. q = doc.add_paragraph()
  61. q.add_run(x)
  62. y = doc.add_paragraph()
  63. for i in b:
  64. #print(b)
  65. y.add_run(i)
  66. #if '+' in i:
  67. #z = i.upper()
  68. #c.append(z)
  69. #elif '-' in i:
  70. #z = i.upper()
  71. #c.append(z)
  72. #else:
  73. #c.append(i)
  74. #''.join(word for word in c)
  75. #for i in range(0, len(b)):
  76. #y = doc.add_paragraph()
  77. #y.add_run(c)
  78.  
  79. doc.add_page_break()
  80.  
  81. return doc
  82.  
  83. def running(names, data_one, data_two):
  84. for x in names:
  85. a = compare_dicts(x, data_one, data_two)
  86. b = print_dict(x, a)
  87.  
  88. return b
  89.  
  90. doc = Document()
  91.  
  92. one = project_data_from_master('C:\\Users\\Standalone\\Will\\dft-government-major-project-portfolio-data-september-2017.xlsx')
  93. two = project_data_from_master('C:\\Users\\Standalone\\Will\\dft-government-major-project-portfolio-data-september-2017_old.xlsx')
  94.  
  95. #project_names = get_project_names(one)
  96. project_names = ['Crossrail Programme']
  97.  
  98. #test = compare_dicts(project_names, data_one, data_two)
  99. #print_out = print_dict(project_names, test)
  100.  
  101. out = running(project_names, one, two)
  102. out.save('C:\\Users\\Standalone\\Will\\next_comparing.docx')
Add Comment
Please, Sign In to add comment