finalcif 175__tar.gz → 176__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 (199) hide show
  1. {finalcif-175 → finalcif-176}/PKG-INFO +1 -1
  2. finalcif-176/finalcif/__init__.py +3 -0
  3. {finalcif-175 → finalcif-176}/finalcif/appwindow.py +9 -9
  4. {finalcif-175 → finalcif-176}/finalcif/gui/validators.py +10 -1
  5. finalcif-175/finalcif/__init__.py +0 -3
  6. {finalcif-175 → finalcif-176}/.gitattributes +0 -0
  7. {finalcif-175 → finalcif-176}/.githooks/pre-push +0 -0
  8. {finalcif-175 → finalcif-176}/.gitignore +0 -0
  9. {finalcif-175 → finalcif-176}/.python-version +0 -0
  10. {finalcif-175 → finalcif-176}/.ruff.toml +0 -0
  11. {finalcif-175 → finalcif-176}/.run/Make Documentation MAC.run.xml +0 -0
  12. {finalcif-175 → finalcif-176}/.run/compile_ui_files.run.xml +0 -0
  13. {finalcif-175 → finalcif-176}/.run/make documentation Windows.run.xml +0 -0
  14. {finalcif-175 → finalcif-176}/AGENTS.md +0 -0
  15. {finalcif-175 → finalcif-176}/CODE_OF_CONDUCT.md +0 -0
  16. {finalcif-175 → finalcif-176}/CONTRIBUTING.md +0 -0
  17. {finalcif-175 → finalcif-176}/Finalcif_installer_win.spec +0 -0
  18. {finalcif-175 → finalcif-176}/Finalcif_linux_onefile.spec +0 -0
  19. {finalcif-175 → finalcif-176}/Finalcif_mac.spec +0 -0
  20. {finalcif-175 → finalcif-176}/LICENSE +0 -0
  21. {finalcif-175 → finalcif-176}/README.md +0 -0
  22. {finalcif-175 → finalcif-176}/finalcif/app_path.py +0 -0
  23. {finalcif-175 → finalcif-176}/finalcif/cif/__init__.py +0 -0
  24. {finalcif-175 → finalcif-176}/finalcif/cif/all_cif_dicts.py +0 -0
  25. {finalcif-175 → finalcif-176}/finalcif/cif/atoms.py +0 -0
  26. {finalcif-175 → finalcif-176}/finalcif/cif/checkcif/__init__.py +0 -0
  27. {finalcif-175 → finalcif-176}/finalcif/cif/checkcif/checkcif.py +0 -0
  28. {finalcif-175 → finalcif-176}/finalcif/cif/cif_dict_foo.py +0 -0
  29. {finalcif-175 → finalcif-176}/finalcif/cif/cif_file_io.py +0 -0
  30. {finalcif-175 → finalcif-176}/finalcif/cif/cif_keyword_mapping.py +0 -0
  31. {finalcif-175 → finalcif-176}/finalcif/cif/cif_order.py +0 -0
  32. {finalcif-175 → finalcif-176}/finalcif/cif/cod/__init__.py +0 -0
  33. {finalcif-175 → finalcif-176}/finalcif/cif/cod/deposit.py +0 -0
  34. {finalcif-175 → finalcif-176}/finalcif/cif/cod/deposit_check.py +0 -0
  35. {finalcif-175 → finalcif-176}/finalcif/cif/cod/deposition_list.py +0 -0
  36. {finalcif-175 → finalcif-176}/finalcif/cif/cod/doi.py +0 -0
  37. {finalcif-175 → finalcif-176}/finalcif/cif/cod/upload.py +0 -0
  38. {finalcif-175 → finalcif-176}/finalcif/cif/cod/website_parser.py +0 -0
  39. {finalcif-175 → finalcif-176}/finalcif/cif/core_dict.py +0 -0
  40. {finalcif-175 → finalcif-176}/finalcif/cif/hkl.py +0 -0
  41. {finalcif-175 → finalcif-176}/finalcif/cif/modulation_dict.py +0 -0
  42. {finalcif-175 → finalcif-176}/finalcif/cif/powder_dict.py +0 -0
  43. {finalcif-175 → finalcif-176}/finalcif/cif/reference.py +0 -0
  44. {finalcif-175 → finalcif-176}/finalcif/cif/restraints_dict.py +0 -0
  45. {finalcif-175 → finalcif-176}/finalcif/cif/text.py +0 -0
  46. {finalcif-175 → finalcif-176}/finalcif/cif/twin_dict.py +0 -0
  47. {finalcif-175 → finalcif-176}/finalcif/cif/vrf_entry.py +0 -0
  48. {finalcif-175 → finalcif-176}/finalcif/ciforder/__init__.py +0 -0
  49. {finalcif-175 → finalcif-176}/finalcif/ciforder/order.py +0 -0
  50. {finalcif-175 → finalcif-176}/finalcif/ciforder/order_ui.py +0 -0
  51. {finalcif-175 → finalcif-176}/finalcif/ciforder/order_ui.ui +0 -0
  52. {finalcif-175 → finalcif-176}/finalcif/datafiles/__init__.py +0 -0
  53. {finalcif-175 → finalcif-176}/finalcif/datafiles/bruker_data.py +0 -0
  54. {finalcif-175 → finalcif-176}/finalcif/datafiles/bruker_frame.py +0 -0
  55. {finalcif-175 → finalcif-176}/finalcif/datafiles/ccdc_mail.py +0 -0
  56. {finalcif-175 → finalcif-176}/finalcif/datafiles/data.py +0 -0
  57. {finalcif-175 → finalcif-176}/finalcif/datafiles/p4p_reader.py +0 -0
  58. {finalcif-175 → finalcif-176}/finalcif/datafiles/sadabs.py +0 -0
  59. {finalcif-175 → finalcif-176}/finalcif/datafiles/saint.py +0 -0
  60. {finalcif-175 → finalcif-176}/finalcif/datafiles/shelx_lst.py +0 -0
  61. {finalcif-175 → finalcif-176}/finalcif/datafiles/utils.py +0 -0
  62. {finalcif-175 → finalcif-176}/finalcif/equip_property/__init__.py +0 -0
  63. {finalcif-175 → finalcif-176}/finalcif/equip_property/author_loop_templates.py +0 -0
  64. {finalcif-175 → finalcif-176}/finalcif/equip_property/equipment.py +0 -0
  65. {finalcif-175 → finalcif-176}/finalcif/equip_property/properties.py +0 -0
  66. {finalcif-175 → finalcif-176}/finalcif/equip_property/tools.py +0 -0
  67. {finalcif-175 → finalcif-176}/finalcif/finalcif_start.py +0 -0
  68. {finalcif-175 → finalcif-176}/finalcif/gui/__init__.py +0 -0
  69. {finalcif-175 → finalcif-176}/finalcif/gui/block_combobox.py +0 -0
  70. {finalcif-175 → finalcif-176}/finalcif/gui/checkcif_browser.py +0 -0
  71. {finalcif-175 → finalcif-176}/finalcif/gui/cif_table_model.py +0 -0
  72. {finalcif-175 → finalcif-176}/finalcif/gui/cif_table_view.py +0 -0
  73. {finalcif-175 → finalcif-176}/finalcif/gui/combobox.py +0 -0
  74. {finalcif-175 → finalcif-176}/finalcif/gui/custom_classes.py +0 -0
  75. {finalcif-175 → finalcif-176}/finalcif/gui/dialogs.py +0 -0
  76. {finalcif-175 → finalcif-176}/finalcif/gui/edit_button.py +0 -0
  77. {finalcif-175 → finalcif-176}/finalcif/gui/equipmenttable.py +0 -0
  78. {finalcif-175 → finalcif-176}/finalcif/gui/file_editor.py +0 -0
  79. {finalcif-175 → finalcif-176}/finalcif/gui/finalcif_gui_ui.py +0 -0
  80. {finalcif-175 → finalcif-176}/finalcif/gui/finalcif_gui_ui.ui +0 -0
  81. {finalcif-175 → finalcif-176}/finalcif/gui/import_selector.py +0 -0
  82. {finalcif-175 → finalcif-176}/finalcif/gui/import_selector_ui.py +0 -0
  83. {finalcif-175 → finalcif-176}/finalcif/gui/import_selector_ui.ui +0 -0
  84. {finalcif-175 → finalcif-176}/finalcif/gui/loop_creator.py +0 -0
  85. {finalcif-175 → finalcif-176}/finalcif/gui/loop_creator_ui.py +0 -0
  86. {finalcif-175 → finalcif-176}/finalcif/gui/loop_creator_ui.ui +0 -0
  87. {finalcif-175 → finalcif-176}/finalcif/gui/loops.py +0 -0
  88. {finalcif-175 → finalcif-176}/finalcif/gui/mainstackwidget.py +0 -0
  89. {finalcif-175 → finalcif-176}/finalcif/gui/mixins.py +0 -0
  90. {finalcif-175 → finalcif-176}/finalcif/gui/new_key_dialog.py +0 -0
  91. {finalcif-175 → finalcif-176}/finalcif/gui/new_key_dialog_ui.py +0 -0
  92. {finalcif-175 → finalcif-176}/finalcif/gui/new_key_dialog_ui.ui +0 -0
  93. {finalcif-175 → finalcif-176}/finalcif/gui/plaintextedit.py +0 -0
  94. {finalcif-175 → finalcif-176}/finalcif/gui/playground.py +0 -0
  95. {finalcif-175 → finalcif-176}/finalcif/gui/propertytable.py +0 -0
  96. {finalcif-175 → finalcif-176}/finalcif/gui/shelx_navigation.py +0 -0
  97. {finalcif-175 → finalcif-176}/finalcif/gui/single_line_textedit.py +0 -0
  98. {finalcif-175 → finalcif-176}/finalcif/gui/spell_check_edit.py +0 -0
  99. {finalcif-175 → finalcif-176}/finalcif/gui/squeeze_dialog.py +0 -0
  100. {finalcif-175 → finalcif-176}/finalcif/gui/syntax_highlighter.py +0 -0
  101. {finalcif-175 → finalcif-176}/finalcif/gui/text_templates_ui.py +0 -0
  102. {finalcif-175 → finalcif-176}/finalcif/gui/text_templates_ui.ui +0 -0
  103. {finalcif-175 → finalcif-176}/finalcif/gui/text_value_editor.py +0 -0
  104. {finalcif-175 → finalcif-176}/finalcif/gui/timers.py +0 -0
  105. {finalcif-175 → finalcif-176}/finalcif/gui/vrf_classes.py +0 -0
  106. {finalcif-175 → finalcif-176}/finalcif/gui/vzs_viewer.py +0 -0
  107. {finalcif-175 → finalcif-176}/finalcif/icon/__init__.py +0 -0
  108. {finalcif-175 → finalcif-176}/finalcif/icon/finalcif.png +0 -0
  109. {finalcif-175 → finalcif-176}/finalcif/icon/finalcif2.ico +0 -0
  110. {finalcif-175 → finalcif-176}/finalcif/icon/finalcif2.png +0 -0
  111. {finalcif-175 → finalcif-176}/finalcif/icon/multitable.ico +0 -0
  112. {finalcif-175 → finalcif-176}/finalcif/icon/multitable.png +0 -0
  113. {finalcif-175 → finalcif-176}/finalcif/icon/multitable.xcf +0 -0
  114. {finalcif-175 → finalcif-176}/finalcif/report/__init__.py +0 -0
  115. {finalcif-175 → finalcif-176}/finalcif/report/archive_report.py +0 -0
  116. {finalcif-175 → finalcif-176}/finalcif/report/gui/__init__.py +0 -0
  117. {finalcif-175 → finalcif-176}/finalcif/report/gui/mainwindow.py +0 -0
  118. {finalcif-175 → finalcif-176}/finalcif/report/gui/mainwindow.ui +0 -0
  119. {finalcif-175 → finalcif-176}/finalcif/report/mtools.py +0 -0
  120. {finalcif-175 → finalcif-176}/finalcif/report/references.py +0 -0
  121. {finalcif-175 → finalcif-176}/finalcif/report/report_text.py +0 -0
  122. {finalcif-175 → finalcif-176}/finalcif/report/symm.py +0 -0
  123. {finalcif-175 → finalcif-176}/finalcif/report/tables.py +0 -0
  124. {finalcif-175 → finalcif-176}/finalcif/report/templated_report.py +0 -0
  125. {finalcif-175 → finalcif-176}/finalcif/template/__init__.py +0 -0
  126. {finalcif-175 → finalcif-176}/finalcif/template/bootstrap/bootstrap.min.css +0 -0
  127. {finalcif-175 → finalcif-176}/finalcif/template/machines/D8_VENTURE.cif +0 -0
  128. {finalcif-175 → finalcif-176}/finalcif/template/mathml2omml.xsl +0 -0
  129. {finalcif-175 → finalcif-176}/finalcif/template/miew/LICENSES +0 -0
  130. {finalcif-175 → finalcif-176}/finalcif/template/miew/Miew.css +0 -0
  131. {finalcif-175 → finalcif-176}/finalcif/template/miew/Miew.min.js +0 -0
  132. {finalcif-175 → finalcif-176}/finalcif/template/miew/lodash.min.js +0 -0
  133. {finalcif-175 → finalcif-176}/finalcif/template/miew/three.js +0 -0
  134. {finalcif-175 → finalcif-176}/finalcif/template/report.tex +0 -0
  135. {finalcif-175 → finalcif-176}/finalcif/template/report.tmpl +0 -0
  136. {finalcif-175 → finalcif-176}/finalcif/template/report2.tex +0 -0
  137. {finalcif-175 → finalcif-176}/finalcif/template/report_default.docx +0 -0
  138. {finalcif-175 → finalcif-176}/finalcif/template/report_fastmolwidget.tmpl +0 -0
  139. {finalcif-175 → finalcif-176}/finalcif/template/template1.docx +0 -0
  140. {finalcif-175 → finalcif-176}/finalcif/template/template_for_multitable.docx +0 -0
  141. {finalcif-175 → finalcif-176}/finalcif/template/template_text.docx +0 -0
  142. {finalcif-175 → finalcif-176}/finalcif/template/template_without_text.docx +0 -0
  143. {finalcif-175 → finalcif-176}/finalcif/template/templates.py +0 -0
  144. {finalcif-175 → finalcif-176}/finalcif/template/unicode2latex/FakePlasTeX/FakeContext.py +0 -0
  145. {finalcif-175 → finalcif-176}/finalcif/template/unicode2latex/FakePlasTeX/FakeTokenizer.py +0 -0
  146. {finalcif-175 → finalcif-176}/finalcif/template/unicode2latex/FakePlasTeX/README.md +0 -0
  147. {finalcif-175 → finalcif-176}/finalcif/template/unicode2latex/FakePlasTeX/TokenizerPassThru.py +0 -0
  148. {finalcif-175 → finalcif-176}/finalcif/template/unicode2latex/LICENSE +0 -0
  149. {finalcif-175 → finalcif-176}/finalcif/template/unicode2latex/__init__.py +0 -0
  150. {finalcif-175 → finalcif-176}/finalcif/template/unicode2latex/u2l.py +0 -0
  151. {finalcif-175 → finalcif-176}/finalcif/template/unicode2latex/unicode-math-table.tex +0 -0
  152. {finalcif-175 → finalcif-176}/finalcif/template/unicode2latex/unicode-math-xetex.sty +0 -0
  153. {finalcif-175 → finalcif-176}/finalcif/template/xsl/convert.py +0 -0
  154. {finalcif-175 → finalcif-176}/finalcif/template/xsl/xmltohtml.xsl +0 -0
  155. {finalcif-175 → finalcif-176}/finalcif/template/xsl/xmltolatex.xsl +0 -0
  156. {finalcif-175 → finalcif-176}/finalcif/tools/__init__.py +0 -0
  157. {finalcif-175 → finalcif-176}/finalcif/tools/chemparse.py +0 -0
  158. {finalcif-175 → finalcif-176}/finalcif/tools/download.py +0 -0
  159. {finalcif-175 → finalcif-176}/finalcif/tools/dsrmath.py +0 -0
  160. {finalcif-175 → finalcif-176}/finalcif/tools/formal_charge.py +0 -0
  161. {finalcif-175 → finalcif-176}/finalcif/tools/misc.py +0 -0
  162. {finalcif-175 → finalcif-176}/finalcif/tools/mol_file_writer.py +0 -0
  163. {finalcif-175 → finalcif-176}/finalcif/tools/options.py +0 -0
  164. {finalcif-175 → finalcif-176}/finalcif/tools/platon.py +0 -0
  165. {finalcif-175 → finalcif-176}/finalcif/tools/pupdate.py +0 -0
  166. {finalcif-175 → finalcif-176}/finalcif/tools/selfupdate.py +0 -0
  167. {finalcif-175 → finalcif-176}/finalcif/tools/settings.py +0 -0
  168. {finalcif-175 → finalcif-176}/finalcif/tools/shred.py +0 -0
  169. {finalcif-175 → finalcif-176}/finalcif/tools/space_groups.py +0 -0
  170. {finalcif-175 → finalcif-176}/finalcif/tools/spgr_format.py +0 -0
  171. {finalcif-175 → finalcif-176}/finalcif/tools/squeeze.py +0 -0
  172. {finalcif-175 → finalcif-176}/finalcif/tools/statusbar.py +0 -0
  173. {finalcif-175 → finalcif-176}/finalcif/tools/sumformula.py +0 -0
  174. {finalcif-175 → finalcif-176}/finalcif/tools/z_from_packing.py +0 -0
  175. {finalcif-175 → finalcif-176}/finalcif.exe +0 -0
  176. {finalcif-175 → finalcif-176}/platon/README.txt +0 -0
  177. {finalcif-175 → finalcif-176}/platon/compile_platon.bat +0 -0
  178. {finalcif-175 → finalcif-176}/platon/platon_special.exe +0 -0
  179. {finalcif-175 → finalcif-176}/platon/platon_special.f +0 -0
  180. {finalcif-175 → finalcif-176}/pylock.toml +0 -0
  181. {finalcif-175 → finalcif-176}/pyproject.toml +0 -0
  182. {finalcif-175 → finalcif-176}/run_and_capture.py +0 -0
  183. {finalcif-175 → finalcif-176}/run_finalcif +0 -0
  184. {finalcif-175 → finalcif-176}/run_finalcif.bat +0 -0
  185. {finalcif-175 → finalcif-176}/screenshots/finalcif_checkcif.png +0 -0
  186. {finalcif-175 → finalcif-176}/screenshots/finalcif_details.png +0 -0
  187. {finalcif-175 → finalcif-176}/screenshots/finalcif_loops.png +0 -0
  188. {finalcif-175 → finalcif-176}/screenshots/finalcif_loops2.png +0 -0
  189. {finalcif-175 → finalcif-176}/screenshots/finalcif_main.png +0 -0
  190. {finalcif-175 → finalcif-176}/screenshots/finalcif_report.png +0 -0
  191. {finalcif-175 → finalcif-176}/screenshots/finalcif_responses.png +0 -0
  192. {finalcif-175 → finalcif-176}/screenshots/loops_column_buttons.png +0 -0
  193. {finalcif-175 → finalcif-176}/uv.lock +0 -0
  194. {finalcif-175 → finalcif-176}/work/compare_z_platon.py +0 -0
  195. {finalcif-175 → finalcif-176}/work/diagnose_1519506.py +0 -0
  196. {finalcif-175 → finalcif-176}/work/diagnose_z.py +0 -0
  197. {finalcif-175 → finalcif-176}/work/investigate_failures.py +0 -0
  198. {finalcif-175 → finalcif-176}/work/validate_cod.py +0 -0
  199. {finalcif-175 → finalcif-176}/work/validate_zprime.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: finalcif
3
- Version: 175
3
+ Version: 176
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
@@ -0,0 +1,3 @@
1
+
2
+ VERSION = 176
3
+ __version__ = VERSION
@@ -1311,15 +1311,15 @@ class AppWindow(QMainWindow):
1311
1311
  self.validation_response_forms_list.append(vrf)
1312
1312
  table.place_vrf_widget(insert_pos, vrf)
1313
1313
 
1314
- if html_entries:
1315
- n = len(html_entries)
1316
- form_noun = 'form' if n == 1 else 'forms'
1317
- self.ui.CheckCifLogPlainTextEdit.appendHtml(
1318
- f'<br><b>{n} validation response forms {form_noun} added to the main table.</b>')
1319
- else:
1320
- levels = 'A, B or C' if self.ui.explainCandGAlertsCheckBox.isChecked() else 'A or B'
1321
- self.ui.CheckCifLogPlainTextEdit.appendHtml(
1322
- f'<br><b>No level {levels} alerts require a response.</b>')
1314
+ self.ui.CheckCifLogPlainTextEdit.appendHtml(self._vrf_summary_message(len(html_entries)))
1315
+
1316
+ def _vrf_summary_message(self, count: int) -> str:
1317
+ """Return the log message summarizing how many VRFs a CheckCIF run produced."""
1318
+ if count:
1319
+ form_noun = 'form' if count == 1 else 'forms'
1320
+ return f'<br><b>{count} validation response {form_noun} added to the main table.</b>'
1321
+ levels = 'A, B or C' if self.ui.explainCAlertsCheckBox.isChecked() else 'A or B'
1322
+ return f'<br><b>No level {levels} alerts require a response.</b>'
1323
1323
 
1324
1324
  def _vrf_insert_position(self) -> int:
1325
1325
  """Return the row index just after the last existing ``_vrf_*`` row in the main table.
@@ -147,6 +147,15 @@ class Textlimits:
147
147
  return False
148
148
 
149
149
 
150
+ class AnyTextLimits:
151
+ def __init__(self, help_text: str | None = None):
152
+ self.valid = self.validate_cif_key
153
+ self.help_text = help_text or 'Any text is allowed.'
154
+
155
+ def validate_cif_key(self, value: str) -> bool:
156
+ return True
157
+
158
+
150
159
  validators: dict[str, BaseLimits] = {
151
160
  '_database_code_depnum_ccdc_archive' : Integerlimits(lower=0, upper=inf),
152
161
  '_cell_measurement_reflns_used' : Integerlimits(lower=0, upper=inf),
@@ -279,7 +288,7 @@ validators: dict[str, BaseLimits] = {
279
288
  'DGRS']),
280
289
  '_atom_site_refinement_flags_adp' : Textlimits(options=['None', 'T', 'U', 'TU']),
281
290
  '_atom_site_refinement_flags_occupancy': Textlimits(options=['None', 'P']),
282
- '_atom_site_disorder_assembly' : Textlimits(options=['A', 'B', 'S']),
291
+ '_atom_site_disorder_assembly' : AnyTextLimits(),
283
292
  '_atom_site_aniso_U_11' : Floatlimits(),
284
293
  '_atom_site_aniso_U_22' : Floatlimits(),
285
294
  '_atom_site_aniso_U_33' : Floatlimits(),
@@ -1,3 +0,0 @@
1
-
2
- VERSION = 175
3
- __version__ = VERSION
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes