tradedangerous 10.17.0__py3-none-any.whl → 11.0.1__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.
Potentially problematic release.
This version of tradedangerous might be problematic. Click here for more details.
- tradedangerous/__init__.py +4 -4
- tradedangerous/cache.py +178 -142
- tradedangerous/cli.py +2 -7
- tradedangerous/commands/TEMPLATE.py +1 -2
- tradedangerous/commands/__init__.py +2 -4
- tradedangerous/commands/buildcache_cmd.py +6 -11
- tradedangerous/commands/buy_cmd.py +11 -12
- tradedangerous/commands/commandenv.py +16 -15
- tradedangerous/commands/exceptions.py +6 -4
- tradedangerous/commands/export_cmd.py +2 -4
- tradedangerous/commands/import_cmd.py +3 -5
- tradedangerous/commands/local_cmd.py +16 -25
- tradedangerous/commands/market_cmd.py +9 -8
- tradedangerous/commands/nav_cmd.py +17 -25
- tradedangerous/commands/olddata_cmd.py +9 -15
- tradedangerous/commands/parsing.py +9 -6
- tradedangerous/commands/rares_cmd.py +9 -10
- tradedangerous/commands/run_cmd.py +25 -26
- tradedangerous/commands/sell_cmd.py +9 -9
- tradedangerous/commands/shipvendor_cmd.py +4 -7
- tradedangerous/commands/station_cmd.py +8 -14
- tradedangerous/commands/trade_cmd.py +5 -10
- tradedangerous/commands/update_cmd.py +10 -7
- tradedangerous/commands/update_gui.py +1 -3
- tradedangerous/corrections.py +1 -3
- tradedangerous/csvexport.py +8 -8
- tradedangerous/edscupdate.py +4 -6
- tradedangerous/edsmupdate.py +4 -4
- tradedangerous/formatting.py +53 -40
- tradedangerous/fs.py +6 -6
- tradedangerous/gui.py +53 -62
- tradedangerous/jsonprices.py +8 -16
- tradedangerous/mapping.py +4 -3
- tradedangerous/mfd/__init__.py +2 -4
- tradedangerous/mfd/saitek/__init__.py +0 -1
- tradedangerous/mfd/saitek/directoutput.py +8 -11
- tradedangerous/mfd/saitek/x52pro.py +5 -7
- tradedangerous/misc/checkpricebounds.py +2 -3
- tradedangerous/misc/clipboard.py +2 -3
- tradedangerous/misc/coord64.py +2 -1
- tradedangerous/misc/derp-sentinel.py +1 -1
- tradedangerous/misc/diff-system-csvs.py +3 -0
- tradedangerous/misc/eddb.py +1 -3
- tradedangerous/misc/eddn.py +2 -2
- tradedangerous/misc/edsc.py +7 -14
- tradedangerous/misc/edsm.py +1 -8
- tradedangerous/misc/importeddbstats.py +2 -1
- tradedangerous/misc/prices-json-exp.py +7 -5
- tradedangerous/misc/progress.py +2 -2
- tradedangerous/plugins/__init__.py +2 -2
- tradedangerous/plugins/edapi_plug.py +13 -19
- tradedangerous/plugins/edcd_plug.py +4 -5
- tradedangerous/plugins/eddblink_plug.py +11 -15
- tradedangerous/plugins/edmc_batch_plug.py +3 -5
- tradedangerous/plugins/journal_plug.py +2 -1
- tradedangerous/plugins/netlog_plug.py +5 -5
- tradedangerous/plugins/spansh_plug.py +394 -170
- tradedangerous/prices.py +19 -20
- tradedangerous/submit-distances.py +3 -8
- tradedangerous/templates/TradeDangerous.sql +305 -306
- tradedangerous/trade.py +12 -5
- tradedangerous/tradecalc.py +30 -34
- tradedangerous/tradedb.py +140 -206
- tradedangerous/tradeenv.py +143 -69
- tradedangerous/tradegui.py +4 -2
- tradedangerous/transfers.py +23 -20
- tradedangerous/version.py +1 -1
- {tradedangerous-10.17.0.dist-info → tradedangerous-11.0.1.dist-info}/METADATA +2 -2
- tradedangerous-11.0.1.dist-info/RECORD +79 -0
- tradedangerous-10.17.0.dist-info/RECORD +0 -79
- {tradedangerous-10.17.0.dist-info → tradedangerous-11.0.1.dist-info}/LICENSE +0 -0
- {tradedangerous-10.17.0.dist-info → tradedangerous-11.0.1.dist-info}/WHEEL +0 -0
- {tradedangerous-10.17.0.dist-info → tradedangerous-11.0.1.dist-info}/entry_points.txt +0 -0
- {tradedangerous-10.17.0.dist-info → tradedangerous-11.0.1.dist-info}/top_level.txt +0 -0
|
@@ -1,306 +1,305 @@
|
|
|
1
|
-
-- Definitions for all of the tables used in the SQLite
|
|
2
|
-
-- cache database.
|
|
3
|
-
--
|
|
4
|
-
-- Source data for TradeDangerous is stored in various
|
|
5
|
-
-- ".csv" files which provide relatively constant data
|
|
6
|
-
-- such as star names, the list of known tradeable items,
|
|
7
|
-
-- etc.
|
|
8
|
-
--
|
|
9
|
-
-- Per-station price data is sourced from ".prices" files
|
|
10
|
-
-- which are designed to be human readable text that
|
|
11
|
-
-- closely aproximates the in-game UI.
|
|
12
|
-
--
|
|
13
|
-
-- When the .SQL file or the .CSV files change, TD will
|
|
14
|
-
-- destroy and rebuild the cache next time it is run.
|
|
15
|
-
--
|
|
16
|
-
-- When the .prices file is changed, only the price data
|
|
17
|
-
-- is reset.
|
|
18
|
-
--
|
|
19
|
-
-- You can edit this file, if you really need to, if you know
|
|
20
|
-
-- what you are doing. Or you can use the 'sqlite3' command
|
|
21
|
-
-- to edit the .db database and then use the '.dump' command
|
|
22
|
-
-- to regenerate this file, except then you'll lose this nice
|
|
23
|
-
-- header and I might have to wag my finger at you.
|
|
24
|
-
--
|
|
25
|
-
-- -Oliver
|
|
26
|
-
|
|
27
|
-
PRAGMA foreign_keys=ON;
|
|
28
|
-
PRAGMA synchronous=OFF;
|
|
29
|
-
PRAGMA temp_store=MEMORY;
|
|
30
|
-
PRAGMA journal_mode=WAL;
|
|
31
|
-
PRAGMA auto_vacuum=INCREMENTAL;
|
|
32
|
-
|
|
33
|
-
BEGIN TRANSACTION;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
CREATE TABLE Added
|
|
37
|
-
(
|
|
38
|
-
added_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
39
|
-
name VARCHAR(40) COLLATE nocase,
|
|
40
|
-
|
|
41
|
-
UNIQUE(name)
|
|
42
|
-
);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
CREATE TABLE System
|
|
46
|
-
(
|
|
47
|
-
system_id INTEGER PRIMARY KEY,
|
|
48
|
-
name VARCHAR(40) COLLATE nocase,
|
|
49
|
-
pos_x DOUBLE NOT NULL,
|
|
50
|
-
pos_y DOUBLE NOT NULL,
|
|
51
|
-
pos_z DOUBLE NOT NULL,
|
|
52
|
-
added_id INTEGER,
|
|
53
|
-
modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
54
|
-
|
|
55
|
-
UNIQUE (system_id),
|
|
56
|
-
|
|
57
|
-
FOREIGN KEY (added_id) REFERENCES Added(added_id)
|
|
58
|
-
ON UPDATE CASCADE
|
|
59
|
-
ON DELETE CASCADE
|
|
60
|
-
);
|
|
61
|
-
CREATE INDEX idx_system_by_pos ON System (pos_x, pos_y, pos_z, system_id);
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
CREATE TABLE Station
|
|
65
|
-
(
|
|
66
|
-
station_id INTEGER PRIMARY KEY,
|
|
67
|
-
name VARCHAR(40) COLLATE nocase,
|
|
68
|
-
system_id INTEGER NOT NULL,
|
|
69
|
-
ls_from_star INTEGER NOT NULL DEFAULT 0
|
|
70
|
-
CHECK (ls_from_star >= 0),
|
|
71
|
-
blackmarket TEXT(1) NOT NULL DEFAULT '?'
|
|
72
|
-
CHECK (blackmarket IN ('?', 'Y', 'N')),
|
|
73
|
-
max_pad_size TEXT(1) NOT NULL DEFAULT '?'
|
|
74
|
-
CHECK (max_pad_size IN ('?', 'S', 'M', 'L')),
|
|
75
|
-
market TEXT(1) NOT NULL DEFAULT '?'
|
|
76
|
-
CHECK (market IN ('?', 'Y', 'N')),
|
|
77
|
-
shipyard TEXT(1) NOT NULL DEFAULT '?'
|
|
78
|
-
CHECK (shipyard IN ('?', 'Y', 'N')),
|
|
79
|
-
modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
80
|
-
outfitting TEXT(1) NOT NULL DEFAULT '?'
|
|
81
|
-
CHECK (outfitting IN ('?', 'Y', 'N')),
|
|
82
|
-
rearm TEXT(1) NOT NULL DEFAULT '?'
|
|
83
|
-
CHECK (rearm IN ('?', 'Y', 'N')),
|
|
84
|
-
refuel TEXT(1) NOT NULL DEFAULT '?'
|
|
85
|
-
CHECK (refuel IN ('?', 'Y', 'N')),
|
|
86
|
-
repair TEXT(1) NOT NULL DEFAULT '?'
|
|
87
|
-
CHECK (repair IN ('?', 'Y', 'N')),
|
|
88
|
-
planetary TEXT(1) NOT NULL DEFAULT '?'
|
|
89
|
-
CHECK (planetary IN ('?', 'Y', 'N')),
|
|
90
|
-
type_id INTEGER DEFAULT 0 NOT NULL,
|
|
91
|
-
|
|
92
|
-
UNIQUE (station_id),
|
|
93
|
-
|
|
94
|
-
FOREIGN KEY (system_id) REFERENCES System(system_id)
|
|
95
|
-
ON UPDATE CASCADE
|
|
96
|
-
ON DELETE CASCADE
|
|
97
|
-
);
|
|
98
|
-
CREATE INDEX idx_station_by_system ON Station (system_id, station_id);
|
|
99
|
-
CREATE INDEX idx_station_by_name ON Station (name);
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
CREATE TABLE Ship
|
|
103
|
-
(
|
|
104
|
-
ship_id INTEGER PRIMARY KEY,
|
|
105
|
-
name VARCHAR(40) COLLATE nocase,
|
|
106
|
-
cost INTEGER NOT NULL,
|
|
107
|
-
|
|
108
|
-
UNIQUE (ship_id)
|
|
109
|
-
);
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
CREATE TABLE ShipVendor
|
|
113
|
-
(
|
|
114
|
-
ship_id INTEGER NOT NULL,
|
|
115
|
-
station_id INTEGER NOT NULL,
|
|
116
|
-
modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
117
|
-
|
|
118
|
-
PRIMARY KEY (ship_id, station_id),
|
|
119
|
-
|
|
120
|
-
FOREIGN KEY (ship_id) REFERENCES Ship(ship_id)
|
|
121
|
-
ON UPDATE CASCADE
|
|
122
|
-
ON DELETE CASCADE,
|
|
123
|
-
FOREIGN KEY (station_id) REFERENCES Station(station_id)
|
|
124
|
-
ON UPDATE CASCADE
|
|
125
|
-
ON DELETE CASCADE
|
|
126
|
-
) WITHOUT ROWID
|
|
127
|
-
;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
CREATE TABLE Upgrade
|
|
131
|
-
(
|
|
132
|
-
upgrade_id INTEGER PRIMARY KEY,
|
|
133
|
-
name VARCHAR(40) COLLATE nocase,
|
|
134
|
-
weight NUMBER NOT NULL,
|
|
135
|
-
cost NUMBER NOT NULL,
|
|
136
|
-
|
|
137
|
-
UNIQUE (upgrade_id)
|
|
138
|
-
);
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
CREATE TABLE UpgradeVendor
|
|
142
|
-
(
|
|
143
|
-
upgrade_id INTEGER NOT NULL,
|
|
144
|
-
station_id INTEGER NOT NULL,
|
|
145
|
-
cost INTEGER,
|
|
146
|
-
modified DATETIME NOT NULL,
|
|
147
|
-
|
|
148
|
-
PRIMARY KEY (upgrade_id, station_id),
|
|
149
|
-
|
|
150
|
-
FOREIGN KEY (upgrade_id) REFERENCES Upgrade(upgrade_id)
|
|
151
|
-
ON UPDATE CASCADE
|
|
152
|
-
ON DELETE CASCADE,
|
|
153
|
-
FOREIGN KEY (station_id) REFERENCES Station(station_id)
|
|
154
|
-
ON UPDATE CASCADE
|
|
155
|
-
ON DELETE CASCADE
|
|
156
|
-
) WITHOUT ROWID
|
|
157
|
-
;
|
|
158
|
-
CREATE INDEX idx_vendor_by_station_id ON UpgradeVendor (station_id);
|
|
159
|
-
|
|
160
|
-
CREATE TABLE RareItem
|
|
161
|
-
(
|
|
162
|
-
rare_id INTEGER PRIMARY KEY,
|
|
163
|
-
station_id INTEGER NOT NULL,
|
|
164
|
-
category_id INTEGER NOT NULL,
|
|
165
|
-
name VARCHAR(40) COLLATE nocase,
|
|
166
|
-
cost INTEGER,
|
|
167
|
-
max_allocation INTEGER,
|
|
168
|
-
illegal TEXT(1) NOT NULL DEFAULT '?'
|
|
169
|
-
CHECK (illegal IN ('?', 'Y', 'N')),
|
|
170
|
-
suppressed TEXT(1) NOT NULL DEFAULT '?'
|
|
171
|
-
CHECK (suppressed IN ('?', 'Y', 'N')),
|
|
172
|
-
|
|
173
|
-
UNIQUE (name),
|
|
174
|
-
|
|
175
|
-
FOREIGN KEY (station_id) REFERENCES Station(station_id)
|
|
176
|
-
ON UPDATE CASCADE
|
|
177
|
-
ON DELETE CASCADE,
|
|
178
|
-
FOREIGN KEY (category_id) REFERENCES Category(category_id)
|
|
179
|
-
ON UPDATE CASCADE
|
|
180
|
-
ON DELETE CASCADE
|
|
181
|
-
)
|
|
182
|
-
;
|
|
183
|
-
|
|
184
|
-
CREATE TABLE Category
|
|
185
|
-
(
|
|
186
|
-
category_id INTEGER PRIMARY KEY,
|
|
187
|
-
name VARCHAR(40) COLLATE nocase,
|
|
188
|
-
|
|
189
|
-
UNIQUE (category_id)
|
|
190
|
-
);
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
CREATE TABLE Item
|
|
194
|
-
(
|
|
195
|
-
item_id INTEGER PRIMARY KEY,
|
|
196
|
-
name VARCHAR(40) COLLATE nocase,
|
|
197
|
-
category_id INTEGER NOT NULL,
|
|
198
|
-
ui_order INTEGER NOT NULL DEFAULT 0,
|
|
199
|
-
avg_price INTEGER,
|
|
200
|
-
fdev_id INTEGER,
|
|
201
|
-
|
|
202
|
-
UNIQUE (item_id),
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
ON
|
|
207
|
-
|
|
208
|
-
);
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
);
|
|
231
|
-
CREATE INDEX
|
|
232
|
-
CREATE INDEX
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
--
|
|
259
|
-
--
|
|
260
|
-
--
|
|
261
|
-
--
|
|
262
|
-
--
|
|
263
|
-
--
|
|
264
|
-
--
|
|
265
|
-
--
|
|
266
|
-
--
|
|
267
|
-
--
|
|
268
|
-
--
|
|
269
|
-
--
|
|
270
|
-
--
|
|
271
|
-
--
|
|
272
|
-
--
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
COMMIT;
|
|
1
|
+
-- Definitions for all of the tables used in the SQLite
|
|
2
|
+
-- cache database.
|
|
3
|
+
--
|
|
4
|
+
-- Source data for TradeDangerous is stored in various
|
|
5
|
+
-- ".csv" files which provide relatively constant data
|
|
6
|
+
-- such as star names, the list of known tradeable items,
|
|
7
|
+
-- etc.
|
|
8
|
+
--
|
|
9
|
+
-- Per-station price data is sourced from ".prices" files
|
|
10
|
+
-- which are designed to be human readable text that
|
|
11
|
+
-- closely aproximates the in-game UI.
|
|
12
|
+
--
|
|
13
|
+
-- When the .SQL file or the .CSV files change, TD will
|
|
14
|
+
-- destroy and rebuild the cache next time it is run.
|
|
15
|
+
--
|
|
16
|
+
-- When the .prices file is changed, only the price data
|
|
17
|
+
-- is reset.
|
|
18
|
+
--
|
|
19
|
+
-- You can edit this file, if you really need to, if you know
|
|
20
|
+
-- what you are doing. Or you can use the 'sqlite3' command
|
|
21
|
+
-- to edit the .db database and then use the '.dump' command
|
|
22
|
+
-- to regenerate this file, except then you'll lose this nice
|
|
23
|
+
-- header and I might have to wag my finger at you.
|
|
24
|
+
--
|
|
25
|
+
-- -Oliver
|
|
26
|
+
|
|
27
|
+
PRAGMA foreign_keys=ON;
|
|
28
|
+
PRAGMA synchronous=OFF;
|
|
29
|
+
PRAGMA temp_store=MEMORY;
|
|
30
|
+
PRAGMA journal_mode=WAL;
|
|
31
|
+
PRAGMA auto_vacuum=INCREMENTAL;
|
|
32
|
+
|
|
33
|
+
BEGIN TRANSACTION;
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
CREATE TABLE Added
|
|
37
|
+
(
|
|
38
|
+
added_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
39
|
+
name VARCHAR(40) COLLATE nocase,
|
|
40
|
+
|
|
41
|
+
UNIQUE(name)
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
CREATE TABLE System
|
|
46
|
+
(
|
|
47
|
+
system_id INTEGER PRIMARY KEY,
|
|
48
|
+
name VARCHAR(40) COLLATE nocase,
|
|
49
|
+
pos_x DOUBLE NOT NULL,
|
|
50
|
+
pos_y DOUBLE NOT NULL,
|
|
51
|
+
pos_z DOUBLE NOT NULL,
|
|
52
|
+
added_id INTEGER,
|
|
53
|
+
modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
54
|
+
|
|
55
|
+
UNIQUE (system_id),
|
|
56
|
+
|
|
57
|
+
FOREIGN KEY (added_id) REFERENCES Added(added_id)
|
|
58
|
+
ON UPDATE CASCADE
|
|
59
|
+
ON DELETE CASCADE
|
|
60
|
+
);
|
|
61
|
+
CREATE INDEX idx_system_by_pos ON System (pos_x, pos_y, pos_z, system_id);
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
CREATE TABLE Station
|
|
65
|
+
(
|
|
66
|
+
station_id INTEGER PRIMARY KEY,
|
|
67
|
+
name VARCHAR(40) COLLATE nocase,
|
|
68
|
+
system_id INTEGER NOT NULL,
|
|
69
|
+
ls_from_star INTEGER NOT NULL DEFAULT 0
|
|
70
|
+
CHECK (ls_from_star >= 0),
|
|
71
|
+
blackmarket TEXT(1) NOT NULL DEFAULT '?'
|
|
72
|
+
CHECK (blackmarket IN ('?', 'Y', 'N')),
|
|
73
|
+
max_pad_size TEXT(1) NOT NULL DEFAULT '?'
|
|
74
|
+
CHECK (max_pad_size IN ('?', 'S', 'M', 'L')),
|
|
75
|
+
market TEXT(1) NOT NULL DEFAULT '?'
|
|
76
|
+
CHECK (market IN ('?', 'Y', 'N')),
|
|
77
|
+
shipyard TEXT(1) NOT NULL DEFAULT '?'
|
|
78
|
+
CHECK (shipyard IN ('?', 'Y', 'N')),
|
|
79
|
+
modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
80
|
+
outfitting TEXT(1) NOT NULL DEFAULT '?'
|
|
81
|
+
CHECK (outfitting IN ('?', 'Y', 'N')),
|
|
82
|
+
rearm TEXT(1) NOT NULL DEFAULT '?'
|
|
83
|
+
CHECK (rearm IN ('?', 'Y', 'N')),
|
|
84
|
+
refuel TEXT(1) NOT NULL DEFAULT '?'
|
|
85
|
+
CHECK (refuel IN ('?', 'Y', 'N')),
|
|
86
|
+
repair TEXT(1) NOT NULL DEFAULT '?'
|
|
87
|
+
CHECK (repair IN ('?', 'Y', 'N')),
|
|
88
|
+
planetary TEXT(1) NOT NULL DEFAULT '?'
|
|
89
|
+
CHECK (planetary IN ('?', 'Y', 'N')),
|
|
90
|
+
type_id INTEGER DEFAULT 0 NOT NULL,
|
|
91
|
+
|
|
92
|
+
UNIQUE (station_id),
|
|
93
|
+
|
|
94
|
+
FOREIGN KEY (system_id) REFERENCES System(system_id)
|
|
95
|
+
ON UPDATE CASCADE
|
|
96
|
+
ON DELETE CASCADE
|
|
97
|
+
);
|
|
98
|
+
CREATE INDEX idx_station_by_system ON Station (system_id, station_id);
|
|
99
|
+
CREATE INDEX idx_station_by_name ON Station (name);
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
CREATE TABLE Ship
|
|
103
|
+
(
|
|
104
|
+
ship_id INTEGER PRIMARY KEY,
|
|
105
|
+
name VARCHAR(40) COLLATE nocase,
|
|
106
|
+
cost INTEGER NOT NULL,
|
|
107
|
+
|
|
108
|
+
UNIQUE (ship_id)
|
|
109
|
+
);
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
CREATE TABLE ShipVendor
|
|
113
|
+
(
|
|
114
|
+
ship_id INTEGER NOT NULL,
|
|
115
|
+
station_id INTEGER NOT NULL,
|
|
116
|
+
modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
117
|
+
|
|
118
|
+
PRIMARY KEY (ship_id, station_id),
|
|
119
|
+
|
|
120
|
+
FOREIGN KEY (ship_id) REFERENCES Ship(ship_id)
|
|
121
|
+
ON UPDATE CASCADE
|
|
122
|
+
ON DELETE CASCADE,
|
|
123
|
+
FOREIGN KEY (station_id) REFERENCES Station(station_id)
|
|
124
|
+
ON UPDATE CASCADE
|
|
125
|
+
ON DELETE CASCADE
|
|
126
|
+
) WITHOUT ROWID
|
|
127
|
+
;
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
CREATE TABLE Upgrade
|
|
131
|
+
(
|
|
132
|
+
upgrade_id INTEGER PRIMARY KEY,
|
|
133
|
+
name VARCHAR(40) COLLATE nocase,
|
|
134
|
+
weight NUMBER NOT NULL,
|
|
135
|
+
cost NUMBER NOT NULL,
|
|
136
|
+
|
|
137
|
+
UNIQUE (upgrade_id)
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
CREATE TABLE UpgradeVendor
|
|
142
|
+
(
|
|
143
|
+
upgrade_id INTEGER NOT NULL,
|
|
144
|
+
station_id INTEGER NOT NULL,
|
|
145
|
+
cost INTEGER,
|
|
146
|
+
modified DATETIME NOT NULL,
|
|
147
|
+
|
|
148
|
+
PRIMARY KEY (upgrade_id, station_id),
|
|
149
|
+
|
|
150
|
+
FOREIGN KEY (upgrade_id) REFERENCES Upgrade(upgrade_id)
|
|
151
|
+
ON UPDATE CASCADE
|
|
152
|
+
ON DELETE CASCADE,
|
|
153
|
+
FOREIGN KEY (station_id) REFERENCES Station(station_id)
|
|
154
|
+
ON UPDATE CASCADE
|
|
155
|
+
ON DELETE CASCADE
|
|
156
|
+
) WITHOUT ROWID
|
|
157
|
+
;
|
|
158
|
+
CREATE INDEX idx_vendor_by_station_id ON UpgradeVendor (station_id);
|
|
159
|
+
|
|
160
|
+
CREATE TABLE RareItem
|
|
161
|
+
(
|
|
162
|
+
rare_id INTEGER PRIMARY KEY,
|
|
163
|
+
station_id INTEGER NOT NULL,
|
|
164
|
+
category_id INTEGER NOT NULL,
|
|
165
|
+
name VARCHAR(40) COLLATE nocase,
|
|
166
|
+
cost INTEGER,
|
|
167
|
+
max_allocation INTEGER,
|
|
168
|
+
illegal TEXT(1) NOT NULL DEFAULT '?'
|
|
169
|
+
CHECK (illegal IN ('?', 'Y', 'N')),
|
|
170
|
+
suppressed TEXT(1) NOT NULL DEFAULT '?'
|
|
171
|
+
CHECK (suppressed IN ('?', 'Y', 'N')),
|
|
172
|
+
|
|
173
|
+
UNIQUE (name),
|
|
174
|
+
|
|
175
|
+
FOREIGN KEY (station_id) REFERENCES Station(station_id)
|
|
176
|
+
ON UPDATE CASCADE
|
|
177
|
+
ON DELETE CASCADE,
|
|
178
|
+
FOREIGN KEY (category_id) REFERENCES Category(category_id)
|
|
179
|
+
ON UPDATE CASCADE
|
|
180
|
+
ON DELETE CASCADE
|
|
181
|
+
)
|
|
182
|
+
;
|
|
183
|
+
|
|
184
|
+
CREATE TABLE Category
|
|
185
|
+
(
|
|
186
|
+
category_id INTEGER PRIMARY KEY,
|
|
187
|
+
name VARCHAR(40) COLLATE nocase,
|
|
188
|
+
|
|
189
|
+
UNIQUE (category_id)
|
|
190
|
+
);
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
CREATE TABLE Item
|
|
194
|
+
(
|
|
195
|
+
item_id INTEGER PRIMARY KEY,
|
|
196
|
+
name VARCHAR(40) COLLATE nocase,
|
|
197
|
+
category_id INTEGER NOT NULL,
|
|
198
|
+
ui_order INTEGER NOT NULL DEFAULT 0,
|
|
199
|
+
avg_price INTEGER,
|
|
200
|
+
fdev_id INTEGER,
|
|
201
|
+
|
|
202
|
+
UNIQUE (item_id),
|
|
203
|
+
|
|
204
|
+
FOREIGN KEY (category_id) REFERENCES Category(category_id)
|
|
205
|
+
ON UPDATE CASCADE
|
|
206
|
+
ON DELETE CASCADE
|
|
207
|
+
);
|
|
208
|
+
CREATE INDEX idx_item_by_fdev_id ON Item (fdev_id);
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
CREATE TABLE StationItem
|
|
212
|
+
(
|
|
213
|
+
station_id INTEGER NOT NULL,
|
|
214
|
+
item_id INTEGER NOT NULL,
|
|
215
|
+
demand_price INT NOT NULL,
|
|
216
|
+
demand_units INT NOT NULL,
|
|
217
|
+
demand_level INT NOT NULL,
|
|
218
|
+
supply_price INT NOT NULL,
|
|
219
|
+
supply_units INT NOT NULL,
|
|
220
|
+
supply_level INT NOT NULL,
|
|
221
|
+
modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
222
|
+
from_live INTEGER DEFAULT 0 NOT NULL,
|
|
223
|
+
|
|
224
|
+
PRIMARY KEY (station_id, item_id),
|
|
225
|
+
FOREIGN KEY (station_id) REFERENCES Station(station_id)
|
|
226
|
+
ON UPDATE CASCADE ON DELETE CASCADE,
|
|
227
|
+
FOREIGN KEY (item_id) REFERENCES Item(item_id)
|
|
228
|
+
ON UPDATE CASCADE ON DELETE CASCADE
|
|
229
|
+
);
|
|
230
|
+
CREATE INDEX si_mod_stn_itm ON StationItem(modified, station_id, item_id);
|
|
231
|
+
CREATE INDEX si_itm_dmdpr ON StationItem(item_id, demand_price) WHERE demand_price > 0;
|
|
232
|
+
CREATE INDEX si_itm_suppr ON StationItem(item_id, supply_price) WHERE supply_price > 0;
|
|
233
|
+
|
|
234
|
+
CREATE VIEW StationBuying AS
|
|
235
|
+
SELECT station_id,
|
|
236
|
+
item_id,
|
|
237
|
+
demand_price AS price,
|
|
238
|
+
demand_units AS units,
|
|
239
|
+
demand_level AS level,
|
|
240
|
+
modified
|
|
241
|
+
FROM StationItem
|
|
242
|
+
WHERE demand_price > 0
|
|
243
|
+
;
|
|
244
|
+
|
|
245
|
+
CREATE VIEW StationSelling AS
|
|
246
|
+
SELECT station_id,
|
|
247
|
+
item_id,
|
|
248
|
+
supply_price AS price,
|
|
249
|
+
supply_units AS units,
|
|
250
|
+
supply_level AS level,
|
|
251
|
+
modified
|
|
252
|
+
FROM StationItem
|
|
253
|
+
WHERE supply_price > 0
|
|
254
|
+
;
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
--
|
|
258
|
+
-- The next two tables (FDevShipyard, FDevOutfitting) are
|
|
259
|
+
-- used to map the FDev API IDs to data ready for EDDN.
|
|
260
|
+
--
|
|
261
|
+
-- The column names are the same as the header line from
|
|
262
|
+
-- the EDCD/FDevIDs csv files, so we can just download the
|
|
263
|
+
-- files (shipyard.csv, outfitting.csv) and save them
|
|
264
|
+
-- as (FDevShipyard.csv, FDevOutfitting.csv) into the
|
|
265
|
+
-- data directory.
|
|
266
|
+
--
|
|
267
|
+
-- see https://github.com/EDCD/FDevIDs
|
|
268
|
+
--
|
|
269
|
+
-- The commodity.csv is not needed because TD and EDDN
|
|
270
|
+
-- are using the same names.
|
|
271
|
+
--
|
|
272
|
+
-- -Bernd
|
|
273
|
+
|
|
274
|
+
CREATE TABLE FDevShipyard
|
|
275
|
+
(
|
|
276
|
+
id INTEGER NOT NULL,
|
|
277
|
+
symbol VARCHAR(40),
|
|
278
|
+
name VARCHAR(40) COLLATE nocase,
|
|
279
|
+
entitlement VARCHAR(50),
|
|
280
|
+
|
|
281
|
+
UNIQUE (id)
|
|
282
|
+
);
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
CREATE TABLE FDevOutfitting
|
|
286
|
+
(
|
|
287
|
+
id INTEGER NOT NULL,
|
|
288
|
+
symbol VARCHAR(40),
|
|
289
|
+
category CHAR(10)
|
|
290
|
+
CHECK (category IN ('hardpoint','internal','standard','utility')),
|
|
291
|
+
name VARCHAR(40) COLLATE nocase,
|
|
292
|
+
mount CHAR(10)
|
|
293
|
+
CHECK (mount IN (NULL, 'Fixed','Gimballed','Turreted')),
|
|
294
|
+
guidance CHAR(10)
|
|
295
|
+
CHECK (guidance IN (NULL, 'Dumbfire','Seeker','Swarm')),
|
|
296
|
+
ship VARCHAR(40) COLLATE nocase,
|
|
297
|
+
class CHAR(1) NOT NULL,
|
|
298
|
+
rating CHAR(1) NOT NULL,
|
|
299
|
+
entitlement VARCHAR(50),
|
|
300
|
+
|
|
301
|
+
UNIQUE (id)
|
|
302
|
+
);
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
COMMIT;
|
tradedangerous/trade.py
CHANGED
|
@@ -33,12 +33,19 @@
|
|
|
33
33
|
# DEVELOPERS: If you are a programmer who wants TD to do something
|
|
34
34
|
# cool, please see the TradeDB and TradeCalc modules. TD is designed
|
|
35
35
|
# to empower other programmers to do cool stuff.
|
|
36
|
+
from __future__ import annotations
|
|
37
|
+
|
|
36
38
|
from tradedangerous import cli
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
import sys
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def main(argv: list[tuple] = None) -> None:
|
|
44
|
+
""" Entry point for the TradeDangerous command-line app. """
|
|
45
|
+
if argv is None:
|
|
46
|
+
argv = sys.argv
|
|
47
|
+
cli.main(argv)
|
|
48
|
+
|
|
41
49
|
|
|
42
50
|
if __name__ == "__main__":
|
|
43
|
-
|
|
44
|
-
cli.main(sys.argv)
|
|
51
|
+
cli.main(sys.argv)
|