Discussion EDTS: A collection of scripts for route planning and other tools

I've made a route planner in Python which uses data from EDDB to produce routes for specified jump ranges.
It's also able to guess at optimal ways to visit a certain set of stations (a.k.a. the travelling salesman problem), as well as various other sort-of useful scripts. The functionality to create full routes between systems can produce significantly more optimal routes than the in-game route planner, although it often doesn't run quite as quickly.

I'm not anticipating this being hugely popular - it'll likely see some use within the Buckyball racing community though - I just want it to have a thread for support/help.

The project page is here; there are currently no formal releases, I'd recommend downloading a ZIP of the master branch (or cloning it if you're familiar with git). The develop branch is often slightly ahead of master, but may be less stable.
The scripts are written in Python; the only requirements are a Python 2.7+ or Python 3.x interpreter, and about 200MB of RAM to run the scripts.

The usage for the main script is on the website (and in help flags within the applications), but the basics are as follows:
On first run, the latest EDDB system and station data must be downloaded, as well as Coriolis data for ship FSD sizes:

python update.py

Once this is done, the script can be used:

python edts.py -j 35.2 --start="Sol/Galileo" --end="Alioth/Golden Gate" "Wolf 359/Powell High" "Agartha/Enoch Port" "Alpha Centauri"

This example assumes you wish to go from Galileo in Sol, to Golden Gate in Alioth, via Powell High, Enoch Port and Alpha Centauri. All of this will be done in a ship with a 35.2Ly jump range. Note that for the case of Alpha Centauri, we only specify the system name; this is because we definitely do not want to visit any stations in Alpha Centauri. It is a silly place.

The output might look similar to the following:

Code:
Sol, Galileo (505Ls, Ocellus Starport)
    ===   7.78Ly ( 1 jump ) ===> Wolf 359, Powell High (99Ls, Coriolis Starport), SC: ~83s
    ===   8.33Ly ( 1 jump ) ===> Alpha Centauri
    === 145.96Ly ( 5 jumps) ===> Agartha, Enoch Port (878Ls, Coriolis Starport), SC: ~118s
    === 230.65Ly ( 8 jumps) ===> Alioth, Golden Gate (7783Ls, Unknown Starport), SC: ~224s

Total distance: 392.72Ly; total jumps: 15; total SC distance: 8760Ls; ETT: 24:20
The other scripts are documented on the project wiki and are basically in development; feel free to ask about them or suggest new features.

Other scripts
  • close_to: find systems close to one or more provided systems (with restrictions, e.g. must have stations of a certain pad size, must be of a certain allegiance)
  • coords: print coordinates of provided systems
  • distance: print the distance between two systems
  • find: find systems and/or stations of a certain name, allowing wildcards
  • fuel_usage: determine the fuel usage required for a set of jumps
  • galmath: calculate "magic numbers" for plotting in the core
  • edi: an interactive interpreter to run all of the above commands whilst keeping the EDDB data persistently loaded for speed
Other functionality
  • Representations of FSDs and ships, allowing for easy calculation of jump ranges/fuel costs.
  • A module to determine the approximate position of a PG system/sector from its name, and vice versa.
You might ask: "can't the EDDB website do most of this?" The answer is yes, this is just intended an instantly-available command-line alternative for those who prefer that sort of thing. I'm not imagining that will be a lot of people, but it might be some. :)

Contributors
CMDR furrycat: submitted many patches for these tools, for which I am very grateful :)
Onane: helped to investigate a very odd issue related to file size limits
Bruski: helped in our ongoing fight against ever-increasing EDSM/EDDB data file sizes
 
Last edited:
Good idea!

python installed - check
EDTS files downloaded - check

open Python 3.5.0 Shell

>>> python eddb.py --download
SyntaxError: invalid syntax
>>>

what have i done wrong, or not done
 
>>> python eddb.py --download
SyntaxError: invalid syntax
>>>
I'm not sure you've done anything wrong at all!

This could be your Python version being a lot newer than mine (I tested it on 2.7, not sure what other users have used). I'll download a 3.x version of Python in a little while and sort it out!
 
i get the same 'invalid syntax' in 2.7
What OS/environment are you running on? Very strange that it's giving such a non-specific error... :(

Edit: From the "open" I guess OS X... Maybe it's line endings or something like that. Although I have tried it on my work laptop which is OS X... But I did clone the git repository rather than downloading a ZIP, so not really the same I guess.

Edit 2: I'm an idiot, I just realised what's going on... You're already in a python shell, so running "python" within that won't have the desired effect (since Python's already running).
Either you can run it from within a normal terminal window, or I can look up how to run a python script from within an already-Python shell. One sec :D

Eugh... Looks like there's no nice way of running a file from within an existing Python prompt.
If possible, I'd suggest you start a normal Terminal prompt, use "cd" to get to the directory the *.py files are in, and then follow the normal instructions on the website. I guess you could first check that Terminal can find Python, by running "python --version" from Terminal.
 
Last edited:
i 'think' i'm getting somwhere. *i now assume i should be running this from Command Prompt not from within Python*
if so it appears something is happening, not sure it's all good.

C:\Users\TeamSpeed> python eddb.py --download
'python' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\TeamSpeed>cd E:\Python

C:\Users\TeamSpeed>E:\Python
'E:\Python' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\TeamSpeed>cd\E:\Python
The filename, directory name, or volume label syntax is incorrect.

C:\Users\TeamSpeed>cd python
The system cannot find the path specified.

C:\Users\TeamSpeed>e:

E:\Python>python eddb.py --download
[2015-11-06 21:08:19,855] [eddb ] Downloading EDDB Systems list from http://eddb.io/archive/v4/systems.json ...
Traceback (most recent call last):
File "eddb.py", line 76, in <module>
download_eddb_files(default_systems_file, default_stations_file)
File "eddb.py", line 33, in download_eddb_files
urllib.urlretrieve(eddb_systems_url, sys_file)
AttributeError: module 'urllib' has no attribute 'urlretrieve'

E:\Python>python coriolis.py --download
[2015-11-06 21:09:41,737] [coriolis] Downloading Coriolis FSD list from https://raw.githubusercontent.com/cmmcleod/coriolis-data/master/components/standard/frame_shift_drive.json ...
Traceback (most recent call last):
File "coriolis.py", line 53, in <module>
download_coriolis_files(default_frame_shift_drive_file)
File "coriolis.py", line 27, in download_coriolis_files
urllib.urlretrieve(coriolis_frame_shift_drive_url, frame_shift_drive_file)
AttributeError: module 'urllib' has no attribute 'urlretrieve'

E:\Python>python edts.py -j 35.2 --start="Sol/Galileo" --end="Alioth/Golden Gate" "Wolf 359/Powell High" "Agartha/Enoch Port" "Alpha Centauri"
File "edts.py", line 167
print ""
^
SyntaxError: Missing parentheses in call to 'print'

E:\Python>python edts.py -j 35.2 --start="Sol/Galileo" --end="Alioth/Golden Gate" "Wolf 359/Powell High" "Agartha/Enoch Port" "Alpha Centauri"
File "edts.py", line 167
print ""
^
SyntaxError: Missing parentheses in call to 'print'

E:\Python
 
i 'think' i'm getting somwhere. *i now assume i should be running this from Command Prompt not from within Python*
if so it appears something is happening, not sure it's all good.
You're definitely getting somewhere, but now you're running into the same Python 2 vs Python 3 problems I did an hour ago :)
I've just pushed a version which should fix all those issues, so if you redownload it and try again you should have better luck. At least, I ran into every error in your post when I tried it with Python 3, and after my changes just now I no longer am. :D

Thanks for persevering with this! I'll make sure and test any future additions in both Python 2 and 3; hopefully that should be nice and easy now the existing code is working on both.

EDIT: Just found yet another thing not quite working properly ... and fixed!
 
Last edited:
good. good. bad

-------------------------------------------------------------------
E:\Python>python eddb.py --download
[2015-11-06 22:39:51,673] [eddb ] Downloading EDDB Systems list from http://eddb.io/archive/v4/systems.json ...
[2015-11-06 22:39:55,065] [eddb ] Done.
[2015-11-06 22:39:55,065] [eddb ] Downloading EDDB Stations list from http://eddb.io/archive/v4/stations.json ...
[2015-11-06 22:40:01,150] [eddb ] Done.
[2015-11-06 22:40:01,564] [eddb ] Systems file exists and loads OK (48992 systems)
[2015-11-06 22:40:02,674] [eddb ] Stations file exists and loads OK (40713 stations)

E:\Python>python coriolis.py --download
[2015-11-06 22:40:40,290] [coriolis] Downloading Coriolis FSD list from https://raw.githubusercontent.com/cmmcleod/coriolis-data/master/components/standard/frame_shift_drive.json ...
[2015-11-06 22:40:40,949] [coriolis] Done.
[2015-11-06 22:40:40,949] [coriolis] FSD file exists and loads OK (35 drives)

E:\Python>python edts.py -j 35.2 --start="Sol/Galileo" --end="Alioth/Golden Gate" "Wolf 359/Powell High" "Agartha/Enoch Port" "Alpha Centauri"
Traceback (most recent call last):
File "edts.py", line 8, in <module>
import env
File "E:\Python\env.py", line 95, in <module>
eddb_stations = eddb.load_stations(global_args.eddb_stations_file)
File "E:\Python\eddb.py", line 65, in load_stations
return load_json(filename, eddb_stations_file_size_limit)
File "E:\Python\eddb.py", line 69, in load_json
return json.loads(f.read(size_limit))
MemoryError
-------------------------------------------------------------------

help required, again!
 
File "E:\Python\eddb.py", line 69, in load_json
return json.loads(f.read(size_limit))
MemoryError
-------------------------------------------------------------------

help required, again!
Hmm... That suggests it's failing to load the EDDB station data (i.e. details of all the stations), which is weird... I've never seen that fail, on several different machines (one of which only had 1GB of RAM).
How much RAM does the machine you're using have? On my machine the Python interpreter ends up using a total of about 160MB once it's all loaded, so it should only need about that much free.

It's especially confusing because it successfully loaded those same files after downloading them ("Stations file exists and loads OK")... Very weird.
 
Last edited:
Hmm... That suggests it's failing to load the EDDB station data (i.e. details of all the stations), which is weird... I've never seen that fail, on several different machines (one of which only had 1GB of RAM).
How much RAM does the machine you're using have? On my machine the Python interpreter ends up using a total of about 160MB once it's all loaded, so it should only need about that much free.

It's especially confusing because it successfully loaded those same files after downloading them ("Stations file exists and loads OK")... Very weird.
Hi! Esvandiary.
I sent a PM... had the memory issue and managed to fix it (for my environment).
Regards
Onane
 
Hi! Esvandiary.
I sent a PM... had the memory issue and managed to fix it (for my environment).
Regards
Onane
So I see! I've just pushed a new version with that limit adjusted, so hopefully it should now work properly for superflyguy too... Thanks very much! :)
 
Boom, there it is!

E:\Python>python edts.py -j 35.2 --start="Sol/Galileo" --end="Alioth/Golden Gate" "Wolf 359/Powell High" "Agartha/Enoch Port" "Alpha Centauri

Sol, Galileo (505Ls, Ocellus Starport)
=== 148.32Ly ( 5 jumps) ===> Agartha, Enoch Port (878Ls, Coriolis Starport), SC: ~118s
=== 145.96Ly ( 5 jumps) ===> Alpha Centauri
=== 8.33Ly ( 1 jump ) ===> Wolf 359, Powell High (99Ls, Coriolis Starport), SC: ~83s
=== 78.21Ly ( 3 jumps) ===> Alioth, Golden Gate (7783Ls, Unknown Starport), SC: ~224s

Total distance: 380.82Ly; total jumps: 14; total SC distance: 8760Ls; ETT: 23:25


All working like a charm now. Thanks very much Alot & Onane
 
Last edited:
i have been messing about with the 'Accurate Mode' and seem to be getting strange results i.e. single jumps of 50ly!

my guess is i'm inputting something wrong!

c:\Users\aspeed>python edts.py -f 5A -m 207.5 -t 16 --start="Leesti/George Lucas" --end="Jabbah" "Hanneng/Kessel Enterprise" "Latoras/Kessel Colony" "Dao Jungu/Kessel Gateway" "Edenapel/Kessel Hub" "HIP 18609/Kessel Lega
cy" "Apurarai/Kessel Platform" "Chediq/Kessel Platform" "Ba Narr/Kessel Port" "LHS 2936/Kessel Port" "HR 4749/Kessel Ring" "HIP 82964/Kessel Station" "Hurusalki/Kessel Terminal" "Khodia/Kessel's Inheritance"

Leesti, George Lucas (268Ls, Coriolis Starport)
=== 57.33Ly ( 2 jumps) ===> HR 4749, Kessel Ring (950Ls, Industrial Outpost), SC: ~120s
=== 63.56Ly ( 2 jumps) ===> Chediq, Kessel Platform (893Ls, Industrial Outpost), SC: ~119s
=== 145.61Ly ( 3 jumps) ===> LHS 2936, Kessel Port (21Ls, Scientific Outpost), SC: ~73s
=== 85.69Ly ( 2 jumps) ===> Hurusalki, Kessel Terminal (9150Ls, Industrial Outpost), SC: ~237s
=== 33.95Ly ( 1 jump ) ===> HIP 82964, Kessel Station (91Ls, Coriolis Starport), SC: ~82s
=== 50.62Ly ( 1 jump ) ===> Latoras, Kessel Colony (18Ls, Industrial Outpost), SC: ~73s
=== 50.72Ly ( 1 jump ) ===> Hanneng, Kessel Enterprise (1136Ls, Civilian Outpost), SC: ~126s
=== 240.97Ly ( 5 jumps) ===> HIP 18609, Kessel Legacy (5552Ls, Industrial Outpost), SC: ~199s
=== 169.22Ly ( 4 jumps) ===> Ba Narr, Kessel Port (820Ls, Industrial Outpost), SC: ~117s
=== 91.21Ly ( 2 jumps) ===> Khodia, Kessel's Inheritance (6Ls, Industrial Outpost), SC: ~69s
=== 56.61Ly ( 2 jumps) ===> Apurarai, Kessel Platform (33Ls, Industrial Outpost), SC: ~75s
=== 103.41Ly ( 3 jumps) ===> Edenapel, Kessel Hub (3704Ls, Civilian Outpost), SC: ~175s
=== 39.40Ly ( 1 jump ) ===> Dao Jungu, Kessel Gateway (1464Ls, Industrial Outpost), SC: ~134s
=== 399.48Ly ( 9 jumps) ===> Jabbah

Total distance: 1587.79Ly; total jumps: 38; total SC distance: 23838Ls; ETT: 72:59

any ideas?


Found the problem. A cobra doesn't have a 5a FSD, it has a 4A FSD.

"stand down everyone!"
"<-lightspeed-. pay more attention"
 
Last edited:
I ran it and received the following output:

Code:
C:\Users\Denali\Documents\edts>python eddb.py --download


[2015-12-18 10:23:27,071] [eddb  ] Downloading EDDB Systems list from http://eddb.io/archive/v4/systems.json ...


[2015-12-18 10:23:30,846] [eddb  ] Done.


[2015-12-18 10:23:30,847] [eddb  ] Downloading EDDB Stations list from http://eddb.io/archive/v4/stations.json ...


[2015-12-18 10:23:34,655] [eddb  ] Done.
[2015-12-18 10:23:35,450] [eddb  ] Systems file exists and loads OK (56405 systems)


[2015-12-18 10:23:38,499] [eddb  ] Stations file exists and loads OK (40715 stations)




C:\Users\Denali\Documents\edts>python coriolis.py --download


[2015-12-18 10:23:53,388] [coriolis] Downloading Coriolis FSD list from https://raw.githubusercontent.com/cmmcleod/coriolis-data/master/components/standard/frame_shift_drive.json ...


[2015-12-18 10:23:53,931] [coriolis] Done.


[2015-12-18 10:23:53,936] [coriolis] FSD file exists and loads OK (35 drives)




C:\Users\Denali\Documents\edts>python edts.py -f 4A -m 180.1 -t 16 -j 29.53 -p m -r --solve-full --start="Lave/Lave Station" --end="Lave/Lave Station" "Leesti/George Lucas" "Diso/Shifnalport" "Orrere/Sharon Lee Free Market" "Uszaa/Guest Installation" "Korro Kung/Lonchakov Orbital" "Fujin/Futen Spaceport" "Geras/Yurchikhin Port" "39 Tauri/Porta" "Zeessze/Nicollier Hanger" "Altair/Solo Orbiter" "George Pantazis/Zamka Platform"


[2015-12-18 10:32:52,525] [solver] Hop route could not be calculated: George Lucas -> Shifnalport


[2015-12-18 10:32:53,799] [solver] Hop route could not be calculated: George Lucas -> Sharon Lee Free Market


[2015-12-18 10:32:54,938] [solver] Hop route could not be calculated: George Lucas -> Guest Installation


[2015-12-18 10:32:57,422] [solver] Hop route could not be calculated: George Lucas -> Lonchakov Orbital


[2015-12-18 10:34:03,652] [solver] Hop route could not be calculated: George Lucas -> Futen Spaceport


[2015-12-18 10:35:01,164] [solver] Hop route could not be calculated: George Lucas -> Yurchikhin Port


[2015-12-18 10:36:02,392] [solver] Hop route could not be calculated: George Lucas -> Porta
[2015-12-18 10:36:39,733] [solver] Hop route could not be calculated: George Lucas -> Nicollier Hanger


[2015-12-18 10:37:02,515] [solver] Hop route could not be calculated: George Lucas -> Solo Orbiter


[2015-12-18 10:37:43,191] [solver] Hop route could not be calculated: George Lucas -> Zamka Platform


[2015-12-18 10:37:44,495] [solver] Hop route could not be calculated: George Lucas -> Lave Station


[2015-12-18 10:37:45,626] [solver] Hop route could not be calculated: Shifnalport -> Sharon Lee Free Market


[2015-12-18 10:37:46,684] [solver] Hop route could not be calculated: Shifnalport -> Guest Installation


[2015-12-18 10:37:49,303] [solver] Hop route could not be calculated: Shifnalport -> Lonchakov Orbital


[2015-12-18 10:38:59,164] [solver] Hop route could not be calculated: Shifnalport -> Futen Spaceport


[2015-12-18 10:39:56,673] [solver] Hop route could not be calculated: Shifnalport -> Yurchikhin Port


[2015-12-18 10:40:55,723] [solver] Hop route could not be calculated: Shifnalport -> Porta


[2015-12-18 10:41:32,018] [solver] Hop route could not be calculated: Shifnalport -> Nicollier Hanger


[2015-12-18 10:41:55,448] [solver] Hop route could not be calculated: Shifnalport -> Solo Orbiter


[2015-12-18 10:42:35,715] [solver] Hop route could not be calculated: Shifnalport -> Zamka Platform


[2015-12-18 10:42:36,853] [solver] Hop route could not be calculated: Shifnalport -> Lave Station


[2015-12-18 10:42:37,936] [solver] Hop route could not be calculated: Sharon Lee Free Market -> Guest Installation


[2015-12-18 10:42:40,539] [solver] Hop route could not be calculated: Sharon Lee Free Market -> Lonchakov Orbital
[2015-12-18 10:43:48,202] [solver] Hop route could not be calculated: Sharon Lee Free Market -> Futen Spaceport


[2015-12-18 10:44:51,167] [solver] Hop route could not be calculated: Sharon Lee Free Market -> Yurchikhin Port


[2015-12-18 10:45:56,613] [solver] Hop route could not be calculated: Sharon Lee Free Market -> Porta


[2015-12-18 10:46:36,594] [solver] Hop route could not be calculated: Sharon Lee Free Market -> Nicollier Hanger


[2015-12-18 10:47:02,401] [solver] Hop route could not be calculated: Sharon Lee Free Market -> Solo Orbiter


[2015-12-18 10:47:47,259] [solver] Hop route could not be calculated: Sharon Lee Free Market -> Zamka Platform


[2015-12-18 10:47:48,391] [solver] Hop route could not be calculated: Sharon Lee Free Market -> Lave Station


[2015-12-18 10:47:51,031] [solver] Hop route could not be calculated: Guest Installation -> Lonchakov Orbital


[2015-12-18 10:49:00,274] [solver] Hop route could not be calculated: Guest Installation -> Futen Spaceport


[2015-12-18 10:50:01,513] [solver] Hop route could not be calculated: Guest Installation -> Yurchikhin Port


[2015-12-18 10:51:05,145] [solver] Hop route could not be calculated: Guest Installation -> Porta


[2015-12-18 10:51:44,598] [solver] Hop route could not be calculated: Guest Installation -> Nicollier Hanger


[2015-12-18 10:52:09,642] [solver] Hop route could not be calculated: Guest Installation -> Solo Orbiter


[2015-12-18 10:52:53,227] [solver] Hop route could not be calculated: Guest Installation -> Zamka Platform


[2015-12-18 10:52:54,477] [solver] Hop route could not be calculated: Guest Installation -> Lave Station


[2015-12-18 10:53:35,668] [solver] Hop route could not be calculated: Lonchakov Orbital -> Futen Spaceport


[2015-12-18 10:54:12,771] [solver] Hop route could not be calculated: Lonchakov Orbital -> Yurchikhin Port


[2015-12-18 10:54:51,470] [solver] Hop route could not be calculated: Lonchakov Orbital -> Porta


[2015-12-18 10:55:20,615] [solver] Hop route could not be calculated: Lonchakov Orbital -> Nicollier Hanger


[2015-12-18 10:55:39,121] [solver] Hop route could not be calculated: Lonchakov Orbital -> Solo Orbiter


[2015-12-18 10:56:08,704] [solver] Hop route could not be calculated: Lonchakov Orbital -> Zamka Platform


[2015-12-18 10:56:11,022] [solver] Hop route could not be calculated: Lonchakov Orbital -> Lave Station


[2015-12-18 10:56:12,606] [solver] Hop route could not be calculated: Futen Spaceport -> Yurchikhin Port


[2015-12-18 10:56:14,154] [solver] Hop route could not be calculated: Futen Spaceport -> Porta


[2015-12-18 10:56:20,264] [solver] Hop route could not be calculated: Futen Spaceport -> Nicollier Hanger


[2015-12-18 10:56:33,664] [solver] Hop route could not be calculated: Futen Spaceport -> Solo Orbiter


[2015-12-18 10:56:41,237] [solver] Hop route could not be calculated: Futen Spaceport -> Zamka Platform


[2015-12-18 10:57:42,820] [solver] Hop route could not be calculated: Futen Spaceport -> Lave Station


[2015-12-18 10:57:44,294] [solver] Hop route could not be calculated: Yurchikhin Port -> Porta


[2015-12-18 10:57:49,152] [solver] Hop route could not be calculated: Yurchikhin Port -> Nicollier Hanger


[2015-12-18 10:57:58,744] [solver] Hop route could not be calculated: Yurchikhin Port -> Solo Orbiter


[2015-12-18 10:58:03,625] [solver] Hop route could not be calculated: Yurchikhin Port -> Zamka Platform


[2015-12-18 10:58:55,939] [solver] Hop route could not be calculated: Yurchikhin Port -> Lave Station


[2015-12-18 10:59:00,625] [solver] Hop route could not be calculated: Porta -> Nicollier Hanger


[2015-12-18 10:59:11,264] [solver] Hop route could not be calculated: Porta -> Solo Orbiter


[2015-12-18 10:59:15,247] [solver] Hop route could not be calculated: Porta -> Zamka Platform
[2015-12-18 11:00:09,995] [solver] Hop route could not be calculated: Porta -> Lave Station


[2015-12-18 11:00:12,351] [solver] Hop route could not be calculated: Nicollier Hanger -> Solo Orbiter


[2015-12-18 11:00:14,397] [solver] Hop route could not be calculated: Nicollier Hanger -> Zamka Platform


[2015-12-18 11:00:49,278] [solver] Hop route could not be calculated: Nicollier Hanger -> Lave Station


[2015-12-18 11:00:52,787] [solver] Hop route could not be calculated: Solo Orbiter -> Zamka Platform


[2015-12-18 11:01:15,204] [solver] Hop route could not be calculated: Solo Orbiter -> Lave Station


[2015-12-18 11:01:53,155] [solver] Hop route could not be calculated: Zamka Platform -> Lave Station


Traceback (most recent call last):


  File "edts.py", line 181, in <module>


    a.run()
  File "edts.py", line 110, in run


    route = s.solve(stations, start, end, self.args.num_jumps + 2)


  File "C:\Users\Denali\Documents\edts\solver.py", line 49, in solve


    rcost += self._calc.route_cost(hop)


  File "C:\Users\Denali\Documents\edts\calc.py", line 53, in route_cost


    return self.astar_cost(route[0], route[-1], route)
TypeError: 'NoneType' object is not subscriptable

  1. I'm guessing the hop route errors are not an EDTS problem. However, can you tell me how I would go about contributing the data in order to resolve them?
  2. I'm guessing the Traceback, however, is an EDTS problem. Please advise?
Thanks for reading!
 
Top Bottom