Release Trade Dangerous (Est. 2015) Power user's highly configurable trade optimizer

Released: 12.17.0
GUI is now as complete as I am going to make it.

Entirely possible that I will return to it in future and I've left myself some bits upon which to expand, but for now I'm done.

Now, I'm not a QA team and don't have the time, energy or will to attempt to test every possible option for every command. I die a little inside just thinking about it. Especially as no doubt a lot of commands will hardly ever be used.

If you find a bug or encounter a problem using this GUI, please raise a ticket on the tracker at github and I will be notified and do my best to provide a fix.

Don't just post here, if you want it fixed, raise a ticket!

I'll try and find time to make some documentation, but it should be fairly self explanatory. If you aren't sure what anything does, the input screens (mostly) match the CLI commands, which are documented here so you can just look them up.

My next project will be an installer, no idea when, other than Soon™.
 
Guys there are some issues with module dependencies in Python 3.14 that prevent the stack from installing correctly. One hasn't properly supported 3.14 for a long time and another released a new version overnight, which also breaks 3.14 installs, certainly in windows, possibly other platforms. Right now, the default (as documented on python.org) windows install path gives 3.14, so it's a thing we need to address.

We've pushed fixes to our dependency stack and this should resolve the problem for fresh installs of TD. I advise installing a clean venv and going from there.

From your command line, make your folder where you want to run TD and run command, powershell or whatever CLI your OS uses
Then run the following commands -

python -m venv .venv
  • For Windows .\.venv\Scripts\Activate.ps1
  • [For Linux/Mac source .venv/bin/activate
python -m pip install --upgrade pip
pip install TradeDangerous
trade --help

Unfortunately, this has set back my installer work. I can firefight upstream's breaking changes, or develop new features, but not both at once.

If anyone encounters module issues on other versions of Python please let me know and I'll adjust the stack appropriately, but as far as we know, it's only 3.14 which is affected.
 
Released 12.18.7
GUI: Advanced setting allows user to choose network port.
GUI: Protection against inadvertently running multiple commands at once.

I've seen an intermittent bug in the current GUI. It looks like this.

Code:
Exception in callback _ProactorBasePipeTransport._call_connection_lost()
handle: <Handle _ProactorBasePipeTransport._call_connection_lost()>
Traceback (most recent call last):
  File "C:\Users\troma\AppData\Local\Python\pythoncore-3.14-64\Lib\asyncio\events.py", line 94, in _run
    self._context.run(self._callback, *self._args)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\troma\AppData\Local\Python\pythoncore-3.14-64\Lib\asyncio\proactor_events.py", line 165, in _call_connection_lost
    self._sock.shutdown(socket.SHUT_RDWR)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

And then I have to go into task manager to kill the python processes to get back to a prompt.
Of course, now I've seen it enough times that I want to investigate it, I can't make it happen again.

I have therefore implemented some test code. The GUI will now exit with the following lines.

Code:
[td-gui shutdown 03:46:56] native window process exited connections=0 tasks=0 should_exit=False
[td-gui shutdown 03:46:56] setting server should_exit connections=0 tasks=0 should_exit=False
[td-gui shutdown 03:46:56] server should_exit set connections=0 tasks=0 should_exit=True

However if the error happens, hopefully there will be something in addition - if you see it, please let me know what output you get.
 
You wanted it. You got it. Easy installer. Icon on desktop. Executable lives in c:\program files, data lives in AppData\Local.

Obtain from Trade Dangerous Releases.
GUI documentation applies, other than you don't need a CLI to start the app.

I don't know if we'll update for every tiny release, but we will periodically, or for serious bugs.

I want to make some glorious fanfare, but I'm too tired. Pleased with myself, but tired. Problems? Raise a ticket.

I've done all the big obvious user facing improvements I wanted to make. It's taken me probably the better part of a year on and off.

Here's the list -

1: TD is now based on SQL Alchemy. This means the server database is backed up by MariaDB (aka MySQL). It's so much more robust and no longer collapses under its own weight. Users continue to enjoy SQLite, so you don't need to have a database server to run the app. Also future developers will have a much easier time adding new backends, should they wish.

2: New listener code. The server application has been completely overhauled, along with the supporting spansh plugin. It's solid and reliable and doesn't go down for mysterious reasons. Additionally, the whole thing has been migrated from a threaded solution to true multiprocessing. The several hours a day of effective downtime are now eliminated and we are dropping data updates every couple of minutes throughout the day. There's now in fact two different listener apps. One designed for setting up a TD server and a more lightweight version for users, based on the threaded model.

3: Graphical User Interface. We've based this on NiceGUI rather than any other choice. Though that causes us a few niggles, it gives us an easy upgrade path to a possible hosted TD website at some point in the future. I know the lack of a GUI has been a real blocker for a lot of people, who find the CLI intimidating. That said, for the forseeable future, we'll still be supporting the CLI version - it's cross platform, so you can run it on your mac or linux server and we think that's something we want to continue.

4: Windows installer. That completes the suite. Installing and using Trade Dangerous now needs no more technical knowledge than any other application. I hope this will make it a lot more accessible to those players who really enjoy trading as part of their Elite Dangerous experience.


Future roadmap.

I'm not sure. I know that the application can often still be slow compared to other E : D trading applications, then again it can also do a lot more than other E : D trading applications. I think that I'm going to start looking at this. Now that the direct user experience is sorted, it's time to try and improve the efficiency of the app. There's some parts which do a lot more work than they need to and other parts we should be able to find some nice gains. So don't expect to see obvious changes for a while. I'll be under the hood, rather than giving it a respray.
 
Release: 12.8.9
TD Opens direct. Console requirement removed.
Various bugfixes/hardening for windows release.
Full changelog always available on github.

Upgrade - Just install over the top of earlier version. No data changes, so no need to reimport clean.

Known bug: Intermittently throws an error box on exit. I know why. Doesn't hurt anything. Just close it. I'll fix it in the next release.
 
Last edited:
Hi!
Thanks for your update and your time.

Question in the Community, does the UpdateTD-Plugin in EDMC works by someone else, see no new Version... just courius.
And my "old" trade import -P edmc_batch -O folder="C:\..." throws a tdb.removePersist() (gave him a try :-> , know its deprecated ;-)>

cheers
Q
 
Last edited:
Hi!
Thanks for your update and your time.

Question in the Community, does the UpdateTD-Plugin in EDMC works by someone else, see no new Version... just courius.
And my "old" trade import -P edmc_batch -O folder="C:\..." throws a tdb.removePersist() (gave him a try :-> , know its deprecated ;-)>

cheers
Q
1) The recent updates to TD to give it a nicely fleshed out GUI didn't touch the underlying DB stuff, and we have already verified the current version of the EDMC plugin does work with said DB stuff, so there's no need to worry about the lack of update on the plugin it'll work fine. ^_^

2) Any problems with python TD (CLI or GUI) that occur after upgrading TD can usually be solved by running trade import -P eddblink -O clean[,skipvend,solo] (or the equivalent in the GUI), where the options in [] are up to the user to include if desired and the actual [ ] themselves should not be. If doing a clean run does not solve the problem please raise an issue on github and we will look into it.
 
No, edmc_batch is totally borked.

Or rather it was. I've fixed it - but this will be the last time. Please go ahead and test it, if it fails give me the traceback and I'll sort it out, but once it's working that's the last touch that plugin will be getting. See v12.18.11

As for UpdateTD - Yes, this totally works. Gazelle continues to be a good friend of TD and we regularly keep in touch. We consider this our officially supported pipeline to obtain data directly from EDMC.
 
No, edmc_batch is totally borked.

Or rather it was. I've fixed it - but this will be the last time. Please go ahead and test it, if it fails give me the traceback and I'll sort it out, but once it's working that's the last touch that plugin will be getting. See v12.18.11

As for UpdateTD - Yes, this totally works. Gazelle continues to be a good friend of TD and we regularly keep in touch. We consider this our officially supported pipeline to obtain data directly from EDMC.
Hi!
thanks for your input, "... totally works", shows me the problem is (naturally) in front of the screen....

Well to solve the question:
I use the pip-Version of TD, and as lots of batches, my DB is below C:\ED\TD\ ... a glimpse into the debug-logs of EDMC --- he looks at ~Appdata-something.. and there was some garbage...

first thought of modify the code, but just put a working copy of the db into the appdata-Place, afterwards the db-location was reconfigurable via EDMC-Plugin-UpdateTD-Tab

cheers and thanks
Q
 
Last edited:
he looks at ~Appdata-something.. and there was some garbage...

And that's what I need to see. It's garbage to you, but diagnostic to me. You need to copy and paste it if you want me to fix it. I can't tell what's wrong from your description.

first thought of modify the code, but just put a working copy of the db into the appdata-Place, afterwards the db-location was reconfigurable via EDMC-Plugin-UpdateTD-Tab

If you do have issues with UpdateTD. Please let Bernd (Gazelle) know. If it's caused by something in TD, he'll escalate it to us.
 
I use the pip-Version of TD, and as lots of batches, my DB is below C:\ED\TD\ ... a glimpse into the debug-logs of EDMC --- he looks at ~Appdata-something.. and there was some garbage...

first thought of modify the code, but just put a working copy of the db into the appdata-Place, afterwards the db-location was reconfigurable via EDMC-Plugin-UpdateTD-Tab
UpdateTD does NOT pre-configure any database. You need to select the database in the settings (It will suggest ~/data/TradeDangerous.db). If it tries to open a database it must have been set in the config. But you should always be able to change the file in the UpdateTD settings tab of EDMC.

EDMC did have some troubles in the begining of converting its setting to the new toml format. So maybe something went wrong there. I would need to see the log file.
 
thanks a lot, but everything is fine now.
I inserted a new DB into the ~appdata-Default path, afterwards switched the location to my favourite place. Everything all running now.

cheers
Q
 
Release version 12.19.1
MINIMUM PYTHON VERSION UPGRADED TO 3.12

✨ New Feature - Autocomplete dropdown lists for systems and stations!!✨
1775789098820.png


Various additional bug fixes.
New windows installer on our release page.
 
Back
Top Bottom