def _main(cmd): year = cmd.year path = sos.path.join(sos.expanded_path(cmd.diary), "%4.4d" % year) Y = CAL.Year(year) file_name = sos.path.join(path, cmd.filename) sort = cmd.sort read_plan(Y, file_name) if cmd.add_appointment: sort = len(cmd.argv) for a in cmd.argv: if app_pat.match(a.strip()): _add_appointment(Y, app_pat, cmd.holidays_too) else: print("%s doesn't match an appointment" % a) if cmd.Show: for a in cmd.argv: if app_pat.match(a.strip()): print(a) pat_match = app_pat day, month, year, time = _date_time(Y, pat_match) for D in _day_generator(pat_match, day, month, year, Y): print(" ", D) else: print("%s doesn't match an appointment" % a) if sort: Y.sort_appointments() write_plan(Y, file_name, cmd.replace)
def _main(cmd): year = cmd.year head = cmd.head tail = cmd.tail path = sos.path.join(sos.expanded_path(cmd.diary), "%4.4d" % year) Y = CAL.Year(year) file_name = sos.path.join(path, cmd.filename) pdf_name = Filename(cmd.pdf or ("plan_%s.pdf" % year), ".pdf").name head = cmd.head or 1 tail = cmd.tail or 12 if cmd.monthly: Plan = [PDF_Plan_Month, PDF_Plan_Month_L][bool(cmd.landscape)] elif cmd.Yearly: Plan = [PDF_Plan_Year, PDF_Plan_Year_L][bool(cmd.landscape)] else: Plan = [PDF_Plan_Week, PDF_Plan_Week_L][bool(cmd.landscape)] head = cmd.head or 0 tail = cmd.tail or -1 wd = Y.weeks[0].number if tail < 0: tail += len(Y.weeks) head -= wd tail += 1 - wd CAL.read_plan(Y, file_name) Plan \ ( Y, pdf_name, head, tail , xl = cmd.XL , yl = cmd.YL , xo = cmd.XO , yo = cmd.YO )
def _new_year(self, year): return CAL.Year(year, cal=self)
def _main (cmd) : from _TFL.load_config_file import load_config_file globs = globals () for cf in cmd.Config : load_config_file (cf, globs) if cmd.year : ptf = cmd.ptf year = cmd.year Y = CAL.Year (year) days = Y.days cm_d = Y.dmap [(year, 12, 24)] d_range = "" if cmd.after : days = tuple (d for d in days if d.date >= cmd.after) if cm_d.date < cmd.after : cm_d = None d = cmd.after d_range = "%02d.%02d." % (d.date.day, d.date.month) if not cmd.before : d_range = "%s-31.12." % (d_range, ) if cmd.before : days = tuple (d for d in days if d.date <= cmd.before) if cm_d and cm_d.date > cmd.before : cm_d = None if not cmd.after : d_range = "01.01" d = cmd.before d_range = "%s-%02d.%02d" % (d_range, d.date.day, d.date.month) if d_range : d_range = " [%s]" % (d_range, ) holidays = sum \ ((d.is_weekday and bool (d.is_holiday)) for d in days) * ptf workdays = sum \ ((d.is_weekday and not d.is_holiday) for d in days) * ptf vp = \ ( sum (float (d.is_weekday and not d.is_holiday) for d in days) / sum (float (d.is_weekday and not d.is_holiday) for d in Y.days) ) vacation = cmd.vacation * vp * ptf christmas = 0 if cm_d : christmas = 2 * (cm_d.is_weekday and not cm_d.is_holiday) holidays += christmas workdays -= christmas workdays -= vacation form = \ ( "%s%s: %.0f Arbeitstage, %.0f Feiertage" ", %.0f Urlaubstage, %.0f Soll-Stunden" ) print \ ( form % (year, d_range, workdays, holidays, vacation, workdays * cmd.hpd) ) if cmd.argv : splitter = TFL.Getter.date.week if cmd.Weekly else TFL.Getter.date.month P = load_periods (cmd.argv, splitter, cmd.before, cmd.after) tot = str (P) print \ ( P.format % ("Periode", "Arbeit [h]", "Krank [h]", "Total [h]", "Urlaubstage") ) if not cmd.quiet : for d in P.entries : print (d) print ("=" * len (tot)) print (tot)
def _show (year, country, lang = "de") : """ >>> _show (2016, "AT") 1 2016/01/01 Neujahr 6 2016/01/06 Hl. Drei Könige 87 2016/03/27 Ostersonntag 88 2016/03/28 Ostermontag 122 2016/05/01 Tag der Arbeit 126 2016/05/05 Christi Himmelfahrt 136 2016/05/15 Pfingstsonntag 137 2016/05/16 Pfingstmontag 147 2016/05/26 Fronleichnam 228 2016/08/15 Mariä Himmelfahrt 300 2016/10/26 Nationalfeiertag 306 2016/11/01 Allerheiligen 343 2016/12/08 Mariä Empfängnis 360 2016/12/25 1. Weihnachtstag 361 2016/12/26 2. Weihnachtstag >>> _show (2016, "DE") 1 2016/01/01 Neujahr 85 2016/03/25 Karfreitag 87 2016/03/27 Ostersonntag 88 2016/03/28 Ostermontag 122 2016/05/01 Tag der Arbeit 126 2016/05/05 Christi Himmelfahrt 136 2016/05/15 Pfingstsonntag 137 2016/05/16 Pfingstmontag 277 2016/10/03 Tag der Deutschen Einheit 360 2016/12/25 1. Weihnachtstag 361 2016/12/26 2. Weihnachtstag >>> _show (2016, "CH", lang = "en") 1 2016/01/01 New Year's Day 85 2016/03/25 Good Friday 87 2016/03/27 Easter Sunday 88 2016/03/28 Easter Monday 126 2016/05/05 Ascension Day 136 2016/05/15 Whit Sunday 137 2016/05/16 Whit Monday 214 2016/08/01 Swiss National Day 262 2016/09/18 Federal Day of Thanksgiving, Repentance and Prayer 360 2016/12/25 Christmas Day 361 2016/12/26 St. Stephen's Day >>> _show (2016, "IE") 1 2016/01/01 Neujahr 77 2016/03/17 Saint Patrick's Day 88 2016/03/28 Ostermontag 123 2016/05/02 Mai-Feiertag 158 2016/06/06 Juni-Feiertag 214 2016/08/01 August-Feiertag 305 2016/10/31 Oktober-Feiertag 360 2016/12/25 1. Weihnachtstag 361 2016/12/26 2. Weihnachtstag >>> _show (2016, "UK") 1 2016/01/01 Neujahr 85 2016/03/25 Karfreitag 87 2016/03/27 Ostersonntag 88 2016/03/28 Ostermontag 123 2016/05/02 Bankfeiertag 151 2016/05/30 Bankfeiertag 242 2016/08/29 Bankfeiertag 360 2016/12/25 1. Weihnachtstag 361 2016/12/26 2. Weihnachtstag >>> _show (2017, "UK", lang = "en") 1 2017/01/01 New Year's Day 104 2017/04/14 Good Friday 106 2017/04/16 Easter Sunday 107 2017/04/17 Easter Monday 121 2017/05/01 May Day Bank Holiday 149 2017/05/29 Spring Bank Holiday 240 2017/08/28 Late Summer Bank Holiday 359 2017/12/25 Christmas Day 360 2017/12/26 Boxing Day >>> _show (2016, "US", lang = "en") 1 2016/01/01 New Year's Day 18 2016/01/18 Martin Luther King Day 46 2016/02/15 Washington's Birthday 151 2016/05/30 Memorial Day 186 2016/07/04 Independence Day 249 2016/09/05 Labor Day 284 2016/10/10 Columbus Day 316 2016/11/11 Veterans Day 329 2016/11/24 Thanksgiving 360 2016/12/25 Christmas Day >>> _show (2017, "US", lang = "en") 1 2017/01/01 New Year's Day 16 2017/01/16 Martin Luther King Day 20 2017/01/20 Inauguration Day 51 2017/02/20 Washington's Birthday 149 2017/05/29 Memorial Day 185 2017/07/04 Independence Day 247 2017/09/04 Labor Day 282 2017/10/09 Columbus Day 315 2017/11/11 Veterans Day 327 2017/11/23 Thanksgiving 359 2017/12/25 Christmas Day >>> _show (2016, "ANY") 1 2016/01/01 Neujahr """ import _CAL.Year with TFL.I18N.test_language (lang) : Y = CAL.Year (year) O = Y.head.ordinal - 1 for ordinal, name in sorted (pyk.iteritems (holidays (year, country))) : print ("%3d %s %s" % (ordinal - O, Y.cal.day [ordinal], _T (name)))