warn-transformer 1.3.276__py3-none-any.whl → 1.3.277__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of warn-transformer might be problematic. Click here for more details.
- warn_transformer/transformers/pa.py +243 -0
- {warn_transformer-1.3.276.dist-info → warn_transformer-1.3.277.dist-info}/METADATA +1 -1
- {warn_transformer-1.3.276.dist-info → warn_transformer-1.3.277.dist-info}/RECORD +7 -7
- warn_transformer/pa.py +0 -198
- {warn_transformer-1.3.276.dist-info → warn_transformer-1.3.277.dist-info}/WHEEL +0 -0
- {warn_transformer-1.3.276.dist-info → warn_transformer-1.3.277.dist-info}/entry_points.txt +0 -0
- {warn_transformer-1.3.276.dist-info → warn_transformer-1.3.277.dist-info}/licenses/LICENSE +0 -0
- {warn_transformer-1.3.276.dist-info → warn_transformer-1.3.277.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import typing
|
|
2
|
+
from datetime import datetime
|
|
3
|
+
|
|
4
|
+
from ..schema import BaseTransformer
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Transformer(BaseTransformer):
|
|
8
|
+
"""Transform Pennsylvania raw data for consolidation."""
|
|
9
|
+
|
|
10
|
+
postal_code = "PA"
|
|
11
|
+
fields = dict(
|
|
12
|
+
company="company",
|
|
13
|
+
location="county",
|
|
14
|
+
# notice_date="Date Received",
|
|
15
|
+
effective_date="date_effective",
|
|
16
|
+
jobs="jobs",
|
|
17
|
+
)
|
|
18
|
+
date_format = ["%m/%d/%Y", "%m/%d/%y"]
|
|
19
|
+
date_corrections = {
|
|
20
|
+
"Unknown": None,
|
|
21
|
+
"": None,
|
|
22
|
+
"beginning 10/9/25; ending 10/31/25": datetime(2025, 10, 9),
|
|
23
|
+
"beginning 8/26/2025; ending 9/9/2025": datetime(2025, 8, 26),
|
|
24
|
+
"beginning 9/1/2025; ending 9/15/2025": datetime(2025, 9, 1),
|
|
25
|
+
"8/30/2025 - 12/31/2025": datetime(2025, 8, 30),
|
|
26
|
+
"beginning 8/18/2025; ending 12/31/2026": datetime(2025, 8, 18),
|
|
27
|
+
"beginning 8/12/25; ending 10/18/25": datetime(2025, 8, 12),
|
|
28
|
+
"beginning 6/13/25; ending 6/30/25": datetime(2025, 6, 13),
|
|
29
|
+
"beginning 1/17/25; ending 6/30/25": datetime(2025, 1, 17),
|
|
30
|
+
"beginning 7/31/25; ending 8/3/25": datetime(2025, 7, 31),
|
|
31
|
+
"8/25/2025 - 9/8/2025": datetime(2025, 8, 25),
|
|
32
|
+
"5/5/2025 @ Etters location; 6/4/2025 @ Philadelphia location": datetime(
|
|
33
|
+
2025, 5, 5
|
|
34
|
+
),
|
|
35
|
+
"7/1/2025 - 7/15/2025": datetime(2025, 7, 1),
|
|
36
|
+
"8/1/2025 - 12/31/2025": datetime(2025, 8, 1),
|
|
37
|
+
"beginning 4/25/25; ending 5/2/25": datetime(2025, 4, 25),
|
|
38
|
+
"first wave - 6/9/2025 impacting 192 workers ... second wave - 9/30/2025 impacting 106 workers ... final wave ending - 11/17/2025 impacting 25 workers": datetime(
|
|
39
|
+
2025, 6, 9
|
|
40
|
+
),
|
|
41
|
+
"4/22/2025 for Frankford Avenue location ... 4/24/2025 for Castor Avenue location": datetime(
|
|
42
|
+
2025, 4, 22
|
|
43
|
+
),
|
|
44
|
+
"first wave - 5/9/2025 impacting 124 workers ... second wave - 7/1/2025 impacting 112 workers ... final wave ending - 12/31/2025 impacting 62 workers": datetime(
|
|
45
|
+
2025, 5, 9
|
|
46
|
+
),
|
|
47
|
+
"6/27/2025 - 12/31/2025": datetime(2025, 6, 27),
|
|
48
|
+
"beginning: 3/24/2025; ending: 4/12/2025": datetime(2025, 3, 24),
|
|
49
|
+
"May 19, 23, 30 ... June 6, 20, 27 ... July 11, 18 ... August 8, 22, 29 ... September 12": datetime(
|
|
50
|
+
2025, 5, 19
|
|
51
|
+
),
|
|
52
|
+
"first round -- 5/16 through 5/30; second round -- 6/23 through 7/7; final round -- sometime in 2026": datetime(
|
|
53
|
+
2025, 5, 16
|
|
54
|
+
),
|
|
55
|
+
"4/23/25; ending: 5/7/25": datetime(2025, 4, 23),
|
|
56
|
+
"4/9/25-10/15/25": datetime(2025, 4, 9),
|
|
57
|
+
"5/26/25-5/30/25": datetime(2025, 1, 31),
|
|
58
|
+
"1/31/25-3/31/25": datetime(2025, 1, 31),
|
|
59
|
+
"beginning: 3/18/25; ending: 3/31/25": datetime(2025, 3, 18),
|
|
60
|
+
"beginning: 1/6/2025; completed: 3/31/2025": datetime(2025, 1, 6),
|
|
61
|
+
"Layoff date: 2/18/2025; Closure date: 2/21/2025": datetime(2025, 2, 18),
|
|
62
|
+
"2/17/2025 through 3/3/2025": datetime(2025, 2, 17),
|
|
63
|
+
"Layoffs: 1/25/2025; Closure: 1/31/2025": datetime(2025, 1, 25),
|
|
64
|
+
"beginning: 1/1/2025; ending: 1/3/2025": datetime(2025, 1, 1),
|
|
65
|
+
"1/3/2025 - 1/31/2026": datetime(2025, 1, 3),
|
|
66
|
+
"1. 1/15/2025 ... 2. 1/22/2025 ... 3. 2/12/2025": datetime(2025, 1, 15),
|
|
67
|
+
"beginning: 12/14/2024; ending: 12/28/2024": datetime(2024, 12, 14),
|
|
68
|
+
"12/9/2024 -- 173 workers ... 12/20/2024 -- 60 workers ... 1/13/2025 -- 2 workers ... 1/27/2025 -- 9 workers ... 2/17/2025 -- 26 workers": datetime(
|
|
69
|
+
2024, 12, 9
|
|
70
|
+
),
|
|
71
|
+
"beginning: 11/30/24; ending: 12/3/24": datetime(2024, 11, 30),
|
|
72
|
+
"11/27/2024 - 12/31/2024": datetime(2024, 11, 27),
|
|
73
|
+
"11/10/2024 ": datetime(2024, 11, 10),
|
|
74
|
+
"11/22/2024 ": datetime(2024, 11, 22),
|
|
75
|
+
"9/23/2024 ": datetime(2024, 9, 23),
|
|
76
|
+
"11/22 /2024 ": datetime(2024, 11, 22),
|
|
77
|
+
"beginning: 10/26/2024; ending: 11/9/2024 ": datetime(2024, 10, 26),
|
|
78
|
+
"beginning: 10/27/2024; ending: 11/10/2024": datetime(2024, 10, 27),
|
|
79
|
+
"8/30/2024 - 10/4/2024": datetime(2024, 8, 30),
|
|
80
|
+
"beginning: 10/7/2024; ending: 12/31/2024": datetime(2024, 10, 7),
|
|
81
|
+
"6/7 /2024": datetime(2024, 6, 7),
|
|
82
|
+
"8/9 /2024": datetime(2024, 8, 9),
|
|
83
|
+
"8/16 /2024": datetime(2024, 8, 16),
|
|
84
|
+
"8/9/2024 or within a 14-day window ": datetime(2024, 8, 9),
|
|
85
|
+
"beginning: 8/26/2024; E nding: 12/31/2024 ": datetime(2024, 8, 26),
|
|
86
|
+
"beginning: 8/26/2024; E nding: 12/31/2024": datetime(2024, 8, 26),
|
|
87
|
+
"beginning: 8/26/2024; Ending: 12/31/2024": datetime(2024, 8, 26),
|
|
88
|
+
"8/2/2024-8/16/2024": datetime(2024, 8, 2),
|
|
89
|
+
"Beginning 4/20/24; Ending 5/4/2024": datetime(2024, 4, 20),
|
|
90
|
+
"Beginning 4/13/2024; Ending 5/31/2024": datetime(2024, 4, 13),
|
|
91
|
+
"Beginning 2/15/2024; Ending 4/30/2024": datetime(2024, 2, 15),
|
|
92
|
+
"14 day period commencing 4/15/2024": datetime(2024, 4, 15),
|
|
93
|
+
"Beginning 3/8/2024; Ending end of year 2024": datetime(2024, 3, 8),
|
|
94
|
+
"Beginning 1/31/2024; Ending end of year 2024": datetime(2024, 1, 31),
|
|
95
|
+
"3/15/24 - 9/30/24": datetime(2024, 3, 15),
|
|
96
|
+
"Beginning 2/11/2024; Ending 2/25/2024": datetime(2024, 2, 11),
|
|
97
|
+
"Beginning February/March 2024; Ending July 1, 2024": datetime(2024, 2, 1),
|
|
98
|
+
"1/2/2024 and continuing periodically": datetime(2024, 1, 2),
|
|
99
|
+
"1/6/2024 - 3/26/2024": datetime(2024, 1, 6),
|
|
100
|
+
"1/16/2024 - 3/1/2024": datetime(2024, 1, 16),
|
|
101
|
+
"1/18/2024. Additional layoff dates: 2/19/24 & 4/18/24": datetime(2024, 1, 18),
|
|
102
|
+
"beginning: 1/3/2024 (52 employees); ending: 3/31/2024 (128 employees)": datetime(
|
|
103
|
+
2024, 1, 3
|
|
104
|
+
),
|
|
105
|
+
"Beginning 12/15/2023 - Ending 9/30/2024": datetime(2023, 12, 15),
|
|
106
|
+
"Beginning 11/20/2023 - Ending 12/15/2023": datetime(2023, 11, 20),
|
|
107
|
+
"9/8/23 - 10/1/23": datetime(2023, 9, 8),
|
|
108
|
+
"Beginning 9/29/23; Ending 11/16/23": datetime(2023, 9, 23),
|
|
109
|
+
"Beginning: October 31, 2023 - ... Ending: April 15, 2024": datetime(
|
|
110
|
+
2023, 10, 31
|
|
111
|
+
),
|
|
112
|
+
"Beginning: October 21, 2023 - ... Ending: December 30, 2023": datetime(
|
|
113
|
+
2023, 10, 21
|
|
114
|
+
),
|
|
115
|
+
"9/8/23 (96 employees) ... 9/15/23 (66 employees) ... 9/22/23 (36 employees) ... 9/29/23 (26 employees) ... 9/30/23 (1 employee) ... 10/6/23 (13 employees) ... 10/13/23 (37 employees) ... 10/20/23 (34 employees) ... 11/10/23 (10 employees) ... 12/1/23 (61 employees) ... 2/2/24 (13 employees) ... ": datetime(
|
|
116
|
+
2023, 9, 8
|
|
117
|
+
),
|
|
118
|
+
"9/8/23 (96 employees)": datetime(2023, 9, 8),
|
|
119
|
+
"Beginning 8/21/23 - Ending 9/19/23": datetime(2023, 8, 21),
|
|
120
|
+
"beginning 5/10/23 and ending 60-74 days thereafter": datetime(2023, 5, 10),
|
|
121
|
+
"7/14/23 (37 workers); 9/15/23 (125 workers)": datetime(2023, 7, 14),
|
|
122
|
+
"04/14 -- 11 Employees ... 05/05 -- 20 Employees ... 06/17 -- 40 Employees ... 07/07 -- 20 Employees ... 08/04 -- 20 Employees ... 09/08 -- 20 Employees ... 10/06 -- 20 Employees ... 11/03 -- 69 Employees ... 12/29 -- 40 Employees": datetime(
|
|
123
|
+
2023, 4, 14
|
|
124
|
+
),
|
|
125
|
+
"04/14": datetime(2023, 4, 14),
|
|
126
|
+
"Phase 1: 4/14 ... Phase 2: 5/13 -- 5/27 ... Phase 3: 6/12 -- 8/11": datetime(
|
|
127
|
+
2023, 4, 14
|
|
128
|
+
),
|
|
129
|
+
"Phase 1: 4/14": datetime(2023, 4, 14),
|
|
130
|
+
"7/3/20223 - 10/16/2023": datetime(2023, 7, 3),
|
|
131
|
+
"6/25/2023 - 7/9/2023": datetime(2023, 6, 25),
|
|
132
|
+
"6/2/23 -- 105 Employees ... 7/7/23 -- 10 Employees ... 10/6/23 -- 70 Employees ... 12/1/23 -- 18 Employees": datetime(
|
|
133
|
+
2023, 6, 2
|
|
134
|
+
),
|
|
135
|
+
"6/2/23 -- 105 Employees": datetime(2023, 6, 2),
|
|
136
|
+
"6/30/23 -- 50 Employees ... 8/11/23 -- 74 Employees": datetime(2023, 6, 30),
|
|
137
|
+
"6/30/23 -- 50 Employees": datetime(2023, 6, 30),
|
|
138
|
+
"Phase 1: 4/28/23 (67 employees) ... Phase 2: 7/14/23 (9 employees) ... Phase 3: 10/6/23 (4 employees)": datetime(
|
|
139
|
+
2023, 4, 28
|
|
140
|
+
),
|
|
141
|
+
"Phase 1: 4/28/23 (67 employees)": datetime(2023, 4, 28),
|
|
142
|
+
"February 1, 2023 -- 82 Employees ... March 1, 2023 -- 1 Employee ... April 1, 2023 -- 21 Employees": datetime(
|
|
143
|
+
2023, 2, 1
|
|
144
|
+
),
|
|
145
|
+
"February 1, 2023 -- 82 Employees": datetime(2023, 2, 1),
|
|
146
|
+
"1st Phase: 1/9/2023 (49 Employees) ... 2nd Phase: 7/31/2023 (15 Employees)": datetime(
|
|
147
|
+
2023, 1, 9
|
|
148
|
+
),
|
|
149
|
+
"1st Phase: 1/9/2023 (49 Employees)": datetime(2023, 1, 9),
|
|
150
|
+
"Phase 1: 1/11/23 (38 workers) ... Phase 2: 2/10/23 (59 workers) ... Phase 3: 3/31/23 (11 workers) ... Phase 4: TBD (6 workers)": datetime(
|
|
151
|
+
2023, 1, 11
|
|
152
|
+
),
|
|
153
|
+
"Phase 1: 1/11/23 (38 workers)": datetime(2023, 1, 11),
|
|
154
|
+
"Beginning: 7/15/25; Ending: 7/29/25": datetime(2025, 7, 15),
|
|
155
|
+
"Beginning: 12/9/2024; Ending: 12/21/2024": datetime(2024, 12, 9),
|
|
156
|
+
"beginning: 10/26/2024; ending: 11/9/2024": datetime(2024, 10, 26),
|
|
157
|
+
"beginning: 10/27/2024; ending: 11/10/2024": datetime(2024, 10, 27),
|
|
158
|
+
"Commencing: 5/30/2024; Ending: 7/29/2024": datetime(2024, 5, 30),
|
|
159
|
+
"8/9/2024 or within a 14-day window": datetime(2024, 8, 9),
|
|
160
|
+
"Commencing: 7/6/2024; Ending: 9/1/2024": datetime(2024, 7, 6),
|
|
161
|
+
"Beginning: 6/3/24; Ending: 6/16/24": datetime(2024, 6, 3),
|
|
162
|
+
"Beginning: 2/24/24; Ending: 4/23/24": datetime(2024, 2, 24),
|
|
163
|
+
"Beginning: 5/17/24; Ending: 8/30/24": datetime(2024, 5, 17),
|
|
164
|
+
"Beginning: 1/16/24; Ending: 3/29/24": datetime(2024, 1, 16),
|
|
165
|
+
"Beginning: 1/2/2024 - Ending: 3/31/2024": datetime(2024, 1, 2),
|
|
166
|
+
"November 3, 2023": datetime(2023, 11, 3),
|
|
167
|
+
"9/8/23 (96 employees) ... 9/15/23 (66 employees) ... 9/22/23 (36 employees) ... 9/29/23 (26 employees) ... 9/30/23 (1 employee) ... 10/6/23 (13 employees) ... 10/13/23 (37 employees) ... 10/20/23 (34 employees) ... 11/10/23 (10 employees) ... 12/1/23 (61 employees) ... 2/2/24 (13 employees) ...": datetime(
|
|
168
|
+
2023, 9, 8
|
|
169
|
+
),
|
|
170
|
+
"Beginning: 2/28/23 - Ending: 12/31/23": datetime(2023, 2, 28),
|
|
171
|
+
"March 3, 2023": datetime(2023, 3, 3),
|
|
172
|
+
"March 31, 2023": datetime(2023, 3, 31),
|
|
173
|
+
"March 5, 2023": datetime(2023, 3, 5),
|
|
174
|
+
"February 28, 2023": datetime(2023, 2, 28),
|
|
175
|
+
"Beginning: March 15, 2023; Ending: October 2, 2023": datetime(2023, 3, 15),
|
|
176
|
+
"Beginning: January 23, 2023; Ending: March 24, 2023": datetime(2023, 1, 23),
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
jobs_corrections = {
|
|
180
|
+
"Unknown": None,
|
|
181
|
+
"TBD": None,
|
|
182
|
+
"unknown": None,
|
|
183
|
+
"To be determined": None,
|
|
184
|
+
"60 total": 60,
|
|
185
|
+
"72 (54 PA residents impacted)": 54,
|
|
186
|
+
"9 Pennsylvania workers (209 total) ... EFFECTIVE DATE: Beginning: 7/15/25; Ending: 7/29/25": 9,
|
|
187
|
+
"501 @ Etters location; 595 @ Philadelphia location": 1096,
|
|
188
|
+
"14 Pennsylvania residents": 14,
|
|
189
|
+
"430 nationwide; unknown number of PA residents impacted": None,
|
|
190
|
+
"Cooked Plant -- 110 ... Raw Plant - 119": 229,
|
|
191
|
+
"420 ... EFFECTIVE DATE: Beginning: 12/9/2024; Ending: 12/21/2024": 420,
|
|
192
|
+
"124 ... EFFECTIVE DATE: Commencing: 5/30/2024; Ending: 7/29/2024": 124,
|
|
193
|
+
"645 (**ONLY FIVE PA RESIDENTS AFFECTED**)": 5,
|
|
194
|
+
"253 (173 @ Allentown and 80 @ Greensburg)": 253,
|
|
195
|
+
"9 Pennsylvania workers (209 total)": 9,
|
|
196
|
+
"105 (91 Temporary Layoffs and 14 Permanent Layoffs)": 105,
|
|
197
|
+
"60 (all employees work remotely)": None,
|
|
198
|
+
"206 (198 P/T and 8 F/T Employees)": 206,
|
|
199
|
+
"54 (All employees can be relocated to other Amazon Delivery Service Partners)": 54,
|
|
200
|
+
"179 (80 Marsden Employees and 99 Temporary Employees from both Express Labor & Integrated Staffing Agencies)": 179,
|
|
201
|
+
"9236 Nationwide; PA total pending verification": None,
|
|
202
|
+
"81 Total -- 13 of which reside in PA": 81,
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
def transform_date(self, value: str) -> typing.Optional[str]:
|
|
206
|
+
"""Transform a raw date string into a date object.
|
|
207
|
+
|
|
208
|
+
Args:
|
|
209
|
+
value (str): The raw date string provided by the source
|
|
210
|
+
|
|
211
|
+
Returns: A date object ready for consolidation. Or, if the date string is invalid, a None.
|
|
212
|
+
"""
|
|
213
|
+
# Cut out cruft
|
|
214
|
+
# value = value.replace("Updated", "")
|
|
215
|
+
# value = value.replace("Revised", "")
|
|
216
|
+
# value = value.replace("-", "").strip()
|
|
217
|
+
|
|
218
|
+
# Split double dates
|
|
219
|
+
# if len(value) == 20:
|
|
220
|
+
# value = value[:10]
|
|
221
|
+
# elif len(value) == 19:
|
|
222
|
+
# value = value[:9]
|
|
223
|
+
# value = re.split(r"\s{2,}", value)[0].strip()
|
|
224
|
+
# value = value.split("Originated")[0].strip()
|
|
225
|
+
# print(value)
|
|
226
|
+
|
|
227
|
+
try:
|
|
228
|
+
return super().transform_date(value)
|
|
229
|
+
except Exception:
|
|
230
|
+
# value = value.split(" to ")[0].strip()
|
|
231
|
+
# value = value.split()[0].strip()
|
|
232
|
+
# value = value.replace("‐", "")
|
|
233
|
+
return super().transform_date(value)
|
|
234
|
+
|
|
235
|
+
def check_if_closure(self, row: typing.Dict) -> typing.Optional[bool]:
|
|
236
|
+
"""Determine whether a row is a closure or not.
|
|
237
|
+
|
|
238
|
+
Args:
|
|
239
|
+
row (dict): The raw row of data.
|
|
240
|
+
|
|
241
|
+
Returns: A boolean or null
|
|
242
|
+
"""
|
|
243
|
+
return "clos" in row["closure_or_layoff"].lower() or None
|
|
@@ -3,7 +3,6 @@ warn_transformer/cli.py,sha256=gwO96jz_dj_LSpMYtY-avRvZl3hzE7sUMhimpMZwUFU,3180
|
|
|
3
3
|
warn_transformer/consolidate.py,sha256=P2kgwxGt7V-ltD-XVnPMwsRhzNpXnxlm8J962hRPwn0,2393
|
|
4
4
|
warn_transformer/download.py,sha256=xkSV4jj2cwz70DqtNzoIs5pWIJUXdtBtv5W68Y2lNhU,1642
|
|
5
5
|
warn_transformer/integrate.py,sha256=ofeIvJGqktxsX8bj2ngSgEtJcIn293s_IXNCGNUIMwA,14829
|
|
6
|
-
warn_transformer/pa.py,sha256=Xk-kgEunbVkOUfW6ncbLEOOi5THDf_YagnihdCV5kD8,11960
|
|
7
6
|
warn_transformer/schema.py,sha256=6m62x1-B5LJFPMmUicZe6TZUzjkIfxJjm5-0hlo-x2k,13051
|
|
8
7
|
warn_transformer/utils.py,sha256=wEgK9lE2aLKdtlQAgu21vMo0nTcSK6LbT_eMrkke-50,655
|
|
9
8
|
warn_transformer/transformers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -37,6 +36,7 @@ warn_transformer/transformers/ny.py,sha256=YGlomU9-pr6dBLrR0xROL8jJzOwJWPGV01GSB
|
|
|
37
36
|
warn_transformer/transformers/oh.py,sha256=ZTREXZgvurJjigJ-g38qBtiDmT4P1p5ZvOH0G7Y4Q9I,3273
|
|
38
37
|
warn_transformer/transformers/ok.py,sha256=LxjyrJ4uzhVllXSqWLZhlZ9p60tshwrfco5kGv8m94E,733
|
|
39
38
|
warn_transformer/transformers/or.py,sha256=YcSBOndSS7sd04LICuVwmMwY4al2bBOCGxowXXj34vE,1433
|
|
39
|
+
warn_transformer/transformers/pa.py,sha256=h-bIOYeDMhmGf6TGAeSO7Xut4LvusNPAqJ0SDnoXhl0,13129
|
|
40
40
|
warn_transformer/transformers/ri.py,sha256=nodHs6DIiZeReJo5R6kKQQiXecfrA2CdTgWc54xP-Z0,2270
|
|
41
41
|
warn_transformer/transformers/sc.py,sha256=0GNL3aFCCNsVKtHpUfS-W7Tb5bDkNnTIUrqJwsSu31o,1911
|
|
42
42
|
warn_transformer/transformers/sd.py,sha256=PYMbuI_va2lk8mZ92PG3ReXxm6J83wxW7-xf_Vxd2Nk,459
|
|
@@ -47,9 +47,9 @@ warn_transformer/transformers/va.py,sha256=vxlkvIgrphAUqqCKi_6xZ8raOEhbUpskBukKb
|
|
|
47
47
|
warn_transformer/transformers/vt.py,sha256=5J9p7yexXmn4K3Pe0xIkPa9fR10DpZ2DSzvjkrDbCZs,452
|
|
48
48
|
warn_transformer/transformers/wa.py,sha256=0addhlk4jBAfScVngCq8VUJvd-Bc8e1winPn8Lu2DZo,1111
|
|
49
49
|
warn_transformer/transformers/wi.py,sha256=sM5KFkACDQ6dqiQ666wvZ8gJe47ywFVmM1hFbw8Io64,3019
|
|
50
|
-
warn_transformer-1.3.
|
|
51
|
-
warn_transformer-1.3.
|
|
52
|
-
warn_transformer-1.3.
|
|
53
|
-
warn_transformer-1.3.
|
|
54
|
-
warn_transformer-1.3.
|
|
55
|
-
warn_transformer-1.3.
|
|
50
|
+
warn_transformer-1.3.277.dist-info/licenses/LICENSE,sha256=ZV-QHyqPwyMuwuj0lI05JeSjV1NyzVEk8Yeu7FPtYS0,585
|
|
51
|
+
warn_transformer-1.3.277.dist-info/METADATA,sha256=4FJafRcQO0_ilkDzi-3kSwScwsERlfmAm8FQpABBVWw,1740
|
|
52
|
+
warn_transformer-1.3.277.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
|
|
53
|
+
warn_transformer-1.3.277.dist-info/entry_points.txt,sha256=MvWNvQnZTu5Fbpd7JMN-KGPeklT6f5v6Hx39uqnBl28,62
|
|
54
|
+
warn_transformer-1.3.277.dist-info/top_level.txt,sha256=8nZpmzmOcqSnismvY34muSX8MvaZM6aEfLldl-wp0fQ,17
|
|
55
|
+
warn_transformer-1.3.277.dist-info/RECORD,,
|
warn_transformer/pa.py
DELETED
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
import re
|
|
2
|
-
import typing
|
|
3
|
-
from datetime import datetime
|
|
4
|
-
|
|
5
|
-
from ..schema import BaseTransformer
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class Transformer(BaseTransformer):
|
|
9
|
-
"""Transform Pennsylvania raw data for consolidation."""
|
|
10
|
-
|
|
11
|
-
postal_code = "PA"
|
|
12
|
-
fields = dict(
|
|
13
|
-
company="company",
|
|
14
|
-
location="county",
|
|
15
|
-
# notice_date="Date Received",
|
|
16
|
-
effective_date="date_effective",
|
|
17
|
-
jobs="jobs",
|
|
18
|
-
)
|
|
19
|
-
date_format = ["%m/%d/%Y", "%m/%d/%y"]
|
|
20
|
-
date_corrections = {
|
|
21
|
-
"Unknown": None,
|
|
22
|
-
"": None,
|
|
23
|
-
"beginning 10/9/25; ending 10/31/25": datetime(2025, 10, 9),
|
|
24
|
-
"beginning 8/26/2025; ending 9/9/2025": datetime(2025, 8, 26),
|
|
25
|
-
"beginning 9/1/2025; ending 9/15/2025": datetime(2025, 9, 1),
|
|
26
|
-
"8/30/2025 - 12/31/2025": datetime(2025, 8, 30),
|
|
27
|
-
"beginning 8/18/2025; ending 12/31/2026": datetime(2025, 8, 18),
|
|
28
|
-
"beginning 8/12/25; ending 10/18/25": datetime(2025, 8, 12),
|
|
29
|
-
"beginning 6/13/25; ending 6/30/25": datetime(2025, 6, 13),
|
|
30
|
-
"beginning 1/17/25; ending 6/30/25": datetime(2025, 1, 17),
|
|
31
|
-
"beginning 7/31/25; ending 8/3/25": datetime(2025, 7, 31),
|
|
32
|
-
"8/25/2025 - 9/8/2025": datetime(2025, 8, 25),
|
|
33
|
-
"5/5/2025 @ Etters location; 6/4/2025 @ Philadelphia location": datetime(2025, 5, 5),
|
|
34
|
-
"7/1/2025 - 7/15/2025": datetime(2025, 7, 1),
|
|
35
|
-
"8/1/2025 - 12/31/2025": datetime(2025, 8, 1),
|
|
36
|
-
"beginning 4/25/25; ending 5/2/25": datetime(2025, 4, 25),
|
|
37
|
-
"first wave - 6/9/2025 impacting 192 workers ... second wave - 9/30/2025 impacting 106 workers ... final wave ending - 11/17/2025 impacting 25 workers": datetime(2025, 6, 9),
|
|
38
|
-
"4/22/2025 for Frankford Avenue location ... 4/24/2025 for Castor Avenue location": datetime(2025, 4, 22),
|
|
39
|
-
"first wave - 5/9/2025 impacting 124 workers ... second wave - 7/1/2025 impacting 112 workers ... final wave ending - 12/31/2025 impacting 62 workers": datetime(2025, 5, 9),
|
|
40
|
-
"6/27/2025 - 12/31/2025": datetime(2025, 6, 27),
|
|
41
|
-
"beginning: 3/24/2025; ending: 4/12/2025": datetime(2025, 3, 24),
|
|
42
|
-
"beginning: 3/24/2025; ending: 4/12/2025": datetime(2025, 3, 24),
|
|
43
|
-
"May 19, 23, 30 ... June 6, 20, 27 ... July 11, 18 ... August 8, 22, 29 ... September 12": datetime(2025, 5, 19),
|
|
44
|
-
"first round -- 5/16 through 5/30; second round -- 6/23 through 7/7; final round -- sometime in 2026": datetime(2025, 5, 16),
|
|
45
|
-
"4/23/25; ending: 5/7/25": datetime(2025, 4, 23),
|
|
46
|
-
"4/9/25-10/15/25": datetime(2025, 4, 9),
|
|
47
|
-
"5/26/25-5/30/25": datetime(2025, 1, 31),
|
|
48
|
-
"1/31/25-3/31/25": datetime(2025, 1, 31),
|
|
49
|
-
"beginning: 3/18/25; ending: 3/31/25": datetime(2025, 3, 18),
|
|
50
|
-
"beginning: 1/6/2025; completed: 3/31/2025": datetime(2025, 1, 6),
|
|
51
|
-
"Layoff date: 2/18/2025; Closure date: 2/21/2025": datetime(2025, 2, 18),
|
|
52
|
-
"2/17/2025 through 3/3/2025": datetime(2025, 2, 17),
|
|
53
|
-
"Layoffs: 1/25/2025; Closure: 1/31/2025": datetime(2025, 1, 25),
|
|
54
|
-
"beginning: 1/1/2025; ending: 1/3/2025": datetime(2025, 1, 1),
|
|
55
|
-
"1/3/2025 - 1/31/2026": datetime(2025, 1, 3),
|
|
56
|
-
"1. 1/15/2025 ... 2. 1/22/2025 ... 3. 2/12/2025": datetime(2025, 1, 15),
|
|
57
|
-
"beginning: 12/14/2024; ending: 12/28/2024": datetime(2024, 12, 14),
|
|
58
|
-
"12/9/2024 -- 173 workers ... 12/20/2024 -- 60 workers ... 1/13/2025 -- 2 workers ... 1/27/2025 -- 9 workers ... 2/17/2025 -- 26 workers": datetime(2024, 12, 9),
|
|
59
|
-
"beginning: 11/30/24; ending: 12/3/24": datetime(2024, 11, 30),
|
|
60
|
-
"11/27/2024 - 12/31/2024": datetime(2024, 11, 27),
|
|
61
|
-
"11/10/2024 ": datetime(2024, 11, 10),
|
|
62
|
-
"11/22/2024 ": datetime(2024, 11, 22),
|
|
63
|
-
"9/23/2024 ": datetime(2024, 9, 23),
|
|
64
|
-
"11/22 /2024 ": datetime(2024, 11, 22),
|
|
65
|
-
"beginning: 10/26/2024; ending: 11/9/2024 ": datetime(2024, 10, 26),
|
|
66
|
-
"beginning: 10/27/2024; ending: 11/10/2024": datetime(2024, 10, 27),
|
|
67
|
-
"8/30/2024 - 10/4/2024": datetime(2024, 8, 30),
|
|
68
|
-
"beginning: 10/7/2024; ending: 12/31/2024": datetime(2024, 10, 7),
|
|
69
|
-
"6/7 /2024": datetime(2024, 6, 7),
|
|
70
|
-
"8/9 /2024": datetime(2024, 8, 9),
|
|
71
|
-
"6/7 /2024": datetime(2024, 6, 7),
|
|
72
|
-
"8/16 /2024": datetime(2024, 8, 16),
|
|
73
|
-
"8/9/2024 or within a 14-day window ": datetime(2024, 8, 9),
|
|
74
|
-
"beginning: 8/26/2024; E nding: 12/31/2024 ": datetime(2024, 8, 26),
|
|
75
|
-
"beginning: 8/26/2024; E nding: 12/31/2024": datetime(2024, 8, 26),
|
|
76
|
-
"beginning: 8/26/2024; Ending: 12/31/2024": datetime(2024, 8, 26),
|
|
77
|
-
"8/2/2024-8/16/2024": datetime(2024, 8, 2),
|
|
78
|
-
"Beginning 4/20/24; Ending 5/4/2024": datetime(2024, 4, 20),
|
|
79
|
-
"Beginning 4/13/2024; Ending 5/31/2024": datetime(2024, 4, 13),
|
|
80
|
-
"Beginning 2/15/2024; Ending 4/30/2024": datetime(2024, 2, 15),
|
|
81
|
-
"14 day period commencing 4/15/2024": datetime(2024, 4, 15),
|
|
82
|
-
"Beginning 3/8/2024; Ending end of year 2024": datetime(2024, 3, 8),
|
|
83
|
-
"Beginning 1/31/2024; Ending end of year 2024": datetime(2024, 1, 31),
|
|
84
|
-
"3/15/24 - 9/30/24": datetime(2024, 3, 15),
|
|
85
|
-
"Beginning 2/11/2024; Ending 2/25/2024": datetime(2024, 2, 11),
|
|
86
|
-
"Beginning February/March 2024; Ending July 1, 2024": datetime(2024, 2, 1),
|
|
87
|
-
"1/2/2024 and continuing periodically": datetime(2024, 1, 2),
|
|
88
|
-
"1/6/2024 - 3/26/2024": datetime(2024, 1, 6),
|
|
89
|
-
"1/16/2024 - 3/1/2024": datetime(2024, 1, 16),
|
|
90
|
-
"1/18/2024. Additional layoff dates: 2/19/24 & 4/18/24": datetime(2024, 1, 18),
|
|
91
|
-
"beginning: 1/3/2024 (52 employees); ending: 3/31/2024 (128 employees)": datetime(2024, 1, 3),
|
|
92
|
-
"Beginning 12/15/2023 - Ending 9/30/2024": datetime(2023, 12, 15),
|
|
93
|
-
"Beginning 11/20/2023 - Ending 12/15/2023": datetime(2023, 11, 20),
|
|
94
|
-
"9/8/23 - 10/1/23": datetime(2023, 9, 8),
|
|
95
|
-
"Beginning 9/29/23; Ending 11/16/23": datetime(2023, 9, 23),
|
|
96
|
-
"Beginning: October 31, 2023 - ... Ending: April 15, 2024": datetime(2023, 10, 31),
|
|
97
|
-
"Beginning: October 21, 2023 - ... Ending: December 30, 2023": datetime(2023, 10, 21),
|
|
98
|
-
"9/8/23 (96 employees) ... 9/15/23 (66 employees) ... 9/22/23 (36 employees) ... 9/29/23 (26 employees) ... 9/30/23 (1 employee) ... 10/6/23 (13 employees) ... 10/13/23 (37 employees) ... 10/20/23 (34 employees) ... 11/10/23 (10 employees) ... 12/1/23 (61 employees) ... 2/2/24 (13 employees) ... ": datetime(2023, 9, 8),
|
|
99
|
-
"9/8/23 (96 employees)": datetime(2023, 9, 8),
|
|
100
|
-
"Beginning 8/21/23 - Ending 9/19/23": datetime(2023, 8, 21),
|
|
101
|
-
"beginning 5/10/23 and ending 60-74 days thereafter": datetime(2023, 5, 10),
|
|
102
|
-
"7/14/23 (37 workers); 9/15/23 (125 workers)": datetime(2023, 7, 14),
|
|
103
|
-
"04/14 -- 11 Employees ... 05/05 -- 20 Employees ... 06/17 -- 40 Employees ... 07/07 -- 20 Employees ... 08/04 -- 20 Employees ... 09/08 -- 20 Employees ... 10/06 -- 20 Employees ... 11/03 -- 69 Employees ... 12/29 -- 40 Employees": datetime(2023, 4, 14),
|
|
104
|
-
"04/14": datetime(2023, 4, 14),
|
|
105
|
-
"Phase 1: 4/14 ... Phase 2: 5/13 -- 5/27 ... Phase 3: 6/12 -- 8/11": datetime(2023, 4, 14),
|
|
106
|
-
"Phase 1: 4/14": datetime(2023, 4, 14),
|
|
107
|
-
"7/3/20223 - 10/16/2023": datetime(2023, 7, 3),
|
|
108
|
-
"6/25/2023 - 7/9/2023": datetime(2023, 6, 25),
|
|
109
|
-
"6/2/23 -- 105 Employees ... 7/7/23 -- 10 Employees ... 10/6/23 -- 70 Employees ... 12/1/23 -- 18 Employees": datetime(2023, 6, 2),
|
|
110
|
-
"6/2/23 -- 105 Employees": datetime(2023, 6, 2),
|
|
111
|
-
"6/30/23 -- 50 Employees ... 8/11/23 -- 74 Employees": datetime(2023, 6, 30),
|
|
112
|
-
"6/30/23 -- 50 Employees": datetime(2023, 6, 30),
|
|
113
|
-
"Phase 1: 4/28/23 (67 employees) ... Phase 2: 7/14/23 (9 employees) ... Phase 3: 10/6/23 (4 employees)": datetime(2023, 4, 28),
|
|
114
|
-
"Phase 1: 4/28/23 (67 employees)": datetime(2023, 4, 28),
|
|
115
|
-
"February 1, 2023 -- 82 Employees ... March 1, 2023 -- 1 Employee ... April 1, 2023 -- 21 Employees": datetime(2023, 2, 1),
|
|
116
|
-
"February 1, 2023 -- 82 Employees": datetime(2023, 2, 1),
|
|
117
|
-
"1st Phase: 1/9/2023 (49 Employees) ... 2nd Phase: 7/31/2023 (15 Employees)": datetime(2023, 1, 9),
|
|
118
|
-
"1st Phase: 1/9/2023 (49 Employees)": datetime(2023, 1, 9),
|
|
119
|
-
"Phase 1: 1/11/23 (38 workers) ... Phase 2: 2/10/23 (59 workers) ... Phase 3: 3/31/23 (11 workers) ... Phase 4: TBD (6 workers)": datetime(2023, 1, 11),
|
|
120
|
-
"Phase 1: 1/11/23 (38 workers)": datetime(2023, 1, 11),
|
|
121
|
-
"Beginning: 7/15/25; Ending: 7/29/25": datetime(2025, 7, 15),
|
|
122
|
-
"Beginning: 12/9/2024; Ending: 12/21/2024": datetime(2024, 12, 9),
|
|
123
|
-
"beginning: 10/26/2024; ending: 11/9/2024": datetime(2024, 10, 26),
|
|
124
|
-
"beginning: 10/27/2024; ending: 11/10/2024": datetime(2024, 10, 27),
|
|
125
|
-
"Commencing: 5/30/2024; Ending: 7/29/2024": datetime(2024, 5, 30),
|
|
126
|
-
"8/9/2024 or within a 14-day window": datetime(2024, 8, 9),
|
|
127
|
-
"Commencing: 7/6/2024; Ending: 9/1/2024": datetime(2024, 7, 6),
|
|
128
|
-
"Beginning: 6/3/24; Ending: 6/16/24": datetime(2024, 6, 3),
|
|
129
|
-
"Beginning: 2/24/24; Ending: 4/23/24": datetime(2024, 2, 24),
|
|
130
|
-
"Beginning: 5/17/24; Ending: 8/30/24": datetime(2024, 5, 17),
|
|
131
|
-
"Beginning: 1/16/24; Ending: 3/29/24": datetime(2024, 1, 16),
|
|
132
|
-
"Beginning: 1/2/2024 - Ending: 3/31/2024": datetime(2024, 1, 2),
|
|
133
|
-
"November 3, 2023": datetime(2023, 11, 3),
|
|
134
|
-
"9/8/23 (96 employees) ... 9/15/23 (66 employees) ... 9/22/23 (36 employees) ... 9/29/23 (26 employees) ... 9/30/23 (1 employee) ... 10/6/23 (13 employees) ... 10/13/23 (37 employees) ... 10/20/23 (34 employees) ... 11/10/23 (10 employees) ... 12/1/23 (61 employees) ... 2/2/24 (13 employees) ...": datetime(2023, 9, 8),
|
|
135
|
-
"Beginning: 2/28/23 - Ending: 12/31/23": datetime(2023, 2, 28),
|
|
136
|
-
"March 3, 2023": datetime(2023, 3, 3),
|
|
137
|
-
"March 31, 2023": datetime(2023, 3, 31),
|
|
138
|
-
"March 5, 2023": datetime(2023, 3, 5),
|
|
139
|
-
"February 28, 2023": datetime(2023, 2, 28),
|
|
140
|
-
"Beginning: March 15, 2023; Ending: October 2, 2023": datetime(2023, 3, 15),
|
|
141
|
-
"Beginning: January 23, 2023; Ending: March 24, 2023": datetime(2023, 1, 23),
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
jobs_corrections = {
|
|
145
|
-
"Unknown": None,
|
|
146
|
-
"TBD": None,
|
|
147
|
-
"unknown": None,
|
|
148
|
-
"To be determined": None,
|
|
149
|
-
"60 total": 60,
|
|
150
|
-
"72 (54 PA residents impacted)": 54,
|
|
151
|
-
"9 Pennsylvania workers (209 total) ... EFFECTIVE DATE: Beginning: 7/15/25; Ending: 7/29/25": 9,
|
|
152
|
-
"501 @ Etters location; 595 @ Philadelphia location": 1096,
|
|
153
|
-
"14 Pennsylvania residents": 14,
|
|
154
|
-
"430 nationwide; unknown number of PA residents impacted": None,
|
|
155
|
-
"Cooked Plant -- 110 ... Raw Plant - 119": 229,
|
|
156
|
-
"420 ... EFFECTIVE DATE: Beginning: 12/9/2024; Ending: 12/21/2024": 420,
|
|
157
|
-
"124 ... EFFECTIVE DATE: Commencing: 5/30/2024; Ending: 7/29/2024": 124,
|
|
158
|
-
"645 (**ONLY FIVE PA RESIDENTS AFFECTED**)": 5,
|
|
159
|
-
"253 (173 @ Allentown and 80 @ Greensburg)": 253,
|
|
160
|
-
"9 Pennsylvania workers (209 total)": 9,
|
|
161
|
-
"105 (91 Temporary Layoffs and 14 Permanent Layoffs)": 105,
|
|
162
|
-
"60 (all employees work remotely)": None,
|
|
163
|
-
"206 (198 P/T and 8 F/T Employees)": 206,
|
|
164
|
-
"54 (All employees can be relocated to other Amazon Delivery Service Partners)": 54,
|
|
165
|
-
"179 (80 Marsden Employees and 99 Temporary Employees from both Express Labor & Integrated Staffing Agencies)": 179,
|
|
166
|
-
"9236 Nationwide; PA total pending verification": None,
|
|
167
|
-
"81 Total -- 13 of which reside in PA": 81,
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
def transform_date(self, value: str) -> typing.Optional[str]:
|
|
171
|
-
"""Transform a raw date string into a date object.
|
|
172
|
-
|
|
173
|
-
Args:
|
|
174
|
-
value (str): The raw date string provided by the source
|
|
175
|
-
|
|
176
|
-
Returns: A date object ready for consolidation. Or, if the date string is invalid, a None.
|
|
177
|
-
"""
|
|
178
|
-
# Cut out cruft
|
|
179
|
-
# value = value.replace("Updated", "")
|
|
180
|
-
# value = value.replace("Revised", "")
|
|
181
|
-
# value = value.replace("-", "").strip()
|
|
182
|
-
|
|
183
|
-
# Split double dates
|
|
184
|
-
# if len(value) == 20:
|
|
185
|
-
# value = value[:10]
|
|
186
|
-
# elif len(value) == 19:
|
|
187
|
-
# value = value[:9]
|
|
188
|
-
# value = re.split(r"\s{2,}", value)[0].strip()
|
|
189
|
-
# value = value.split("Originated")[0].strip()
|
|
190
|
-
# print(value)
|
|
191
|
-
|
|
192
|
-
try:
|
|
193
|
-
return super().transform_date(value)
|
|
194
|
-
except Exception:
|
|
195
|
-
# value = value.split(" to ")[0].strip()
|
|
196
|
-
# value = value.split()[0].strip()
|
|
197
|
-
# value = value.replace("‐", "")
|
|
198
|
-
return super().transform_date(value)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|