1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-04-13 07:47:14 +03:00

Document allowed imports for PLUGINS

* List added in 'Available imports' section of PLUGINS.md
* Various *.py files now have comments about things being allowed for
 plugin import.
This commit is contained in:
Athanasius 2020-07-12 19:25:47 +01:00
parent 63f5db3785
commit 71bb14a737
6 changed files with 32 additions and 4 deletions

View File

@ -21,6 +21,32 @@ Plugins are python files. The plugin folder must have a file named `load.py`
that must provide one module level function and optionally provide a few
others.
---
### Available imports
**`import`ing anything from the core EDMarketConnector code that is not
explicitly mentioned here is unsupported and may lead to your plugin
breaking with future code changes.**
`from config import appname, applongname, appcmdname, appversion
, copyright, config` - to access config.
`from prefs import prefsVersion` - to allow for versioned preferences.
`from companion import category_map` - Or any of the other static date
contained therein. NB: There's a plan to move such to a `data` module.
`import plug` - Mostly for using `plug.show_error()`. Relying on anything
else isn't supported.
```python
from ttkHyperlinkLabel import HyperlinkLabel
import myNotebook as nb
```
For creating UI elements.
---
### Startup
EDMC will import the `load.py` file as a module and then call the
`plugin_start3()` function.
@ -282,7 +308,7 @@ Frontier's servers.
docked and the station has the shipyard service.
- `is_beta` is a `bool` denoting if data came from a beta version of the game.
#### Plugin-specific events.
#### Plugin-specific events
```python
def edsm_notify_system(reply):

View File

@ -48,7 +48,7 @@ URL_SHIPYARD= '/shipyard'
# Map values reported by the Companion interface to names displayed in-game
# May be imported by plugins
category_map = {
'Narcotics' : 'Legal Drugs',
'Slaves' : 'Slavery',

View File

@ -4,7 +4,7 @@ from os import getenv, makedirs, mkdir, pardir
from os.path import expanduser, dirname, exists, isdir, join, normpath
from sys import platform
# Any of these may be imported by plugins
appname = 'EDMarketConnector'
applongname = 'E:D Market Connector'
appcmdname = 'EDMC'

View File

@ -10,6 +10,7 @@ from sys import platform
import tkinter as tk
from tkinter import ttk
# Entire file may be imported by plugins
# Can't do this with styles on OSX - http://www.tkdocs.com/tutorial/styles.html#whydifficult
if platform == 'darwin':

View File

@ -23,7 +23,7 @@ import plug
# 'new' preferences, or not.
###########################################################################
# May be imported by plugins
class PrefsVersion(object):
versions = {
'0.0.0.0': 1,

View File

@ -18,6 +18,7 @@ if platform == 'win32':
# underline: If True/False the text is always/never underlined. If None (the default) the text is underlined only on hover.
# popup_copy: Whether right-click on non-empty label text pops up a context menu with a 'Copy' option. Defaults to no context menu. If popup_copy is a function it will be called with the current label text and should return a boolean.
#
# May be imported by plugins
class HyperlinkLabel(platform == 'darwin' and tk.Label or ttk.Label, object):
def __init__(self, master=None, **kw):