tradedangerous 11.5.2__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.

Files changed (106) hide show
  1. {tradedangerous-11.5.2/tradedangerous.egg-info → tradedangerous-12.0.0}/PKG-INFO +17 -4
  2. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/README.md +3 -2
  3. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tests/test_bootstrap_commands.py +4 -2
  4. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tests/test_bootstrap_plugins.py +6 -4
  5. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tests/test_trade.py +6 -20
  6. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tests/test_trade_run.py +30 -22
  7. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/cache.py +567 -395
  8. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/cli.py +2 -2
  9. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/TEMPLATE.py +25 -26
  10. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/__init__.py +8 -16
  11. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/buildcache_cmd.py +40 -10
  12. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/buy_cmd.py +57 -46
  13. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/commandenv.py +0 -2
  14. tradedangerous-12.0.0/tradedangerous/commands/export_cmd.py +151 -0
  15. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/import_cmd.py +70 -34
  16. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/market_cmd.py +52 -19
  17. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/olddata_cmd.py +120 -107
  18. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/rares_cmd.py +122 -110
  19. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/run_cmd.py +118 -66
  20. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/sell_cmd.py +52 -45
  21. tradedangerous-12.0.0/tradedangerous/commands/shipvendor_cmd.py +59 -0
  22. tradedangerous-12.0.0/tradedangerous/commands/station_cmd.py +67 -0
  23. tradedangerous-12.0.0/tradedangerous/commands/update_cmd.py +65 -0
  24. tradedangerous-12.0.0/tradedangerous/csvexport.py +231 -0
  25. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/gui.py +2 -2
  26. tradedangerous-12.0.0/tradedangerous/plugins/eddblink_plug.py +626 -0
  27. tradedangerous-12.0.0/tradedangerous/plugins/spansh_plug.py +2525 -0
  28. tradedangerous-12.0.0/tradedangerous/prices.py +213 -0
  29. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/templates/TradeDangerous.sql +6 -6
  30. tradedangerous-12.0.0/tradedangerous/tradecalc.py +1227 -0
  31. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/tradedb.py +533 -384
  32. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/tradeenv.py +12 -1
  33. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/version.py +1 -1
  34. {tradedangerous-11.5.2 → tradedangerous-12.0.0/tradedangerous.egg-info}/PKG-INFO +17 -4
  35. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous.egg-info/SOURCES.txt +1 -7
  36. tradedangerous-11.5.2/tradedangerous/commands/export_cmd.py +0 -123
  37. tradedangerous-11.5.2/tradedangerous/commands/shipvendor_cmd.py +0 -244
  38. tradedangerous-11.5.2/tradedangerous/commands/station_cmd.py +0 -497
  39. tradedangerous-11.5.2/tradedangerous/commands/update_cmd.py +0 -429
  40. tradedangerous-11.5.2/tradedangerous/commands/update_gui.py +0 -721
  41. tradedangerous-11.5.2/tradedangerous/csvexport.py +0 -220
  42. tradedangerous-11.5.2/tradedangerous/jsonprices.py +0 -254
  43. tradedangerous-11.5.2/tradedangerous/plugins/edapi_plug.py +0 -1071
  44. tradedangerous-11.5.2/tradedangerous/plugins/eddblink_plug.py +0 -489
  45. tradedangerous-11.5.2/tradedangerous/plugins/journal_plug.py +0 -537
  46. tradedangerous-11.5.2/tradedangerous/plugins/netlog_plug.py +0 -316
  47. tradedangerous-11.5.2/tradedangerous/plugins/spansh_plug.py +0 -858
  48. tradedangerous-11.5.2/tradedangerous/prices.py +0 -231
  49. tradedangerous-11.5.2/tradedangerous/templates/database_changes.json +0 -6
  50. tradedangerous-11.5.2/tradedangerous/tradecalc.py +0 -1109
  51. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/LICENSE +0 -0
  52. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/pyproject.toml +0 -0
  53. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/setup.cfg +0 -0
  54. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/setup.py +0 -0
  55. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tests/test_cache.py +0 -0
  56. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tests/test_commands.py +0 -0
  57. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tests/test_fs.py +0 -0
  58. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tests/test_peek.py +0 -0
  59. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tests/test_tools.py +0 -0
  60. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tests/test_utils.py +0 -0
  61. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/trade.py +0 -0
  62. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/__init__.py +0 -0
  63. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/exceptions.py +0 -0
  64. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/local_cmd.py +0 -0
  65. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/nav_cmd.py +0 -0
  66. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/parsing.py +0 -0
  67. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/commands/trade_cmd.py +0 -0
  68. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/corrections.py +0 -0
  69. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/edscupdate.py +0 -0
  70. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/edsmupdate.py +0 -0
  71. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/formatting.py +0 -0
  72. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/fs.py +0 -0
  73. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/mapping.py +0 -0
  74. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/mfd/__init__.py +0 -0
  75. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/mfd/saitek/__init__.py +0 -0
  76. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/mfd/saitek/directoutput.py +0 -0
  77. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/mfd/saitek/x52pro.py +0 -0
  78. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/misc/checkpricebounds.py +0 -0
  79. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/misc/clipboard.py +0 -0
  80. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/misc/coord64.py +0 -0
  81. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/misc/derp-sentinel.py +0 -0
  82. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/misc/diff-system-csvs.py +0 -0
  83. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/misc/eddb.py +0 -0
  84. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/misc/eddn.py +0 -0
  85. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/misc/edsc.py +0 -0
  86. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/misc/edsm.py +0 -0
  87. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/misc/importeddbstats.py +0 -0
  88. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/misc/prices-json-exp.py +0 -0
  89. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/misc/progress.py +0 -0
  90. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/plugins/__init__.py +0 -0
  91. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/plugins/edcd_plug.py +0 -0
  92. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/plugins/edmc_batch_plug.py +0 -0
  93. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/submit-distances.py +0 -0
  94. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/templates/Added.csv +0 -0
  95. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/templates/Category.csv +0 -0
  96. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/templates/RareItem.csv +0 -0
  97. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/tools.py +0 -0
  98. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/tradeexcept.py +0 -0
  99. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/transfers.py +0 -0
  100. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous/utils.py +0 -0
  101. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous.egg-info/dependency_links.txt +0 -0
  102. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous.egg-info/entry_points.txt +0 -0
  103. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous.egg-info/not-zip-safe +0 -0
  104. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous.egg-info/requires.txt +0 -0
  105. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradedangerous.egg-info/top_level.txt +0 -0
  106. {tradedangerous-11.5.2 → tradedangerous-12.0.0}/tradegui.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: tradedangerous
3
- Version: 11.5.2
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
@@ -23,6 +23,18 @@ Requires-Dist: requests
23
23
  Requires-Dist: appJar
24
24
  Requires-Dist: ijson
25
25
  Requires-Dist: rich
26
+ Dynamic: author
27
+ Dynamic: author-email
28
+ Dynamic: classifier
29
+ Dynamic: description
30
+ Dynamic: description-content-type
31
+ Dynamic: home-page
32
+ Dynamic: keywords
33
+ Dynamic: license
34
+ Dynamic: license-file
35
+ Dynamic: project-url
36
+ Dynamic: requires-dist
37
+ Dynamic: summary
26
38
 
27
39
 
28
40
  ----------
@@ -30,9 +42,10 @@ Requires-Dist: rich
30
42
  TradeDangerous
31
43
  Copyright (C) Oliver "kfsone" Smith, July 2014
32
44
  Copyright (C) Bernd 'Gazelle' Gollesch 2016, 2017
33
- Copyright (C) Jonathan 'eyeonus' Jones 2018 - 2021
45
+ Copyright (C) Stefan 'Tromador' Morrell 2025
46
+ Copyright (C) Jonathan 'eyeonus' Jones 2018 - 2025
34
47
 
35
- REQUIRES PYTHON 3.4 OR HIGHER.
48
+ REQUIRES PYTHON 3.10 OR HIGHER.
36
49
 
37
50
  ----------
38
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) Jonathan 'eyeonus' Jones 2018 - 2021
7
+ Copyright (C) Stefan 'Tromador' Morrell 2025
8
+ Copyright (C) Jonathan 'eyeonus' Jones 2018 - 2025
8
9
 
9
- REQUIRES PYTHON 3.4 OR HIGHER.
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
- from tradedangerous.commands import update_gui
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
- from tradedangerous.plugins import journal_plug
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
- from tradedangerous.plugins import netlog_plug
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
- # "Dekker's Yard"
47
- trade([PROG, "station", "-rm", "sol/dekkers"])
48
- captured = capsys.readouterr()
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
- # "Dekker's Yard"
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
- trade([PROG, "run", "--capacity=10", "--credits=10000", "--from=sol/abr", "--jumps-per=3", "--ly-per=10.5", "--no-planet"])
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
- trade([PROG, "run", "--capacity=10", "--credits=10000", "--from=sol/abr", "--jumps-per=3", "--ly-per=10.5", "--start-jumps=2"])
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
- # with capsys.disabled():
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 " Sol/Durrance Camp +10 925cr (728/ton)"
72
+ assert re.search(r"Sol/Durrance Camp \+10,?925cr \(728/ton\)", captured.out)