Skip to content

Commit 403c8ac

Browse files
committed
Initial rearranging method
1 parent 7ebedd2 commit 403c8ac

File tree

3 files changed

+114
-26
lines changed

3 files changed

+114
-26
lines changed

core/process.py

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,18 @@ def remove_markdown_items(self, _list: list) -> list:
124124

125125
return _list
126126

127+
def find_student_name(self, _list: list) -> str:
128+
129+
name = ''
130+
131+
for idx, item in enumerate(_list):
132+
if str(item).startswith('IN1!1!02!!!'):
133+
last = str(_list[idx+1]).split('!')[-1][:-1]
134+
first = str(_list[idx+2]).split('!')[-1][:-1]
135+
name = f'{last}, {first}'
136+
137+
return name
138+
127139
def find_app_types(self, _list: list) -> list:
128140

129141
_apps = []
@@ -144,4 +156,61 @@ def find_app_types(self, _list: list) -> list:
144156
if str(item).startswith('REF!48!'):
145157
_apps.append(_tranlsate.get(str(item).split('!')[-1].strip('\\'), 'Other'))
146158

147-
return _apps
159+
return _apps
160+
161+
def move_list_item(self, apps: list, item: str, insert_idx: int, pop_idx: int) -> list:
162+
163+
apps.pop(pop_idx)
164+
apps.insert(insert_idx, item)
165+
166+
# print(f'Moving {item} to {insert_idx}')
167+
168+
return apps
169+
170+
def rearrange_list(self, _list: list) -> list:
171+
172+
store_info = ('', 0)
173+
174+
for apps in _list:
175+
temp = []
176+
for idx, item in enumerate(apps):
177+
if str(item).startswith('RQS!AQ!ZZ!APP SUBMIT/TRANSMIT!'):
178+
self.move_list_item(apps, item, 1, idx)
179+
elif str(item).startswith('SSE!'):
180+
self.move_list_item(apps, item, 5, idx)
181+
elif str(item).startswith('FOS!'):
182+
self.move_list_item(apps, item, 6, idx)
183+
elif str(item).startswith('DMG!D8!'):
184+
store_info = (item, idx)
185+
elif str(item).startswith('COM!TE!'):
186+
if store_info[1] != 0:
187+
self.move_list_item(apps, store_info[0], idx, store_info[1])
188+
store_info = ('', 0)
189+
elif str(item).startswith('RQS!AQ!ZZ!DUAL CREDIT!'):
190+
store_info = (item, idx)
191+
elif str(item).startswith('RQS!AQ!ZZ!FORMER STUDENT!'):
192+
self.move_list_item(apps, item, store_info[1], idx)
193+
store_info = (item, idx)
194+
elif str(item).startswith('RQS!AQ!ZZ!RES: HS'):
195+
self.move_list_item(apps, item, store_info[1], idx)
196+
store_info = (item, store_info[1])
197+
elif str(item).startswith('N1!HS!'):
198+
self.move_list_item(apps, item, store_info[1], idx)
199+
store_info = (item, store_info[1])
200+
if str(apps[idx+1]).startswith('N4!'):
201+
self.move_list_item(apps, apps[idx+1], store_info[1]+1, idx+1)
202+
store_info = (item, store_info[1]+1)
203+
self.move_list_item(apps, apps[idx+1], store_info[1]+1, idx+1)
204+
store_info = (item, store_info[1]+2)
205+
# insert for college info later
206+
elif str(item).startswith('RQS!AQ!ZZ!FERPA CERT SWITCH!'):
207+
# print(f'Current: {apps[idx]}, {idx}')
208+
self.move_list_item(apps, item, len(apps), idx)
209+
self.move_list_item(apps, apps[idx+1], len(apps), idx)
210+
self.move_list_item(apps, apps[idx+2], len(apps), idx)
211+
# print(f'After: {apps[idx]}, {idx}')
212+
213+
from pprint import pprint
214+
pprint(_list)
215+
print(len(_list))
216+
return _list

core/structure.py

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ def __init__(self, _list: list, idx: int):
2222

2323
self.student_idx = 0
2424
self.semester_check = 0
25+
self.semester_idx = 0
26+
self.address_count = 0
2527

2628
self.current_idx = 0
2729
self.post_check = 0
@@ -90,10 +92,11 @@ def translate(self) -> list:
9092
'MSG': self.translate_MSG(),
9193
'SE': None,
9294
'SES': self.translate_SES(),
93-
'SSE': self.translate_SSE(),
95+
'SSE': self.translate_SSE(idx),
9496
'SST': self.translate_SST(),
9597
'SUM': self.translate_SUM(),
9698
'TST': self.translate_TST(),
99+
'EMS': self.translate_EMS(),
97100
'LUI': None,
98101
'GE': None,
99102
'IEA': None,
@@ -157,7 +160,9 @@ def translate_COM(self) -> str:
157160
_translate = {
158161
'EM': 'Email Address',
159162
'TE': 'Telephone',
160-
'AP': 'Preferred'
163+
'AP': 'Preferred',
164+
'WP': 'Work Phone',
165+
'WF': 'Fax'
161166
}
162167

163168
trans_prefix = _translate.get(sep, "Other")
@@ -293,7 +298,9 @@ def translate_DTP(self) -> str:
293298
'196': 'Start',
294299
'197': 'End',
295300
'102': 'Issued',
296-
'036': 'If an expiration date is indicated on you form I-94, please enter it'
301+
'036': 'If an expiration date is indicated on you form I-94, please enter it',
302+
'336': 'From',
303+
'337': 'To'
297304
}
298305

299306
sep = _translate.get(self.target[1], 'Other')
@@ -305,7 +312,14 @@ def translate_DTP(self) -> str:
305312
return
306313
else:
307314
return f'{sep}: {date[4:6]}-{date[:4]}'
315+
316+
def translate_EMS(self) -> list:
317+
318+
if self.target[0] != 'EMS':
319+
return
308320

321+
return [f'Type of Work/Job Title: {self.target[1]}', f'Job Category: {self.target[2]}', f'Industry Code: {self.target[3]}']
322+
309323
def translate_FOS(self) -> str:
310324
"""Method for FOS markdown text: Application Major and Interest information.
311325
@@ -325,6 +339,7 @@ def translate_FOS(self) -> str:
325339
self.error_handler('FOS', sep)
326340

327341
if sep == 'Major':
342+
# return self.output.insert(self.student_idx, f'{sep}: [{self.target[3]}] {self.target[-1]}')
328343
return f'{sep}: [{self.target[3]}] {self.target[-1]}'
329344
else:
330345
return f'{sep}: {self.target[-1]}'
@@ -431,7 +446,8 @@ def translate_N1(self) -> str:
431446
'TM': 'ApplyTexas Appication',
432447
'AT': 'Date',
433448
'HS': 'High School Info',
434-
'BU': 'Organization'
449+
'BU': 'Organization',
450+
'36': 'Current or most recent Employer'
435451
}
436452

437453
sep = _translate.get(self.target[1], "Other")
@@ -443,7 +459,7 @@ def translate_N1(self) -> str:
443459
return f'{sep}: {self.target[2]} {last}'
444460
elif sep == 'Date':
445461
return
446-
elif sep == 'Organization':
462+
elif sep == 'Organization' or 'Current or most recent Employer':
447463
return f'{sep}: {last}'
448464
else:
449465
return f'{sep}'
@@ -472,12 +488,11 @@ def translate_N3_N4(self) -> str:
472488

473489
if address == '':
474490
return
475-
491+
492+
if self.address_count == 0 or self.address_count % 3 == 0:
493+
self.address_count += 1
494+
return ['', 'Mailing/Permanent Address:', address]
476495
return address
477-
# if self.target[0] == 'N4':
478-
# return [address, '']
479-
# else:
480-
# return ['', address]
481496

482497
def translate_NTE(self) -> list:
483498
"""Method for NTE markdown text: Ethnicity and Race information.
@@ -572,7 +587,7 @@ def translate_REF(self) -> str:
572587

573588
_translate = {
574589
'48': 'App ID',
575-
'SY': '1. Social Security Number',
590+
'SY': '1. Social Security Number',
576591
'V2': 'F-1 status',
577592
'PSM': 'Previous App',
578593
'ZZ': 'Premanent Residence status'
@@ -618,6 +633,7 @@ def translate_RQS(self) -> list:
618633
return s.OTHER_NAME()
619634

620635
if self.target[3] == 'APP SUBMIT/TRANSMIT':
636+
# return self.output.insert(1, ['', f'APPLICATION {self.target[-1][:28]}', f'APPLICATION {self.target[-1][30:]}', ''])
621637
return ['', f'APPLICATION {self.target[-1][:28]}', f'APPLICATION {self.target[-1][30:]}', '']
622638

623639
if self.target[3] == 'CUR COLLEGE CRS':
@@ -806,7 +822,7 @@ def translate_SES(self) -> str:
806822
else:
807823
return f'Date: {date}, Degree: {self.target[-1]}'
808824

809-
def translate_SSE(self) -> str:
825+
def translate_SSE(self, idx) -> str:
810826
"""Method for SSE markdown text: Semester and Date information.
811827
812828
:return: translated string [moved Semester info up for better structure]
@@ -826,6 +842,8 @@ def translate_SSE(self) -> str:
826842
sep = _translate.get(self.target[-1][4:], self.target[-1][4:])
827843
if self.semester_check == 0:
828844
self.semester_check = 1
845+
self.semester_idx = idx
846+
# return self.output.insert(self.student_idx, f'Semester Applied For: {sep} {self.target[-1][:4]}')
829847
return f'Semester Applied For: {sep} {self.target[-1][:4]}'
830848
elif self.target[-1] == 'ZZZ':
831849
return f'(Attendance dates: {self.target[1][4:6]}/{self.target[1][:4]} - {self.target[2][4:6]}/{self.target[2][:4]})'

main.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -64,23 +64,24 @@ def run(file_path: str, filename: str) -> None:
6464
p = core.Process(file_path)
6565
spe_list = p.read_spe_file()
6666

67-
new_list = p.remove_markdown_items(spe_list)
67+
clean_list = p.remove_markdown_items(spe_list)
68+
new_list = p.rearrange_list(clean_list)
6869

69-
translated_spe = []
70-
markdown_spe = []
70+
# translated_spe = []
71+
# markdown_spe = []
7172

72-
for idx, item in enumerate(new_list):
73-
s = core.Structure(item, idx)
74-
translated_spe.append(s.translate())
75-
markdown_spe.append(s.markdown)
73+
# for idx, item in enumerate(new_list):
74+
# s = core.Structure(item, idx)
75+
# translated_spe.append(s.translate())
76+
# markdown_spe.append(s.markdown)
7677

77-
r = core.PDF(translated_spe)
78-
r.capture_student_name()
79-
r.capture_app_type()
78+
# r = core.PDF(translated_spe)
79+
# r.capture_student_name()
80+
# r.capture_app_type()
8081

81-
for idx, item in enumerate(translated_spe):
82-
_list = r.fit_student_data(item)
83-
r.create_page_structure(folder, filename, _list, idx)
82+
# for idx, item in enumerate(translated_spe):
83+
# _list = r.fit_student_data(item)
84+
# r.create_page_structure(folder, filename, _list, idx)
8485

8586
except BaseException as b:
8687
print(sys.exc_info())

0 commit comments

Comments
 (0)