tradedangerous 11.5.3__tar.gz → 12.0.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.
Potentially problematic release.
This version of tradedangerous might be problematic. Click here for more details.
- {tradedangerous-11.5.3/tradedangerous.egg-info → tradedangerous-12.0.0}/PKG-INFO +6 -4
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/README.md +3 -2
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tests/test_bootstrap_commands.py +4 -2
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tests/test_bootstrap_plugins.py +6 -4
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tests/test_trade.py +6 -20
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tests/test_trade_run.py +30 -22
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/cache.py +567 -395
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/cli.py +2 -2
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/TEMPLATE.py +25 -26
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/__init__.py +8 -16
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/buildcache_cmd.py +40 -10
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/buy_cmd.py +57 -46
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/commandenv.py +0 -2
- tradedangerous-12.0.0/tradedangerous/commands/export_cmd.py +151 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/import_cmd.py +67 -31
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/market_cmd.py +52 -19
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/olddata_cmd.py +120 -107
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/rares_cmd.py +122 -110
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/run_cmd.py +118 -66
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/sell_cmd.py +52 -45
- tradedangerous-12.0.0/tradedangerous/commands/shipvendor_cmd.py +59 -0
- tradedangerous-12.0.0/tradedangerous/commands/station_cmd.py +67 -0
- tradedangerous-12.0.0/tradedangerous/commands/update_cmd.py +65 -0
- tradedangerous-12.0.0/tradedangerous/csvexport.py +231 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/gui.py +2 -2
- tradedangerous-12.0.0/tradedangerous/plugins/eddblink_plug.py +626 -0
- tradedangerous-12.0.0/tradedangerous/plugins/spansh_plug.py +2525 -0
- tradedangerous-12.0.0/tradedangerous/prices.py +213 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/templates/TradeDangerous.sql +6 -6
- tradedangerous-12.0.0/tradedangerous/tradecalc.py +1227 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/tradedb.py +533 -384
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/tradeenv.py +12 -1
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/version.py +1 -1
- {tradedangerous-11.5.3 → tradedangerous-12.0.0/tradedangerous.egg-info}/PKG-INFO +6 -4
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous.egg-info/SOURCES.txt +0 -5
- tradedangerous-11.5.3/tradedangerous/commands/export_cmd.py +0 -123
- tradedangerous-11.5.3/tradedangerous/commands/shipvendor_cmd.py +0 -244
- tradedangerous-11.5.3/tradedangerous/commands/station_cmd.py +0 -497
- tradedangerous-11.5.3/tradedangerous/commands/update_cmd.py +0 -429
- tradedangerous-11.5.3/tradedangerous/commands/update_gui.py +0 -721
- tradedangerous-11.5.3/tradedangerous/csvexport.py +0 -220
- tradedangerous-11.5.3/tradedangerous/jsonprices.py +0 -254
- tradedangerous-11.5.3/tradedangerous/plugins/edapi_plug.py +0 -1071
- tradedangerous-11.5.3/tradedangerous/plugins/eddblink_plug.py +0 -490
- tradedangerous-11.5.3/tradedangerous/plugins/journal_plug.py +0 -537
- tradedangerous-11.5.3/tradedangerous/plugins/netlog_plug.py +0 -316
- tradedangerous-11.5.3/tradedangerous/plugins/spansh_plug.py +0 -858
- tradedangerous-11.5.3/tradedangerous/prices.py +0 -231
- tradedangerous-11.5.3/tradedangerous/tradecalc.py +0 -1109
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/LICENSE +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/pyproject.toml +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/setup.cfg +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/setup.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tests/test_cache.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tests/test_commands.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tests/test_fs.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tests/test_peek.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tests/test_tools.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tests/test_utils.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/trade.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/__init__.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/exceptions.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/local_cmd.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/nav_cmd.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/parsing.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/commands/trade_cmd.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/corrections.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/edscupdate.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/edsmupdate.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/formatting.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/fs.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/mapping.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/mfd/__init__.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/mfd/saitek/__init__.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/mfd/saitek/directoutput.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/mfd/saitek/x52pro.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/misc/checkpricebounds.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/misc/clipboard.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/misc/coord64.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/misc/derp-sentinel.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/misc/diff-system-csvs.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/misc/eddb.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/misc/eddn.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/misc/edsc.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/misc/edsm.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/misc/importeddbstats.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/misc/prices-json-exp.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/misc/progress.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/plugins/__init__.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/plugins/edcd_plug.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/plugins/edmc_batch_plug.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/submit-distances.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/templates/Added.csv +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/templates/Category.csv +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/templates/RareItem.csv +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/tools.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/tradeexcept.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/transfers.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous/utils.py +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous.egg-info/dependency_links.txt +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous.egg-info/entry_points.txt +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous.egg-info/not-zip-safe +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous.egg-info/requires.txt +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradedangerous.egg-info/top_level.txt +0 -0
- {tradedangerous-11.5.3 → tradedangerous-12.0.0}/tradegui.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: tradedangerous
|
|
3
|
-
Version:
|
|
3
|
+
Version: 12.0.0
|
|
4
4
|
Summary: Trade-Dangerous is a set of powerful trading tools for Elite Dangerous, organized around one of the most powerful trade run optimizers available.
|
|
5
5
|
Home-page: https://github.com/eyeonus/Trade-Dangerous
|
|
6
6
|
Author: eyeonus
|
|
@@ -31,6 +31,7 @@ Dynamic: description-content-type
|
|
|
31
31
|
Dynamic: home-page
|
|
32
32
|
Dynamic: keywords
|
|
33
33
|
Dynamic: license
|
|
34
|
+
Dynamic: license-file
|
|
34
35
|
Dynamic: project-url
|
|
35
36
|
Dynamic: requires-dist
|
|
36
37
|
Dynamic: summary
|
|
@@ -41,9 +42,10 @@ Dynamic: summary
|
|
|
41
42
|
TradeDangerous
|
|
42
43
|
Copyright (C) Oliver "kfsone" Smith, July 2014
|
|
43
44
|
Copyright (C) Bernd 'Gazelle' Gollesch 2016, 2017
|
|
44
|
-
Copyright (C)
|
|
45
|
+
Copyright (C) Stefan 'Tromador' Morrell 2025
|
|
46
|
+
Copyright (C) Jonathan 'eyeonus' Jones 2018 - 2025
|
|
45
47
|
|
|
46
|
-
REQUIRES PYTHON 3.
|
|
48
|
+
REQUIRES PYTHON 3.10 OR HIGHER.
|
|
47
49
|
|
|
48
50
|
----------
|
|
49
51
|
|
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
TradeDangerous
|
|
5
5
|
Copyright (C) Oliver "kfsone" Smith, July 2014
|
|
6
6
|
Copyright (C) Bernd 'Gazelle' Gollesch 2016, 2017
|
|
7
|
-
Copyright (C)
|
|
7
|
+
Copyright (C) Stefan 'Tromador' Morrell 2025
|
|
8
|
+
Copyright (C) Jonathan 'eyeonus' Jones 2018 - 2025
|
|
8
9
|
|
|
9
|
-
REQUIRES PYTHON 3.
|
|
10
|
+
REQUIRES PYTHON 3.10 OR HIGHER.
|
|
10
11
|
|
|
11
12
|
----------
|
|
12
13
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import pytest
|
|
1
2
|
import unittest
|
|
2
3
|
|
|
3
4
|
|
|
@@ -46,6 +47,7 @@ class TestBootstrapCommands(unittest.TestCase):
|
|
|
46
47
|
|
|
47
48
|
def test_import_update_cmd(self):
|
|
48
49
|
from tradedangerous.commands import update_cmd
|
|
49
|
-
|
|
50
|
+
|
|
51
|
+
@pytest.mark.skip(reason="update_gui command has been deprecated and archived")
|
|
50
52
|
def test_import_update_gui(self):
|
|
51
|
-
|
|
53
|
+
pytest.skip("update_gui command is deprecated and archived")
|
|
@@ -19,9 +19,11 @@ class TestBootstrapPlugins:
|
|
|
19
19
|
|
|
20
20
|
def test_import_plugins_edmc_batch(self):
|
|
21
21
|
from tradedangerous.plugins import edmc_batch_plug
|
|
22
|
-
|
|
22
|
+
|
|
23
|
+
@pytest.mark.skip(reason="journal_plug plugin has been deprecated and archived")
|
|
23
24
|
def test_import_plugins_journal(self):
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
pytest.skip("journal_plug plugin is deprecated and archived")
|
|
26
|
+
|
|
27
|
+
@pytest.mark.skip(reason="netlog_plug plugin has been deprecated and archived")
|
|
26
28
|
def test_import_plugins_netlog(self):
|
|
27
|
-
|
|
29
|
+
pytest.skip("netlog_plug plugin is deprecated and archived")
|
|
@@ -41,28 +41,14 @@ class TestTrade:
|
|
|
41
41
|
captured = capsys.readouterr()
|
|
42
42
|
assert "NOTE: Export Table 'System'" in captured.out
|
|
43
43
|
# TODO: check that System.csv has a fresh date
|
|
44
|
-
|
|
44
|
+
|
|
45
|
+
@pytest.mark.skip(reason="station command deprecated; now prints deprecation banner")
|
|
45
46
|
def test_station_remove(self, capsys):
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
assert regex_findin(r"NOTE: Sol/Dekker's Yard \(#\d+\) removed", captured.out)
|
|
50
|
-
|
|
47
|
+
pytest.skip("station command deprecated; no longer edits DB directly")
|
|
48
|
+
|
|
49
|
+
@pytest.mark.skip(reason="station command deprecated; now prints deprecation banner")
|
|
51
50
|
def test_station_add(self, capsys):
|
|
52
|
-
|
|
53
|
-
trade([
|
|
54
|
-
PROG, "station", "--add", "--ls-from-star=5",
|
|
55
|
-
"--market=Y",
|
|
56
|
-
"--black-market=?",
|
|
57
|
-
"--outfitting=?",
|
|
58
|
-
"--pad-size=s",
|
|
59
|
-
"--rearm=?",
|
|
60
|
-
"--refuel=Y",
|
|
61
|
-
"--repair=?",
|
|
62
|
-
"--no-export",
|
|
63
|
-
"sol/Dangerous Delight"])
|
|
64
|
-
captured = capsys.readouterr()
|
|
65
|
-
assert regex_findin(r"NOTE: Sol/Dangerous Delight \(#\d+\) added", captured.out)
|
|
51
|
+
pytest.skip("station command deprecated; no longer edits DB directly")
|
|
66
52
|
|
|
67
53
|
def test_nav(self, capsys):
|
|
68
54
|
trade([PROG, "nav", "--ly-per=50", "sol", "Shinrarta Dezhra"])
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import io
|
|
2
|
-
|
|
2
|
+
import os
|
|
3
3
|
import pytest
|
|
4
|
+
import re
|
|
4
5
|
|
|
5
6
|
from tradedangerous.cli import trade
|
|
6
|
-
|
|
7
7
|
from .helpers import copy_fixtures, regex_findin, replace_stdin
|
|
8
8
|
|
|
9
9
|
PROG = "trade"
|
|
@@ -15,50 +15,58 @@ def setup_module():
|
|
|
15
15
|
|
|
16
16
|
class TestTradeRun:
|
|
17
17
|
def test_run1(self, capsys):
|
|
18
|
-
|
|
18
|
+
# Disable colour output for deterministic matching
|
|
19
|
+
os.environ["TD_NO_COLOR"] = "1"
|
|
20
|
+
trade([
|
|
21
|
+
PROG, "run",
|
|
22
|
+
"--capacity=10", "--credits=10000",
|
|
23
|
+
"--from=sol/abr", "--jumps-per=3",
|
|
24
|
+
"--ly-per=10.5", "--no-planet"
|
|
25
|
+
])
|
|
19
26
|
captured = capsys.readouterr()
|
|
20
27
|
assert "Sol/Abraham Lincoln: 10 x Hydrogen Fuel," in captured.out
|
|
21
28
|
assert "Sol/Burnell Station: 2 x Silver," in captured.out
|
|
22
29
|
assert "560cr (213/ton)" in captured.out
|
|
23
|
-
|
|
30
|
+
|
|
24
31
|
@pytest.mark.slow
|
|
25
32
|
def test_run2(self, capsys):
|
|
33
|
+
os.environ["TD_NO_COLOR"] = "1"
|
|
26
34
|
trade([
|
|
27
35
|
PROG, "run", "-vv", "--progress", "--empty=82",
|
|
28
36
|
"--cap=212", "--jumps=4", "--cr=2153796", "--from=sol/abr",
|
|
29
37
|
"--hops=6", "--ls-m=8000", "--sup=10000",
|
|
30
|
-
"--pad=L", "--ly=25", "--prune-hop=3", "--prune-sc=40"
|
|
38
|
+
"--pad=L", "--ly=25", "--prune-hop=3", "--prune-sc=40"
|
|
39
|
+
])
|
|
31
40
|
captured = capsys.readouterr()
|
|
32
41
|
assert regex_findin(r"=> est [\d\s,]+cr total", captured.out)
|
|
33
|
-
|
|
42
|
+
|
|
34
43
|
@pytest.mark.slow
|
|
35
44
|
def test_run3(self, capsys):
|
|
36
|
-
"""Testing --checklist
|
|
37
|
-
"""
|
|
38
|
-
# monkeypatch.setattr('sys.stdin', io.StringIO('100'))
|
|
45
|
+
"""Testing --checklist"""
|
|
46
|
+
os.environ["TD_NO_COLOR"] = "1"
|
|
39
47
|
STEPS = 37
|
|
40
48
|
with replace_stdin(io.StringIO('\n' * STEPS)):
|
|
41
49
|
trade([
|
|
42
50
|
PROG, "run", "-vv", "--progress", "--empty=82", "--checklist",
|
|
43
51
|
"--cap=212", "--jumps=4", "--cr=2153796", "--from=sol/abr",
|
|
44
52
|
"--hops=6", "--ls-m=8000", "--sup=10000",
|
|
45
|
-
"--pad=L", "--ly=25", "--prune-hop=3", "--prune-sc=40"
|
|
53
|
+
"--pad=L", "--ly=25", "--prune-hop=3", "--prune-sc=40"
|
|
54
|
+
])
|
|
46
55
|
captured = capsys.readouterr()
|
|
47
|
-
# with capsys.disabled():
|
|
48
|
-
# print("Here")
|
|
49
|
-
# print(captured.out)
|
|
50
|
-
# print("to Here")
|
|
51
56
|
assert "BEGINNING CHECKLIST FOR Sol/Abraham Lincoln -> LHS 449/Fisher Point" in captured.out
|
|
52
|
-
assert "35 : Sell 212 x Polymers"
|
|
53
|
-
|
|
57
|
+
assert "35 : Sell 212 x Polymers" in captured.out
|
|
58
|
+
|
|
54
59
|
def test_run4(self, capsys):
|
|
55
|
-
|
|
60
|
+
os.environ["TD_NO_COLOR"] = "1"
|
|
61
|
+
trade([
|
|
62
|
+
PROG, "run",
|
|
63
|
+
"--capacity=10", "--credits=10000",
|
|
64
|
+
"--from=sol/abr", "--jumps-per=3",
|
|
65
|
+
"--ly-per=10.5", "--start-jumps=2"
|
|
66
|
+
])
|
|
56
67
|
captured = capsys.readouterr()
|
|
57
|
-
#
|
|
58
|
-
# print("Here")
|
|
59
|
-
# print(captured.out)
|
|
60
|
-
# print("to Here")
|
|
68
|
+
# Legacy route verification (plain text, no ANSI)
|
|
61
69
|
assert "Sol/Haberlandt Survey -> Sol/Durrance Camp" in captured.out
|
|
62
70
|
assert " Sol/Haberlandt Survey: 5 x Reactive Armour," in captured.out
|
|
63
71
|
assert " Sol/Ehrlich City: 10 x Building Fabricators," in captured.out
|
|
64
|
-
assert "
|
|
72
|
+
assert re.search(r"Sol/Durrance Camp \+10,?925cr \(728/ton\)", captured.out)
|