fdev-ids 1.3.0__tar.gz → 1.4.0__tar.gz
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.
- {fdev_ids-1.3.0/src/fdev_ids.egg-info → fdev_ids-1.4.0}/PKG-INFO +44 -5
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/README.md +42 -4
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/pyproject.toml +2 -1
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/commodity.csv +1 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/outfitting.csv +33 -3
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/sku.csv +3 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/systemallegiance.csv +1 -0
- fdev_ids-1.4.0/src/fdev_ids/__init__.py +7 -0
- fdev_ids-1.3.0/src/fdev_ids/__init__.py → fdev_ids-1.4.0/src/fdev_ids/_fdev_ids.py +3 -3
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/_loader.py +3 -1
- fdev_ids-1.4.0/src/fdev_ids/py.typed +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0/src/fdev_ids.egg-info}/PKG-INFO +44 -5
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids.egg-info/SOURCES.txt +2 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids.egg-info/requires.txt +1 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/LICENSE +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/setup.cfg +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/CQCRank.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/EmpireRank.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/ExplorationRank.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/FederationRank.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/TradeRank.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/bundles.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/combatrank.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/crimes.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/dockingdeniedreasons.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/economy.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/engineers.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/factionids.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/factionstate.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/government.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/happiness.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/material.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/microresources.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/passengers.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/rare_commodity.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/rings.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/security.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/shipyard.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/terraformingstate.csv +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids.egg-info/dependency_links.txt +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids.egg-info/top_level.txt +0 -0
- {fdev_ids-1.3.0 → fdev_ids-1.4.0}/tests/test_fdev_ids.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fdev-ids
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4.0
|
|
4
4
|
Summary: Data from https://github.com/EDCD/FDevIDs bundled in Python data structures.
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
Project-URL: Homepage, https://codeberg.org/jdlbt/fdev-ids-python
|
|
@@ -28,6 +28,7 @@ Requires-Dist: black==25.9.0; extra == "dev"
|
|
|
28
28
|
Requires-Dist: build; extra == "dev"
|
|
29
29
|
Requires-Dist: flake8==7.3.0; extra == "dev"
|
|
30
30
|
Requires-Dist: isort==6.1.0; extra == "dev"
|
|
31
|
+
Requires-Dist: mypy==2.1.0; extra == "dev"
|
|
31
32
|
Requires-Dist: pre-commit; extra == "dev"
|
|
32
33
|
Requires-Dist: tox; extra == "dev"
|
|
33
34
|
Dynamic: license-file
|
|
@@ -44,7 +45,7 @@ Data from https://github.com/EDCD/FDevIDs bundled in Python data structures.
|
|
|
44
45
|
|
|
45
46
|
Load a table by specifying the lowercase table name:
|
|
46
47
|
|
|
47
|
-
```
|
|
48
|
+
```python
|
|
48
49
|
>>> from pprint import pprint
|
|
49
50
|
>>> from fdev_ids import load_table
|
|
50
51
|
>>> bundles = load_table("bundles")
|
|
@@ -68,7 +69,7 @@ Load a table by specifying the lowercase table name:
|
|
|
68
69
|
|
|
69
70
|
Tables with a single value per ID return the value directly for each ID:
|
|
70
71
|
|
|
71
|
-
```
|
|
72
|
+
```python
|
|
72
73
|
>>> factionids = load_table("factionids")
|
|
73
74
|
>>> pprint(factionids)
|
|
74
75
|
{'$faction_Alliance;': 'Alliance',
|
|
@@ -83,7 +84,7 @@ Tables with a single value per ID return the value directly for each ID:
|
|
|
83
84
|
|
|
84
85
|
Similarily when only the ID is defined:
|
|
85
86
|
|
|
86
|
-
```
|
|
87
|
+
```python
|
|
87
88
|
>>> dockingdeniedreasons = load_table("dockingdeniedreasons")
|
|
88
89
|
>>> pprint(dockingdeniedreasons)
|
|
89
90
|
{'ActiveFighter': 'ActiveFighter',
|
|
@@ -95,11 +96,49 @@ Similarily when only the ID is defined:
|
|
|
95
96
|
'TooLarge': 'TooLarge'}
|
|
96
97
|
```
|
|
97
98
|
|
|
99
|
+
The list of available tables is stored in the `tables` module variable:
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
>>> from fdev_ids import tables
|
|
103
|
+
>>> pprint(tables)
|
|
104
|
+
('bundles',
|
|
105
|
+
'combatrank',
|
|
106
|
+
'commodity',
|
|
107
|
+
'cqcrank',
|
|
108
|
+
'crimes',
|
|
109
|
+
'dockingdeniedreasons',
|
|
110
|
+
'economy',
|
|
111
|
+
'empirerank',
|
|
112
|
+
'engineers',
|
|
113
|
+
'explorationrank',
|
|
114
|
+
'factionids',
|
|
115
|
+
'factionstate',
|
|
116
|
+
'federationrank',
|
|
117
|
+
'government',
|
|
118
|
+
'happiness',
|
|
119
|
+
'material',
|
|
120
|
+
'microresources',
|
|
121
|
+
'outfitting',
|
|
122
|
+
'passengers',
|
|
123
|
+
'rare_commodity',
|
|
124
|
+
'rings',
|
|
125
|
+
'security',
|
|
126
|
+
'shipyard',
|
|
127
|
+
'sku',
|
|
128
|
+
'systemallegiance',
|
|
129
|
+
'terraformingstate',
|
|
130
|
+
'traderank')
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Notes
|
|
134
|
+
|
|
135
|
+
The tables are lazily loaded and cached on first access. Subsequent loading of a table returns the cached data.
|
|
136
|
+
|
|
98
137
|
## Terms of Use
|
|
99
138
|
|
|
100
139
|
The data contained in this package is based on publicly available information sourced from https://github.com/EDCD/FDevIDs and subject to the [Elite Dangerous EULA and Terms of Use](https://www.frontierstore.net/ed-eula/).
|
|
101
140
|
|
|
102
|
-
The MIT license applies to the code in this repository
|
|
141
|
+
The MIT license applies only to the code in this repository.
|
|
103
142
|
|
|
104
143
|
## Issues & support
|
|
105
144
|
|
|
@@ -10,7 +10,7 @@ Data from https://github.com/EDCD/FDevIDs bundled in Python data structures.
|
|
|
10
10
|
|
|
11
11
|
Load a table by specifying the lowercase table name:
|
|
12
12
|
|
|
13
|
-
```
|
|
13
|
+
```python
|
|
14
14
|
>>> from pprint import pprint
|
|
15
15
|
>>> from fdev_ids import load_table
|
|
16
16
|
>>> bundles = load_table("bundles")
|
|
@@ -34,7 +34,7 @@ Load a table by specifying the lowercase table name:
|
|
|
34
34
|
|
|
35
35
|
Tables with a single value per ID return the value directly for each ID:
|
|
36
36
|
|
|
37
|
-
```
|
|
37
|
+
```python
|
|
38
38
|
>>> factionids = load_table("factionids")
|
|
39
39
|
>>> pprint(factionids)
|
|
40
40
|
{'$faction_Alliance;': 'Alliance',
|
|
@@ -49,7 +49,7 @@ Tables with a single value per ID return the value directly for each ID:
|
|
|
49
49
|
|
|
50
50
|
Similarily when only the ID is defined:
|
|
51
51
|
|
|
52
|
-
```
|
|
52
|
+
```python
|
|
53
53
|
>>> dockingdeniedreasons = load_table("dockingdeniedreasons")
|
|
54
54
|
>>> pprint(dockingdeniedreasons)
|
|
55
55
|
{'ActiveFighter': 'ActiveFighter',
|
|
@@ -61,11 +61,49 @@ Similarily when only the ID is defined:
|
|
|
61
61
|
'TooLarge': 'TooLarge'}
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
+
The list of available tables is stored in the `tables` module variable:
|
|
65
|
+
|
|
66
|
+
```python
|
|
67
|
+
>>> from fdev_ids import tables
|
|
68
|
+
>>> pprint(tables)
|
|
69
|
+
('bundles',
|
|
70
|
+
'combatrank',
|
|
71
|
+
'commodity',
|
|
72
|
+
'cqcrank',
|
|
73
|
+
'crimes',
|
|
74
|
+
'dockingdeniedreasons',
|
|
75
|
+
'economy',
|
|
76
|
+
'empirerank',
|
|
77
|
+
'engineers',
|
|
78
|
+
'explorationrank',
|
|
79
|
+
'factionids',
|
|
80
|
+
'factionstate',
|
|
81
|
+
'federationrank',
|
|
82
|
+
'government',
|
|
83
|
+
'happiness',
|
|
84
|
+
'material',
|
|
85
|
+
'microresources',
|
|
86
|
+
'outfitting',
|
|
87
|
+
'passengers',
|
|
88
|
+
'rare_commodity',
|
|
89
|
+
'rings',
|
|
90
|
+
'security',
|
|
91
|
+
'shipyard',
|
|
92
|
+
'sku',
|
|
93
|
+
'systemallegiance',
|
|
94
|
+
'terraformingstate',
|
|
95
|
+
'traderank')
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Notes
|
|
99
|
+
|
|
100
|
+
The tables are lazily loaded and cached on first access. Subsequent loading of a table returns the cached data.
|
|
101
|
+
|
|
64
102
|
## Terms of Use
|
|
65
103
|
|
|
66
104
|
The data contained in this package is based on publicly available information sourced from https://github.com/EDCD/FDevIDs and subject to the [Elite Dangerous EULA and Terms of Use](https://www.frontierstore.net/ed-eula/).
|
|
67
105
|
|
|
68
|
-
The MIT license applies to the code in this repository
|
|
106
|
+
The MIT license applies only to the code in this repository.
|
|
69
107
|
|
|
70
108
|
## Issues & support
|
|
71
109
|
|
|
@@ -32,6 +32,7 @@ dev = [
|
|
|
32
32
|
"build",
|
|
33
33
|
"flake8==7.3.0",
|
|
34
34
|
"isort==6.1.0",
|
|
35
|
+
"mypy==2.1.0",
|
|
35
36
|
"pre-commit",
|
|
36
37
|
"tox",
|
|
37
38
|
]
|
|
@@ -40,7 +41,7 @@ dev = [
|
|
|
40
41
|
version = { attr = "fdev_ids.__version__" }
|
|
41
42
|
|
|
42
43
|
[tool.setuptools.package-data]
|
|
43
|
-
fdev_ids = ["FDevIDs/*.csv"]
|
|
44
|
+
fdev_ids = ["FDevIDs/*.csv", "py.typed"]
|
|
44
45
|
|
|
45
46
|
[tool.black]
|
|
46
47
|
line-length = 88
|
|
@@ -850,9 +850,9 @@ id,symbol,category,name,mount,guidance,ship,class,rating,entitlement
|
|
|
850
850
|
128727927,Int_PassengerCabin_Size6_Class2,internal,Business Class Passenger Cabin,,,,6,D,
|
|
851
851
|
128727928,Int_PassengerCabin_Size6_Class3,internal,First Class Passenger Cabin,,,,6,C,
|
|
852
852
|
128727929,Int_PassengerCabin_Size6_Class4,internal,Luxury Class Passenger Cabin,,,,6,B,
|
|
853
|
-
128727930,Int_FighterBay_Size5_Class1,internal,
|
|
854
|
-
128727931,Int_FighterBay_Size6_Class1,internal,
|
|
855
|
-
128727932,Int_FighterBay_Size7_Class1,internal,
|
|
853
|
+
128727930,Int_FighterBay_Size5_Class1,internal,Vessel Hangar,,,,5,D,ELITE_HORIZONS_V_PLANETARY_LANDINGS
|
|
854
|
+
128727931,Int_FighterBay_Size6_Class1,internal,Vessel Hangar,,,,6,D,ELITE_HORIZONS_V_PLANETARY_LANDINGS
|
|
855
|
+
128727932,Int_FighterBay_Size7_Class1,internal,Vessel Hangar,,,,7,D,ELITE_HORIZONS_V_PLANETARY_LANDINGS
|
|
856
856
|
128732552,Hpt_DumbfireMissileRack_Fixed_Medium_Lasso,hardpoint,Rocket Propelled FSD Disruptor,Fixed,Dumbfire,,2,B,ELITE_SPECIFIC_V_POWER_200100
|
|
857
857
|
128734690,Int_PassengerCabin_Size2_Class1,internal,Economy Class Passenger Cabin,,,,2,E,
|
|
858
858
|
128734691,Int_PassengerCabin_Size3_Class1,internal,Economy Class Passenger Cabin,,,,3,E,
|
|
@@ -1189,3 +1189,33 @@ id,symbol,category,name,mount,guidance,ship,class,rating,entitlement
|
|
|
1189
1189
|
129043776,Int_MkII_PassengerCabin_Size5_Class2,internal,MkII Business Class Passenger Cabin,,,,5,C,
|
|
1190
1190
|
129043777,Int_MkII_PassengerCabin_Size6_Class1,internal,MkII Economy Class Passenger Cabin,,,,5,D,
|
|
1191
1191
|
129043778,Int_MkII_PassengerCabin_Size6_Class2,internal,MkII Business Class Passenger Cabin,,,,5,C,
|
|
1192
|
+
129044375,Hpt_Railgun_Fixed_Medium,mercgear,Enduring Feedback Rail Gun,,,,2,B,
|
|
1193
|
+
129044376,Int_PowerDistributor_Size5_Class5,mercgear,Balanced Power Distributor,,,,5,A,
|
|
1194
|
+
129044377,Int_ModuleReinforcement_Size5_Class2,mercgear,Heavy Duty Module Reinforcement Package,,,,5,D,
|
|
1195
|
+
129045428,Hpt_Mining_AbrBlstr_Fixed_Small,mercgear,Far-Reaching Abrasion Blaster,Fixed,,,1,D,
|
|
1196
|
+
129045429,Hpt_CausticMissile_Fixed_Medium,mercgear,High-Yield Enzyme Missile Rack,Fixed,Dumbfire,,2,B,
|
|
1197
|
+
129045430,Hpt_Slugshot_Gimbal_Large,mercgear,Double Screaming Fragment Cannon,Gimballed,,,3,C,
|
|
1198
|
+
129045431,Hpt_Slugshot_Gimbal_Small,mercgear,Double Screaming Fragment Cannon,Gimballed,,,1,E,
|
|
1199
|
+
129045432,Hpt_MiningLaser_Fixed_Small,mercgear,Long Range Mining Laser,Fixed,,,1,D,
|
|
1200
|
+
129045433,Hpt_MultiCannon_Fixed_Medium,mercgear,Rapid Phase Multi-Cannon,Fixed,,,2,E,
|
|
1201
|
+
129045434,Hpt_BasicMissileRack_Fixed_Medium,mercgear,Drag Seeker Missile Rack,Fixed,Seeker,,2,B,
|
|
1202
|
+
129045435,Hpt_BasicMissileRack_Fixed_Medium,mercgear,Lightweight Thermal Seeker Missile Rack,Fixed,Seeker,,2,B,
|
|
1203
|
+
129045436,Hpt_BasicMissileRack_Fixed_Medium,mercgear,Lockdown Seeker Missile Rack,Fixed,Seeker,,2,B,
|
|
1204
|
+
129045437,Hpt_BasicMissileRack_Fixed_Large,mercgear,Lockdown Seeker Missile Rack,Fixed,Seeker,,3,A,
|
|
1205
|
+
129045438,Int_PowerDistributor_Size3_Class2,mercgear,Support Focused Power Distributor,,,,3,D,
|
|
1206
|
+
129045439,Int_PowerDistributor_Size3_Class5,mercgear,Support Focused Power Distributor,,,,3,A,
|
|
1207
|
+
129045440,Int_PowerDistributor_Size4_Class2,mercgear,Support Focused Power Distributor,,,,4,D,
|
|
1208
|
+
129045441,Int_PowerDistributor_Size4_Class5,mercgear,Support Focused Power Distributor,,,,4,A,
|
|
1209
|
+
129045442,Int_PowerDistributor_Size6_Class5,mercgear,Support Focused Power Distributor,,,,6,A,
|
|
1210
|
+
129045443,Int_CargoRack_Size5_Class1,mercgear,Extended Cargo Rack,,,,5,E,
|
|
1211
|
+
129045444,Int_CargoRack_Size6_Class1,mercgear,Extended Cargo Rack,,,,6,E,
|
|
1212
|
+
129045445,Int_DetailedSurfaceScanner_Tiny,mercgear,Long Range Detailed Surface Scanner,,,,1,I,
|
|
1213
|
+
129045539,Int_FighterBayMk2_Size6_Class1,internal,Mk II Vessel Hangar,,,,6,D,ELITE_V_MKIIFIGHTERBAY
|
|
1214
|
+
129045540,Int_FighterBayMk2_Size5_Class1,internal,Mk II Vessel Hangar,,,,5,D,ELITE_V_MKIIFIGHTERBAY
|
|
1215
|
+
129045541,Int_FighterBayMk2_Size7_Class1,internal,Mk II Vessel Hangar,,,,7,D,ELITE_V_MKIIFIGHTERBAY
|
|
1216
|
+
129045677,Int_FighterBayMk2_Size5_Class1_Free,internal,Mk II Vessel Hangar,,,,5,D,ELITE_V_MKIIFIGHTERBAY_FREE
|
|
1217
|
+
129045678,Int_FighterBayMk2_Size6_Class1_Free,internal,Mk II Vessel Hangar,,,,6,D,ELITE_V_MKIIFIGHTERBAY_FREE
|
|
1218
|
+
129045679,Int_FighterBayMk2_Size7_Class1_Free,internal,Mk II Vessel Hangar,,,,7,D,ELITE_V_MKIIFIGHTERBAY_FREE
|
|
1219
|
+
129045963,Int_FighterBay_Size5_Class1_Free,internal,Vessel Hangar,,,,5,D,ELITE_V_MKIFIGHTERBAY_FREE
|
|
1220
|
+
129045964,Int_FighterBay_Size6_Class1_Free,internal,Vessel Hangar,,,,6,D,ELITE_V_MKIFIGHTERBAY_FREE
|
|
1221
|
+
129045965,Int_FighterBay_Size7_Class1_Free,internal,Vessel Hangar,,,,7,D,ELITE_V_MKIFIGHTERBAY_FREE
|
|
@@ -53,6 +53,9 @@ ELITE_V_EXPLORER_NX,was early access purchase in the arx store (not required any
|
|
|
53
53
|
ELITE_V_LAKON_MINER,was early access purchase in the arx store (not required anymore)
|
|
54
54
|
ELITE_V_MANDALAY,was early access purchase in the arx store (not required anymore)
|
|
55
55
|
ELITE_V_MEDIUM_TRANSPORT_01,was free from day one
|
|
56
|
+
ELITE_V_MKIFIGHTERBAY_FREE,early access purchase in the arx store
|
|
57
|
+
ELITE_V_MKIIFIGHTERBAY,early access purchase in the arx store
|
|
58
|
+
ELITE_V_MKIIFIGHTERBAY_FREE,early access purchase in the arx store
|
|
56
59
|
ELITE_V_PANTHER_MKII,was early access purchase in the arx store (not required anymore)
|
|
57
60
|
ELITE_V_PYTHON_NX,was early access purchase in the arx store (not required anymore)
|
|
58
61
|
ELITE_V_SMALL_COMBAT_01,early access purchase in the arx store
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
+
from functools import cache
|
|
1
2
|
from typing import get_args, Literal
|
|
2
3
|
|
|
3
4
|
from ._loader import _list_to_index
|
|
4
5
|
from ._loader import _load_csv
|
|
5
6
|
from ._loader import _tables_index
|
|
6
7
|
|
|
7
|
-
__version__ = "1.3.0"
|
|
8
|
-
|
|
9
8
|
TableName = Literal[
|
|
10
9
|
"bundles",
|
|
11
10
|
"combatrank",
|
|
@@ -39,7 +38,8 @@ TableName = Literal[
|
|
|
39
38
|
tables: tuple[str] = tuple(get_args(TableName))
|
|
40
39
|
|
|
41
40
|
|
|
42
|
-
|
|
41
|
+
@cache
|
|
42
|
+
def load_table(table: TableName) -> dict[str | int, dict]:
|
|
43
43
|
"""Load a table of FDev IDs into a dictionary.
|
|
44
44
|
|
|
45
45
|
Parameters
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from csv import DictReader
|
|
2
|
+
from functools import cache
|
|
2
3
|
from pathlib import Path
|
|
3
4
|
from typing import Any
|
|
4
5
|
|
|
@@ -22,7 +23,7 @@ def _load_csv(path: Path) -> list[dict]:
|
|
|
22
23
|
return [try_int_record(record) for record in DictReader(csvfile)]
|
|
23
24
|
|
|
24
25
|
|
|
25
|
-
def _list_to_index(records: list[dict]) -> dict[dict]:
|
|
26
|
+
def _list_to_index(records: list[dict]) -> dict[str | int, dict]:
|
|
26
27
|
"""Convert a list of records to an index using the first key as index key."""
|
|
27
28
|
keys = tuple(records[0].keys())
|
|
28
29
|
|
|
@@ -36,6 +37,7 @@ def _list_to_index(records: list[dict]) -> dict[dict]:
|
|
|
36
37
|
return {tuple(record.values())[0]: record for record in records}
|
|
37
38
|
|
|
38
39
|
|
|
40
|
+
@cache
|
|
39
41
|
def _tables_index() -> dict[str, Path]:
|
|
40
42
|
"""Return a index of available id tables. The keys are the table names in
|
|
41
43
|
lowercase."""
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fdev-ids
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4.0
|
|
4
4
|
Summary: Data from https://github.com/EDCD/FDevIDs bundled in Python data structures.
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
Project-URL: Homepage, https://codeberg.org/jdlbt/fdev-ids-python
|
|
@@ -28,6 +28,7 @@ Requires-Dist: black==25.9.0; extra == "dev"
|
|
|
28
28
|
Requires-Dist: build; extra == "dev"
|
|
29
29
|
Requires-Dist: flake8==7.3.0; extra == "dev"
|
|
30
30
|
Requires-Dist: isort==6.1.0; extra == "dev"
|
|
31
|
+
Requires-Dist: mypy==2.1.0; extra == "dev"
|
|
31
32
|
Requires-Dist: pre-commit; extra == "dev"
|
|
32
33
|
Requires-Dist: tox; extra == "dev"
|
|
33
34
|
Dynamic: license-file
|
|
@@ -44,7 +45,7 @@ Data from https://github.com/EDCD/FDevIDs bundled in Python data structures.
|
|
|
44
45
|
|
|
45
46
|
Load a table by specifying the lowercase table name:
|
|
46
47
|
|
|
47
|
-
```
|
|
48
|
+
```python
|
|
48
49
|
>>> from pprint import pprint
|
|
49
50
|
>>> from fdev_ids import load_table
|
|
50
51
|
>>> bundles = load_table("bundles")
|
|
@@ -68,7 +69,7 @@ Load a table by specifying the lowercase table name:
|
|
|
68
69
|
|
|
69
70
|
Tables with a single value per ID return the value directly for each ID:
|
|
70
71
|
|
|
71
|
-
```
|
|
72
|
+
```python
|
|
72
73
|
>>> factionids = load_table("factionids")
|
|
73
74
|
>>> pprint(factionids)
|
|
74
75
|
{'$faction_Alliance;': 'Alliance',
|
|
@@ -83,7 +84,7 @@ Tables with a single value per ID return the value directly for each ID:
|
|
|
83
84
|
|
|
84
85
|
Similarily when only the ID is defined:
|
|
85
86
|
|
|
86
|
-
```
|
|
87
|
+
```python
|
|
87
88
|
>>> dockingdeniedreasons = load_table("dockingdeniedreasons")
|
|
88
89
|
>>> pprint(dockingdeniedreasons)
|
|
89
90
|
{'ActiveFighter': 'ActiveFighter',
|
|
@@ -95,11 +96,49 @@ Similarily when only the ID is defined:
|
|
|
95
96
|
'TooLarge': 'TooLarge'}
|
|
96
97
|
```
|
|
97
98
|
|
|
99
|
+
The list of available tables is stored in the `tables` module variable:
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
>>> from fdev_ids import tables
|
|
103
|
+
>>> pprint(tables)
|
|
104
|
+
('bundles',
|
|
105
|
+
'combatrank',
|
|
106
|
+
'commodity',
|
|
107
|
+
'cqcrank',
|
|
108
|
+
'crimes',
|
|
109
|
+
'dockingdeniedreasons',
|
|
110
|
+
'economy',
|
|
111
|
+
'empirerank',
|
|
112
|
+
'engineers',
|
|
113
|
+
'explorationrank',
|
|
114
|
+
'factionids',
|
|
115
|
+
'factionstate',
|
|
116
|
+
'federationrank',
|
|
117
|
+
'government',
|
|
118
|
+
'happiness',
|
|
119
|
+
'material',
|
|
120
|
+
'microresources',
|
|
121
|
+
'outfitting',
|
|
122
|
+
'passengers',
|
|
123
|
+
'rare_commodity',
|
|
124
|
+
'rings',
|
|
125
|
+
'security',
|
|
126
|
+
'shipyard',
|
|
127
|
+
'sku',
|
|
128
|
+
'systemallegiance',
|
|
129
|
+
'terraformingstate',
|
|
130
|
+
'traderank')
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Notes
|
|
134
|
+
|
|
135
|
+
The tables are lazily loaded and cached on first access. Subsequent loading of a table returns the cached data.
|
|
136
|
+
|
|
98
137
|
## Terms of Use
|
|
99
138
|
|
|
100
139
|
The data contained in this package is based on publicly available information sourced from https://github.com/EDCD/FDevIDs and subject to the [Elite Dangerous EULA and Terms of Use](https://www.frontierstore.net/ed-eula/).
|
|
101
140
|
|
|
102
|
-
The MIT license applies to the code in this repository
|
|
141
|
+
The MIT license applies only to the code in this repository.
|
|
103
142
|
|
|
104
143
|
## Issues & support
|
|
105
144
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|