finalcif 151__tar.gz → 152__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.
- {finalcif-151 → finalcif-152}/PKG-INFO +4 -2
- finalcif-152/finalcif/__init__.py +2 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/hkl.py +5 -1
- {finalcif-151 → finalcif-152}/finalcif/equip_property/author_loop_templates.py +25 -0
- {finalcif-151 → finalcif-152}/pyproject.toml +3 -1
- {finalcif-151 → finalcif-152}/uv.lock +506 -447
- finalcif-151/finalcif/__init__.py +0 -2
- {finalcif-151 → finalcif-152}/.gitattributes +0 -0
- {finalcif-151 → finalcif-152}/.gitignore +0 -0
- {finalcif-151 → finalcif-152}/.ruff.toml +0 -0
- {finalcif-151 → finalcif-152}/.run/Make Documentation MAC.run.xml +0 -0
- {finalcif-151 → finalcif-152}/.run/compile_ui_files.run.xml +0 -0
- {finalcif-151 → finalcif-152}/.run/make documentation Windows.run.xml +0 -0
- {finalcif-151 → finalcif-152}/CODE_OF_CONDUCT.md +0 -0
- {finalcif-151 → finalcif-152}/CONTRIBUTING.md +0 -0
- {finalcif-151 → finalcif-152}/Finalcif_installer_win.spec +0 -0
- {finalcif-151 → finalcif-152}/Finalcif_linux_onefile.spec +0 -0
- {finalcif-151 → finalcif-152}/Finalcif_mac.spec +0 -0
- {finalcif-151 → finalcif-152}/Hydrogen_solution_type.cif +0 -0
- {finalcif-151 → finalcif-152}/LICENSE +0 -0
- {finalcif-151 → finalcif-152}/README.md +0 -0
- {finalcif-151 → finalcif-152}/finalcif/app_path.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/appwindow.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/all_cif_dicts.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/atoms.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/checkcif/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/checkcif/checkcif.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/cif_dict_foo.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/cif_file_io.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/cif_order.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/cod/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/cod/deposit.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/cod/deposit_check.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/cod/deposition_list.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/cod/doi.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/cod/upload.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/cod/website_parser.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/core_dict.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/modulation_dict.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/powder_dict.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/reference.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/restraints_dict.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/text.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/cif/twin_dict.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/ciforder/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/ciforder/order.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/ciforder/order_ui.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/ciforder/order_ui.ui +0 -0
- {finalcif-151 → finalcif-152}/finalcif/datafiles/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/datafiles/bruker_data.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/datafiles/bruker_frame.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/datafiles/ccdc_mail.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/datafiles/data.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/datafiles/p4p_reader.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/datafiles/sadabs.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/datafiles/saint.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/datafiles/shelx_lst.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/datafiles/utils.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/displaymol/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/displaymol/molecule2D.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/displaymol/sdm.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/displaymol/vtk_molecule.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/equip_property/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/equip_property/equipment.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/equip_property/properties.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/equip_property/tools.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/finalcif_start.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/block_combobox.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/combobox.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/custom_classes.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/dialogs.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/edit_button.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/equipmenttable.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/file_editor.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/finalcif_gui_ui.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/finalcif_gui_ui.ui +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/import_selector.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/import_selector_ui.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/import_selector_ui.ui +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/loop_creator.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/loop_creator_ui.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/loop_creator_ui.ui +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/loops.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/mainstackwidget.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/mixins.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/new_key_dialog.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/new_key_dialog_ui.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/new_key_dialog_ui.ui +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/plaintextedit.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/playground.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/propertytable.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/spell_check_edit.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/text_templates_ui.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/text_templates_ui.ui +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/text_value_editor.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/validators.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/gui/vrf_classes.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/icon/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/icon/finalcif.png +0 -0
- {finalcif-151 → finalcif-152}/finalcif/icon/finalcif2.ico +0 -0
- {finalcif-151 → finalcif-152}/finalcif/icon/finalcif2.png +0 -0
- {finalcif-151 → finalcif-152}/finalcif/icon/multitable.ico +0 -0
- {finalcif-151 → finalcif-152}/finalcif/icon/multitable.png +0 -0
- {finalcif-151 → finalcif-152}/finalcif/icon/multitable.xcf +0 -0
- {finalcif-151 → finalcif-152}/finalcif/report/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/report/archive_report.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/report/gui/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/report/gui/mainwindow.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/report/gui/mainwindow.ui +0 -0
- {finalcif-151 → finalcif-152}/finalcif/report/mtools.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/report/references.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/report/report_text.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/report/symm.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/report/tables.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/report/templated_report.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/bootstrap/bootstrap.min.css +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/machines/D8_VENTURE.cif +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/mathml2omml.xsl +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/report.tmpl +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/report_default.docx +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/template1.docx +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/template_for_multitable.docx +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/template_text.docx +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/template_without_text.docx +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/templates.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/xsl/convert.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/template/xsl/xmltohtml.xsl +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/__init__.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/chemparse.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/download.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/dsrmath.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/misc.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/options.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/platon.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/pupdate.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/settings.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/shred.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/space_groups.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/spgr_format.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/statusbar.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif/tools/sumformula.py +0 -0
- {finalcif-151 → finalcif-152}/finalcif.exe +0 -0
- {finalcif-151 → finalcif-152}/install_requirements +0 -0
- {finalcif-151 → finalcif-152}/install_requirements.bat +0 -0
- {finalcif-151 → finalcif-152}/requirements.txt +0 -0
- {finalcif-151 → finalcif-152}/requirements_devel.txt +0 -0
- {finalcif-151 → finalcif-152}/requirements_doku.txt +0 -0
- {finalcif-151 → finalcif-152}/run_finalcif +0 -0
- {finalcif-151 → finalcif-152}/run_finalcif.bat +0 -0
- {finalcif-151 → finalcif-152}/screenshots/finalcif_checkcif.png +0 -0
- {finalcif-151 → finalcif-152}/screenshots/finalcif_details.png +0 -0
- {finalcif-151 → finalcif-152}/screenshots/finalcif_loops.png +0 -0
- {finalcif-151 → finalcif-152}/screenshots/finalcif_loops2.png +0 -0
- {finalcif-151 → finalcif-152}/screenshots/finalcif_main.png +0 -0
- {finalcif-151 → finalcif-152}/screenshots/finalcif_report.png +0 -0
- {finalcif-151 → finalcif-152}/screenshots/finalcif_responses.png +0 -0
- {finalcif-151 → finalcif-152}/update.exe +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: finalcif
|
|
3
|
-
Version:
|
|
3
|
+
Version: 152
|
|
4
4
|
Summary: CIF file editor
|
|
5
5
|
Project-URL: Homepage, https://dkratzert.de/finalcif.html
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/dkratzert/FinalCif/issues
|
|
@@ -16,7 +16,7 @@ Requires-Dist: certifi
|
|
|
16
16
|
Requires-Dist: chardet
|
|
17
17
|
Requires-Dist: crossrefapi
|
|
18
18
|
Requires-Dist: docxtpl
|
|
19
|
-
Requires-Dist: gemmi
|
|
19
|
+
Requires-Dist: gemmi
|
|
20
20
|
Requires-Dist: hatchling>=1.27.0
|
|
21
21
|
Requires-Dist: html2text
|
|
22
22
|
Requires-Dist: lxml
|
|
@@ -24,6 +24,8 @@ Requires-Dist: numpy
|
|
|
24
24
|
Requires-Dist: pefile
|
|
25
25
|
Requires-Dist: pybind11
|
|
26
26
|
Requires-Dist: pyenchant
|
|
27
|
+
Requires-Dist: pyqt5
|
|
28
|
+
Requires-Dist: pyqt5-qt5==5.15.2
|
|
27
29
|
Requires-Dist: pyside6<6.9
|
|
28
30
|
Requires-Dist: python-docx
|
|
29
31
|
Requires-Dist: qtawesome
|
|
@@ -5,6 +5,7 @@ from pathlib import Path
|
|
|
5
5
|
import gemmi
|
|
6
6
|
import numpy as np
|
|
7
7
|
from gemmi.cif import Loop, Document, Style
|
|
8
|
+
from packaging import version
|
|
8
9
|
|
|
9
10
|
Limit = namedtuple('Limit', 'h_max, h_min, k_max, k_min, l_max, l_min')
|
|
10
11
|
|
|
@@ -30,7 +31,10 @@ class HKL:
|
|
|
30
31
|
|
|
31
32
|
@property
|
|
32
33
|
def hkl_as_cif(self) -> str:
|
|
33
|
-
|
|
34
|
+
if version.parse(gemmi.__version__) < version.parse('0.5.1'):
|
|
35
|
+
return self._doc.as_string(style=Style.Simple)
|
|
36
|
+
else:
|
|
37
|
+
return self._doc.as_string(options=gemmi.cif.WriteOptions(Style.Simple))
|
|
34
38
|
|
|
35
39
|
def _add_hkl_as_loop(self) -> None:
|
|
36
40
|
"""
|
|
@@ -59,6 +59,7 @@ class AuthorLoops:
|
|
|
59
59
|
f'{self.cif_key}_phone', f'{self.cif_key}_id_orcid', f'{self.cif_key}_id_iucr',
|
|
60
60
|
f'{self.cif_key}_footnote']
|
|
61
61
|
self.settings = FinalCifSettings()
|
|
62
|
+
self._migrate_pyqt_saved_templates()
|
|
62
63
|
if app:
|
|
63
64
|
self.ui.authorEditTabWidget.setCurrentIndex(0)
|
|
64
65
|
self.contact_author_checked(self.ui.ContactAuthorCheckBox.isChecked())
|
|
@@ -67,6 +68,30 @@ class AuthorLoops:
|
|
|
67
68
|
self.show_authors_list()
|
|
68
69
|
self.make_sure_to_save_only_when_name_field_has_text()
|
|
69
70
|
|
|
71
|
+
def _migrate_pyqt_saved_templates(self) -> None:
|
|
72
|
+
"""Author entries saved by PyQt5 (pre-v151) cannot be loaded by PySide2. Load such entries
|
|
73
|
+
using PyQt5 and re-save with PySide2.
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
UPGRADE_FLAG = "v152_migrated_author_templates"
|
|
77
|
+
if self.settings.load_value_of_key(UPGRADE_FLAG):
|
|
78
|
+
return
|
|
79
|
+
|
|
80
|
+
import PyQt5.QtCore
|
|
81
|
+
pyqt_settings = PyQt5.QtCore.QSettings(self.settings.organization, self.settings.software_name)
|
|
82
|
+
|
|
83
|
+
pyqt_settings.beginGroup("authors_list")
|
|
84
|
+
for author in self.authors_list():
|
|
85
|
+
pyside_loopdata = self.author_loopdata(author)
|
|
86
|
+
pyqt_loopdata = pyqt_settings.value(author)
|
|
87
|
+
if not pyside_loopdata and isinstance(pyqt_loopdata, Author):
|
|
88
|
+
self.general_author_save(pyqt_loopdata)
|
|
89
|
+
print(f"Migrated pre-v151 saved author data for \"{author}\".")
|
|
90
|
+
pyqt_settings.endGroup()
|
|
91
|
+
|
|
92
|
+
self.settings.save_key_value(UPGRADE_FLAG, True)
|
|
93
|
+
del pyqt_settings
|
|
94
|
+
|
|
70
95
|
def connect_signals_and_slots(self) -> None:
|
|
71
96
|
self.ui.AddThisAuthorToLoopPushButton.clicked.connect(self.save_author_to_loop)
|
|
72
97
|
self.ui.AddThisAuthorToLoopPushButton_cif.clicked.connect(self.save_author_to_loop)
|
|
@@ -25,12 +25,14 @@ dependencies = [
|
|
|
25
25
|
"wheel",
|
|
26
26
|
"certifi",
|
|
27
27
|
"chardet",
|
|
28
|
-
"gemmi
|
|
28
|
+
"gemmi",
|
|
29
29
|
"html2text",
|
|
30
30
|
"lxml",
|
|
31
31
|
"pefile",
|
|
32
32
|
"pybind11",
|
|
33
33
|
"pyside6<6.9",
|
|
34
|
+
"PyQt5",
|
|
35
|
+
"PyQt5-Qt5==5.15.2",
|
|
34
36
|
"python-docx",
|
|
35
37
|
"QtAwesome",
|
|
36
38
|
"QtPy",
|