1import importlib
2import subprocess
3import sys
4
5REQUIRED_PACKAGES = {
6 "numpy": None
7}
8
9def _install_package(package_name, version_spec=None):
10 try:
11 if version_spec:
12 subprocess.check_call([sys.executable, "-m", "pip", "install", f"{package_name}{version_spec}"])
13 else:
14 subprocess.check_call([sys.executable, "-m", "pip", "install", package_name])
15 except subprocess.CalledProcessError as e:
16 print(f"Failed to install {package_name}: {e}")
17 raise
18
19def _validate_dependencies():
20 for package, version_spec in REQUIRED_PACKAGES.items():
21 try:
22 module = importlib.import_module(package)
23 if version_spec:
24 version = getattr(module, "__version__", None)
25 if version and not eval(f"'{version}' {version_spec}"):
26 _install_package(package, version_spec)
27 except ImportError:
28 _install_package(package, version_spec)
29
30_validate_dependencies()
31
32import JMOT.connect, JMOT.craft, JMOT.planet, JMOT.part, JMOT.extra, JMOT.time, JMOT.control, JMOT.misc
33__all__ = ['connect', 'craft', 'planet', 'part', 'extra', 'time', 'control', 'misc']
34__version__ = "0.3.a1"
35
36__pdoc__ = {
37 '_verify': False,
38 '_send_message_with_length': False,
39 '_receive_message_with_length': False,
40 '_convert_value': False,
41 '_parse_message_to_list': False,
42 '_send_message': False,
43 '_CONTROL_SIGNAL': False,
44 '_CRAFT_INFO_SIGNAL': False,
45 '_CRAFT_FUEL_SIGNAL': False,
46 '_CRAFT_PERFORMANCE_SIGNAL': False,
47 '_CRAFT_POSITION_SIGNAL': False,
48 '_CRAFT_ATTITUDE_SIGNAL': False,
49 '_CRAFT_VELOCITY_SIGNAL': False,
50 '_CRAFT_ORBIT_SIGNAL': False,
51 '_CRAFT_INPUT_SIGNAL': False,
52 '_CRAFT_STATUS_SIGNAL': False,
53 '_MISC_CONVERT_SIGNALS': False,
54 '_MISC_CAMERA_SIGNALS': False,
55 '_MISC_FUNK_SIGNALS': False,
56 '_PLANET_INFO_SIGNALS': False,
57 '_PLANET_ATMOSPHERE_SIGNALS': False,
58 '_PLANET_ORBIT_SIGNALS': False,
59 '_PART_SIGNALS': False,
60 '_TIME_SIGNALS': False
61}