1# -*- coding: utf-8 -*-
2"""
3"""
4from __future__ import absolute_import
5
6from ..unitquantity import UnitLength, UnitQuantity
7
8m = meter = metre = UnitLength(
9    'meter',
10    symbol='m',
11    aliases=['meters', 'metre', 'metres']
12)
13km = kilometer = kilometre = UnitLength(
14    'kilometer',
15    1000*m,
16    symbol='km',
17    aliases=['kilometers', 'kilometre', 'kilometres']
18)
19cm = centimeter = centimetre = UnitLength(
20    'centimeter',
21    m/100,
22    'cm',
23    aliases=['centimeters', 'centimetre', 'centimetres']
24)
25mm = millimeter = millimetre = UnitLength(
26    'millimeter',
27    m/1000,
28    symbol='mm',
29    aliases=['millimeters', 'millimetre', 'millimetres']
30)
31um = micrometer = micrometre = micron = UnitLength(
32    'micrometer',
33    mm/1000,
34    symbol='um',
35    u_symbol='µm',
36    aliases=[
37        'micron', 'microns', 'micrometers', 'micrometre', 'micrometres'
38    ]
39)
40nm = nanometer = nanometre = UnitLength(
41    'nanometer',
42    um/1000,
43    symbol='nm',
44    aliases=['nanometers', 'nanometre', 'nanometres']
45)
46pm = picometer = picometre = UnitLength(
47    'picometer',
48    nm/1000,
49    symbol='pm',
50    aliases=['picometers', 'picometre', 'picometres']
51)
52angstrom = UnitLength(
53    'angstrom',
54    nm/10,
55    u_symbol='Å',
56    aliases=['angstroms']
57)
58fm = femtometer = femtometre = fermi = UnitLength(
59    'femtometer',
60    pm/1000,
61    symbol='fm',
62    aliases=['femtometers', 'femtometre', 'femtometres', 'fermi', 'fermis']
63)
64
65inch = international_inch = UnitLength(
66    'inch',
67    2.54*cm,
68    symbol='in',
69    aliases=['inches', 'international_inch', 'international_inches']
70)
71ft = foot = international_foot = UnitLength(
72    'foot',
73    12*inch,
74    symbol='ft',
75    aliases=['feet', 'international_foot' 'international_feet']
76)
77mi = mile = international_mile = UnitLength(
78    'mile',
79    5280*ft,
80    symbol='mi',
81    aliases=['miles', 'international_mile', 'international_miles']
82)
83yd = yard = international_yard = UnitLength(
84    'yard',
85    3*ft,
86    symbol='yd',
87    aliases=['yards', 'international_yard', 'international_yards']
88)
89mil = thou = UnitLength(
90    'mil',
91    inch/1000,
92    aliases=['mils', 'thou', 'thous']
93)
94pc = parsec = UnitLength(
95    'parsec',
96    3.08568025e16*m,
97    symbol='pc',
98    aliases=['parsecs'],
99    doc='approximate'
100)
101ly = light_year = UnitLength(
102    'light_year',
103    9460730472580.8*km,
104    symbol='ly',
105    aliases=['light_years']
106)
107au = astronomical_unit = UnitLength(
108    'astronomical_unit',
109    149597870691*m,
110    symbol='au',
111    aliases=['astronomical_units'],
112    doc='''
113    An astronomical unit (abbreviated as AU, au, a.u., or sometimes ua) is a
114    unit of length roughly equal to the mean distance between the Earth and
115    the Sun. It is approximately 150 million kilometres (93 million miles).
116
117    uncertainty ± 30 m
118
119    http://en.wikipedia.org/wiki/Astronomical_unit
120    '''
121)
122
123nmi = nautical_mile = UnitLength(
124    'nautical_mile',
125    1.852e3*m,
126    symbol='nmi',
127    aliases=['nmile', 'nmiles', 'nautical_miles']
128)
129pt = printers_point = point = UnitLength(
130    'printers_point',
131    127*mm/360,
132    symbol='point',
133    aliases=['printers_points', 'points'],
134    doc='pt is reserved for pint'
135)
136pica = UnitLength(
137    'pica',
138    12*printers_point,
139    aliases=['picas', 'printers_pica', 'printers_picas']
140)
141
142US_survey_foot = UnitLength(
143    'US_survey_foot',
144    1200*m/3937,
145    aliases=['US_survey_feet']
146)
147US_survey_yard = UnitLength(
148    'US_survey_yard',
149    3*US_survey_foot,
150    aliases=['US_survey_yards']
151)
152US_survey_mile = US_statute_mile = UnitLength(
153    'US_survey_mile',
154    5280*US_survey_foot,
155    aliases=['US_survey_miles', 'US_statute_mile', 'US_statute_miles']
156)
157rod = pole = perch = UnitLength(
158    'rod',
159    16.5*US_survey_foot,
160    aliases=['rods', 'pole', 'poles', 'perch', 'perches']
161)
162furlong = UnitLength(
163    'furlong',
164    660*US_survey_foot,
165    aliases=['furlongs']
166)
167fathom = UnitLength(
168    'fathom',
169    6*US_survey_foot,
170    aliases=['fathoms']
171)
172chain = UnitLength(
173    'chain',
174    66*US_survey_foot,
175    aliases=['chains']
176)
177barleycorn = UnitLength(
178    'barleycorn',
179    inch/3,
180    aliases=['barleycorns']
181)
182arpentlin = UnitLength(
183    'arpentlin',
184    191.835*ft
185)
186
187kayser = wavenumber = UnitQuantity(
188    'kayser',
189    1/cm,
190    aliases=['kaysers', 'wavenumber', 'wavenumbers']
191)
192
193del UnitQuantity
194