|
1 | 1 | """Definition of Provider class as the entry point to the library.""" |
| 2 | + |
2 | 3 | import logging |
3 | 4 | import os |
4 | 5 | import re |
5 | 6 | import traceback |
| 7 | +from typing import Dict, Iterable, List |
6 | 8 |
|
7 | | -from typing import Iterable, List, Dict |
8 | 9 | import chardet |
9 | | - |
10 | 10 | from pydantic import BaseModel, PrivateAttr |
11 | 11 |
|
12 | | -from circuit_maintenance_parser.utils import rgetattr |
13 | | - |
14 | | -from circuit_maintenance_parser.output import Maintenance |
| 12 | +from circuit_maintenance_parser.constants import EMAIL_HEADER_SUBJECT |
15 | 13 | from circuit_maintenance_parser.data import NotificationData |
16 | | -from circuit_maintenance_parser.parser import ICal, EmailDateParser |
17 | 14 | from circuit_maintenance_parser.errors import ProcessorError, ProviderError |
18 | | -from circuit_maintenance_parser.processor import CombinedProcessor, SimpleProcessor, GenericProcessor |
19 | | -from circuit_maintenance_parser.constants import EMAIL_HEADER_SUBJECT |
20 | | - |
| 15 | +from circuit_maintenance_parser.output import Maintenance |
| 16 | +from circuit_maintenance_parser.parser import EmailDateParser, ICal |
21 | 17 | from circuit_maintenance_parser.parsers.aquacomms import HtmlParserAquaComms1, SubjectParserAquaComms1 |
22 | 18 | from circuit_maintenance_parser.parsers.aws import SubjectParserAWS1, TextParserAWS1 |
23 | 19 | from circuit_maintenance_parser.parsers.bso import HtmlParserBSO1 |
24 | | -from circuit_maintenance_parser.parsers.cogent import HtmlParserCogent1, TextParserCogent1, SubjectParserCogent1 |
| 20 | +from circuit_maintenance_parser.parsers.cogent import HtmlParserCogent1, SubjectParserCogent1, TextParserCogent1 |
25 | 21 | from circuit_maintenance_parser.parsers.colt import CsvParserColt1, SubjectParserColt1, SubjectParserColt2 |
26 | 22 | from circuit_maintenance_parser.parsers.crowncastle import HtmlParserCrownCastle1 |
27 | 23 | from circuit_maintenance_parser.parsers.equinix import HtmlParserEquinix, SubjectParserEquinix |
28 | | -from circuit_maintenance_parser.parsers.gtt import HtmlParserGTT1 |
| 24 | +from circuit_maintenance_parser.parsers.globalcloudxchange import HtmlParserGcx1, SubjectParserGcx1 |
29 | 25 | from circuit_maintenance_parser.parsers.google import HtmlParserGoogle1 |
| 26 | +from circuit_maintenance_parser.parsers.gtt import HtmlParserGTT1 |
30 | 27 | from circuit_maintenance_parser.parsers.hgc import HtmlParserHGC1, HtmlParserHGC2, SubjectParserHGC1 |
31 | 28 | from circuit_maintenance_parser.parsers.lumen import HtmlParserLumen1 |
32 | 29 | from circuit_maintenance_parser.parsers.megaport import HtmlParserMegaport1 |
33 | 30 | from circuit_maintenance_parser.parsers.momentum import HtmlParserMomentum1, SubjectParserMomentum1 |
34 | 31 | from circuit_maintenance_parser.parsers.netflix import TextParserNetflix1 |
| 32 | +from circuit_maintenance_parser.parsers.openai import OpenAIParser |
35 | 33 | from circuit_maintenance_parser.parsers.seaborn import ( |
36 | 34 | HtmlParserSeaborn1, |
37 | 35 | HtmlParserSeaborn2, |
|
43 | 41 | from circuit_maintenance_parser.parsers.turkcell import HtmlParserTurkcell1 |
44 | 42 | from circuit_maintenance_parser.parsers.verizon import HtmlParserVerizon1 |
45 | 43 | from circuit_maintenance_parser.parsers.zayo import HtmlParserZayo1, SubjectParserZayo1 |
46 | | -from circuit_maintenance_parser.parsers.openai import OpenAIParser |
| 44 | +from circuit_maintenance_parser.processor import CombinedProcessor, GenericProcessor, SimpleProcessor |
| 45 | +from circuit_maintenance_parser.utils import rgetattr |
47 | 46 |
|
48 | 47 | logger = logging.getLogger(__name__) |
49 | 48 |
|
@@ -282,6 +281,17 @@ class EUNetworks(GenericProvider): |
282 | 281 | _default_organizer = "[email protected]" |
283 | 282 |
|
284 | 283 |
|
| 284 | +class GlobalCloudXchange(GenericProvider): |
| 285 | + """Global Cloud Xchange provider custom class.""" |
| 286 | + |
| 287 | + _processors: List[GenericProcessor] = PrivateAttr( |
| 288 | + [ |
| 289 | + CombinedProcessor(data_parsers=[EmailDateParser, SubjectParserGcx1, HtmlParserGcx1]), |
| 290 | + ] |
| 291 | + ) |
| 292 | + _default_organizer = PrivateAttr( "[email protected]") |
| 293 | + |
| 294 | + |
285 | 295 | class Google(GenericProvider): |
286 | 296 | """Google provider custom class.""" |
287 | 297 |
|
|
0 commit comments