MoleditPy 1.16.0a2__tar.gz → 1.16.1a1__tar.gz

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.
Files changed (60) hide show
  1. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/PKG-INFO +1 -2
  2. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/pyproject.toml +1 -2
  3. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/MoleditPy.egg-info/PKG-INFO +1 -2
  4. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/constants.py +1 -1
  5. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_main_init.py +29 -6
  6. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/README.md +0 -0
  7. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/setup.cfg +0 -0
  8. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/MoleditPy.egg-info/SOURCES.txt +0 -0
  9. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/MoleditPy.egg-info/dependency_links.txt +0 -0
  10. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/MoleditPy.egg-info/entry_points.txt +0 -0
  11. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/MoleditPy.egg-info/requires.txt +0 -0
  12. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/MoleditPy.egg-info/top_level.txt +0 -0
  13. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/__init__.py +0 -0
  14. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/__main__.py +0 -0
  15. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/main.py +0 -0
  16. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/__init__.py +0 -0
  17. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/about_dialog.py +0 -0
  18. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/align_plane_dialog.py +0 -0
  19. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/alignment_dialog.py +0 -0
  20. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/analysis_window.py +0 -0
  21. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/angle_dialog.py +0 -0
  22. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/assets/icon.icns +0 -0
  23. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/assets/icon.ico +0 -0
  24. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/assets/icon.png +0 -0
  25. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/atom_item.py +0 -0
  26. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/bond_item.py +0 -0
  27. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/bond_length_dialog.py +0 -0
  28. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/calculation_worker.py +0 -0
  29. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/color_settings_dialog.py +0 -0
  30. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/constrained_optimization_dialog.py +0 -0
  31. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/custom_interactor_style.py +0 -0
  32. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/custom_qt_interactor.py +0 -0
  33. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/dialog3_d_picking_mixin.py +0 -0
  34. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/dihedral_dialog.py +0 -0
  35. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window.py +0 -0
  36. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_app_state.py +0 -0
  37. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_compute.py +0 -0
  38. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_dialog_manager.py +0 -0
  39. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_edit_3d.py +0 -0
  40. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_edit_actions.py +0 -0
  41. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_export.py +0 -0
  42. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_molecular_parsers.py +0 -0
  43. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_project_io.py +0 -0
  44. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_string_importers.py +0 -0
  45. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_ui_manager.py +0 -0
  46. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_view_3d.py +0 -0
  47. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/main_window_view_loaders.py +0 -0
  48. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/mirror_dialog.py +0 -0
  49. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/molecular_data.py +0 -0
  50. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/molecule_scene.py +0 -0
  51. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/move_group_dialog.py +0 -0
  52. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/periodic_table_dialog.py +0 -0
  53. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/planarize_dialog.py +0 -0
  54. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/settings_dialog.py +0 -0
  55. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/template_preview_item.py +0 -0
  56. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/template_preview_view.py +0 -0
  57. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/translation_dialog.py +0 -0
  58. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/user_template_dialog.py +0 -0
  59. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/src/moleditpy/modules/zoomable_view.py +0 -0
  60. {moleditpy-1.16.0a2 → moleditpy-1.16.1a1}/tests/test_project_io_wrappers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: MoleditPy
3
- Version: 1.16.0a2
3
+ Version: 1.16.1a1
4
4
  Summary: A cross-platform, simple, and intuitive molecular structure editor built in Python. It allows 2D molecular drawing and 3D structure visualization. It supports exporting structure files for input to DFT calculation software.
5
5
  Author-email: HiroYokoyama <titech.yoko.hiro@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/HiroYokoyama/python_molecular_editor
@@ -15,7 +15,6 @@ Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
17
  Classifier: Programming Language :: Python :: 3.13
18
- Classifier: License :: OSI Approved :: Apache Software License
19
18
  Requires-Python: <3.14,>=3.9
20
19
  Description-Content-Type: text/markdown
21
20
  Requires-Dist: numpy
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  name = "MoleditPy"
7
7
 
8
- version = "1.16.0a2"
8
+ version = "1.16.1a1"
9
9
 
10
10
  authors = [
11
11
  { name="HiroYokoyama", email="titech.yoko.hiro@gmail.com" },
@@ -28,7 +28,6 @@ classifiers = [
28
28
  "Programming Language :: Python :: 3.11",
29
29
  "Programming Language :: Python :: 3.12",
30
30
  "Programming Language :: Python :: 3.13",
31
- "License :: OSI Approved :: Apache Software License"
32
31
  ]
33
32
 
34
33
  dependencies = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: MoleditPy
3
- Version: 1.16.0a2
3
+ Version: 1.16.1a1
4
4
  Summary: A cross-platform, simple, and intuitive molecular structure editor built in Python. It allows 2D molecular drawing and 3D structure visualization. It supports exporting structure files for input to DFT calculation software.
5
5
  Author-email: HiroYokoyama <titech.yoko.hiro@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/HiroYokoyama/python_molecular_editor
@@ -15,7 +15,6 @@ Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
17
  Classifier: Programming Language :: Python :: 3.13
18
- Classifier: License :: OSI Approved :: Apache Software License
19
18
  Requires-Python: <3.14,>=3.9
20
19
  Description-Content-Type: text/markdown
21
20
  Requires-Dist: numpy
@@ -4,7 +4,7 @@ from PyQt6.QtGui import QFont, QColor
4
4
  from rdkit import Chem
5
5
 
6
6
  #Version
7
- VERSION = '1.16.0a2'
7
+ VERSION = '1.16.1a1'
8
8
 
9
9
  ATOM_RADIUS = 18
10
10
  BOND_OFFSET = 3.5
@@ -62,15 +62,38 @@ def detect_system_dark_mode():
62
62
  except Exception:
63
63
  pass
64
64
 
65
- # macOS: 'defaults read -g AppleInterfaceStyle' returns 'Dark' in dark mode
65
+ def detect_system_theme():
66
+ """OSの優先テーマ設定を 'dark', 'light', または None として返す。
67
+
68
+ This is a best-effort, cross-platform check.
69
+ """
70
+ try:
71
+ # Windows: AppsUseLightTheme (0 = dark, 1 = light)
72
+ if platform.system() == 'Windows' and winreg is not None:
73
+ try:
74
+ with winreg.OpenKey(winreg.HKEY_CURRENT_USER,
75
+ r'Software\Microsoft\Windows\CurrentVersion\Themes\Personalize') as k:
76
+ val, _ = winreg.QueryValueEx(k, 'AppsUseLightTheme')
77
+ return 'dark' if int(val) == 0 else 'light'
78
+ except Exception:
79
+ pass
80
+
81
+ # macOS: 'defaults read -g AppleInterfaceStyle'
66
82
  if platform.system() == 'Darwin':
67
83
  try:
68
- p = subprocess.run(['defaults', 'read', '-g', 'AppleInterfaceStyle'], capture_output=True, text=True)
69
- if p.returncode == 0 and p.stdout.strip().lower() == 'dark':
70
- return True
71
- # Key absence implies light mode
72
- return False
84
+ # 'defaults read ...' が成功すればダークモード
85
+ p = subprocess.run(
86
+ ['defaults', 'read', '-g', 'AppleInterfaceStyle'],
87
+ capture_output=True, text=True, check=True, encoding='utf-8'
88
+ )
89
+ if p.stdout.strip().lower() == 'dark':
90
+ return 'dark'
91
+
92
+ except subprocess.CalledProcessError:
93
+ # コマンド失敗 (キーが存在しない) = ライトモード
94
+ return 'light'
73
95
  except Exception:
96
+ # その他のエラー
74
97
  pass
75
98
 
76
99
  # Linux / GNOME: try color-scheme gsetting; fallback to gtk-theme detection
File without changes
File without changes