Skip to content

Commit 592423c

Browse files
committed
Support all registered IANA mime types
build_mime_types: Add tool to create ContentType enum from all IANA mime type CSVS pyproject.toml: Run build_mime_types.py during `poetry build` src/tests: Add more tests around mime types and adjust to mime_types.ContentType from enumeration.ContentType
1 parent 8c64153 commit 592423c

24 files changed

Lines changed: 4518 additions & 64 deletions

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ clean: ## Remove build files
3030
@echo "Temporary files were clear"
3131

3232
test: ## Run code tests
33-
@poetry run pytest
33+
@poetry run pytest -vv
3434

3535
lint: ## Run code linters
3636
@echo "Run code linters..."

build_mime_types/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# build-mime-types
2+
3+
Builds a class file for ContentType enum from the IANA mime types list.
4+
5+
Contents:
6+
7+
8+
- *.csv - Lists of media-types [from IANA](https://www.iana.org/assignments/media-types/media-types.xhtml)
9+
- [build_mime_types.py](build_mime_types.py) - Script to build class file (run automatically by poetry build)

build_mime_types/application.csv

Lines changed: 1575 additions & 0 deletions
Large diffs are not rendered by default.

build_mime_types/audio.csv

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
Name,Template,Reference
2+
1d-interleaved-parityfec,audio/1d-interleaved-parityfec,[RFC6015]
3+
32kadpcm,audio/32kadpcm,[RFC3802][RFC2421]
4+
3gpp,audio/3gpp,[RFC3839][RFC6381]
5+
3gpp2,audio/3gpp2,[RFC4393][RFC6381]
6+
aac,audio/aac,[ISO-IEC_JTC_1][Max_Neuendorf]
7+
ac3,audio/ac3,[RFC4184]
8+
AMR,audio/AMR,[RFC4867]
9+
AMR-WB,audio/AMR-WB,[RFC4867]
10+
amr-wb+,audio/amr-wb+,[RFC4352]
11+
aptx,audio/aptx,[RFC7310]
12+
asc,audio/asc,[RFC6295]
13+
ATRAC-ADVANCED-LOSSLESS,audio/ATRAC-ADVANCED-LOSSLESS,[RFC5584]
14+
ATRAC-X,audio/ATRAC-X,[RFC5584]
15+
ATRAC3,audio/ATRAC3,[RFC5584]
16+
basic,audio/basic,[RFC2045][RFC2046]
17+
BV16,audio/BV16,[RFC4298]
18+
BV32,audio/BV32,[RFC4298]
19+
clearmode,audio/clearmode,[RFC4040]
20+
CN,audio/CN,[RFC3389]
21+
DAT12,audio/DAT12,[RFC3190]
22+
dls,audio/dls,[RFC4613]
23+
dsr-es201108,audio/dsr-es201108,[RFC3557]
24+
dsr-es202050,audio/dsr-es202050,[RFC4060]
25+
dsr-es202211,audio/dsr-es202211,[RFC4060]
26+
dsr-es202212,audio/dsr-es202212,[RFC4060]
27+
DV,audio/DV,[RFC6469]
28+
DVI4,audio/DVI4,[RFC4856]
29+
eac3,audio/eac3,[RFC4598]
30+
encaprtp,audio/encaprtp,[RFC6849]
31+
EVRC,audio/EVRC,[RFC4788]
32+
EVRC-QCP,audio/EVRC-QCP,[RFC3625]
33+
EVRC0,audio/EVRC0,[RFC4788]
34+
EVRC1,audio/EVRC1,[RFC4788]
35+
EVRCB,audio/EVRCB,[RFC5188]
36+
EVRCB0,audio/EVRCB0,[RFC5188]
37+
EVRCB1,audio/EVRCB1,[RFC4788]
38+
EVRCNW,audio/EVRCNW,[RFC6884]
39+
EVRCNW0,audio/EVRCNW0,[RFC6884]
40+
EVRCNW1,audio/EVRCNW1,[RFC6884]
41+
EVRCWB,audio/EVRCWB,[RFC5188]
42+
EVRCWB0,audio/EVRCWB0,[RFC5188]
43+
EVRCWB1,audio/EVRCWB1,[RFC5188]
44+
EVS,audio/EVS,[_3GPP][Kyunghun_Jung]
45+
example,audio/example,[RFC4735]
46+
flexfec,audio/flexfec,[RFC8627]
47+
fwdred,audio/fwdred,[RFC6354]
48+
G711-0,audio/G711-0,[RFC7655]
49+
G719,audio/G719,[RFC5404][RFC Errata 3245]
50+
G7221,audio/G7221,[RFC5577]
51+
G722,audio/G722,[RFC4856]
52+
G723,audio/G723,[RFC4856]
53+
G726-16,audio/G726-16,[RFC4856]
54+
G726-24,audio/G726-24,[RFC4856]
55+
G726-32,audio/G726-32,[RFC4856]
56+
G726-40,audio/G726-40,[RFC4856]
57+
G728,audio/G728,[RFC4856]
58+
G729,audio/G729,[RFC4856]
59+
G7291,audio/G7291,[RFC4749][RFC5459]
60+
G729D,audio/G729D,[RFC4856]
61+
G729E,audio/G729E,[RFC4856]
62+
GSM,audio/GSM,[RFC4856]
63+
GSM-EFR,audio/GSM-EFR,[RFC4856]
64+
GSM-HR-08,audio/GSM-HR-08,[RFC5993]
65+
iLBC,audio/iLBC,[RFC3952]
66+
ip-mr_v2.5,audio/ip-mr_v2.5,[RFC6262]
67+
L8,audio/L8,[RFC4856]
68+
L16,audio/L16,[RFC4856]
69+
L20,audio/L20,[RFC3190]
70+
L24,audio/L24,[RFC3190]
71+
LPC,audio/LPC,[RFC4856]
72+
matroska,audio/matroska,[RFC-ietf-cellar-matroska-21]
73+
MELP,audio/MELP,[RFC8130]
74+
MELP600,audio/MELP600,[RFC8130]
75+
MELP1200,audio/MELP1200,[RFC8130]
76+
MELP2400,audio/MELP2400,[RFC8130]
77+
mhas,audio/mhas,[ISO-IEC_JTC_1][Nils_Peters][Ingo_Hofmann]
78+
mobile-xmf,audio/mobile-xmf,[RFC4723]
79+
MPA,audio/MPA,[RFC3555]
80+
mp4,audio/mp4,[RFC4337][RFC6381]
81+
MP4A-LATM,audio/MP4A-LATM,[RFC6416]
82+
mpa-robust,audio/mpa-robust,[RFC5219]
83+
mpeg,audio/mpeg,[RFC3003]
84+
mpeg4-generic,audio/mpeg4-generic,[RFC3640][RFC5691][RFC6295]
85+
ogg,audio/ogg,[RFC5334][RFC7845]
86+
opus,audio/opus,[RFC7587]
87+
parityfec,audio/parityfec,[RFC3009]
88+
PCMA,audio/PCMA,[RFC4856]
89+
PCMA-WB,audio/PCMA-WB,[RFC5391]
90+
PCMU,audio/PCMU,[RFC4856]
91+
PCMU-WB,audio/PCMU-WB,[RFC5391]
92+
prs.sid,audio/prs.sid,[Linus_Walleij]
93+
QCELP,audio/QCELP,[RFC3555][RFC3625]
94+
raptorfec,audio/raptorfec,[RFC6682]
95+
RED,audio/RED,[RFC3555]
96+
rtp-enc-aescm128,audio/rtp-enc-aescm128,[_3GPP]
97+
rtploopback,audio/rtploopback,[RFC6849]
98+
rtp-midi,audio/rtp-midi,[RFC6295]
99+
rtx,audio/rtx,[RFC4588]
100+
scip,audio/scip,[SCIP][Michael_Faller][Daniel_Hanson]
101+
SMV,audio/SMV,[RFC3558]
102+
SMV0,audio/SMV0,[RFC3558]
103+
SMV-QCP,audio/SMV-QCP,[RFC3625]
104+
sofa,audio/sofa,[AES][Piotr_Majdak]
105+
sp-midi,audio/sp-midi,[Athan_Billias][MIDI_Association]
106+
speex,audio/speex,[RFC5574]
107+
t140c,audio/t140c,[RFC4351]
108+
t38,audio/t38,[RFC4612]
109+
telephone-event,audio/telephone-event,[RFC4733]
110+
TETRA_ACELP,audio/TETRA_ACELP,[ETSI][Miguel_Angel_Reina_Ortega]
111+
TETRA_ACELP_BB,audio/TETRA_ACELP_BB,[ETSI][Miguel_Angel_Reina_Ortega]
112+
tone,audio/tone,[RFC4733]
113+
TSVCIS,audio/TSVCIS,[RFC8817]
114+
UEMCLIP,audio/UEMCLIP,[RFC5686]
115+
ulpfec,audio/ulpfec,[RFC5109]
116+
usac,audio/usac,[ISO-IEC_JTC_1][Max_Neuendorf]
117+
VDVI,audio/VDVI,[RFC4856]
118+
VMR-WB,audio/VMR-WB,[RFC4348][RFC4424]
119+
vnd.3gpp.iufp,audio/vnd.3gpp.iufp,[Thomas_Belling]
120+
vnd.4SB,audio/vnd.4SB,[Serge_De_Jaham]
121+
vnd.audiokoz,audio/vnd.audiokoz,[Vicki_DeBarros]
122+
vnd.CELP,audio/vnd.CELP,[Serge_De_Jaham]
123+
vnd.cisco.nse,audio/vnd.cisco.nse,[Rajesh_Kumar]
124+
vnd.cmles.radio-events,audio/vnd.cmles.radio-events,[Jean-Philippe_Goulet]
125+
vnd.cns.anp1,audio/vnd.cns.anp1,[Ann_McLaughlin]
126+
vnd.cns.inf1,audio/vnd.cns.inf1,[Ann_McLaughlin]
127+
vnd.dece.audio,audio/vnd.dece.audio,[Michael_A_Dolan]
128+
vnd.digital-winds,audio/vnd.digital-winds,[Armands_Strazds]
129+
vnd.dlna.adts,audio/vnd.dlna.adts,[Edwin_Heredia]
130+
vnd.dolby.heaac.1,audio/vnd.dolby.heaac.1,[Steve_Hattersley]
131+
vnd.dolby.heaac.2,audio/vnd.dolby.heaac.2,[Steve_Hattersley]
132+
vnd.dolby.mlp,audio/vnd.dolby.mlp,[Mike_Ward]
133+
vnd.dolby.mps,audio/vnd.dolby.mps,[Steve_Hattersley]
134+
vnd.dolby.pl2,audio/vnd.dolby.pl2,[Steve_Hattersley]
135+
vnd.dolby.pl2x,audio/vnd.dolby.pl2x,[Steve_Hattersley]
136+
vnd.dolby.pl2z,audio/vnd.dolby.pl2z,[Steve_Hattersley]
137+
vnd.dolby.pulse.1,audio/vnd.dolby.pulse.1,[Steve_Hattersley]
138+
vnd.dra,audio/vnd.dra,[Jiang_Tian]
139+
vnd.dts,audio/vnd.dts,[William_Zou]
140+
vnd.dts.hd,audio/vnd.dts.hd,[William_Zou]
141+
vnd.dts.uhd,audio/vnd.dts.uhd,[Phillip_Maness]
142+
vnd.dvb.file,audio/vnd.dvb.file,[Peter_Siebert]
143+
vnd.everad.plj,audio/vnd.everad.plj,[Shay_Cicelsky]
144+
vnd.hns.audio,audio/vnd.hns.audio,[Swaminathan]
145+
vnd.lucent.voice,audio/vnd.lucent.voice,[Greg_Vaudreuil]
146+
vnd.ms-playready.media.pya,audio/vnd.ms-playready.media.pya,[Steve_DiAcetis]
147+
vnd.nokia.mobile-xmf,audio/vnd.nokia.mobile-xmf,[Nokia]
148+
vnd.nortel.vbk,audio/vnd.nortel.vbk,[Glenn_Parsons]
149+
vnd.nuera.ecelp4800,audio/vnd.nuera.ecelp4800,[Michael_Fox]
150+
vnd.nuera.ecelp7470,audio/vnd.nuera.ecelp7470,[Michael_Fox]
151+
vnd.nuera.ecelp9600,audio/vnd.nuera.ecelp9600,[Michael_Fox]
152+
vnd.octel.sbc,audio/vnd.octel.sbc,[Greg_Vaudreuil]
153+
vnd.presonus.multitrack,audio/vnd.presonus.multitrack,[Matthias_Juwan]
154+
vnd.qcelp - DEPRECATED in favor of audio/qcelp,audio/vnd.qcelp,[RFC3625]
155+
vnd.rhetorex.32kadpcm,audio/vnd.rhetorex.32kadpcm,[Greg_Vaudreuil]
156+
vnd.rip,audio/vnd.rip,[Martin_Dawe]
157+
vnd.sealedmedia.softseal.mpeg,audio/vnd.sealedmedia.softseal.mpeg,[David_Petersen]
158+
vnd.vmx.cvsd,audio/vnd.vmx.cvsd,[Greg_Vaudreuil]
159+
vorbis,audio/vorbis,[RFC5215]
160+
vorbis-config,audio/vorbis-config,[RFC5215]

0 commit comments

Comments
 (0)