warn-transformer 1.3.281__py3-none-any.whl → 1.3.283__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.

@@ -4,18 +4,20 @@ from datetime import datetime
4
4
  from ..schema import BaseTransformer
5
5
 
6
6
 
7
+ # class Transformer:
7
8
  class Transformer(BaseTransformer):
8
9
  """Transform Connecticut raw data for consolidation."""
9
10
 
10
11
  postal_code = "CT"
11
12
  fields = dict(
12
13
  company="affected_company",
13
- location="layoff_location",
14
- notice_date="warn_date",
15
- effective_date="layoff_date",
16
- jobs="number_workers",
14
+ location="layoff_locations",
15
+ notice_date="warn_document_date",
16
+ effective_date="layoff_dates",
17
+ jobs="number_of_impacted_workers",
17
18
  )
18
- date_format = ["%m/%d/%Y", "%m/%d/%y", "%m-%d-%y", "%Y"]
19
+ date_format = ["%Y-%m-%d", "%Y-%m-%dT%H:%M:%S+00.00", "%m/%d/%Y"]
20
+ # date_format = ["%m/%d/%Y", "%m/%d/%y", "%m-%d-%y", "%Y"]
19
21
  date_corrections = {
20
22
  "12/31/16-1/13/17": datetime(2016, 12, 31),
21
23
  "12/4/15-tbd": datetime(2015, 12, 4),
@@ -47,6 +49,77 @@ class Transformer(BaseTransformer):
47
49
  "9/92024": datetime(2024, 9, 9),
48
50
  "4/112025": datetime(2025, 4, 11),
49
51
  "3/31/2025,": datetime(2025, 3, 31),
52
+ "11/24/2025 - 4/1/2026": datetime(2025, 11, 24),
53
+ "February 15, 2025, through February 28, 2025": datetime(2025, 2, 15),
54
+ "April 12, 2025": datetime(2025, 4, 12),
55
+ "March 21, 2025": datetime(2025, 3, 21),
56
+ "8/2/2019, 12/13/2029": datetime(2019, 8, 2),
57
+ "June 29, 2025": datetime(2025, 6, 29),
58
+ "6/3/2023, 12/31/2023": datetime(2023, 6, 3),
59
+ "09/15/2020,12/17/2020": datetime(2020, 9, 15),
60
+ "03/28/2020, 04/01/2020": datetime(2020, 3, 28),
61
+ "June 10, 2025": datetime(2025, 6, 10),
62
+ "05/10/2020,05/23/2020": datetime(2020, 5, 10),
63
+ "August 23, 2024": datetime(2024, 8, 23),
64
+ "April 30, 2025. Additional layoffs are scheduled for June 20, 2025 and July 30, 2025": datetime(
65
+ 2025, 4, 30
66
+ ),
67
+ "April 25, 2025-July 3 1 , 2025.": datetime(2025, 4, 25),
68
+ "03/20/2020,04/03/2020,04/07/2020": datetime(2020, 3, 20),
69
+ "02/26/2022,03/11/2022": datetime(2022, 2, 26),
70
+ "December 2, 2025": datetime(2025, 12, 2),
71
+ "8/4/23, 9/1/23, 10/6/23, 11/3/23, 12/1/23, 1/5/24, 2/2/24, 2/16/24, 3/1/24, 3/29/24, 5/3/24, 5/31/24, 6/28/24, 9/15/24, 9/20/24, 9/27/24, 9/30/24, 12/6/24": datetime(
72
+ 2023, 8, 4
73
+ ),
74
+ "10/10/2020,10/23/2020": datetime(2020, 10, 10),
75
+ "June 7, 2025": datetime(2025, 6, 7),
76
+ "04/01/2020,06/30/2020": datetime(2020, 4, 1),
77
+ "February 10th, 2025 through February 24, 2025": datetime(2025, 2, 10),
78
+ "02 /01/2023 ,03/01/2023": datetime(2023, 2, 1),
79
+ "July 5th, 2024": datetime(2024, 7, 5),
80
+ "02/01/2023,03/01/2023": datetime(2023, 2, 1),
81
+ "7/15/2025, 7/29/2025": datetime(2025, 7, 15),
82
+ "12/8/24 through 12/21/24": datetime(2024, 12, 8),
83
+ "08/20/2023, 09/02/2023": datetime(2023, 8, 20),
84
+ "08/17/2020,08/30/2020": datetime(2020, 8, 17),
85
+ "3/10/2020,4/07/2020": datetime(2020, 3, 10),
86
+ "March 25, 2025": datetime(2025, 3, 25),
87
+ "03/25/2020,03/28/2020": datetime(2020, 3, 25),
88
+ "09/15/2023, 09/23/2023, 11/17/2023, 12/1/2023": datetime(2023, 9, 15),
89
+ "1/13/25, 2/13/25": datetime(2025, 1, 13),
90
+ "01/03/2020,05/30/2020": datetime(2020, 1, 3),
91
+ "05/01/2020,07/06/2020": datetime(2020, 5, 1),
92
+ "03/26/2020, 04/16/2020,05/10/2020": datetime(2020, 3, 26),
93
+ "3/13/2020, 3/20/2020, 4/6/2020,4/19/2020": datetime(2020, 3, 13),
94
+ "September 27, 2024": datetime(2024, 9, 27),
95
+ "09/08/2020,09/22/2020": datetime(2020, 9, 8),
96
+ "09/15/2020,03/17/2021": datetime(2020, 9, 15),
97
+ "03/23/2020, 03/26/2020": datetime(2020, 3, 23),
98
+ "12/20/2024, 1/31/25, 2/14/25, 2/21/25": datetime(2024, 12, 20),
99
+ "04/10/2020,04/22/2020": datetime(2020, 4, 10),
100
+ "10/12/2025 - 10/25/2025": datetime(2025, 10, 12),
101
+ "March, 2025": datetime(2025, 3, 1),
102
+ "5/17/24": datetime(2024, 5, 17),
103
+ "August 24, 2024": datetime(2024, 8, 24),
104
+ "10/21/2023, 10/28/2023, 11/04/2023, 11/18/2023, 11/25/2023, 12/30/2025": datetime(
105
+ 2023, 10, 21
106
+ ),
107
+ "04/14/2023, 05/13/2023 - 05/27/2023, 06/12/2023-08/11/2023, 06/12/2023-06/26/2023": datetime(
108
+ 2023, 4, 14
109
+ ),
110
+ "8/2/2019-12/31/2019": datetime(2019, 8, 2),
111
+ "9/21/2025 - 10/4/2025": datetime(2025, 9, 21),
112
+ "January 25, 2025 through February 7, 2025": datetime(2025, 1, 25),
113
+ "March 31, 2025, June 30, 2025, and September 30, 2025": datetime(2025, 3, 31),
114
+ "4/2/24": datetime(2024, 4, 2),
115
+ "9/9/24": datetime(2024, 9, 9),
116
+ "5/15/24": datetime(2024, 5, 15),
117
+ "3/22/25": datetime(2025, 3, 22),
118
+ "5/31/24": datetime(2024, 5, 31),
119
+ "10/2/23": datetime(2023, 10, 2),
120
+ "0025-05-16": datetime(2025, 5, 16),
121
+ "0024-05-31": datetime(2024, 5, 31),
122
+ "0005-02-04": datetime(2025, 2, 4),
50
123
  }
51
124
  jobs_corrections = {
52
125
  "up to 703": 703,
@@ -79,6 +152,10 @@ class Transformer(BaseTransformer):
79
152
  "55 total: 1 CT resident": 1,
80
153
  "131 total; 92 CT residents": 92,
81
154
  "80 Total; 4 CT": 4,
155
+ "66; #CT workers not indicated": None,
156
+ "": None,
157
+ "113,": 113,
158
+ "Greenwich": None, # Not my circus, not my monkeys
82
159
  }
83
160
 
84
161
  def transform_date(self, value: str) -> typing.Optional[str]:
@@ -107,12 +184,13 @@ class Transformer(BaseTransformer):
107
184
  value = value.strip().split()[0].strip()
108
185
  return super().transform_date(value)
109
186
 
110
- def check_if_closure(self, row: typing.Dict) -> typing.Optional[bool]:
111
- """Determine whether a row is a closure or not.
112
-
113
- Args:
114
- row (dict): The raw row of data.
115
187
 
116
- Returns: A boolean or null
117
- """
118
- return "yes" in row["closing"].lower() or None
188
+ # def check_if_closure(self, row: typing.Dict) -> typing.Optional[bool]:
189
+ # """Determine whether a row is a closure or not.
190
+ #
191
+ # Args:
192
+ # row (dict): The raw row of data.
193
+ #
194
+ # Returns: A boolean or null
195
+ # """
196
+ # return "yes" in row["closing"].lower() or None
@@ -185,6 +185,7 @@ class Transformer(BaseTransformer):
185
185
  "11/19/25 - 12/15/25": datetime(2025, 11, 19),
186
186
  "1/23/26 & 2/13/26": datetime(2026, 1, 23),
187
187
  "12/17/2025 & 1/28/26": datetime(2025, 12, 17),
188
+ "1/23/26, 6/26/26, 7/31/26": datetime(2026, 1, 23),
188
189
  }
189
190
 
190
191
  def transform_jobs(self, value: str) -> typing.Optional[int]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warn-transformer
3
- Version: 1.3.281
3
+ Version: 1.3.283
4
4
  Summary: Consolidate, enrich and analyze the data gathered by warn-scraper
5
5
  Home-page: https://github.com/biglocalnews/warn-transformer
6
6
  Author: Big Local News
@@ -11,7 +11,7 @@ warn_transformer/transformers/al.py,sha256=OydLDvZMAJTDBTr-xfCW8sRlOYqgCGGmXIA41
11
11
  warn_transformer/transformers/az.py,sha256=cB1fTlpBH-meU4NO4hS5-pO2_oCSc6q6Ip7eeQQEUJo,398
12
12
  warn_transformer/transformers/ca.py,sha256=UGs9lbslvtJxT-3WylvZSFu7_BKlUgjNKDBZApOhc0Q,1764
13
13
  warn_transformer/transformers/co.py,sha256=_EBTSAhnV9g3VPPvJh-TymhWguuvVEMEYtY3XkejjlY,5375
14
- warn_transformer/transformers/ct.py,sha256=tREKFro2HYl4xRJsN0eokYIajP6fMC5dr8yClyUv-wQ,4251
14
+ warn_transformer/transformers/ct.py,sha256=gLcKpTWqe2VdVJN2bPbbonOY-Ep78yatOoR68T4jdSM,8407
15
15
  warn_transformer/transformers/dc.py,sha256=lFVj8neBO7ePlt9DrbTvwNw7RBDvfJTvLw65HNz5YDw,2881
16
16
  warn_transformer/transformers/de.py,sha256=QTvAVeR9A_cqLKBPf1ELL1PzYixazOsPIbLipJqyTrI,344
17
17
  warn_transformer/transformers/fl.py,sha256=2MyAh34od1aJoc_P2-bGLCWljmhDmPGPsHW3xTDUsvM,1879
@@ -30,7 +30,7 @@ warn_transformer/transformers/mi.py,sha256=fXKiv-Slgh34tpKGPZiNs0hVd2mDqiaOP2ZEa
30
30
  warn_transformer/transformers/mo.py,sha256=NYmHMISfXawIoIm00Bsvjzjw4TGAxbsHiS8MQ6oYEdk,1709
31
31
  warn_transformer/transformers/mt.py,sha256=QSSlo3BFjJklcE4e6tUu_vJa1H887XeDXdxsCY0LGm0,762
32
32
  warn_transformer/transformers/ne.py,sha256=WqUkSsoR9a2Oi4Y7sjOqH3C2lbbaYWQzFCvhme2iNKo,982
33
- warn_transformer/transformers/nj.py,sha256=A3DsnnZXQ3hMkUw6lsxZRxCI9QptoB30_gmTD8s_vak,10066
33
+ warn_transformer/transformers/nj.py,sha256=YHA1IXCojgPUJOQL03Cg9nGWCXf45rtLb-6_ZO8Mbw4,10126
34
34
  warn_transformer/transformers/nm.py,sha256=w_u9AmXyc-VCqnspTvuUNlP2cwqjwSRvqeVHwQoLux0,664
35
35
  warn_transformer/transformers/ny.py,sha256=YGlomU9-pr6dBLrR0xROL8jJzOwJWPGV01GSByqUHds,2559
36
36
  warn_transformer/transformers/oh.py,sha256=ZTREXZgvurJjigJ-g38qBtiDmT4P1p5ZvOH0G7Y4Q9I,3273
@@ -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.281.dist-info/licenses/LICENSE,sha256=ZV-QHyqPwyMuwuj0lI05JeSjV1NyzVEk8Yeu7FPtYS0,585
51
- warn_transformer-1.3.281.dist-info/METADATA,sha256=QQrWrW8jCbsy2Y9sFd0Kl94ZWuLG56PrdhAeaeydUVg,1740
52
- warn_transformer-1.3.281.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
53
- warn_transformer-1.3.281.dist-info/entry_points.txt,sha256=MvWNvQnZTu5Fbpd7JMN-KGPeklT6f5v6Hx39uqnBl28,62
54
- warn_transformer-1.3.281.dist-info/top_level.txt,sha256=8nZpmzmOcqSnismvY34muSX8MvaZM6aEfLldl-wp0fQ,17
55
- warn_transformer-1.3.281.dist-info/RECORD,,
50
+ warn_transformer-1.3.283.dist-info/licenses/LICENSE,sha256=ZV-QHyqPwyMuwuj0lI05JeSjV1NyzVEk8Yeu7FPtYS0,585
51
+ warn_transformer-1.3.283.dist-info/METADATA,sha256=g2ndbW5lwUimtBel66evpSq-rqQhh9939s-Fh6YJeLo,1740
52
+ warn_transformer-1.3.283.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
53
+ warn_transformer-1.3.283.dist-info/entry_points.txt,sha256=MvWNvQnZTu5Fbpd7JMN-KGPeklT6f5v6Hx39uqnBl28,62
54
+ warn_transformer-1.3.283.dist-info/top_level.txt,sha256=8nZpmzmOcqSnismvY34muSX8MvaZM6aEfLldl-wp0fQ,17
55
+ warn_transformer-1.3.283.dist-info/RECORD,,