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.
Files changed (42) hide show
  1. {fdev_ids-1.3.0/src/fdev_ids.egg-info → fdev_ids-1.4.0}/PKG-INFO +44 -5
  2. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/README.md +42 -4
  3. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/pyproject.toml +2 -1
  4. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/commodity.csv +1 -0
  5. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/outfitting.csv +33 -3
  6. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/sku.csv +3 -0
  7. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/systemallegiance.csv +1 -0
  8. fdev_ids-1.4.0/src/fdev_ids/__init__.py +7 -0
  9. fdev_ids-1.3.0/src/fdev_ids/__init__.py → fdev_ids-1.4.0/src/fdev_ids/_fdev_ids.py +3 -3
  10. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/_loader.py +3 -1
  11. fdev_ids-1.4.0/src/fdev_ids/py.typed +0 -0
  12. {fdev_ids-1.3.0 → fdev_ids-1.4.0/src/fdev_ids.egg-info}/PKG-INFO +44 -5
  13. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids.egg-info/SOURCES.txt +2 -0
  14. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids.egg-info/requires.txt +1 -0
  15. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/LICENSE +0 -0
  16. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/setup.cfg +0 -0
  17. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/CQCRank.csv +0 -0
  18. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/EmpireRank.csv +0 -0
  19. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/ExplorationRank.csv +0 -0
  20. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/FederationRank.csv +0 -0
  21. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/TradeRank.csv +0 -0
  22. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/bundles.csv +0 -0
  23. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/combatrank.csv +0 -0
  24. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/crimes.csv +0 -0
  25. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/dockingdeniedreasons.csv +0 -0
  26. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/economy.csv +0 -0
  27. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/engineers.csv +0 -0
  28. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/factionids.csv +0 -0
  29. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/factionstate.csv +0 -0
  30. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/government.csv +0 -0
  31. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/happiness.csv +0 -0
  32. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/material.csv +0 -0
  33. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/microresources.csv +0 -0
  34. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/passengers.csv +0 -0
  35. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/rare_commodity.csv +0 -0
  36. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/rings.csv +0 -0
  37. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/security.csv +0 -0
  38. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/shipyard.csv +0 -0
  39. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids/FDevIDs/terraformingstate.csv +0 -0
  40. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids.egg-info/dependency_links.txt +0 -0
  41. {fdev_ids-1.3.0 → fdev_ids-1.4.0}/src/fdev_ids.egg-info/top_level.txt +0 -0
  42. {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.0
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
- ```pycon
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
- ```pycon
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
- ```pycon
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 only.
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
- ```pycon
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
- ```pycon
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
- ```pycon
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 only.
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
@@ -255,3 +255,4 @@ id,symbol,category,name
255
255
  129030462,ThargoidOrganSample,Salvage,Organ Sample
256
256
  129031238,Steel,Metals,Steel
257
257
  129031327,Haematite,Minerals,Haematite
258
+ 129045961,CuratedCommodity,Industrial Materials,Curated Commodity Package
@@ -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,Fighter Hangar,,,,5,D,ELITE_HORIZONS_V_PLANETARY_LANDINGS
854
- 128727931,Int_FighterBay_Size6_Class1,internal,Fighter Hangar,,,,6,D,ELITE_HORIZONS_V_PLANETARY_LANDINGS
855
- 128727932,Int_FighterBay_Size7_Class1,internal,Fighter Hangar,,,,7,D,ELITE_HORIZONS_V_PLANETARY_LANDINGS
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
@@ -7,3 +7,4 @@ Alliance,Alliance
7
7
  Guardian,Guardian
8
8
  Thargoid,Thargoid
9
9
  PlayerPilots,Player Pilots
10
+ FrontlineSolutions,Frontline Solutions
@@ -0,0 +1,7 @@
1
+ from ._fdev_ids import load_table
2
+ from ._fdev_ids import TableName
3
+ from ._fdev_ids import tables
4
+
5
+ __version__ = "1.4.0"
6
+
7
+ __all__ = ["load_table", "TableName", "tables"]
@@ -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
- def load_table(table: TableName) -> dict[str | dict]:
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.0
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
- ```pycon
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
- ```pycon
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
- ```pycon
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 only.
141
+ The MIT license applies only to the code in this repository.
103
142
 
104
143
  ## Issues & support
105
144
 
@@ -2,7 +2,9 @@ LICENSE
2
2
  README.md
3
3
  pyproject.toml
4
4
  src/fdev_ids/__init__.py
5
+ src/fdev_ids/_fdev_ids.py
5
6
  src/fdev_ids/_loader.py
7
+ src/fdev_ids/py.typed
6
8
  src/fdev_ids.egg-info/PKG-INFO
7
9
  src/fdev_ids.egg-info/SOURCES.txt
8
10
  src/fdev_ids.egg-info/dependency_links.txt
@@ -5,6 +5,7 @@ black==25.9.0
5
5
  build
6
6
  flake8==7.3.0
7
7
  isort==6.1.0
8
+ mypy==2.1.0
8
9
  pre-commit
9
10
  tox
10
11
 
File without changes
File without changes