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.

Files changed (74) hide show
  1. tradedangerous/__init__.py +4 -4
  2. tradedangerous/cache.py +178 -142
  3. tradedangerous/cli.py +2 -7
  4. tradedangerous/commands/TEMPLATE.py +1 -2
  5. tradedangerous/commands/__init__.py +2 -4
  6. tradedangerous/commands/buildcache_cmd.py +6 -11
  7. tradedangerous/commands/buy_cmd.py +11 -12
  8. tradedangerous/commands/commandenv.py +16 -15
  9. tradedangerous/commands/exceptions.py +6 -4
  10. tradedangerous/commands/export_cmd.py +2 -4
  11. tradedangerous/commands/import_cmd.py +3 -5
  12. tradedangerous/commands/local_cmd.py +16 -25
  13. tradedangerous/commands/market_cmd.py +9 -8
  14. tradedangerous/commands/nav_cmd.py +17 -25
  15. tradedangerous/commands/olddata_cmd.py +9 -15
  16. tradedangerous/commands/parsing.py +9 -6
  17. tradedangerous/commands/rares_cmd.py +9 -10
  18. tradedangerous/commands/run_cmd.py +25 -26
  19. tradedangerous/commands/sell_cmd.py +9 -9
  20. tradedangerous/commands/shipvendor_cmd.py +4 -7
  21. tradedangerous/commands/station_cmd.py +8 -14
  22. tradedangerous/commands/trade_cmd.py +5 -10
  23. tradedangerous/commands/update_cmd.py +10 -7
  24. tradedangerous/commands/update_gui.py +1 -3
  25. tradedangerous/corrections.py +1 -3
  26. tradedangerous/csvexport.py +8 -8
  27. tradedangerous/edscupdate.py +4 -6
  28. tradedangerous/edsmupdate.py +4 -4
  29. tradedangerous/formatting.py +53 -40
  30. tradedangerous/fs.py +6 -6
  31. tradedangerous/gui.py +53 -62
  32. tradedangerous/jsonprices.py +8 -16
  33. tradedangerous/mapping.py +4 -3
  34. tradedangerous/mfd/__init__.py +2 -4
  35. tradedangerous/mfd/saitek/__init__.py +0 -1
  36. tradedangerous/mfd/saitek/directoutput.py +8 -11
  37. tradedangerous/mfd/saitek/x52pro.py +5 -7
  38. tradedangerous/misc/checkpricebounds.py +2 -3
  39. tradedangerous/misc/clipboard.py +2 -3
  40. tradedangerous/misc/coord64.py +2 -1
  41. tradedangerous/misc/derp-sentinel.py +1 -1
  42. tradedangerous/misc/diff-system-csvs.py +3 -0
  43. tradedangerous/misc/eddb.py +1 -3
  44. tradedangerous/misc/eddn.py +2 -2
  45. tradedangerous/misc/edsc.py +7 -14
  46. tradedangerous/misc/edsm.py +1 -8
  47. tradedangerous/misc/importeddbstats.py +2 -1
  48. tradedangerous/misc/prices-json-exp.py +7 -5
  49. tradedangerous/misc/progress.py +2 -2
  50. tradedangerous/plugins/__init__.py +2 -2
  51. tradedangerous/plugins/edapi_plug.py +13 -19
  52. tradedangerous/plugins/edcd_plug.py +4 -5
  53. tradedangerous/plugins/eddblink_plug.py +11 -15
  54. tradedangerous/plugins/edmc_batch_plug.py +3 -5
  55. tradedangerous/plugins/journal_plug.py +2 -1
  56. tradedangerous/plugins/netlog_plug.py +5 -5
  57. tradedangerous/plugins/spansh_plug.py +394 -170
  58. tradedangerous/prices.py +19 -20
  59. tradedangerous/submit-distances.py +3 -8
  60. tradedangerous/templates/TradeDangerous.sql +305 -306
  61. tradedangerous/trade.py +12 -5
  62. tradedangerous/tradecalc.py +30 -34
  63. tradedangerous/tradedb.py +140 -206
  64. tradedangerous/tradeenv.py +143 -69
  65. tradedangerous/tradegui.py +4 -2
  66. tradedangerous/transfers.py +23 -20
  67. tradedangerous/version.py +1 -1
  68. {tradedangerous-10.17.0.dist-info → tradedangerous-11.0.1.dist-info}/METADATA +2 -2
  69. tradedangerous-11.0.1.dist-info/RECORD +79 -0
  70. tradedangerous-10.17.0.dist-info/RECORD +0 -79
  71. {tradedangerous-10.17.0.dist-info → tradedangerous-11.0.1.dist-info}/LICENSE +0 -0
  72. {tradedangerous-10.17.0.dist-info → tradedangerous-11.0.1.dist-info}/WHEEL +0 -0
  73. {tradedangerous-10.17.0.dist-info → tradedangerous-11.0.1.dist-info}/entry_points.txt +0 -0
  74. {tradedangerous-10.17.0.dist-info → tradedangerous-11.0.1.dist-info}/top_level.txt +0 -0
@@ -6,7 +6,6 @@ import os
6
6
  import sys
7
7
  import traceback
8
8
  import typing
9
- from contextlib import contextmanager
10
9
 
11
10
  # Import some utilities from the 'rich' library that provide ways to colorize and animate
12
11
  # the console output, along with other useful features.
@@ -17,7 +16,8 @@ from rich.traceback import install as install_rich_traces
17
16
 
18
17
 
19
18
  if typing.TYPE_CHECKING:
20
- from typing import Any, Dict, Iterator
19
+ import argparse
20
+ from typing import Any, Optional, Union
21
21
 
22
22
 
23
23
  _ROOT = os.path.abspath(os.path.dirname(__file__))
@@ -34,20 +34,142 @@ if os.getenv("EXCEPTIONS"):
34
34
  install_rich_traces(console=STDERR, show_locals=False, extra_lines=1)
35
35
 
36
36
 
37
- class TradeEnv:
37
+ class BaseColorTheme:
38
+ """ A way to theme the console output colors. The default is none. """
39
+ CLOSE: str = "" # code to stop the last color
40
+ dim: str = "" # code to make text dim
41
+ bold: str = "" # code to make text bold
42
+ italic: str = "" # code to make text italic
43
+ # blink: NEVER = "don't you dare"
44
+
45
+ # style, label
46
+ debug, DEBUG = dim, "#"
47
+ note, NOTE = bold, "NOTE"
48
+ warn, WARNING = "", "WARNING"
49
+
50
+ seq_first: str = "" # the first item in a sequence
51
+ seq_last: str = "" # the last item in a sequence
52
+
53
+ # Included as examples of how you might use this to manipulate tradecal output.
54
+ itm_units: str = "" # the amount of something
55
+ itm_name: str = "" # name of that unit
56
+ itm_price: str = "" # how much does it cost?
57
+
58
+ def render(self, renderable: Any, style: str) -> str: # pragma: no cover, pylint: disable=unused-argument
59
+ """ Renders the given printable item with the given style; BaseColorTheme simply uses a string transformation. """
60
+ if isinstance(renderable, str):
61
+ return renderable # avoid an allocation
62
+ return str(renderable)
63
+
64
+
65
+ class BasicRichColorTheme(BaseColorTheme):
66
+ """ Provide's 'rich' styling without our own colorization. """
67
+ CLOSE = "[/]"
68
+ bold = "[bold]"
69
+ dim = "[dim]"
70
+ italic = "[italic]"
71
+
72
+ # style, label
73
+ debug, DEBUG = dim, "#"
74
+ note, NOTE = bold, "NOTE"
75
+ warn, WARNING = "[orange3]", "WARNING"
76
+
77
+ def render(self, renderable: Any, style: str) -> str: # pragma: no cover
78
+ style_attr = getattr(self, style, "")
79
+ if not style_attr:
80
+ return renderable if isinstance(renderable, str) else str(renderable)
81
+ return f"{style_attr}{renderable}{self.CLOSE}"
82
+
83
+
84
+ class RichColorTheme(BasicRichColorTheme):
85
+ """ Demonstrates how you might augment the rich theme with colors to be used fin e.g tradecal. """
86
+ DEBUG = ":spider_web:"
87
+ NOTE = ":information_source:"
88
+ WARNING = ":warning:"
89
+
90
+ # e.g. First station
91
+ seq_first = "[cyan]"
92
+ # e.g. Last station
93
+ seq_last = "[blue]"
94
+
95
+ # Included as examples of how you might use this to manipulate tradecal output.
96
+ itm_units = "[yellow3]"
97
+ itm_name = "[yellow]"
98
+ itm_price = "[bold]"
99
+
100
+
101
+ class BaseConsoleIOMixin:
102
+ """ Base mixin for running output through rich. """
103
+ console: Console
104
+ stderr: Console
105
+ theme: BaseColorTheme
106
+ quiet: bool
107
+
108
+ def uprint(self, *args, stderr: bool = False, style: str = None, **kwargs) -> None:
109
+ """
110
+ unicode-safe print via console or stderr, with 'rich' markup handling.
111
+ """
112
+ console = self.stderr if stderr else self.console
113
+ console.print(*args, style=style, **kwargs)
114
+
115
+
116
+ class NonUtf8ConsoleIOMixin(BaseConsoleIOMixin):
117
+ """ Mixing for running output through rich with UTF8-translation smoothing. """
118
+ def uprint(self, *args, stderr: bool = False, style: str = None, **kwargs) -> None:
119
+ """ unicode-handling print: when the stdout stream is not utf-8 supporting,
120
+ we do a little extra io work to ensure users don't get confusing unicode
121
+ errors. When the output stream *is* utf-8.
122
+
123
+ :param stderr: report to stderr instead of stdout
124
+ :param style: specify a 'rich' console style to use when the stream supports it
125
+ """
126
+ console = self.stderr if stderr else self.console
127
+ try:
128
+ # Attempt to print; the 'file' argument isn't supported by rich, so we'll
129
+ # need to fall-back on old print when someone specifies it.
130
+ console.print(*args, style=style, **kwargs)
131
+
132
+ except UnicodeEncodeError as e:
133
+ # Characters in the output couldn't be translated to unicode.
134
+ if not self.quiet:
135
+ self.stderr.print(
136
+ f"{self.theme.WARN}{self.theme.bold}CAUTION: Your terminal/console couldn't handle some "
137
+ "text I tried to print."
138
+ )
139
+ if 'EXCEPTIONS' in os.environ:
140
+ traceback.print_exc()
141
+ else:
142
+ self.stderr.print(e)
143
+
144
+ # Try to translate each ary into a viable string using utf error-replacement.
145
+ components = [
146
+ str(arg)
147
+ .encode(TradeEnv.encoding, errors="replace")
148
+ .decode(TradeEnv.encoding)
149
+ for arg in args
150
+ ]
151
+ console.print(*components, style=style, **kwargs)
152
+
153
+
154
+ # If the console doesn't support UTF8, use the more-complicated implementation.
155
+ if str(sys.stdout.encoding).upper() != 'UTF-8':
156
+ Utf8SafeConsoleIOMixin = NonUtf8ConsoleIOMixin
157
+ else:
158
+ Utf8SafeConsoleIOMixin = BaseConsoleIOMixin
159
+
160
+
161
+ class TradeEnv(Utf8SafeConsoleIOMixin):
38
162
  """
39
- Container for a TradeDangerous "environment", which is a collection of operational parameters.
163
+ TradeDangerous provides a container for runtime configuration (cli flags, etc) and io operations to
164
+ enable normalization of things without having to pass huge sets of arguments. This includes things
165
+ like logging and reporting functionality.
40
166
 
41
167
  To print debug lines, use DEBUG<N>, e.g. DEBUG0, which takes a format() string and parameters, e.g.
42
-
43
168
  DEBUG1("hello, {world}{}", "!", world="world")
44
169
 
45
170
  is equivalent to:
46
-
47
171
  if tdenv.debug >= 1:
48
- print("#hello, {world}{}".format(
49
- "!", world="world"
50
- ))
172
+ print("#hello, {world}{}".format("!", world="world"))
51
173
 
52
174
  Use "NOTE" to print remarks which can be disabled with -q.
53
175
  """
@@ -57,6 +179,7 @@ class TradeEnv:
57
179
  'detail': 0,
58
180
  'quiet': 0,
59
181
  'color': False,
182
+ 'theme': BaseColorTheme(),
60
183
  'dataDir': os.environ.get('TD_DATA') or os.path.join(os.getcwd(), 'data'),
61
184
  'csvDir': os.environ.get('TD_CSV') or os.environ.get('TD_DATA') or os.path.join(os.getcwd(), 'data'),
62
185
  'tmpDir': os.environ.get('TD_TMP') or os.path.join(os.getcwd(), 'tmp'),
@@ -67,84 +190,37 @@ class TradeEnv:
67
190
  }
68
191
 
69
192
  encoding = sys.stdout.encoding
70
-
71
- if str(sys.stdout.encoding).upper() != 'UTF-8':
72
- def uprint(self, *args, stderr: bool = False, style: str = None, **kwargs) -> None:
73
- """ unicode-handling print: when the stdout stream is not utf-8 supporting,
74
- we do a little extra io work to ensure users don't get confusing unicode
75
- errors. When the output stream *is* utf-8, tradeenv replaces this method
76
- with a less expensive method.
77
- :param stderr: report to stderr instead of stdout
78
- :param style: specify a 'rich' console style to use when the stream supports it
79
- """
80
- console = self.stderr if stderr else self.console
81
- try:
82
- # Attempt to print; the 'file' argument isn't spuported by rich, so we'll
83
- # need to fall-back on old print when someone specifies it.
84
- console.print(*args, style=style, **kwargs)
85
-
86
- except UnicodeEncodeError as e:
87
- # Characters in the output couldn't be translated to unicode.
88
- if not self.quiet:
89
- self.stderr.print(
90
- "[orange3][bold]CAUTION: Your terminal/console couldn't handle some "
91
- "text I tried to print."
92
- )
93
- if 'EXCEPTIONS' in os.environ:
94
- traceback.print_exc()
95
- else:
96
- self.stderr.print(e)
97
-
98
- # Try to translate each ary into a viable stirng using utf error-replacement.
99
- strs = [
100
- str(arg)
101
- .encode(TradeEnv.encoding, errors="replace")
102
- .decode(TradeEnv.encoding)
103
- for arg in args
104
- ]
105
- console.print(*strs, style=style, **kwargs)
106
193
 
107
- else:
108
- def uprint(self, *args, stderr: bool = False, style: str = None, **kwargs) -> None:
109
- """ unicode-handling print: when the stdout stream is not utf-8 supporting,
110
- this method is replaced with one that tries to provide users better support
111
- when a unicode error appears in the wild.
112
-
113
- :param file: [optional] stream to write to (disables styles/rich support)
114
- :param style: [optional] specify a rich style for the output text
115
- """
116
- console = self.stderr if stderr else self.console
117
- console.print(*args, style=style, **kwargs)
118
-
119
-
120
- def __init__(self, properties: Optional[Union[argparse.Namespace, Dict]] = None, **kwargs) -> None:
194
+ def __init__(self, properties: Optional[Union[argparse.Namespace, dict]] = None, **kwargs) -> None:
121
195
  # Inject the defaults into ourselves in a dict-like way
122
196
  self.__dict__.update(self.defaults)
123
-
197
+
124
198
  # If properties is a namespace, extract the dictionary; otherwise use it as-is
125
199
  if properties and hasattr(properties, '__dict__'): # which arparse.Namespace has
126
200
  properties = properties.__dict__
127
201
  # Merge into our dictionary
128
202
  self.__dict__.update(properties or {})
129
-
203
+
130
204
  # Merge the kwargs dictionary
131
205
  self.__dict__.update(kwargs or {})
132
-
206
+
133
207
  # When debugging has been enabled on startup, enable slightly more
134
208
  # verbose rich backtraces.
135
209
  if self.__dict__['debug']:
136
210
  install_rich_traces(console=STDERR, show_locals=True, extra_lines=2)
137
-
211
+
212
+ self.theme = RichColorTheme() if self.__dict__['color'] else BasicRichColorTheme()
213
+
138
214
  def __getattr__(self, key: str) -> Any:
139
215
  """ Return the default for attributes we don't have """
140
-
216
+
141
217
  # The first time the DEBUG attribute is referenced, register a method for it.
142
218
  if key.startswith("DEBUG"):
143
219
 
144
220
  # Self-assembling DEBUGN functions
145
221
  def __DEBUG_ENABLED(outText, *args, **kwargs):
146
222
  # Give debug output a less contrasted color.
147
- self.console.print(f"[dim]#{outText.format(*args, **kwargs)}[/dim]")
223
+ self.console.print(f"{self.theme.debug}{self.theme.DEBUG}{outText.format(*args, **kwargs)}")
148
224
 
149
225
  def __DEBUG_DISABLED(*args, **kwargs):
150
226
  pass
@@ -163,8 +239,7 @@ class TradeEnv:
163
239
 
164
240
  def __NOTE_ENABLED(outText, *args, stderr: bool = False, **kwargs):
165
241
  self.uprint(
166
- "NOTE:", str(outText).format(*args, **kwargs),
167
- style="bold",
242
+ f"{self.theme.note}{self.theme.NOTE}: {str(outText).format(*args, **kwargs)}",
168
243
  stderr=stderr,
169
244
  )
170
245
 
@@ -183,8 +258,7 @@ class TradeEnv:
183
258
 
184
259
  def _WARN_ENABLED(outText, *args, stderr: bool = False, **kwargs):
185
260
  self.uprint(
186
- "WARNING:", str(outText).format(*args, **kwargs),
187
- style="orange3",
261
+ f"{self.theme.warn}{self.theme.WARNING}: {str(outText).format(*args, **kwargs)}",
188
262
  stderr=stderr,
189
263
  )
190
264
 
@@ -15,8 +15,10 @@
15
15
 
16
16
  from tradedangerous import gui
17
17
 
18
+
18
19
  def main(argv = None):
19
- gui.main()
20
+ gui.main()
21
+
20
22
 
21
23
  if __name__ == "__main__":
22
- gui.main()
24
+ gui.main()
@@ -1,15 +1,12 @@
1
- from __future__ import absolute_import, with_statement, print_function, division, unicode_literals
2
- from os import getcwd, path
3
1
  from collections import deque
4
2
  from pathlib import Path
5
3
  from .tradeexcept import TradeException
6
4
 
7
5
  import csv
8
6
  import json
9
- import math
10
7
  from .misc import progress as pbar
8
+ import platform # noqa: F401
11
9
  from . import fs
12
- import platform
13
10
  import time
14
11
  import subprocess
15
12
  import sys
@@ -22,7 +19,6 @@ except ImportError:
22
19
 
23
20
  def import_requests():
24
21
  global __requests
25
- global platform
26
22
  if __requests:
27
23
  return __requests
28
24
 
@@ -58,9 +54,8 @@ def import_requests():
58
54
  raise TradeException("Missing package: 'requests'")
59
55
 
60
56
  try:
61
- import pip
57
+ import pip # noqa: F401 # pylint: disable=unused-import
62
58
  except ImportError as e:
63
- import platform
64
59
  raise TradeException(
65
60
  "Python 3.4.2 includes a package manager called 'pip', "
66
61
  "except it doesn't appear to be installed on your system:\n"
@@ -70,16 +65,15 @@ def import_requests():
70
65
  # Let's use "The most reliable approach, and the one that is fully supported."
71
66
  # Especially since the old way produces an error for me on Python 3.6:
72
67
  # "AttributeError: 'module' object has no attribute 'main'"
73
- #pip.main(["install", "--upgrade", "requests"])
68
+ # pip.main(["install", "--upgrade", "requests"])
74
69
  subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'requests'])
75
70
 
76
71
  try:
77
- import requests
72
+ import requests # pylint: disable=redefined-outer-name
78
73
  __requests = requests
79
74
  except ImportError as e:
80
75
  raise TradeException(
81
- "The requests module did not install correctly.{}"
82
- .format(extra)
76
+ f"The requests module did not install correctly ({e}).{extra}"
83
77
  ) from None
84
78
 
85
79
  return __requests
@@ -109,6 +103,7 @@ def download(
109
103
  backup=False,
110
104
  shebang=None,
111
105
  chunkSize=4096,
106
+ timeout=90,
112
107
  ):
113
108
  """
114
109
  Fetch data from a URL and save the output
@@ -130,9 +125,9 @@ def download(
130
125
  function to call on the first line
131
126
  """
132
127
 
133
- requests = import_requests()
128
+ requests = import_requests() # pylint: disable=redefined-outer-name
134
129
  tdenv.NOTE("Requesting {}".format(url))
135
- req = requests.get(url, headers=headers or None, stream=True)
130
+ req = requests.get(url, headers=headers or None, stream=True, timeout=timeout)
136
131
  req.raise_for_status()
137
132
 
138
133
  encoding = req.headers.get('content-encoding', 'uncompress')
@@ -148,6 +143,14 @@ def download(
148
143
  raise TradeException(
149
144
  "Remote server gave an empty response. Please try again later."
150
145
  )
146
+
147
+ # if the file is being compressed by the server, the headers tell us the
148
+ # length of the compressed data, but in our loop below we will be receiving
149
+ # the uncompressed data, which should be larger, which will cause our
150
+ # download indicators to sit at 100% for a really long time if the file is
151
+ # heavily compressed and large (e.g spansh 1.5gb compressed vs 9GB uncompressed)
152
+ if encoding == "gzip" and length:
153
+ length *= 4
151
154
 
152
155
  if tdenv.detail > 1:
153
156
  if length:
@@ -228,15 +231,15 @@ def download(
228
231
  req.close()
229
232
  return req.headers
230
233
 
231
- def get_json_data(url):
234
+ def get_json_data(url, *, timeout: int = 90):
232
235
  """
233
236
  Fetch JSON data from a URL and return the resulting dictionary.
234
237
 
235
238
  Displays a progress bar as it downloads.
236
239
  """
237
240
 
238
- requests = import_requests()
239
- req = requests.get(url, stream=True)
241
+ requests = import_requests() # pylint: disable=redefined-outer-name
242
+ req = requests.get(url, stream=True, timeout=timeout)
240
243
 
241
244
  totalLength = req.headers.get('content-length')
242
245
  if totalLength is None:
@@ -261,7 +264,7 @@ def get_json_data(url):
261
264
 
262
265
  return json.loads(jsData.decode())
263
266
 
264
- class CSVStream(object):
267
+ class CSVStream:
265
268
  """
266
269
  Provides an iterator that fetches CSV data from a given URL
267
270
  and presents it as an iterable of (columns, values).
@@ -272,12 +275,12 @@ class CSVStream(object):
272
275
  print("{} = {}".format(cols[0], vals[0]))
273
276
  """
274
277
 
275
- def __init__(self, url, tdenv=None):
278
+ def __init__(self, url, tdenv=None, *, timeout: int = 90):
276
279
  self.url = url
277
280
  self.tdenv = tdenv
278
281
  if not url.startswith("file:///"):
279
- requests = import_requests()
280
- self.req = requests.get(self.url, stream=True)
282
+ requests = import_requests() # pylint: disable=redefined-outer-name
283
+ self.req = requests.get(self.url, stream=True, timeout=timeout)
281
284
  self.lines = self.req.iter_lines()
282
285
  else:
283
286
  self.lines = open(url[8:], "rUb")
tradedangerous/version.py CHANGED
@@ -12,5 +12,5 @@
12
12
  """just keeper of current version"""
13
13
 
14
14
  # TODO: remember to update tests when version changes
15
- __version__ = '10.17.0'
15
+ __version__ = '11.0.1'
16
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tradedangerous
3
- Version: 10.17.0
3
+ Version: 11.0.1
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
@@ -21,7 +21,7 @@ Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
22
  Requires-Dist: requests
23
23
  Requires-Dist: appJar
24
- Requires-Dist: pysimdjson
24
+ Requires-Dist: ijson
25
25
  Requires-Dist: rich
26
26
 
27
27
 
@@ -0,0 +1,79 @@
1
+ tradedangerous/__init__.py,sha256=bwsbE_GyCNsuyGDKnfXAg0RD-ewsWHliySJ5QfCK7h8,1166
2
+ tradedangerous/cache.py,sha256=VH7_Bs-vz1H9KEbQah_4w3zqY3nG7HOegHZGzlKip80,36028
3
+ tradedangerous/cli.py,sha256=4B6FFYyH8M6Z4D8CJHsrkABHsb_O7pmTrJ7M_lB2Za8,4531
4
+ tradedangerous/corrections.py,sha256=_WLgo1IBWoskrrPFeshRwCOeJ2BeJb_x4tDQ0JdAo-s,1340
5
+ tradedangerous/csvexport.py,sha256=0XrQKLdt1STinZsBlBN3NHGh0BT81HKVe_oi9lFlLno,8637
6
+ tradedangerous/edscupdate.py,sha256=G8N-j61MZbCgY07WIVK23CCw6eMPE3WkraXHeARt9QE,17297
7
+ tradedangerous/edsmupdate.py,sha256=jpDUxUkDKxlG_gS3qWy5fg9p3mBPC-akU2pHSlfTPkI,14915
8
+ tradedangerous/formatting.py,sha256=0NbDTQ5fV8x3lhmPTtpnAwQog79dCjPCbDNU5b-Vn6U,6896
9
+ tradedangerous/fs.py,sha256=_5OJHIRy_M-WFHEZO4g2EIgqDxdrz4s8tcdDmgG7NME,2494
10
+ tradedangerous/gui.py,sha256=DFsF5zATr-lyJShL6t5kPKvcLLJYkICurzBz0WBa-oQ,43676
11
+ tradedangerous/jsonprices.py,sha256=GAaNbfEs1LX_F5f69MiEhHIEwoGZtubGC8EQ9MM4B9A,6878
12
+ tradedangerous/mapping.py,sha256=eGBQeYPD04Kq_ygZCDRafKMGz9EnxSgXUzQU-u78_2A,4049
13
+ tradedangerous/prices.py,sha256=JqiDVrtvvPd5pqE3HdwOHOuFgdAbOR-pt0GLD3ZIXM8,7425
14
+ tradedangerous/submit-distances.py,sha256=vBKV2KXz3mudDsuUieIwWjCqo21XdXP9Clb-VufXyUA,12324
15
+ tradedangerous/tools.py,sha256=pp-4WtA12SVaaQHFJFOMTF7EDFRCU2mQeOhC4xoXmEk,1331
16
+ tradedangerous/trade.py,sha256=nGiTFj9ZrqeN9Xad3z8e4MpA2fNqYAcYMrZnwpnuus4,1938
17
+ tradedangerous/tradecalc.py,sha256=A7peEMiaCjlwFvReSq3E7_Ar0shUoFedQi83ZmOc7uY,42075
18
+ tradedangerous/tradedb.py,sha256=3nGB55dYs4igP3U3J4Ye1-M6Kt9A4xPAMmnX7JEDW7w,72220
19
+ tradedangerous/tradeenv.py,sha256=SDzRC6ERYZzzb_I6uexmFpFJJrnbzXa-1ogYt_GH26w,10576
20
+ tradedangerous/tradeexcept.py,sha256=aZ-Y31MbkjF7lmAzBAbaMsPPE7FEEfuf4gaX2GvriDk,368
21
+ tradedangerous/tradegui.py,sha256=q2HdIdoyeLUpeF2X0hVIGn7sU6T4zOzq1HN0zGvZdyE,788
22
+ tradedangerous/transfers.py,sha256=NWdrE3gfBlvqnoSJEuWHqYbWFHUHNDd5D0YYMQkpaMY,10513
23
+ tradedangerous/utils.py,sha256=PUPvAEqUyxYGqqQa0b_yfLAvq8YVUxK6HfdS-CxM-Lo,5186
24
+ tradedangerous/version.py,sha256=aDLr8TVjMzFdVqr7IbN81E05QzcAMQCuS_iYevVADM8,646
25
+ tradedangerous/commands/TEMPLATE.py,sha256=MOE69xsZPHPIMBQ-LXicfsOlCZdy-2gPX_nlnwYYil8,2026
26
+ tradedangerous/commands/__init__.py,sha256=3gz2cnXNZNkV1gtZh0dOnCRxBkQHbeIyysRe3bM2WEE,9516
27
+ tradedangerous/commands/buildcache_cmd.py,sha256=_8vKu9e3tQy0HEPrnG8Ts0OoQ_kF6gZPQ9EOfTUd73w,2179
28
+ tradedangerous/commands/buy_cmd.py,sha256=jfN1KwLVWAssx4MABgPD32BzP7FhhwIr2o62u6kpLc8,13597
29
+ tradedangerous/commands/commandenv.py,sha256=lzPbxhrgx4PJL_x8pRdYu22rqtL4U6kNQ5ExXTPoAao,9462
30
+ tradedangerous/commands/exceptions.py,sha256=xJib2n0YRSgrs8WhZX5IeVHM-XakS3YwfjlF8_cNx4E,3476
31
+ tradedangerous/commands/export_cmd.py,sha256=VfxwrNU_TzrSw71KrmtmXKYCBkpDGr5KRLGPXOBewnI,4405
32
+ tradedangerous/commands/import_cmd.py,sha256=PKMrO1DhOGkqAn_q9vZBxhogpFL5MHp2JyYb4qiBdq0,5633
33
+ tradedangerous/commands/local_cmd.py,sha256=tf7YMGX-vaVGNO2lvQF9EvQEN3Wj7DE9-NTSVrtaZx0,8392
34
+ tradedangerous/commands/market_cmd.py,sha256=Ig16zDuksywiiF3Exps6UuM-ZhqgbXqkW6Lu2s9xQf0,5411
35
+ tradedangerous/commands/nav_cmd.py,sha256=v245L1MxiUliITUgvWeeB4cL4UdkNO8n0CiP6ztrV54,8460
36
+ tradedangerous/commands/olddata_cmd.py,sha256=6rpPRRs4kLhV9c0sogmctVAjta7v0L0Deu999spXY2s,7888
37
+ tradedangerous/commands/parsing.py,sha256=vyfRByRVLENrtD6IQitdPlddb-f_tgde9arYkimJAEg,6717
38
+ tradedangerous/commands/rares_cmd.py,sha256=L_QoW2zIZTU9Jpavt_K2fZyu8T153nUSuVqIiz4uksQ,9207
39
+ tradedangerous/commands/run_cmd.py,sha256=HtvxKfD2ef_fUCDdUzBv9yRwd2gBOqIq4hzUAOLgcyU,47650
40
+ tradedangerous/commands/sell_cmd.py,sha256=RI8T1DWaBuQkYSy2Pjoo0Kxy5n9UgRTqtlSBE0Vg1SI,7943
41
+ tradedangerous/commands/shipvendor_cmd.py,sha256=PQXMmPin3HsAAdeBesnyDVuqAh-GATWwp2C2gnHdS9I,6918
42
+ tradedangerous/commands/station_cmd.py,sha256=pN0IuisOp_ngWE8lrUKMkLpfOO7p3DxidgTGiKOrWCE,16219
43
+ tradedangerous/commands/trade_cmd.py,sha256=3oTAsnV4ka18I7aQkgwtdQNIzS1Vt3LdisXMbrHw1WY,3031
44
+ tradedangerous/commands/update_cmd.py,sha256=2A3i8J1XGe5TOfpvKyTXon2cVzhUosiaWuekEpbAh4U,14551
45
+ tradedangerous/commands/update_gui.py,sha256=IhHXSQvLdol-i4LibOGgdvVUG9V2oS2g7Zqc60qf0YI,23318
46
+ tradedangerous/mfd/__init__.py,sha256=g8pT9Ev_le_yOeAF7sr9fUuEi8VW3u9n_qq-xLga1xw,2958
47
+ tradedangerous/mfd/saitek/__init__.py,sha256=CGgkAik87Kb5uc43G0bBFueD47bb_BydDM8qb7YQLyA,62
48
+ tradedangerous/mfd/saitek/directoutput.py,sha256=ReBzax7ttoffzH8DLXx0AS2RFLLQWOQUw1ESQUjOMGk,24840
49
+ tradedangerous/mfd/saitek/x52pro.py,sha256=EAX-3AeWik5uQ4kmlW_TNdIDVNxVwQ2yWe2Lel9JuXo,5816
50
+ tradedangerous/misc/checkpricebounds.py,sha256=BGdLuL-PTnXMPqMymqqLAQ7Cmik81-DlRtq4ckecHIw,8405
51
+ tradedangerous/misc/clipboard.py,sha256=ojlEwtufefI7GInAxLUd_pNIi1j03VQpstoPB6Om8Xg,1664
52
+ tradedangerous/misc/coord64.py,sha256=-en4M4hHMt0ZW4MahvMStRU4dAjpTfAyPx8l4oL8zY0,2322
53
+ tradedangerous/misc/derp-sentinel.py,sha256=22zyl26Q8XHvq8IJZDinJ3oKudUnByDoQ3WiWuPlCwU,779
54
+ tradedangerous/misc/diff-system-csvs.py,sha256=67K5BEDFYWCSJY17EjkUzNaLX8sOlP9aQ5US6f8WjPw,4931
55
+ tradedangerous/misc/eddb.py,sha256=mHHMIyyuJRHBtBgSou-z7rfNXkajWvvWghRPk3D5jE4,1812
56
+ tradedangerous/misc/eddn.py,sha256=RNoLCxFfEgktMPZB6k2BUxd3aM5Z6LqYi4WhI4jrRdQ,12149
57
+ tradedangerous/misc/edsc.py,sha256=LesWB0M4mMbjsH7la3H5zD-fX-0BL_nIHbLfAjWvy4A,14710
58
+ tradedangerous/misc/edsm.py,sha256=Trp1dNCHgsYppS3r49UZIIDgzantT7WfY3I-eXYj8uA,3253
59
+ tradedangerous/misc/importeddbstats.py,sha256=iLAcrFzdwiMm_MnUuaHcT_xGgZF8pfEEd1qljhhWJTU,1787
60
+ tradedangerous/misc/prices-json-exp.py,sha256=Fpm62ugP35ZBqnRs6ekYfS3GoDFYmvLD3b3SFJfaMOI,4944
61
+ tradedangerous/misc/progress.py,sha256=NKvKP1OSCTpItc1CNxDuEH2A1oGJ6aWSyCdPSAjsG9E,2120
62
+ tradedangerous/plugins/__init__.py,sha256=TL-OIptlqNENKhoFqkFeBJn_vSw8L0pVaDJgjhaTj7A,7860
63
+ tradedangerous/plugins/edapi_plug.py,sha256=5nqBYmjUceAt-KTfiBn7IEl443R1SsGLDmfVXgbcyms,42262
64
+ tradedangerous/plugins/edcd_plug.py,sha256=JuDtuEM_mN9Sz2H09-qYizM-9N3cuNjgvQy7Y-wHwKw,14412
65
+ tradedangerous/plugins/eddblink_plug.py,sha256=1SXmNdGLy-EP5qOrl4WNjcOA_tt-S2fVuGunQWKR3k4,21965
66
+ tradedangerous/plugins/edmc_batch_plug.py,sha256=rrP_lFFxWsba8DPEo0WF2EdCiMoRC7tCT8z62MIvtIo,4173
67
+ tradedangerous/plugins/journal_plug.py,sha256=5HMyoxQ7z42qj7NiL8rDxSyTN9gKikoQjyWzJLD-SYQ,23746
68
+ tradedangerous/plugins/netlog_plug.py,sha256=yUl47l9xt3kGj9oSiY_FZaDGdnQj63oa9MBtSeIy1Zo,13469
69
+ tradedangerous/plugins/spansh_plug.py,sha256=72_7aWQAxtb_xUEOaD_3oqB2DxEyhkCR1BY1EXn2-iw,26734
70
+ tradedangerous/templates/Added.csv,sha256=8o54civQCcS9y7_DBo0GX196XWRbbREQqKDYTKibsgQ,649
71
+ tradedangerous/templates/Category.csv,sha256=8xwUDcBZE25T6x6dZGlRUMTCqeDLt3a9LXU5h6hRHV8,250
72
+ tradedangerous/templates/RareItem.csv,sha256=F1RhRnTD82PiwrVUO-ai2ErGH2PTqNnQaDw5mcgljXs,10483
73
+ tradedangerous/templates/TradeDangerous.sql,sha256=VlQK7QGtEi2brGtWaIZDvKmbJ_vLocD4CJ8h_6kKptU,7808
74
+ tradedangerous-11.0.1.dist-info/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
75
+ tradedangerous-11.0.1.dist-info/METADATA,sha256=-QKii7zlT7pIPfbrIGGJYYuDbInfyI7jQsgyczIWPBM,4435
76
+ tradedangerous-11.0.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
77
+ tradedangerous-11.0.1.dist-info/entry_points.txt,sha256=pSwa-q0ob443uiKux7xFKYQl8uen66iDTnjdrQhNLx8,92
78
+ tradedangerous-11.0.1.dist-info/top_level.txt,sha256=bF29i-oEltmNICgElEKxNsg83oahJvxg3a7YrxZi9Rk,15
79
+ tradedangerous-11.0.1.dist-info/RECORD,,
@@ -1,79 +0,0 @@
1
- tradedangerous/__init__.py,sha256=5ZeypoZaM8hlh6c-yTkD8x5hZYP8q3Q8a3bVeicHr90,1122
2
- tradedangerous/cache.py,sha256=PvXo4EaKVUcU-h5akCFQpClK_zVxNu0BzGEIJf5ffB0,33848
3
- tradedangerous/cli.py,sha256=ycGkzMszwpP9OrngFIyhQbYoZ2wzRhJMTDCW1YhLrNI,4727
4
- tradedangerous/corrections.py,sha256=QMs-7MKLw2imFgIHthnwcpqWT1yJTb3CrABJw9LaKLA,1441
5
- tradedangerous/csvexport.py,sha256=OcOKe_VIgafw6rCvG3k5tM11KwwoYXMNY5DSSfCC0mU,8705
6
- tradedangerous/edscupdate.py,sha256=-aglmhmtCKYrUyYKO1SBs4xmEHafTL4CjVeAt8uproU,17337
7
- tradedangerous/edsmupdate.py,sha256=GesavwY7rI5tuoTTMrM8sjYSN50QaPsDqKR2rrVbRZk,14924
8
- tradedangerous/formatting.py,sha256=3uqO9zHOTdfgZdFfhhL32gK_jIpliYOPhJocY5C1cfU,6162
9
- tradedangerous/fs.py,sha256=zVh5dF9dnJB0WLPSGX1KlJ8Sgqff5my3wer7m_4ddwM,2530
10
- tradedangerous/gui.py,sha256=gHGiFSmprQNNYWewRVqdV22XK1EIt9eODnpgVrL3imA,44101
11
- tradedangerous/jsonprices.py,sha256=AQ2YFMc18s-KdvXAGZnYDw2bNbfBksWnM-vXRS8IP70,7013
12
- tradedangerous/mapping.py,sha256=RNjZy5hpokFVFDw_KkOUELmT4fPJC1RZiN9D8ZeAu5o,4034
13
- tradedangerous/prices.py,sha256=AcETd8b-lKwuyyx6cTud2jyoQLPZaxMuGgQNI9N-SYU,7593
14
- tradedangerous/submit-distances.py,sha256=lEHtCLUzR2QNRrgPD-PkDIzHYYHOODZVTRxDsAG-qK4,12394
15
- tradedangerous/tools.py,sha256=pp-4WtA12SVaaQHFJFOMTF7EDFRCU2mQeOhC4xoXmEk,1331
16
- tradedangerous/trade.py,sha256=vBEJZR3Bybesw9FMelcHOTRA7KqKeH-4_wqbJ4VMB_E,1779
17
- tradedangerous/tradecalc.py,sha256=GyuYZNuyfn0y0eoPbxDEI7dxTJtHmRXAKFMpiR0Z1iU,42004
18
- tradedangerous/tradedb.py,sha256=RD8oOwoGqjVRThGPrWVXhf_Hklp4SqQ08awh-cYbDdY,73457
19
- tradedangerous/tradeenv.py,sha256=8uByR4m-xzZxNSBLQnDHS4uJMPohf3mP5R_rsXnhmds,7887
20
- tradedangerous/tradeexcept.py,sha256=aZ-Y31MbkjF7lmAzBAbaMsPPE7FEEfuf4gaX2GvriDk,368
21
- tradedangerous/tradegui.py,sha256=JbGFnsWupgesk6hrcUgKSdD9NNDyo0U9gh6m3DccAwU,782
22
- tradedangerous/transfers.py,sha256=NmXXk2aF88YkAvYqc9Syt_aO6d2jJjC-OxoRFoOyQH4,9923
23
- tradedangerous/utils.py,sha256=PUPvAEqUyxYGqqQa0b_yfLAvq8YVUxK6HfdS-CxM-Lo,5186
24
- tradedangerous/version.py,sha256=ywjdWfhn1hu8HSR56vN66lbXMDuR0qaBvhQobN87l28,647
25
- tradedangerous/commands/TEMPLATE.py,sha256=7oXL124aqxGHwnb0h9yRylUiwc6M5QrRrGVrubwI1gg,2124
26
- tradedangerous/commands/__init__.py,sha256=6B0WuqkFBOll5Hj67yKDAnhmyr5ZAnHc6nzUNEUh384,9640
27
- tradedangerous/commands/buildcache_cmd.py,sha256=oJvP06fA8svnHrfrpWkHKR16cba8GIhHdMOyZqds18Y,2332
28
- tradedangerous/commands/buy_cmd.py,sha256=Hj51bi9qX9qBYRnB5nPe4euHHwzsKznRydeufru4Bqo,13556
29
- tradedangerous/commands/commandenv.py,sha256=99XMObVlgOa-78mK-x2qEru2b5grV6ARK7HFqHSykIw,9550
30
- tradedangerous/commands/exceptions.py,sha256=0DI5cLeNB2H6q8vkuyenLOyVBiBEVnwslx3Y5XhFFMA,3618
31
- tradedangerous/commands/export_cmd.py,sha256=Wxvz0drHLWBD9OeOGh_sVv-AiHi9ZavbMo5T8T6UmrU,4468
32
- tradedangerous/commands/import_cmd.py,sha256=NJiv5MQ0EE2Q0GYuJjfKMKA9-33iw1V3Ykch8oT6IW0,5683
33
- tradedangerous/commands/local_cmd.py,sha256=vXmLtX15boHG2aNOv1gqj3d--zynoZgf_WwzzSzGAgk,8551
34
- tradedangerous/commands/market_cmd.py,sha256=3WXMeqGwlwkpwmP0-R-j0TAOFvzn35Rry8jNhrRc6wk,5458
35
- tradedangerous/commands/nav_cmd.py,sha256=SWwKKzwE9RNkcPi-hPSL-sJNqzuAIBV9ArbD7w8Rxzw,8691
36
- tradedangerous/commands/olddata_cmd.py,sha256=3PhmrSrRr4vbF9hFHsoW32dN4E-tGIqENJn0sVJzzjM,8040
37
- tradedangerous/commands/parsing.py,sha256=iG53t-zNmGVceELEOJlOIovvCp4r0fuwhCYhJRpjR84,6801
38
- tradedangerous/commands/rares_cmd.py,sha256=UpkZvtJZCCQKErDkZJzFRKn4Ei1tltaMZ_DfKsFHBq0,9227
39
- tradedangerous/commands/run_cmd.py,sha256=jJMJf0DWJr0rmCCdh6khyMgFQe-hdbh7CyAtgXRQuFA,47609
40
- tradedangerous/commands/sell_cmd.py,sha256=RkmGnPfvuWXyAI3zUqjv7rD_1-NbHX5n8x3ah-Dk-FU,7873
41
- tradedangerous/commands/shipvendor_cmd.py,sha256=mAIlXoRqa2X8dkVB9Q0dYZwb21LdDqrvdAhSgTzYNCs,7023
42
- tradedangerous/commands/station_cmd.py,sha256=IFRkf-Vw4A3cLZuUsHMgTZQHiFQeh5feES3culurCnc,16412
43
- tradedangerous/commands/trade_cmd.py,sha256=ABmRIJmZeBDrJGuMLQ7_g9tvpVSNNC-0MEbbsTvUUe0,3175
44
- tradedangerous/commands/update_cmd.py,sha256=JiE12nPlCQIfZ8y28kTCSlr8T9fHM0yliwabqUEjk-Y,14583
45
- tradedangerous/commands/update_gui.py,sha256=Kd4fPy_Bo9JBZTn0nn1MVft3kioQaMXAlh1qa4vJIkw,23377
46
- tradedangerous/mfd/__init__.py,sha256=ySrPBGFZs7gzktpZBZWRoT-UoqKUldqx15ccWvNa62E,3065
47
- tradedangerous/mfd/saitek/__init__.py,sha256=IyIxv8Rd4iJKE32TD16JGTWiQYOBR0omndOvn7C1O4g,63
48
- tradedangerous/mfd/saitek/directoutput.py,sha256=-9Kt7nTa--72sPY2-qV_T727izT5m6d0vMwolPSMJyA,24949
49
- tradedangerous/mfd/saitek/x52pro.py,sha256=Xg0c0b-Waa62tnBi3ONdhmVCcR_q5YetE7qGdYMvSN8,5927
50
- tradedangerous/misc/checkpricebounds.py,sha256=7Zc2P9Ybb0dHJwJ7f0C4kPhshEc4-lVlolxP2n4uz94,8434
51
- tradedangerous/misc/clipboard.py,sha256=9EFfDC29FQXx_uTVtzDYhXsMGOObOsQaJYg8g65FjV8,1681
52
- tradedangerous/misc/coord64.py,sha256=uEseyMHa7OKj30MHF2bzc76Y58UqbqEyHuYsNFPMj3I,2368
53
- tradedangerous/misc/derp-sentinel.py,sha256=iS6yvI9LUTcf5iE6gS4iLqgsAnI0YFh2UWGlofVtlrY,779
54
- tradedangerous/misc/diff-system-csvs.py,sha256=ZrsakKFP9yk4NUhUzePqES5vxLBe6pC3dkZSTxqpsrQ,4928
55
- tradedangerous/misc/eddb.py,sha256=rjv6QzXg26UOq5iJyc7AMPX5D7WRSyQJ8A3e07hfwSw,1843
56
- tradedangerous/misc/eddn.py,sha256=MSjwc_QWAGO3PfsKA03ugGxHxxN0O2GGbtQkj2kjQtM,12156
57
- tradedangerous/misc/edsc.py,sha256=1ZcArGpDQLobbqJ9Ni0fH-gTAqZL36cRXI1hyNsii68,14979
58
- tradedangerous/misc/edsm.py,sha256=4cEBKvSQKBW8W7jfoQ5VzPB83HZgtBlJ7Ty1W-AHpP0,3459
59
- tradedangerous/misc/importeddbstats.py,sha256=_l5NI-aPxTU4mpzBEh_hyTXKZx4rRy_LZGAmIKESHa4,1785
60
- tradedangerous/misc/prices-json-exp.py,sha256=t_4B5yCGIMwtkS2gLqHwkKXovbKV97t_i_bz2e-pZn4,4942
61
- tradedangerous/misc/progress.py,sha256=-_V7E51sIYUtSxeeA1cphBEW4A_OBuH1guEDxUjikn8,2127
62
- tradedangerous/plugins/__init__.py,sha256=zCEVbTem1CAM1cOV9r96H3ikjqza3dd-XoaubE5_xkc,7868
63
- tradedangerous/plugins/edapi_plug.py,sha256=IQxfDGM9IqwuJbDZRL8RFIyGMWzd0YmeJVWUVPDA3Ik,42275
64
- tradedangerous/plugins/edcd_plug.py,sha256=ZPtRzLhcQZEiwEo3AoPyk3Uy4UmRLM6gv2Qi1s7K_Vs,14469
65
- tradedangerous/plugins/eddblink_plug.py,sha256=DXkGYLs3704REJR4KrWnsC-OQF1ghZF2sSOUGPIbNok,22056
66
- tradedangerous/plugins/edmc_batch_plug.py,sha256=3Ptr-SZqaZFR8ViIIrp9Ak7rvfU3zl11AZYBhIceN7s,4224
67
- tradedangerous/plugins/journal_plug.py,sha256=K1oIeI7E3mb04fvYLXyoAh7fOTyM9NBelibTI88MIDQ,23696
68
- tradedangerous/plugins/netlog_plug.py,sha256=Gw_HSZWpN17D--OIYEM3Vo8y9SvDOv9UwAUfY24kz28,13460
69
- tradedangerous/plugins/spansh_plug.py,sha256=NPk7Yg3sammdwjY3WenXPdyX8gBSxXSN6LUZDsl2nMc,16692
70
- tradedangerous/templates/Added.csv,sha256=8o54civQCcS9y7_DBo0GX196XWRbbREQqKDYTKibsgQ,649
71
- tradedangerous/templates/Category.csv,sha256=8xwUDcBZE25T6x6dZGlRUMTCqeDLt3a9LXU5h6hRHV8,250
72
- tradedangerous/templates/RareItem.csv,sha256=F1RhRnTD82PiwrVUO-ai2ErGH2PTqNnQaDw5mcgljXs,10483
73
- tradedangerous/templates/TradeDangerous.sql,sha256=1EiJ7cNJQKvdW4X-LQAHw3Y1POc0roKf25LJJy6jGlo,8135
74
- tradedangerous-10.17.0.dist-info/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
75
- tradedangerous-10.17.0.dist-info/METADATA,sha256=lHWSOrLqObYBndYkhkXaCjge77EWb9fhRvvljFfpGPU,4441
76
- tradedangerous-10.17.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
77
- tradedangerous-10.17.0.dist-info/entry_points.txt,sha256=pSwa-q0ob443uiKux7xFKYQl8uen66iDTnjdrQhNLx8,92
78
- tradedangerous-10.17.0.dist-info/top_level.txt,sha256=bF29i-oEltmNICgElEKxNsg83oahJvxg3a7YrxZi9Rk,15
79
- tradedangerous-10.17.0.dist-info/RECORD,,