Skip to content

Commit 1585165

Browse files
committed
add some more rules and generalize some other rules
1 parent 3460141 commit 1585165

2 files changed

Lines changed: 79 additions & 52 deletions

File tree

app/designations/rules.py

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,35 @@ def match(self, value: str) -> str | None:
3131

3232

3333
RULES: list[NameRule] = [
34+
NameRule(
35+
name="CatalogJ",
36+
pattern=re.compile(
37+
r"^([A-Za-z0-9]{2,5})J(\d{2})(\d{2})(\d{2}(?:\.\d+)?)([+-])(\d{2})(\d{2})(\d{2}(?:\.\d+)?)$",
38+
re.IGNORECASE,
39+
),
40+
replacement="",
41+
replacer=lambda m: (
42+
f"{m.group(1).upper()} J{m.group(2)}{m.group(3)}{m.group(4)}{m.group(5)}{m.group(6)}{m.group(7)}{m.group(8)}"
43+
),
44+
),
45+
NameRule(
46+
name="CatalogJ",
47+
pattern=re.compile(
48+
r"^([A-Za-z0-9]{2,5})J(\d{8})([+-])(\d{7})$",
49+
re.IGNORECASE,
50+
),
51+
replacement="",
52+
replacer=lambda m: f"{m.group(1).upper()} J{m.group(2)}{m.group(3)}{m.group(4)}",
53+
),
54+
NameRule(
55+
name="CatalogJ",
56+
pattern=re.compile(
57+
r"^([A-Za-z0-9]{2,5})J(\d{2})(\d{2})([+-])(\d{2})(\d{2})$",
58+
re.IGNORECASE,
59+
),
60+
replacement="",
61+
replacer=lambda m: f"{m.group(1).upper()} J{m.group(2)}{m.group(3)}{m.group(4)}{m.group(5)}{m.group(6)}",
62+
),
3463
NameRule(
3564
name="NGC",
3665
pattern=re.compile(r"^NGC\s*0*(\d+)$", re.IGNORECASE),
@@ -51,14 +80,6 @@ def match(self, value: str) -> str | None:
5180
pattern=re.compile(r"^N\s*0*(\d+)([a-zA-Z]{1,3})$", re.IGNORECASE),
5281
replacement="NGC {0}{1}",
5382
),
54-
NameRule(
55-
name="SDSS",
56-
pattern=re.compile(
57-
r"^SDSSJ\s*(\d{2})(\d{2})(\d{2}(?:\.\d+)?)([+-])(\d{2})(\d{2})(\d{2}(?:\.\d+)?)$",
58-
re.IGNORECASE,
59-
),
60-
replacement="SDSS J{0}{1}{2}{3}{4}{5}{6}",
61-
),
6283
NameRule(
6384
name="PGC",
6485
pattern=re.compile(r"^PGC\s*0*(\d+)$", re.IGNORECASE),
@@ -75,30 +96,25 @@ def match(self, value: str) -> str | None:
7596
replacement="3C {0}{1}",
7697
),
7798
NameRule(
78-
name="2MASS",
79-
pattern=re.compile(r"^2MASSJ\s*(\d{8})([+-])(\d{7})$", re.IGNORECASE),
80-
replacement="2MASS J{0}{1}{2}",
99+
name="2dFGRS",
100+
pattern=re.compile(r"^2dfgrs\s*([NS]\d+Z\d+)$", re.IGNORECASE),
101+
replacement="2dFGRS {0}",
81102
),
82103
NameRule(
83-
name="2MASX",
84-
pattern=re.compile(r"^2MASXJ\s*(\d{8})([+-])(\d{7})$", re.IGNORECASE),
85-
replacement="2MASX J{0}{1}{2}",
86-
),
87-
NameRule(
88-
name="WINGS",
104+
name="J",
89105
pattern=re.compile(
90-
r"^WINGSJ\s*(\d{2})(\d{2})(\d{2}(?:\.\d+)?)([+-])(\d{2})(\d{2})(\d{2}(?:\.\d+)?)$",
106+
r"^J\s*(\d{2})(\d{2})(\d{2}(?:\.\d+)?)([+-])(\d{2})(\d{2})(\d{2}(?:\.\d+)?)$",
91107
re.IGNORECASE,
92108
),
93-
replacement="WINGS J{0}{1}{2}{3}{4}{5}{6}",
109+
replacement="J{0}{1}{2}{3}{4}{5}{6}",
94110
),
95111
NameRule(
96-
name="J",
112+
name="[REF]J",
97113
pattern=re.compile(
98-
r"^J\s*(\d{2})(\d{2})(\d{2}(?:\.\d+)?)([+-])(\d{2})(\d{2})(\d{2}(?:\.\d+)?)$",
114+
r"^\[([A-Za-z]+\d+)\]\s*J(\d{6}(?:\.\d+)?)([+-])(\d{6}(?:\.\d+)?)$",
99115
re.IGNORECASE,
100116
),
101-
replacement="J{0}{1}{2}{3}{4}{5}{6}",
117+
replacement="[{0}] J{1}{2}{3}",
102118
),
103119
NameRule(
104120
name="SMDG",

tests/test_designation_rules.py

Lines changed: 41 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,42 @@
33
from app.designations.rules import RULES
44

55
RULE_CASES: list[tuple[str, str, str | None]] = [
6+
("CatalogJ", "2MASSJ16295276+3911433", "2MASS J16295276+3911433"),
7+
("CatalogJ", "2massj16295276+3911433", "2MASS J16295276+3911433"),
8+
("CatalogJ", "2MASSJ16295276+391143", None),
9+
("CatalogJ", "2MASS J16295276+3911433", None),
10+
("CatalogJ", "2MASXJ21024892-2410520", "2MASX J21024892-2410520"),
11+
("CatalogJ", "2MASXJ09592150-2733330", "2MASX J09592150-2733330"),
12+
("CatalogJ", "2MASXJ10274703+2725368", "2MASX J10274703+2725368"),
13+
("CatalogJ", "2masxj09592150-2733330", "2MASX J09592150-2733330"),
14+
("CatalogJ", "SDSSJ121551.62+573421.6", "SDSS J121551.62+573421.6"),
15+
("CatalogJ", "SDSSJ121552.44+294932.9", "SDSS J121552.44+294932.9"),
16+
("CatalogJ", "SDSSJ121553.17+202452.4", "SDSS J121553.17+202452.4"),
17+
("CatalogJ", "sdssj121551.62+573421.6", "SDSS J121551.62+573421.6"),
18+
("CatalogJ", "SDSSJ121551.62-573421.6", "SDSS J121551.62-573421.6"),
19+
("CatalogJ", "SDSSJ121551.62+57342.6", None),
20+
("CatalogJ", "SDSS J121551.62+573421.6", None),
21+
("CatalogJ", "GAMAJ121028.05+015906.4", "GAMA J121028.05+015906.4"),
22+
("CatalogJ", "ZOAG241.08+02.22", None),
23+
("CatalogJ", "WINGSJ125634.96-173656.6", "WINGS J125634.96-173656.6"),
24+
("CatalogJ", "WINGSJ232248.36+143927.6", "WINGS J232248.36+143927.6"),
25+
("CatalogJ", "WINGSJ234427.24+091831.8", "WINGS J234427.24+091831.8"),
26+
("CatalogJ", "WINGSJ005617.13-012206.3", "WINGS J005617.13-012206.3"),
27+
("CatalogJ", "WINGSJ132627.17-271414.2", "WINGS J132627.17-271414.2"),
28+
("CatalogJ", "wingsj125634.96-173656.6", "WINGS J125634.96-173656.6"),
29+
("CatalogJ", "WINGS J125634.96-173656.6", None),
30+
("CatalogJ", "LVJ1235-1104", "LV J1235-1104"),
31+
("CatalogJ", "LVJ1052+3628", "LV J1052+3628"),
32+
("CatalogJ", "lvj1235-1104", "LV J1235-1104"),
33+
("CatalogJ", "", None),
34+
("[REF]J", "[BZZ2000]J132523.95-305406.7", "[BZZ2000] J132523.95-305406.7"),
35+
("[REF]J", "[BZZ2000] J132523.95-305406.7", "[BZZ2000] J132523.95-305406.7"),
36+
("[REF]J", "[IBG2003]J114222+195346", "[IBG2003] J114222+195346"),
37+
("[REF]J", "[RGD2016]J130127.14+275957.1", "[RGD2016] J130127.14+275957.1"),
38+
("[REF]J", "[EKS96]J123456+123456", "[EKS96] J123456+123456"),
39+
("[REF]J", "[123]J132523.95-305406.7", None),
40+
("[REF]J", "[ABC]J132523.95-305406.7", None),
41+
("[REF]J", "NGC 123", None),
642
("NGC", "NGC 905", "NGC 905"),
743
("NGC", "NGC905", "NGC 905"),
844
("NGC", "NGC00905", "NGC 905"),
@@ -20,14 +56,6 @@
2056
("NGC", "M 31", None),
2157
("NGC", "UGC 123", None),
2258
("NGC", "", None),
23-
("SDSS", "SDSSJ121551.62+573421.6", "SDSS J121551.62+573421.6"),
24-
("SDSS", "SDSSJ121552.44+294932.9", "SDSS J121552.44+294932.9"),
25-
("SDSS", "SDSSJ121553.17+202452.4", "SDSS J121553.17+202452.4"),
26-
("SDSS", "sdssj121551.62+573421.6", "SDSS J121551.62+573421.6"),
27-
("SDSS", "SDSSJ121551.62-573421.6", "SDSS J121551.62-573421.6"),
28-
("SDSS", "SDSSJ121551.62+57342.6", None),
29-
("SDSS", "SDSS J121551.62+573421.6", None),
30-
("SDSS", "", None),
3159
("PGC", "PGC1191069", "PGC 1191069"),
3260
("PGC", "PGC1119121", "PGC 1119121"),
3361
("PGC", "PGC1425552", "PGC 1425552"),
@@ -47,25 +75,11 @@
4775
("3C", "3c218a", "3C 218a"),
4876
("3C", "3C", None),
4977
("3C", "", None),
50-
("2MASS", "2MASSJ16295276+3911433", "2MASS J16295276+3911433"),
51-
("2MASS", "2massj16295276+3911433", "2MASS J16295276+3911433"),
52-
("2MASS", "2MASSJ16295276+391143", None),
53-
("2MASS", "2MASS J16295276+3911433", None),
54-
("2MASS", "", None),
55-
("2MASX", "2MASXJ21024892-2410520", "2MASX J21024892-2410520"),
56-
("2MASX", "2MASXJ09592150-2733330", "2MASX J09592150-2733330"),
57-
("2MASX", "2MASXJ10274703+2725368", "2MASX J10274703+2725368"),
58-
("2MASX", "2masxj09592150-2733330", "2MASX J09592150-2733330"),
59-
("2MASX", "2MASSJ16295276+3911433", None),
60-
("2MASX", "", None),
61-
("WINGS", "WINGSJ125634.96-173656.6", "WINGS J125634.96-173656.6"),
62-
("WINGS", "WINGSJ232248.36+143927.6", "WINGS J232248.36+143927.6"),
63-
("WINGS", "WINGSJ234427.24+091831.8", "WINGS J234427.24+091831.8"),
64-
("WINGS", "WINGSJ005617.13-012206.3", "WINGS J005617.13-012206.3"),
65-
("WINGS", "WINGSJ132627.17-271414.2", "WINGS J132627.17-271414.2"),
66-
("WINGS", "wingsj125634.96-173656.6", "WINGS J125634.96-173656.6"),
67-
("WINGS", "WINGS J125634.96-173656.6", None),
68-
("WINGS", "", None),
78+
("2dFGRS", "2DFGRSN129Z061", "2dFGRS N129Z061"),
79+
("2dFGRS", "2dfgrsN129Z061", "2dFGRS N129Z061"),
80+
("2dFGRS", "2DFGRSS889Z059", "2dFGRS S889Z059"),
81+
("2dFGRS", "2dFGRS N129Z061", "2dFGRS N129Z061"),
82+
("2dFGRS", "", None),
6983
("J", "J115524.38+391310.9", "J115524.38+391310.9"),
7084
("J", "J091854.30-060439.5", "J091854.30-060439.5"),
7185
("J", "j044444.77+320646.6", "J044444.77+320646.6"),
@@ -275,9 +289,6 @@
275289
("LSBC", "lsbc d640-12", "LSBC D640-12"),
276290
("LSBC", "LSBC D640", None),
277291
("LSBC", "", None),
278-
("LV", "LV J1235-1104", "LV J1235-1104"),
279-
("LV", "LV J1052+3628", "LV J1052+3628"),
280-
("LV", "lv j1235-1104", "LV J1235-1104"),
281292
("LV", "LV 1235-1104", None),
282293
("LV", "", None),
283294
("MCG", "MCG -04-31-038", "MCG -04-31-38"),

0 commit comments

Comments
 (0)