refactor: replace SentenceParser._parse_special with pre-parsed papers

This commit is contained in:
NateScarlet 2022-04-20 20:27:51 +08:00
parent 617a8ebd6e
commit 78b4552627
No known key found for this signature in database
GPG Key ID: 5C242793B070309C
5 changed files with 18 additions and 43 deletions

View File

@ -35,13 +35,6 @@ DTSTAMP;VALUE=DATE:20200124
UID:2020-01-24/2020-02-03/NateScarlet/holiday-cn UID:2020-01-24/2020-02-03/NateScarlet/holiday-cn
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:上班(补春节假期)
DTSTART;VALUE=DATE:20200203
DTEND;VALUE=DATE:20200204
DTSTAMP;VALUE=DATE:20200203
UID:2020-02-03/2020-02-04/NateScarlet/holiday-cn
END:VEVENT
BEGIN:VEVENT
SUMMARY:清明节假期 SUMMARY:清明节假期
DTSTART;VALUE=DATE:20200404 DTSTART;VALUE=DATE:20200404
DTEND;VALUE=DATE:20200407 DTEND;VALUE=DATE:20200407

View File

@ -67,11 +67,6 @@
"date": "2020-02-02", "date": "2020-02-02",
"isOffDay": true "isOffDay": true
}, },
{
"name": "春节",
"date": "2020-02-03",
"isOffDay": false
},
{ {
"name": "清明节", "name": "清明节",
"date": "2020-04-04", "date": "2020-04-04",

View File

@ -42,7 +42,24 @@ PRE_PARSED_PAPERS = {
"date": date(2015, 9, 6), "date": date(2015, 9, 6),
"isOffDay": False, "isOffDay": False,
}, },
] ],
"http://www.gov.cn/zhengce/content/2020-01/27/content_5472352.htm": [
{
"name": "春节",
"date": date(2020, 1, 31),
"isOffDay": True,
},
{
"name": "春节",
"date": date(2020, 2, 1),
"isOffDay": True,
},
{
"name": "春节",
"date": date(2020, 2, 2),
"isOffDay": True,
},
],
} }
@ -236,14 +253,6 @@ class DescriptionParser:
class SentenceParser: class SentenceParser:
"""Parser for holiday shift description sentence.""" """Parser for holiday shift description sentence."""
special_cases = {
"延长2020年春节假期至2月2日农历正月初九": [
{"date": date(2020, 1, 31), "isOffDay": True},
{"date": date(2020, 2, 1), "isOffDay": True},
{"date": date(2020, 2, 2), "isOffDay": True},
],
}
def __init__(self, parent: DescriptionParser, sentence): def __init__(self, parent: DescriptionParser, sentence):
self.parent = parent self.parent = parent
self.sentence = sentence self.sentence = sentence
@ -343,15 +352,10 @@ class SentenceParser:
for i in self.extract_dates(match.group(2)): for i in self.extract_dates(match.group(2)):
yield {"date": i, "isOffDay": True} yield {"date": i, "isOffDay": True}
def _parse_special(self):
for i in self.special_cases.get(self.sentence, []):
yield i
parsing_methods = [ parsing_methods = [
_parse_rest_1, _parse_rest_1,
_parse_work_1, _parse_work_1,
_parse_shift_1, _parse_shift_1,
_parse_special,
] ]

View File

@ -210,13 +210,6 @@ DTSTAMP;VALUE=DATE:20200124
UID:2020-01-24/2020-02-03/NateScarlet/holiday-cn UID:2020-01-24/2020-02-03/NateScarlet/holiday-cn
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:上班(补春节假期)
DTSTART;VALUE=DATE:20200203
DTEND;VALUE=DATE:20200204
DTSTAMP;VALUE=DATE:20200203
UID:2020-02-03/2020-02-04/NateScarlet/holiday-cn
END:VEVENT
BEGIN:VEVENT
SUMMARY:清明节假期 SUMMARY:清明节假期
DTSTART;VALUE=DATE:20200404 DTSTART;VALUE=DATE:20200404
DTEND;VALUE=DATE:20200407 DTEND;VALUE=DATE:20200407

View File

@ -1,14 +1,4 @@
[ [
{
"year": 2020,
"description": "延长2020年春节假期至2月2日农历正月初九星期日2月3日星期一起正常上班。",
"expected": [
{ "date": "2020-01-31", "isOffDay": true },
{ "date": "2020-02-01", "isOffDay": true },
{ "date": "2020-02-02", "isOffDay": true },
{ "date": "2020-02-03", "isOffDay": false }
]
},
{ {
"year": 2019, "year": 2019,
"description": "2018年12月30日至2019年1月1日放假调休共3天。2018年12月29日星期六上班。", "description": "2018年12月30日至2019年1月1日放假调休共3天。2018年12月29日星期六上班。",