cfi-decoder 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
cfi_decoder/_data.py ADDED
@@ -0,0 +1,951 @@
1
+ """ISO 10962 CFI code lookup tables.
2
+
3
+ Data sourced from the Wikipedia "Tabulated Structure of CFI Code" tables.
4
+ Each attribute is a (label, values_dict) tuple for self-documentation.
5
+ """
6
+
7
+ AttrDef = tuple[str, dict[str, str]]
8
+
9
+ # ---------------------------------------------------------------------------
10
+ # Position 1: Category
11
+ # ---------------------------------------------------------------------------
12
+ CATEGORIES: dict[str, str] = {
13
+ "E": "Equities",
14
+ "D": "Debt Instruments",
15
+ "C": "Collective Investment Vehicles",
16
+ "O": "Listed Options",
17
+ "F": "Futures",
18
+ "H": "Non-Listed and Complex Listed Options",
19
+ "I": "Spots",
20
+ "J": "Forwards",
21
+ "K": "Strategies",
22
+ "L": "Financing",
23
+ "T": "Referential Instruments",
24
+ "M": "Others (Miscellaneous)",
25
+ }
26
+
27
+ # ---------------------------------------------------------------------------
28
+ # Position 2: Group (per category)
29
+ # ---------------------------------------------------------------------------
30
+ GROUPS: dict[str, dict[str, str]] = {
31
+ "E": {
32
+ "S": "Shares (Common/Ordinary)",
33
+ "P": "Preferred Shares",
34
+ "C": "Convertible Shares",
35
+ "F": "Preferred Convertible Shares",
36
+ "L": "Limited Partnership Units",
37
+ "D": "Depository Receipts on Equities",
38
+ "Y": "Structured Instruments (Participation)",
39
+ "R": "Preference Shares",
40
+ "V": "Preference Convertible Shares",
41
+ "U": "Units (Unit Trusts/Mutual Funds)",
42
+ "M": "Others (Miscellaneous)",
43
+ },
44
+ "D": {
45
+ "B": "Bonds",
46
+ "C": "Convertible Bonds",
47
+ "W": "Bonds with Warrants Attached",
48
+ "T": "Medium-Term Notes",
49
+ "S": "Structured Products (Capital Protection)",
50
+ "E": "Structured Products (No Capital Protection)",
51
+ "G": "Mortgage-Backed Securities",
52
+ "A": "Asset-Backed Securities",
53
+ "N": "Municipal Bonds",
54
+ "D": "Depository Receipts on Debt Instruments",
55
+ "Y": "Money Market Instruments",
56
+ "M": "Others (Miscellaneous)",
57
+ },
58
+ "C": {
59
+ "I": "Standard Investment Funds/Mutual Funds",
60
+ "H": "Hedge Funds",
61
+ "B": "Real Estate Investment Trusts (REITs)",
62
+ "E": "Exchange-Traded Funds (ETFs)",
63
+ "S": "Pension Funds",
64
+ "F": "Funds of Funds",
65
+ "P": "Private Equity Funds",
66
+ "R": "Entitlements (Rights)",
67
+ "M": "Others (Miscellaneous)",
68
+ },
69
+ "O": {
70
+ "C": "Call Options",
71
+ "P": "Put Options",
72
+ "M": "Others (Miscellaneous)",
73
+ },
74
+ "F": {
75
+ "F": "Financial Futures",
76
+ "C": "Commodities Futures",
77
+ },
78
+ "H": {
79
+ "R": "Rates",
80
+ "T": "Commodities",
81
+ "E": "Equity",
82
+ "C": "Credit",
83
+ "F": "Foreign Exchange",
84
+ "M": "Others (Miscellaneous)",
85
+ },
86
+ "I": {
87
+ "F": "Foreign Exchange",
88
+ "T": "Commodities",
89
+ },
90
+ "J": {
91
+ "E": "Equity",
92
+ "F": "Foreign Exchange",
93
+ "C": "Credit",
94
+ "R": "Rates",
95
+ "T": "Commodities",
96
+ },
97
+ "K": {
98
+ "R": "Rates",
99
+ "T": "Commodities",
100
+ "E": "Equity",
101
+ "C": "Credit",
102
+ "F": "Foreign Exchange",
103
+ "Y": "Mixed Assets",
104
+ "M": "Others (Miscellaneous)",
105
+ },
106
+ "L": {
107
+ "L": "Loan Lease",
108
+ "R": "Repurchase Agreements",
109
+ "S": "Securities Lending",
110
+ },
111
+ "T": {
112
+ "C": "Currencies",
113
+ "T": "Commodities",
114
+ "R": "Interest Rates",
115
+ "I": "Indices",
116
+ "B": "Baskets",
117
+ "D": "Stock Dividends",
118
+ "M": "Others (Miscellaneous)",
119
+ },
120
+ "M": {
121
+ "C": "Combined Instruments",
122
+ "M": "Others (Miscellaneous)",
123
+ },
124
+ }
125
+
126
+ # ---------------------------------------------------------------------------
127
+ # Shared attribute definitions (reused across multiple groups)
128
+ # ---------------------------------------------------------------------------
129
+
130
+ _VOTING_RIGHT: AttrDef = (
131
+ "Voting Right",
132
+ {
133
+ "V": "Voting",
134
+ "N": "Non-Voting",
135
+ "R": "Restricted Voting",
136
+ "E": "Enhanced Voting",
137
+ },
138
+ )
139
+
140
+ _OWNERSHIP: AttrDef = (
141
+ "Ownership/Transfer",
142
+ {"T": "Restrictions", "U": "Free"},
143
+ )
144
+
145
+ _PAYMENT_STATUS: AttrDef = (
146
+ "Payment Status",
147
+ {"F": "Fully Paid", "O": "Nil Paid", "P": "Partly Paid"},
148
+ )
149
+
150
+ _FORM: AttrDef = (
151
+ "Form",
152
+ {"B": "Bearer", "R": "Registered", "N": "Bearer/Registered", "M": "Others"},
153
+ )
154
+
155
+ _PREFERRED_REDEMPTION: AttrDef = (
156
+ "Redemption/Conversion",
157
+ {
158
+ "R": "Redeemable",
159
+ "E": "Extendible",
160
+ "T": "Redeemable/Extendible",
161
+ "G": "Exchangeable",
162
+ "A": "Redeemable/Exchangeable/Extendible",
163
+ "C": "Redeemable/Exchangeable",
164
+ "N": "Perpetual",
165
+ },
166
+ )
167
+
168
+ _PREFERRED_INCOME: AttrDef = (
169
+ "Income",
170
+ {
171
+ "F": "Fixed Rate",
172
+ "C": "Cumulative Fixed Rate",
173
+ "P": "Participating",
174
+ "Q": "Cumulative Participating",
175
+ "A": "Adjustable/Variable Rate",
176
+ "N": "Normal Rate",
177
+ "U": "Auction Rate",
178
+ "D": "Dividends",
179
+ },
180
+ )
181
+
182
+ _DEBT_INTEREST: AttrDef = (
183
+ "Type of Interest",
184
+ {
185
+ "F": "Fixed Rate",
186
+ "Z": "Zero Rate/Discounted",
187
+ "V": "Variable",
188
+ "C": "Cash Payment",
189
+ "K": "Payment in Kind",
190
+ },
191
+ )
192
+
193
+ _DEBT_INTEREST_NO_K: AttrDef = (
194
+ "Type of Interest",
195
+ {
196
+ "F": "Fixed Rate",
197
+ "Z": "Zero Rate/Discounted",
198
+ "V": "Variable",
199
+ },
200
+ )
201
+
202
+ _DEBT_GUARANTEE: AttrDef = (
203
+ "Guarantee",
204
+ {
205
+ "T": "Government/State Guarantee",
206
+ "G": "Joint Guarantee",
207
+ "S": "Secured",
208
+ "U": "Unsecured/Unguaranteed",
209
+ "P": "Negative Pledge",
210
+ "N": "Senior",
211
+ "O": "Senior Subordinated",
212
+ "Q": "Junior",
213
+ "J": "Junior Subordinated",
214
+ "C": "Supranational",
215
+ },
216
+ )
217
+
218
+ _DEBT_REDEMPTION: AttrDef = (
219
+ "Redemption/Reimbursement",
220
+ {
221
+ "F": "Fixed Maturity",
222
+ "G": "Fixed Maturity with Call Feature",
223
+ "C": "Fixed Maturity with Put Feature",
224
+ "D": "Fixed Maturity with Put and Call",
225
+ "A": "Amortization Plan",
226
+ "B": "Amortization Plan with Call Feature",
227
+ "T": "Amortization Plan with Put Feature",
228
+ "L": "Amortization Plan with Put and Call",
229
+ "P": "Perpetual",
230
+ "Q": "Perpetual with Call Feature",
231
+ "R": "Perpetual with Put Feature",
232
+ "E": "Extendible",
233
+ },
234
+ )
235
+
236
+ _NOT_APPLICABLE: AttrDef = (
237
+ "Not Applicable",
238
+ {"X": "Not Applicable/Undefined"},
239
+ )
240
+
241
+ _ALL_X_ATTRS = (_NOT_APPLICABLE, _NOT_APPLICABLE, _NOT_APPLICABLE, _NOT_APPLICABLE)
242
+
243
+ _CIV_SECURITY_TYPE: AttrDef = (
244
+ "Security Type/Investor Restrictions",
245
+ {
246
+ "S": "Shares",
247
+ "Q": "Shares for Qualified Investors",
248
+ "U": "Units",
249
+ "Y": "Units for Qualified Investors",
250
+ },
251
+ )
252
+
253
+ _OPTION_EXERCISE: AttrDef = (
254
+ "Exercise Option Style",
255
+ {"A": "American", "E": "European", "B": "Bermudan"},
256
+ )
257
+
258
+ _OPTION_UNDERLYING: AttrDef = (
259
+ "Underlying Asset",
260
+ {
261
+ "B": "Baskets",
262
+ "S": "Stock-Equities",
263
+ "D": "Debt Instruments",
264
+ "T": "Commodities",
265
+ "C": "Currencies",
266
+ "I": "Indices",
267
+ "O": "Options",
268
+ "F": "Futures",
269
+ "W": "Swaps",
270
+ "N": "Interest Rates",
271
+ "M": "Others",
272
+ },
273
+ )
274
+
275
+ _OPTION_DELIVERY: AttrDef = (
276
+ "Delivery",
277
+ {
278
+ "P": "Physical",
279
+ "C": "Cash",
280
+ "N": "Non-Deliverable",
281
+ "E": "Elect at Exercise",
282
+ },
283
+ )
284
+
285
+ _OPTION_STANDARD: AttrDef = (
286
+ "Standardized/Non-Standardized",
287
+ {"S": "Standardized", "N": "Non-Standardized"},
288
+ )
289
+
290
+ # ---------------------------------------------------------------------------
291
+ # Positions 3-6: Attributes (keyed by (category, group))
292
+ # ---------------------------------------------------------------------------
293
+ ATTRIBUTES: dict[tuple[str, str], tuple[AttrDef, AttrDef, AttrDef, AttrDef]] = {
294
+ # -----------------------------------------------------------------------
295
+ # E - Equities
296
+ # -----------------------------------------------------------------------
297
+ ("E", "S"): (_VOTING_RIGHT, _OWNERSHIP, _PAYMENT_STATUS, _FORM),
298
+ ("E", "P"): (_VOTING_RIGHT, _PREFERRED_REDEMPTION, _PREFERRED_INCOME, _FORM),
299
+ ("E", "C"): (_VOTING_RIGHT, _OWNERSHIP, _PAYMENT_STATUS, _FORM),
300
+ ("E", "F"): (_VOTING_RIGHT, _PREFERRED_REDEMPTION, _PREFERRED_INCOME, _FORM),
301
+ ("E", "L"): (_VOTING_RIGHT, _OWNERSHIP, _PAYMENT_STATUS, _FORM),
302
+ ("E", "D"): (
303
+ (
304
+ "Instrument Dependency",
305
+ {
306
+ "S": "Common/Ordinary Shares",
307
+ "P": "Preferred Shares",
308
+ "C": "Common Convertible Shares",
309
+ "F": "Preferred Convertible Shares",
310
+ "L": "Limited Partnership Units",
311
+ "M": "Others",
312
+ },
313
+ ),
314
+ (
315
+ "Redemption/Conversion",
316
+ {
317
+ "R": "Redeemable",
318
+ "N": "Perpetual",
319
+ "B": "Convertible",
320
+ "D": "Convertible/Redeemable",
321
+ "X": "Not Applicable/Undefined",
322
+ },
323
+ ),
324
+ _PREFERRED_INCOME,
325
+ _FORM,
326
+ ),
327
+ ("E", "Y"): (
328
+ (
329
+ "Type",
330
+ {
331
+ "A": "Tracker Certificate",
332
+ "B": "Outperforming Certificate",
333
+ "C": "Bonus Certificate",
334
+ "D": "Outperformance Bonus Certificate",
335
+ "E": "Twin-Win Certificate",
336
+ "M": "Others",
337
+ },
338
+ ),
339
+ (
340
+ "Distribution",
341
+ {"D": "Dividend Payments", "Y": "No Payments", "M": "Others"},
342
+ ),
343
+ (
344
+ "Repayment",
345
+ {
346
+ "F": "Cash Repayment",
347
+ "V": "Physical Repayment",
348
+ "E": "Elect at Settlement",
349
+ "M": "Others",
350
+ },
351
+ ),
352
+ (
353
+ "Underlying Asset",
354
+ {
355
+ "B": "Baskets",
356
+ "S": "Equities",
357
+ "D": "Debt Instruments",
358
+ "G": "Derivatives",
359
+ "T": "Commodities",
360
+ "C": "Currencies",
361
+ "I": "Indices",
362
+ "N": "Interest Rates",
363
+ "M": "Others",
364
+ },
365
+ ),
366
+ ),
367
+ ("E", "R"): (_VOTING_RIGHT, _PREFERRED_REDEMPTION, _PREFERRED_INCOME, _FORM),
368
+ ("E", "V"): (_VOTING_RIGHT, _PREFERRED_REDEMPTION, _PREFERRED_INCOME, _FORM),
369
+ ("E", "U"): (
370
+ (
371
+ "Closed/Open-End",
372
+ {"C": "Closed-End", "O": "Open-End"},
373
+ ),
374
+ (
375
+ "Distribution Policy",
376
+ {"I": "Income Funds", "G": "Growth Funds", "M": "Mixed Funds"},
377
+ ),
378
+ (
379
+ "Assets",
380
+ {
381
+ "R": "Real Estate",
382
+ "S": "Securities",
383
+ "M": "Mixed-General",
384
+ "C": "Commodities",
385
+ "D": "Derivatives",
386
+ },
387
+ ),
388
+ (
389
+ "Form",
390
+ {
391
+ "B": "Bearer",
392
+ "R": "Registered",
393
+ "N": "Bearer/Registered",
394
+ "Z": "Bearer Depository Receipt",
395
+ "A": "Registered Depository Receipt",
396
+ "M": "Others",
397
+ },
398
+ ),
399
+ ),
400
+ ("E", "M"): (_NOT_APPLICABLE, _NOT_APPLICABLE, _NOT_APPLICABLE, _FORM),
401
+ # -----------------------------------------------------------------------
402
+ # D - Debt Instruments
403
+ # -----------------------------------------------------------------------
404
+ ("D", "B"): (_DEBT_INTEREST, _DEBT_GUARANTEE, _DEBT_REDEMPTION, _FORM),
405
+ ("D", "C"): (_DEBT_INTEREST, _DEBT_GUARANTEE, _DEBT_REDEMPTION, _FORM),
406
+ ("D", "W"): (_DEBT_INTEREST, _DEBT_GUARANTEE, _DEBT_REDEMPTION, _FORM),
407
+ ("D", "T"): (_DEBT_INTEREST, _DEBT_GUARANTEE, _DEBT_REDEMPTION, _FORM),
408
+ ("D", "S"): (
409
+ (
410
+ "Type",
411
+ {
412
+ "A": "Capital Protection Certificate with Participation",
413
+ "B": "Capital Protection Convertible Certificate",
414
+ "C": "Barrier Capital Protection Certificate",
415
+ "D": "Capital Protection Certificate with Coupons",
416
+ "M": "Others",
417
+ },
418
+ ),
419
+ (
420
+ "Distribution",
421
+ {
422
+ "F": "Fixed Interest Payments",
423
+ "D": "Dividend Payments",
424
+ "V": "Variable Interest Payments",
425
+ "Y": "No Payments",
426
+ "M": "Others",
427
+ },
428
+ ),
429
+ (
430
+ "Repayment",
431
+ {
432
+ "F": "Fixed Cash Repayment (Protected Capital Level)",
433
+ "V": "Variable Cash Repayment",
434
+ "M": "Others",
435
+ },
436
+ ),
437
+ (
438
+ "Underlying Asset",
439
+ {
440
+ "B": "Baskets",
441
+ "S": "Equities",
442
+ "D": "Debt Instruments/Interest Rates",
443
+ "T": "Commodities",
444
+ "C": "Currencies",
445
+ "I": "Indices",
446
+ "M": "Others",
447
+ },
448
+ ),
449
+ ),
450
+ ("D", "E"): (
451
+ (
452
+ "Type",
453
+ {
454
+ "A": "Discount Certificate",
455
+ "B": "Barrier Discount Certificate",
456
+ "C": "Reverse Convertible",
457
+ "D": "Barrier Reverse Convertible",
458
+ "E": "Express Certificate",
459
+ "M": "Others",
460
+ },
461
+ ),
462
+ (
463
+ "Repayment",
464
+ {
465
+ "R": "Repayment in Cash",
466
+ "S": "Repayment in Assets",
467
+ "C": "Repayment in Assets and Cash",
468
+ "T": "Repayment in Assets or Cash",
469
+ "M": "Others",
470
+ },
471
+ ),
472
+ _NOT_APPLICABLE,
473
+ _NOT_APPLICABLE,
474
+ ),
475
+ ("D", "G"): (_DEBT_INTEREST_NO_K, _DEBT_GUARANTEE, _DEBT_REDEMPTION, _FORM),
476
+ ("D", "A"): (_DEBT_INTEREST_NO_K, _DEBT_GUARANTEE, _DEBT_REDEMPTION, _FORM),
477
+ ("D", "N"): (_DEBT_INTEREST_NO_K, _DEBT_GUARANTEE, _DEBT_REDEMPTION, _FORM),
478
+ ("D", "D"): (
479
+ (
480
+ "Instrument Dependency",
481
+ {
482
+ "B": "Bonds",
483
+ "C": "Convertible Bonds",
484
+ "W": "Bonds with Warrants",
485
+ "T": "Medium-Term Notes",
486
+ "Y": "Money Market Instruments",
487
+ "G": "Mortgage-Backed Securities",
488
+ "Q": "Asset-Backed Securities",
489
+ "N": "Municipal Bonds",
490
+ "M": "Others",
491
+ },
492
+ ),
493
+ (
494
+ "Type of Interest/Cash Payment",
495
+ {
496
+ "F": "Fixed Rate",
497
+ "Z": "Zero Rate/Discounted",
498
+ "V": "Variable",
499
+ "C": "Cash Payment",
500
+ },
501
+ ),
502
+ _DEBT_GUARANTEE,
503
+ _DEBT_REDEMPTION,
504
+ ),
505
+ ("D", "Y"): (
506
+ (
507
+ "Type of Interest",
508
+ {
509
+ "F": "Fixed Rate",
510
+ "Z": "Zero Rate/Discounted",
511
+ "V": "Variable",
512
+ "K": "Payment in Kind",
513
+ },
514
+ ),
515
+ _DEBT_GUARANTEE,
516
+ _NOT_APPLICABLE,
517
+ _FORM,
518
+ ),
519
+ ("D", "M"): (
520
+ (
521
+ "Type",
522
+ {"B": "Bank Loan", "P": "Promissory Note", "M": "Others"},
523
+ ),
524
+ _NOT_APPLICABLE,
525
+ _NOT_APPLICABLE,
526
+ _FORM,
527
+ ),
528
+ # -----------------------------------------------------------------------
529
+ # C - Collective Investment Vehicles
530
+ # -----------------------------------------------------------------------
531
+ ("C", "I"): (
532
+ (
533
+ "Closed/Open-End",
534
+ {"O": "Open-End", "C": "Closed-End", "M": "Others"},
535
+ ),
536
+ (
537
+ "Distribution Policy",
538
+ {"I": "Income Funds", "G": "Accumulation Funds", "J": "Mixed Funds"},
539
+ ),
540
+ (
541
+ "Assets",
542
+ {
543
+ "R": "Real Estate",
544
+ "B": "Debt Instruments",
545
+ "E": "Equities",
546
+ "V": "Convertible Securities",
547
+ "L": "Mixed",
548
+ "C": "Commodities",
549
+ "D": "Derivatives",
550
+ "F": "Referential Instruments",
551
+ "K": "Credits",
552
+ "M": "Others",
553
+ },
554
+ ),
555
+ _CIV_SECURITY_TYPE,
556
+ ),
557
+ ("C", "H"): (_NOT_APPLICABLE, _NOT_APPLICABLE, _NOT_APPLICABLE, _CIV_SECURITY_TYPE),
558
+ ("C", "B"): (_NOT_APPLICABLE, _NOT_APPLICABLE, _NOT_APPLICABLE, _CIV_SECURITY_TYPE),
559
+ ("C", "E"): (_NOT_APPLICABLE, _NOT_APPLICABLE, _NOT_APPLICABLE, _CIV_SECURITY_TYPE),
560
+ ("C", "S"): (_NOT_APPLICABLE, _NOT_APPLICABLE, _NOT_APPLICABLE, _CIV_SECURITY_TYPE),
561
+ ("C", "F"): (_NOT_APPLICABLE, _NOT_APPLICABLE, _NOT_APPLICABLE, _CIV_SECURITY_TYPE),
562
+ ("C", "P"): (_NOT_APPLICABLE, _NOT_APPLICABLE, _NOT_APPLICABLE, _CIV_SECURITY_TYPE),
563
+ ("C", "M"): (_NOT_APPLICABLE, _NOT_APPLICABLE, _NOT_APPLICABLE, _CIV_SECURITY_TYPE),
564
+ ("C", "R"): (
565
+ (
566
+ "Entitlement Type",
567
+ {
568
+ "A": "Allotment (Bonus) Rights",
569
+ "S": "Subscription Rights",
570
+ "P": "Purchase Rights",
571
+ "W": "Warrants",
572
+ "F": "Mini-Future Certificates/Constant Leverage Certificates",
573
+ "D": "Depository Receipts on Entitlements",
574
+ "M": "Others",
575
+ },
576
+ ),
577
+ _NOT_APPLICABLE,
578
+ _NOT_APPLICABLE,
579
+ _FORM,
580
+ ),
581
+ # -----------------------------------------------------------------------
582
+ # O - Listed Options
583
+ # -----------------------------------------------------------------------
584
+ ("O", "C"): (
585
+ _OPTION_EXERCISE,
586
+ _OPTION_UNDERLYING,
587
+ _OPTION_DELIVERY,
588
+ _OPTION_STANDARD,
589
+ ),
590
+ ("O", "P"): (
591
+ _OPTION_EXERCISE,
592
+ _OPTION_UNDERLYING,
593
+ _OPTION_DELIVERY,
594
+ _OPTION_STANDARD,
595
+ ),
596
+ ("O", "M"): _ALL_X_ATTRS,
597
+ # -----------------------------------------------------------------------
598
+ # F - Futures
599
+ # -----------------------------------------------------------------------
600
+ ("F", "F"): (
601
+ (
602
+ "Underlying Asset",
603
+ {
604
+ "B": "Baskets",
605
+ "S": "Stock-Equities",
606
+ "D": "Debt Instruments",
607
+ "C": "Currencies",
608
+ "I": "Indices",
609
+ "O": "Options",
610
+ "F": "Futures",
611
+ "W": "Swaps",
612
+ "N": "Interest Rates",
613
+ "V": "Stock Dividend",
614
+ "M": "Others",
615
+ },
616
+ ),
617
+ (
618
+ "Delivery",
619
+ {"P": "Physical", "C": "Cash", "N": "Non-Deliverable"},
620
+ ),
621
+ _OPTION_STANDARD,
622
+ _NOT_APPLICABLE,
623
+ ),
624
+ ("F", "C"): (
625
+ (
626
+ "Underlying Asset",
627
+ {
628
+ "E": "Extraction Resources",
629
+ "A": "Agriculture",
630
+ "I": "Industrial Products",
631
+ "S": "Services",
632
+ "N": "Environmental",
633
+ "P": "Polypropylene Products",
634
+ "H": "Generated Resources",
635
+ "M": "Others",
636
+ },
637
+ ),
638
+ (
639
+ "Delivery",
640
+ {"P": "Physical", "C": "Cash", "N": "Non-Deliverable"},
641
+ ),
642
+ _OPTION_STANDARD,
643
+ _NOT_APPLICABLE,
644
+ ),
645
+ # -----------------------------------------------------------------------
646
+ # H - Non-Listed and Complex Listed Options (all X)
647
+ # -----------------------------------------------------------------------
648
+ ("H", "R"): _ALL_X_ATTRS,
649
+ ("H", "T"): _ALL_X_ATTRS,
650
+ ("H", "E"): _ALL_X_ATTRS,
651
+ ("H", "C"): _ALL_X_ATTRS,
652
+ ("H", "F"): _ALL_X_ATTRS,
653
+ ("H", "M"): _ALL_X_ATTRS,
654
+ # -----------------------------------------------------------------------
655
+ # I - Spots
656
+ # -----------------------------------------------------------------------
657
+ ("I", "F"): (
658
+ _NOT_APPLICABLE,
659
+ _NOT_APPLICABLE,
660
+ _NOT_APPLICABLE,
661
+ ("Delivery", {"P": "Physical"}),
662
+ ),
663
+ ("I", "T"): (
664
+ (
665
+ "Underlying Asset",
666
+ {
667
+ "A": "Agriculture",
668
+ "J": "Energy",
669
+ "K": "Metals",
670
+ "N": "Environmental",
671
+ "P": "Polypropylene Products",
672
+ "S": "Fertilizer",
673
+ "T": "Paper",
674
+ "M": "Others",
675
+ },
676
+ ),
677
+ _NOT_APPLICABLE,
678
+ _NOT_APPLICABLE,
679
+ _NOT_APPLICABLE,
680
+ ),
681
+ # -----------------------------------------------------------------------
682
+ # J - Forwards (all X)
683
+ # -----------------------------------------------------------------------
684
+ ("J", "E"): _ALL_X_ATTRS,
685
+ ("J", "F"): _ALL_X_ATTRS,
686
+ ("J", "C"): _ALL_X_ATTRS,
687
+ ("J", "R"): _ALL_X_ATTRS,
688
+ ("J", "T"): _ALL_X_ATTRS,
689
+ # -----------------------------------------------------------------------
690
+ # K - Strategies (all X)
691
+ # -----------------------------------------------------------------------
692
+ ("K", "R"): _ALL_X_ATTRS,
693
+ ("K", "T"): _ALL_X_ATTRS,
694
+ ("K", "E"): _ALL_X_ATTRS,
695
+ ("K", "C"): _ALL_X_ATTRS,
696
+ ("K", "F"): _ALL_X_ATTRS,
697
+ ("K", "Y"): _ALL_X_ATTRS,
698
+ ("K", "M"): _ALL_X_ATTRS,
699
+ # -----------------------------------------------------------------------
700
+ # L - Financing
701
+ # -----------------------------------------------------------------------
702
+ ("L", "L"): (
703
+ (
704
+ "Underlying Asset",
705
+ {
706
+ "A": "Agriculture",
707
+ "B": "Baskets",
708
+ "J": "Energy",
709
+ "K": "Metals",
710
+ "N": "Environmental",
711
+ "P": "Polypropylene Products",
712
+ "S": "Fertilizer",
713
+ "T": "Paper",
714
+ "M": "Others",
715
+ },
716
+ ),
717
+ _NOT_APPLICABLE,
718
+ _NOT_APPLICABLE,
719
+ (
720
+ "Delivery",
721
+ {"P": "Physical", "C": "Cash", "N": "Non-Deliverable"},
722
+ ),
723
+ ),
724
+ ("L", "R"): (
725
+ (
726
+ "Underlying Asset",
727
+ {
728
+ "G": "General Collateral",
729
+ "S": "Specific Security Collateral",
730
+ "C": "Cash Collateral",
731
+ },
732
+ ),
733
+ (
734
+ "Termination",
735
+ {
736
+ "F": "Flexible",
737
+ "N": "Overnight",
738
+ "O": "Open",
739
+ "T": "Term",
740
+ },
741
+ ),
742
+ _NOT_APPLICABLE,
743
+ (
744
+ "Delivery",
745
+ {
746
+ "D": "Delivery versus Payment",
747
+ "H": "Hold-in-Custody",
748
+ "T": "Tri-Party",
749
+ },
750
+ ),
751
+ ),
752
+ ("L", "S"): (
753
+ (
754
+ "Underlying Asset",
755
+ {
756
+ "C": "Cash Collateral",
757
+ "G": "Government Bonds",
758
+ "P": "Corporate Bonds",
759
+ "T": "Convertible Bonds",
760
+ "E": "Equity",
761
+ "L": "Letter of Credit",
762
+ "D": "Certificate of Deposit",
763
+ "W": "Warrants",
764
+ "K": "Money Market Instruments",
765
+ "M": "Others",
766
+ },
767
+ ),
768
+ (
769
+ "Termination",
770
+ {"N": "Overnight", "O": "Open", "T": "Term"},
771
+ ),
772
+ _NOT_APPLICABLE,
773
+ (
774
+ "Delivery",
775
+ {
776
+ "D": "Delivery versus Payment",
777
+ "F": "Free of Payment",
778
+ "H": "Hold-in-Custody",
779
+ "T": "Tri-Party",
780
+ },
781
+ ),
782
+ ),
783
+ # -----------------------------------------------------------------------
784
+ # T - Referential Instruments
785
+ # -----------------------------------------------------------------------
786
+ ("T", "C"): (
787
+ (
788
+ "Type",
789
+ {
790
+ "N": "National Currency",
791
+ "L": "Legacy Currency",
792
+ "C": "Bullion Coins",
793
+ "M": "Others",
794
+ },
795
+ ),
796
+ _NOT_APPLICABLE,
797
+ _NOT_APPLICABLE,
798
+ _NOT_APPLICABLE,
799
+ ),
800
+ ("T", "T"): (
801
+ (
802
+ "Underlying Asset",
803
+ {
804
+ "E": "Extraction Resources",
805
+ "A": "Agriculture",
806
+ "I": "Industrial Products",
807
+ "S": "Services",
808
+ "N": "Environmental",
809
+ "P": "Polypropylene Products",
810
+ "H": "Generated Resources",
811
+ "M": "Others",
812
+ },
813
+ ),
814
+ _NOT_APPLICABLE,
815
+ _NOT_APPLICABLE,
816
+ _NOT_APPLICABLE,
817
+ ),
818
+ ("T", "R"): (
819
+ (
820
+ "Type",
821
+ {
822
+ "N": "Nominal",
823
+ "V": "Variable",
824
+ "F": "Fixed",
825
+ "R": "Real",
826
+ "M": "Others",
827
+ },
828
+ ),
829
+ (
830
+ "Frequency of Calculation",
831
+ {
832
+ "D": "Daily",
833
+ "W": "Weekly",
834
+ "N": "Monthly",
835
+ "Q": "Quarterly",
836
+ "S": "Semi-Annually",
837
+ "A": "Annually",
838
+ "M": "Others",
839
+ },
840
+ ),
841
+ _NOT_APPLICABLE,
842
+ _NOT_APPLICABLE,
843
+ ),
844
+ ("T", "I"): (
845
+ (
846
+ "Asset Class",
847
+ {
848
+ "E": "Equities",
849
+ "D": "Debt",
850
+ "F": "Collective Investment Vehicles",
851
+ "R": "Real Estate",
852
+ "T": "Commodities",
853
+ "C": "Currencies",
854
+ "M": "Others",
855
+ },
856
+ ),
857
+ (
858
+ "Weighting Type",
859
+ {
860
+ "P": "Price Weighted",
861
+ "C": "Capitalization Weighted",
862
+ "E": "Equal Weighted",
863
+ "F": "Modified Market Capitalization Weighted",
864
+ "M": "Others",
865
+ },
866
+ ),
867
+ (
868
+ "Index Return Type",
869
+ {
870
+ "P": "Price Return",
871
+ "N": "Net Total Return",
872
+ "G": "Gross Total Return",
873
+ "M": "Others",
874
+ },
875
+ ),
876
+ _NOT_APPLICABLE,
877
+ ),
878
+ ("T", "B"): (
879
+ (
880
+ "Composition",
881
+ {
882
+ "E": "Equities",
883
+ "D": "Debt",
884
+ "F": "Collective Investment Vehicles",
885
+ "I": "Indices",
886
+ "T": "Commodities",
887
+ "C": "Currencies",
888
+ "M": "Others",
889
+ },
890
+ ),
891
+ _NOT_APPLICABLE,
892
+ _NOT_APPLICABLE,
893
+ _NOT_APPLICABLE,
894
+ ),
895
+ ("T", "D"): (
896
+ (
897
+ "Type of Equity",
898
+ {
899
+ "S": "Common/Ordinary Shares",
900
+ "P": "Preferred/Preference Shares",
901
+ "C": "Common/Ordinary Convertible Shares",
902
+ "F": "Preferred/Preference Convertible Shares",
903
+ "L": "Limited Partnership Units",
904
+ "K": "Collective Investment Vehicles",
905
+ "M": "Others",
906
+ },
907
+ ),
908
+ _NOT_APPLICABLE,
909
+ _NOT_APPLICABLE,
910
+ _NOT_APPLICABLE,
911
+ ),
912
+ ("T", "M"): _ALL_X_ATTRS,
913
+ # -----------------------------------------------------------------------
914
+ # M - Miscellaneous/Others
915
+ # -----------------------------------------------------------------------
916
+ ("M", "C"): (
917
+ (
918
+ "Component",
919
+ {
920
+ "S": "Combination of Shares",
921
+ "B": "Combination of Bonds",
922
+ "H": "Share and Bond",
923
+ "A": "Share and Warrant",
924
+ "W": "Warrant and Warrant",
925
+ "U": "Fund Units and Other Components",
926
+ "M": "Others",
927
+ },
928
+ ),
929
+ _OWNERSHIP,
930
+ _NOT_APPLICABLE,
931
+ _FORM,
932
+ ),
933
+ ("M", "M"): (
934
+ (
935
+ "Further Grouping",
936
+ {
937
+ "R": "Real Estate Deeds",
938
+ "I": "Insurance Policies",
939
+ "E": "Escrow Receipts",
940
+ "T": "Trade Finance Instruments",
941
+ "N": "Carbon Credit",
942
+ "P": "Precious Metal Receipts",
943
+ "S": "Other OTC Derivative Products",
944
+ "M": "Others",
945
+ },
946
+ ),
947
+ _NOT_APPLICABLE,
948
+ _NOT_APPLICABLE,
949
+ _NOT_APPLICABLE,
950
+ ),
951
+ }