1"""
2"""
3from __future__ import absolute_import
4
5from ..unitquantity import UnitQuantity, UnitInformation, dimensionless
6from .time import s
7
8bit = UnitInformation(
9    'bit',
10    aliases=['bits']
11)
12B = byte = o = octet = UnitInformation(
13    'byte',
14    8*bit,
15    symbol='B',
16    aliases=['bytes', 'o', 'octet', 'octets']
17)
18kB = kilobyte = ko = UnitInformation(
19    'kilobyte',
20    1000 * byte,
21    symbol='kB',
22    aliases=['kilobytes', 'kilooctet', 'kilooctets']
23)
24MB = megabyte = Mo = UnitInformation(
25    'megabyte',
26    1000 * kilobyte,
27    symbol='MB',
28    aliases=['megabytes', 'megaoctet', 'megaoctets']
29)
30GB = gigabyte = Go = UnitInformation(
31    'gigabyte',
32    1000 * megabyte,
33    symbol='GB',
34    aliases=['gigabytes', 'gigaoctet', 'gigaoctets']
35)
36TB = terabyte = To = UnitInformation(
37    'terabyte',
38    1000 * gigabyte,
39    symbol='TB',
40    aliases=['terabytes', 'teraoctet', 'teraoctets']
41)
42PB = petabyte = Po = UnitInformation(
43    'petabyte',
44    1000 * terabyte,
45    symbol='PB',
46    aliases=['petabytes', 'petaoctet', 'petaoctets']
47)
48EB = exabyte = Eo = UnitInformation(
49    'exabyte',
50    1000 * petabyte,
51    symbol='EB',
52    aliases=['exabytes', 'exaoctet', 'exaoctets']
53)
54ZB = zettabyte = Zo = UnitInformation(
55    'zettabyte',
56    1000 * exabyte,
57    symbol='ZB',
58    aliases=['zettabytes', 'zettaoctet', 'zettaoctets']
59)
60YB = yottabyte = Yo = UnitInformation(
61    'yottabyte',
62    1000 * zettabyte,
63    symbol='YB',
64    aliases=['yottabytes', 'yottaoctet', 'yottaoctets']
65)
66Bd = baud = bps = UnitQuantity(
67    'baud',
68    bit/s,
69    symbol='Bd',
70)
71
72# IEC
73KiB = kibibyte = Kio = UnitInformation(
74    'kibibyte',
75    1024 * byte,
76    symbol='KiB',
77    aliases=['kibibytes', 'kibioctet', 'kibioctets']
78)
79MiB = mebibyte = Mio = UnitInformation(
80    'mebibyte',
81    1024 * kibibyte,
82    symbol='MiB',
83    aliases=['mebibytes', 'mebioctet', 'mebioctets']
84)
85GiB = gibibyte = Gio = UnitInformation(
86    'gibibyte',
87    1024 * mebibyte,
88    symbol='GiB',
89    aliases=['gibibytes', 'gibioctet', 'gibioctets']
90)
91TiB = tebibyte = Tio = UnitInformation(
92    'tebibyte',
93    1024 * gibibyte,
94    symbol='TiB',
95    aliases=['tebibytes', 'tebioctet', 'tebioctets']
96)
97PiB = pebibyte = Pio = UnitInformation(
98    'pebibyte',
99    1024 * tebibyte,
100    symbol='PiB',
101    aliases=['pebibytes', 'pebioctet', 'pebioctets']
102)
103EiB = exbibyte = Eio = UnitInformation(
104    'exbibyte',
105    1024 * pebibyte,
106    symbol='EiB',
107    aliases=['exbibytes', 'exbioctet', 'exbioctets']
108)
109ZiB = zebibyte = Zio = UnitInformation(
110    'zebibyte',
111    1024 * exbibyte,
112    symbol='ZiB',
113    aliases=['zebibytes', 'zebioctet', 'zebioctets']
114)
115YiB = yobibyte = Yio = UnitInformation(
116    'yobibyte',
117    1024 * zebibyte,
118    symbol='YiB',
119    aliases=['yobibytes', 'yobioctet', 'yobioctets']
120)
121
122del UnitQuantity, s, dimensionless
123