44
55from __future__ import annotations
66
7- from dataclasses import dataclass
87from enum import Enum
98
9+ from pydantic import BaseModel
1010
11- @ dataclass
12- class QuerySimpleRequestSchema :
11+
12+ class QuerySimpleRequestSchema ( BaseModel ) :
1313 pgcs : list [int ] | None = None
1414 ra : float | None = None
1515 dec : float | None = None
@@ -21,123 +21,104 @@ class QuerySimpleRequestSchema:
2121 page : int | None = 0
2222
2323
24- @dataclass
25- class Designation :
24+ class Designation (BaseModel ):
2625 name : str
2726
2827
29- @dataclass
30- class EquatorialCoordinates :
28+ class EquatorialCoordinates (BaseModel ):
3129 ra : float
3230 dec : float
3331 e_ra : float
3432 e_dec : float
3533
3634
37- @dataclass
38- class GalacticCoordinates :
35+ class GalacticCoordinates (BaseModel ):
3936 lon : float
4037 lat : float
4138 e_lon : float
4239 e_lat : float
4340
4441
45- @dataclass
46- class Coordinates :
42+ class Coordinates (BaseModel ):
4743 equatorial : EquatorialCoordinates
4844 galactic : GalacticCoordinates
4945
5046
51- @dataclass
52- class HeliocentricVelocity :
47+ class HeliocentricVelocity (BaseModel ):
5348 v : float
5449 e_v : float
5550
5651
57- @dataclass
58- class Redshift :
52+ class Redshift (BaseModel ):
5953 z : float
6054 e_z : float
6155
6256
63- @dataclass
64- class Velocity :
57+ class Velocity (BaseModel ):
6558 heliocentric : HeliocentricVelocity
6659 redshift : Redshift
6760
6861
69- @dataclass
70- class Catalogs :
62+ class Catalogs (BaseModel ):
7163 designation : Designation | None = None
7264 coordinates : Coordinates | None = None
7365 velocity : Velocity | None = None
7466
7567
76- @dataclass
77- class PGCObject :
68+ class PGCObject (BaseModel ):
7869 pgc : int
7970 catalogs : Catalogs
8071
8172
82- @dataclass
83- class EquatorialUnits :
73+ class EquatorialUnits (BaseModel ):
8474 ra : str
8575 dec : str
8676 e_ra : str
8777 e_dec : str
8878
8979
90- @dataclass
91- class GalacticUnits :
80+ class GalacticUnits (BaseModel ):
9281 lon : str
9382 lat : str
9483 e_lon : str
9584 e_lat : str
9685
9786
98- @dataclass
99- class CoordinateUnits :
87+ class CoordinateUnits (BaseModel ):
10088 equatorial : EquatorialUnits
10189 galactic : GalacticUnits
10290
10391
104- @dataclass
105- class HeliocentricVelocityUnits :
92+ class HeliocentricVelocityUnits (BaseModel ):
10693 v : str
10794 e_v : str
10895
10996
110- @dataclass
111- class VelocityUnits :
97+ class VelocityUnits (BaseModel ):
11298 heliocentric : HeliocentricVelocityUnits
11399
114100
115- @dataclass
116- class Units :
101+ class Units (BaseModel ):
117102 coordinates : CoordinateUnits
118103 velocity : VelocityUnits
119104
120105
121- @dataclass
122- class Schema :
106+ class Schema (BaseModel ):
123107 units : Units
124108
125109
126- @dataclass
127- class QuerySimpleResponseSchema :
110+ class QuerySimpleResponseSchema (BaseModel ):
128111 objects : list [PGCObject ] | None = None
129112 schema : Schema | None = None
130113
131114
132- @dataclass
133- class QueryRequestSchema :
115+ class QueryRequestSchema (BaseModel ):
134116 q : str | None = None
135117 page_size : int | None = 25
136118 page : int | None = 0
137119
138120
139- @dataclass
140- class QueryResponseSchema :
121+ class QueryResponseSchema (BaseModel ):
141122 objects : list [PGCObject ] | None = None
142123
143124
@@ -151,8 +132,7 @@ class PageSize2(Enum):
151132 integer_100000 = 100000
152133
153134
154- @dataclass
155- class FITSRequestSchema :
135+ class FITSRequestSchema (BaseModel ):
156136 pgcs : list [int ] | None = None
157137 ra : float | None = None
158138 dec : float | None = None
0 commit comments