-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathCHANGELOG
2377 lines (2318 loc) · 108 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
cod-tools (unreleased)
* ...
cod-tools (3.10.0)
* Added:
- COD::CIF::Data::CIF2COD:
- added the 'use_literal_newline' option to the concat_text_field()
subroutine.
- added the 'use_literal_newline_in_text_column' option to the cif2cod()
subroutine.
- dependency installer for Fedora 40.
- dependency installer for Ubuntu 24.04.
* Changed:
- COD::CIF::Data::CIF2COD:
- updated the recognition and handling of IUCr journals in the
get_coeditor_code() subroutine.
- clarified option descriptions of the 'cif2cod' script.
- sdf_add_cod_data:
- rewrote the script in Perl.
- update the script to replace Unicode whitespace symbols with regular
spaces.
- improved the handling of incorrectly looped chemical names.
- cif2cod:
- updated the help message with new URLs of the IUCr DVN test file.
* Fixed:
- updated the tools/mkdiffdepend script to read the input file list from
STDIN when no filenames are provided as command-line arguments.
- COD::CIF::Parser::Yapp:
- corrected the list of ASCII characters that are not allowed to appear
in CIF 1.1 files.
- corrected the DOS EOF (^Z, Ctrl-Z) character replacement logic to
only affect unquoted values.
- started treating DOS EOF (^Z, Ctrl-Z) character as an error by
default.
- started reporting invalid CIF 1.1 characters in CIF comments.
- COD::CIF::DDL::DDLm::Import:
- fixed an infinite recursion bug get_child_frames() which arises in
rare situations when the Head category has the same name as the
dictionary.
- COD::CIF::Unicode2CIF:
- fixed the decoding of accented characters sequences that consists of
a base character encoded as a numeric character reference and a single
combining character encoded as a CIF special code.
- updated the encode_non_cif_characters() subroutine to also encode
ASCII characters that are not permitted to appear in CIF files.
- cif.c:
- updated the datablock_print_tag_values() function to only assign
buffer space for an additional separator if the data block name
is actually provided.
- cif2cod:
- fixed a character escape issue related to the 'text' field which
caused invalid SQL output with certain input.
* Removed:
- dependency installer for Fedora 38.
cod-tools (3.9.0)
* Added:
- cif_set_value:
- the '--add-tag' option.
- cif_split:
- the '--uniquify-file-names' option.
- cif_mark_disorder:
- the '--reconstruct-symmetry' and '--uniquify-atoms' options as well
as their negations. These options allow to optionally restore the
full unit cell before carrying out the disorder site detection.
- the '--die-on-errors', '--die-on-warnings', '--die-on-notes' options
and their negations.
- the COD::CIF::Data::MarkDisorder module.
- COD::CIF::Tags::DictTags:
- added data names from the 'cif_iucr.dic' dictionary version 1.2 to
the global '@tag_list' variable.
* Changed:
- COD::CIF::Data::CIF2COD:
- added 'sgNumber' to the list of default data fields.
- COD::CIF::DDL:
- started setting data item '_units.code' value 'none' for data items
without explicit units.
- implemented partial handling of the '_list_reference' data item in
the ddl1_to_ddlm() subroutine.
- implemented handling of the '_list_link_parent', '_list_link_child',
'_list_mandatory', '_related_item' and '_related_function' data items.
- updated the ddl1_to_ddlm() subroutine to output DDLm dictionaries
that conform to DDLm reference dictionary version 4.1.0.
- COD::CIF::DDL::DDLm::Validate:
- updated the 'Symop' content type validation logic in accordance to
the changes in the DDLm reference dictionary version 4.2.0.
- cif_compare_dics:
- added a check for differing deprecation states.
- data/replacement-values/replacement_tags.lst:
- added several data name replacement rules.
* Fixed:
- COD::CIF::DDL:
- ensured that the same date is set to both the '_dictionary.date' data
item and the most recent entry in the DICTIONARY_AUDIT loop.
- ensured that the automatically generated dictionary version adheres
to the requirements of the DDLm 'Version' data type.
- the description of the '--imports' option in the help message.
- data/replacement-values/replacement_tags.lst:
- corrected a rule that incorrectly converted data name
'_atom_site_refinement_flags' to '_atom_site_refinement_flag'.
- COD::CIF::DDL::DDLm::Validate:
- updated several subroutines to properly handle category names with
uppercase letters.
* Removed:
- dependency installer for Fedora 37.
cod-tools (3.8.1)
* Fixed:
- spglib now builds with CMake v3.13 or newer.
cod-tools (3.8.0)
* Added:
- COD::AtomProperties assembler:
- covalent radii from Lang and Smith (2014).
- covalent radii from Zhang (2018).
- COD::CIF::Data::Check:
- the check_unquoted_strings() subroutine.
- COD::CIF::DDL::DDLm:
- the get_type_source() subroutine.
- cif_cod_check:
- the '--check-unquoted-strings' option.
- cif_molecule:
- copying '_chemical_name_common', '_chemical_name_systematic' and
'_chemical_name_mineral' CIF data items from input files to output.
- dependency installers for Fedora 37, Fedora 38 and Fedora 39.
- dependency installer for Debian 12.
- dependency installer for Ubuntu 22.04.
- COD::Spacegroups::Lookup::COD:
- four more non-standard space group settings:
- H-M symbols: 'P 4 21 2 (a-1/4,b+1/4,c)', 'C 2 2 21 (a,b,c+1/4)',
'P 21 21 21 (a+1/4,b-1/4,c)', 'P 42/m m c'.
- Hall symbols: 'P 4ab 2ab (x+1/4,y-1/4,z)', 'C 2c 2 (x,y,z-1/4)',
'P 2ac 2ab (x-1/4,y+1/4,z)', -P 4c 2 (x,y+1/2,z)'.
- cif_estimate_Z:
- options '--print-header' and '--print-data-block' and their negations.
- options '--always-continue', '--continue-on-errors', their synonyms
and negations.
- the COD::SemVer module.
- the cif_guess_AMCSD_atom_types script.
* Changed:
- COD::CIF::DDL::DDLm::Import:
- Improved the handling of orphan definitions.
- COD::CIF::DDL::DDLm::Validate:
- started treating data items with associated dREL code which assigns
a default value as evaluatable.
- COD::SPGLib:
- switched to spglib v2.1.0.
- data/replacement-values/replacement_tags.lst:
- added several data name replacement rules.
- data/replacement_values/replacement_values.lst
- added several replacement rules for the following data items:
- '_atom_site_adp_type'.
- '_atom_site_thermal_displace_type'.
- '_refine_ls_structure_factor_coef'.
- sdf_add_cod_data:
- started printing DOIs with the 'https://doi.org' prefix.
- cif_estimate_Z:
- the script now estimates the Z value from the formula ratio
if crystal density or molecular wight is not given.
- cif_ddlm_dic_check:
- extended the check that detects incompatible definitions of
measurand and SU data items to check additional attributes.
- added a check that detects pairs of looped child-parent categories
with incompatible category key item sets.
- added a check that detects enumeration range limits that are
incompatible with the content type of the defining data item.
- added a check that detects SU data items definitions with an
incorrect content source.
- added a check that detects SU data items definitions with incompatible
explicit enumeration ranges.
- added a check that detects improper use of attributes from
the METHOD category.
- added a check that detects incorrect use of attribute values
that are only allowed to appear in the DDLm reference dictionary.
- added a check that detects incorrect use of attribute values
that are not allowed to appear in the DDLm reference dictionary.
- updated the handling of version numbers to allows optional pre-release
and build metadata labels.
- added a check that detects the incorrect use of the 'Reference'
dictionary class.
- added a check that detects child Set categories that incorrectly have
parent Loop categories.
- added a check that detects incorrect use of the 'Matrix' container
type.
- added '_enumeration_set.detail' to the list of attributes checked
for incorrect references when the '--check-references-in-descriptions'
option is in effect.
- added a check that detects incorrect use of the HEAD category in the
category hierarchy.
- added a check that detects definitions with 'Matrix', 'Array' or
'List' containers without explicitly specified dimensions.
- added a check that detects forbidden attributes in template
dictionaries.
- extended multiple checks to also apply to template dictionaries.
* Fixed:
- COD::CIF::DDL::DDLm::Import:
- corrected the handling of situations when the same definitions
are imported multiple times by different dictionaries.
- COD::CIF::DDL::DDLm::Validate:
- a typo in a validation message reporting 'datetime' content type
violations.
- updated the validate_application_scope() subroutine to no longer
generate duplicate messages relating to the application scope.
- updated the check_primitive_data_type() subroutine to treat version
numbers with pre-release and build metadata labels as valid.
- cif_cod_deposit:
- corrected the configuration variable name 'bypass_check_password'.
- cif_filter:
- the CIF header is now output only once at the beginning of the
output stream instead of each data block.
- cif_symop_apply:
- updated the handling of atomic coordinates with standard uncertainties
to no longer generate warnings.
* Removed:
- dependency installer for Fedora 35 and Fedora 36.
- dependency installer for LinuxMint 19.
cod-tools (3.7.0)
* Added:
- cif_filter:
- the '--estimate-space-group' option as an alias for
the '--estimate-spacegroup' option.
- the '--keep-unrecognised-space-groups' option as an alias for
the '--keep-unrecognised-spacegroups' option.
* Changed:
- COD::CIF::Data:
- updated the lookup_space_group() subroutine to also strip leading
and trailing whitespace symbols when constructing lookup keys.
- updated the get_space_group_number() subroutine to report symmetry
operation lists that do not correspond to a known space group.
- updated the get_space_group_number() subroutine to report space
group number values that are not integers in the range of [1, 230].
- added several more alternative space group data names in
the space_group_data_names() subroutine.
- updated the get_sg_data() subroutine to also report space group
information mismatches even when one of the values is a CIF special
value.
- COD::CIF::Data::CIF2COD:
- updated the cif2cod() subroutine to only output the space group IT
number that is explicitly provided instead of trying to infer it from
the symmetry operation list.
* Fixed:
- COD::CIF::Data:
- updated the get_space_group_number() subroutine to ignore
CIF special values.
- cif_filter:
- updated the representation of space group symmetry operations derived
from superspace group symmetry operations to use fractions instead of
decimals when possible.
- running Graph::Nauty build and tests only once.
* Removed:
- dependency installer for Debian 9.
cod-tools (3.6.0)
* Added:
- COD::CIF::Data:
- the get_space_group_number() subroutine.
- cif_molecule:
- implemented the copying of the '_atom_type_symbol' and
'_atom_type_oxidation_number' data items from the input
file to the output file.
- started recoding the space group IT number of
the input crystal structure in the output as
the '_cod_molecule_space_group_IT_number' data item.
- dependency installer for Fedora 36.
- dependency installer for LinuxMint 21.
* Changed:
- COD::CIF::Data::CIF2COD:
- reworded a warning message generated by
the get_space_group_h_m_symbol() subroutine
to be more specific.
- the optional 'sgNumber' output field.
- cif_ddlm_dic_check:
- updated the checks to no longer report the presence of
the '_category_key.name' attribute in Set category
definitions as incorrect.
* Fixed:
- COD::AtomNeighbours:
- not adding duplicate bonds between the same atoms in
neighbour_list_from_cif().
- COD::Spacegroups::Lookup::COD:
- changed the space group IT number in the descriptions of
the 'F d 1 1', 'F 1 d 1', 'F 1 1 d' and 'C 1 c 1 (a-3/8,b-3/8,a+2*c)'
space groups from '15' to '9'.
- cif2rdf:
- fixed the handling of the '--columns' option.
- cif_cod_check:
- added the missing File::Basename::dirname() subroutine import.
- cif_ddlm_dic_check:
- corrected a validation message describing category key items
that do not belong to the given category.
- cif_hkl_COD_number:
- added the missing COD::SOptions::get_value() subroutine import.
- cif_split:
- added the missing COD::SOptions::get_value() subroutine import.
- cod2rdf:
- added the missing COD::CIF::JSON::cif2json() subroutine import.
- ddlm_validate:
- updated the looped subcategory recognition to also consider
the '_category_key.name' attribute.
- sdf_add_cod_data:
- updated the handling of the <PUBCHEM_SUBSTANCE_COMMENT> data item
to not exclude fields that contain empty parentheses.
- updated the handling of the <PUBCHEM_SUBSTANCE_COMMENT> data item
to not unintentionally remove various text sequences like
"?-", "?-?", "(?)", etc.
* Removed:
- dependency installer for Fedora 34.
cod-tools (3.5.0)
* Added:
- COD::AtomNeighbours:
- neighbour_list_to_chemistry_mol() subroutine.
- COD::CIF::Data::CODFlags:
- has_dummy_sites() subroutine.
- has_non_hydrogen_calc_sites() subroutine.
- has_superspace_group() subroutine.
- has_unmodelled_solvent_molecules() subroutine.
- cif_cod_deposit:
- the User-Agent HTTP header.
- the '--no-use-wipe' option.
- cif_ddlm_dic_check:
- a check that detects duplicate dREL data names.
- cif2xyz:
- the '--print-datablock-name', '--print-formula-sum',
'--print-chemical-name', '--print-lattice' options
and their negations.
- the '--float-format' option (default value "%21.14e").
- sdf_add_cod_data:
- several warning messages.
- the 'codxyz2fract' script.
- the 'codxyz2ortho' script.
- the COD::XYZ module.
- dependency installer for Fedora 35.
* Changed:
- cif_ddlm_dic_check:
- updated the list of attributes that are checked for free-text
references to data items or categories to also include
the '_description_example.case' and '_description_example.detail'
attributes.
- molcif2sdf:
- the <PUBCHEM_EXT_DATASOURCE_URL> data item value
from "https://www.crystallography.net/"
to "https://www.crystallography.net/cod/".
- sdf_add_cod_data:
- the <PUBCHEM_EXT_DATASOURCE_URL> data item value
from "https://www.crystallography.net/"
to "https://www.crystallography.net/cod/".
- implemented the removal of duplicate chemical names.
- implemented the removal of <PUBCHEM_SUBSTANCE_COMMENT>
fields that consists entirely of whitespace symbols.
- improved the handling of values with leading and tailing
whitespace symbols.
* Fixed:
- COD::CIF::Tags::Print:
- homogenised the formatting of long lines in
the print_single_tag_and_value() subroutine.
- COD::CIF::ChangeLog:
- updated the append_changelog_to_single_item() subroutine
to properly create the changelog data item if it does not
yet exist in the data block.
- codcif:
- memory leak of the last line read in by the lexer;
- carriage return ('\r') is allowed in CIF 2.0 file heading;
- carriage return ('\r') may precede ';' in CIF 2.0 text field
delimiters.
- codcif and COD::CIF::Parser::Yapp:
- not unprefixing a prefixed CIF text field unless all of its lines
(must be one or more) start with the same prefix.
- json2cif:
- corrected the error message that summarises parsing errors.
- cif_cod_deposit:
- double quoted several shell variables to properly handle file
and directory names that contain spaces.
- corrected a variable name related to the handling of
the '--separate-outputs' option.
- cif_correct_tags:
- corrected the handling of data names that contain extra leading
underscores and have capital letter in their canonical form.
* Removed:
- dependency installer for Debian 8.
- dependency installer for Fedora 33.
cod-tools (3.4.0)
* Added:
- cif_ddlm_dic_check:
- a check that detects improper usage of
the _definition_replaced.by attribute.
- a check that detects improper usage of
the _category_key.name attribute.
- a check that detects improper usage of
the _definition.class attribute.
- a check that detects improper usage of
the _type.indices_referenced_id attribute.
- a check that detects improper usage of
the _type.contents_referenced_id attribute.
- a check that detects incompatibilities between the attributes
of linked data items.
- cif_ddlm_validate:
- the '--follow-iucr-style-guide' and '--no-follow-iucr-style-guide'
options.
- support for the 'Word' content type.
- cif_fillcell:
- the '--dont-merge-special-positions' and
'--no-merge-special-positions' options.
* Changed:
- cif_molecule:
- reworded several warning messages.
- COD::CIF::DDL::DDLm:
- improved the canonicalisation of 'Imag' and 'Complex'
DDLm content type values.
* Fixed:
- COD::AtomNeighbours:
- fixed failures in processing of atoms without bonds in
neighbour_list_from_chemistry_opensmiles();
- switched to generation of refvertexed Graph::Undirected
objects in neighbour_list_to_graph().
- COD::CIF::Data:
- ensured that warning messages in the get_sg_data() subroutine
are always output in the same order.
- COD::CIF::Data::AtomList:
- ensured that the atom_groups() subroutine returns idempotent
results between different runs with the same data.
- COD::CIF::DDL::DDLm::Validate:
- updated the check_su_eligibility() subroutine to properly handle
the special case of the '_description_example.case' attribute.
- updated the handling of 'Imag' and 'Complex' content types to
allow standard uncertainties.
cod-tools (3.3.0)
* Added:
- cif_ddlm_dic_check:
- multiple checks related to the DICTIONARY_AUDIT loop.
- a check that detects improper definition revision dates.
- a check that detects measurand data items that do not
have associated standard uncertainty (SU) data items.
- a check that detects data names that deviate from
the IUCr naming convention.
- a check that detects situations when the type dimension
attribute is used with incompatible type containers.
- a check that detects situations when a measurand item
and the associated SU data item have different units
of measurement.
- a check that detects improper _name.linked_item_id
attribute values.
- a check that detects improper usage of
the _enumeration_default.value attribute.
- a check that detects improper usage of
the _enumeration.def_index_id attribute.
- COD::CIF::Data::CIF2COD:
- updated the cif2cod() subroutine to treat the 'compoundsource'
field as NULL if the value is recognised as a placeholder value.
- updated the regex used in the cif2cod() subroutine to recognise
placeholder values by including the full stop ('.') symbol.
- COD::CIF::DDL::DDLm:
- the 'resolve_content_types' option to the build_ddlm_dic()
subroutine.
- the 'resolve_implied_type' and 'resolve_byreference_type'
options to the get_type_contents() subroutines.
* Changed:
- COD::CIF::DDL::DDLm::Validate:
- updated the extract_application_scope() subroutine to properly
handle the _dictionary_valid.scope and _dictionary_valid.option
data items.
- COD::CIF::Data::Check:
- reporting missing atomic displacement parameters as NOTEs
instead of WARNINGs.
* Fixed:
- COD::CIF::Data::CIF2COD:
- updated the cif2cod() subroutine to translate CIF 1.1 special codes
to Unicode characters in the 'compoundsource' field.
- COD::CIF::Tags::Print:
- updated the print_loop() subroutine to no longer print unnecessary
empty lines.
- updated the print_loop() subroutine to use the maximum available
line space when outputting loop packets.
- updated the handling of single line values that start with
a semicolon (';') in the print_single_tag_and_value() and
print_loop() subroutines.
- COD::SUsage:
- a typo in the output of the options() subroutine.
- cif_ddlm_dic_check:
- a typo in an output message.
- codcif:
- fixed a buffer overrun.
cod-tools (3.2.0)
* Added:
- the 'cif_automorphism' script.
- cif_cod_check:
- validation of SHELX checksums.
- the '--no-max-year-temperature-factors-optional' option.
- the '--check-adp-presence', '--max-year-adp-presence-is-optional'
and '--no-max-year-adp-presence-is-optional' options as replacements
of the deprecated '--check-temperature-factors',
'--max-year-temperature-factors-optional' and
'--no-max-year-adp-presence-is-optional' options respectively.
- cif_fillcell:
- the '--output-cod-molecule-data-items' option.
- cif_hkl_check:
- validation of SHELX checksums.
- cif_sort_atoms:
- the '--record-original-order', '--order-child-loops' options;
- support for ordering according to values of '_atom_type_*' CIF
loop.
- cif_CODify:
- an error message regarding the mandatory input CIF file.
- COD::AtomProperties assembler:
- covalent radii from Meng and Lewis (1991).
- COD::CIF::Data:
- the calculate_shelx_checksum() subroutine.
- COD::CIF::Data::CODFlags:
- the has_attached_hydrogens() subroutine.
- COD::CIF::Data::Check:
- the check_shelx_checksums() subroutine;
- the check_adp_presence() subroutine.
- a note message informing that the mandatory presence of atom
displacement parameters will not be checked due to missing
publication year;
- a warning message informing that the mandatory presence of
atom displacement parameters will not be checked due to an
improper publication year value.
- COD::CIF::DDL::DDLm:
- the get_all_data_names() subroutine;
- a warning message about the treatment of save frames
without the _definition.id data item in the build_ddlm_dic
subroutine.
- COD::ToolsVersion:
- the get_version_number() and get_version_string() subroutines.
* Changed:
- COD::AtomNeighbours:
- the neighbour_list_from_chemistry_mol() subroutine is no longer
deprecated;
- implemented reading of coordinates in
neighbour_list_from_chemistry_mol().
- COD::CIF::Data::Check:
- updated the warning message generated by
the check_temperature_factors() subroutine.
- COD::CIF::Data::AtomList:
- oxidation state is now read from '_atom_type_oxidation_number'
CIF data item, if available.
- COD::CIF::DDL::DDLm::Validate:
- updated the detection and reporting of problems that may potentially
occur in the DICTIONARY_VALID loop of the DDLm reference dictionary.
- COD::CIF::Unicode2CIF:
- mapped the capital sharp S ('ẞ') to the '\&S' CIF special code;
- mapped the CIF special code for a delocalized double bond ('\\dbb ')
to the '⎓' Unicode symbol;
- changed the main Unicode symbol that maps to the CIF special code
for a dash ('--') from a figure dash ('‒') to an en dash ('–');
- changed the main Unicode symbols that map to the CIF specials codes
for angle brackets ('\\langle', '\\rangle') from left/right angle
brackets ('〈', '〉') to mathematical left/right angle brackets
('⟨', '⟩').
- cif_cod_check:
- updated the simultaneous presence check to also report the missing
'_atom_site_aniso_B_*' data items.
- cif_correct_tags:
- implemented a more robust handling of replacement list files.
- cif_compare_dics:
- reworded several output messages;
- added a check that ensures that the provided legacy dictionary
type is among the supported ones;
- added a check for differing container types.
- cif_ddl1_dic_check:
- reworded several output messages;
- added a check that identifies situations when an item needlessly
references itself as a list reference;
- improved the recognition of references to other data items and
categories in the descriptions of other data items and categories.
- cif_ddlm_dic_check:
- reworded several output messages;
- added several checks related to the _units.code data item.
- cif_fix_values:
- added single quotes around enumeration values in warning messages.
- cif_hkl_check:
- replaced quotes with square brackets in output messages listing
arrays of values.
- cif_select:
- slightly reworded the help message and one of the error messages.
- cif_validate:
- updated the script to recognise dictionaries that have a major
version of '4' as DDLm dictionaries.
* Deprecated:
- COD::CIF::Data::Check:
- the check_temperature_factors() subroutine.
- the '--check-temperature-factors',
'--max-year-temperature-factors-optional' and
'--no-max-year-adp-presence-is-optional' options.
- COD::ToolsVersion
- the $COD::ToolsVersion::Version package variable.
* Fixed:
- cif_cod_check:
- added the missing '--check-only-temperature-factors' option.
- cif_CODify:
- corrected the usage example.
- cif_diff:
- numerically compared values with standard uncertainties are
unpacked before the comparison.
- cif_ddlm_dic_check:
- updated the script to recognise and skip dictionary files that
belong neither to the 'Reference' nor to the 'Instance' dictionary
class;
- corrected the handling of save frames that do not contain
the _definition.id data item;
- a typo in one of the output messages.
- cif_estimate_Z:
- a typo in the script description.
- cif_Fcalc:
- added an explicit result output order.
- cif_molecule:
- a typo in a note message.
- cif_sort_atoms:
- optimised the reporting of unrecognised atom types.
- codcif:
- fixed a buffer overrun in 'cexceptions' by applying upstream patch.
- COD::AtomProperties assembler:
- if any of the atoms lack atomic number, compared lists are joined
by atom chemical names in compare_properties.
- COD::AuthorNames:
- corrected a grammatical mistake a warning message generated
by the parse_author_name() subroutine.
- COD::CIF::Data::CIF2COD:
- values 'inf', 'infinity' and 'nan' (and their capitalized
variants) are no longer treated as numeric.
- COD::CIF::Data::CODFlags:
- has_partially_occupied_ordered_atoms() now unpacks CIF numbers
before doing numerical comparisons with them;
- has_partially_occupied_ordered_atoms() treats only occupancies
less than 1 as partial.
- COD::CIF::Data::SymmetryGenerator:
- coinciding symmetry equivalents of an atom which do not coincide
with the generating atom itself are merged in symops_apply_modulo1()
if duplicate removal is requested.
- COD::CIF::DDL::DDLm::Import:
- corrected the logic that assigns loop indices during 'Content' type
imports;
- corrected the filenames in import error messages that are raised
during complex import scenarios.
- COD::CIF::Unicode2CIF:
- removed the unofficial CIF special codes for letters 'ů' and 'Ů'
('\"u', '\"U');
- updated the unicode2cif() subroutine to properly encode the '≠'
sign as '\\neq' instead of '≠';
- updated most of CIF special codes with the '\\' prefix to not require
a trailing space symbol (' '). The '\\db ', '\\tb ' and '\\ddb ' codes
were left unchanged since IUCr explicitly specifies that they should
be followed by a space;
- corrected the handling of combining character sequences that contain
several combining characters.
- COD::UserMessage:
- fixed parsing of messages having Unicode symbols in program and
file names;
- updated the parse_message() subroutine to allow the dash symbol ("-")
in error level strings.
cod-tools (3.1.0)
* Added:
- COD::AtomNeighbours:
- the neighbour_list_from_chemistry_opensmiles() subroutine;
- the neighbour_list_from_cif() subroutine.
- COD::CIF::Data::AtomList:
- updated the atom property extraction logic to determine atom
oxidation states from atom chemical types and atom names;
- the 'exclude_hydrogens' option to the atom_array_from_cif()
subroutine that excludes hydrogen atoms;
- the get_atom_chemical_type() subroutine.
- COD::CIF::Tags::Merge:
- the 'tags' option to the merge_datablocks() subroutine to provide
a list of data names to merge.
- cif_filter:
- distribution of '_publ_author_id_orcid' data item values from
the global CIF data block to the rest of the data blocks.
- cif_select:
- the '--one-data-item-per-row' and '--one-data-item-per-column'
options.
- cif_sort_atoms:
- the '--ascending-numerical', '--descending-numerical',
'--ascending-lexical', '--descending-lexical' options.
* Changed:
- COD::CIF::DDL::DDLm::Validate:
- the format of validation messages describing key uniqueness
violations.
- COD::CIF::Data::AtomList:
- updated the datablock_from_atom_array() subroutine to add the
'_atom_site_Cartn_*' CIF data items if orthogonal coordinates
are present instead of the fractional ones.
- cif_validate:
- the format of validation messages describing key uniqueness
violations.
- codcif:
- stopped storing stray CIF values in memory.
* Deprecated:
- COD::AtomNeighbours:
- the neighbour_list_from_chemistry_mol() subroutine.
* Fixed:
- codcif:
- updated the parsing logic to preserve empty save frames;
- fixed a memory leak in cif_lex_buffer.c.
- cif_compare_dics:
- started using the UserMessage::sprint_message() subroutine
to output dictionary comparison results in order to correctly
escape symbols forbidden by the error message syntax.
- cif_filter:
- fixed a problem with global data block distribution;
- corrected escaping of separators read from .mrk format;
- removed possibly harmless double conversion of UTF-8 to CIF;
- implemented conversion of XML entities to Unicode in values read
from .mrk format.
- cif_fix_values:
- fixed incorrect sigma extraction routine which caused incorrect
conversion of numbers with exponents or floating point sigma
values.
- cif_sort_atoms:
- switched to relying only on the '_atom_site_type_symbol' values
when sorting atoms by their atomic numbers;
- updated the script to terminate upon encountering errors as was
originally intended.
- cif_validate:
- updated the help message to indicate that '--die-on-errors' is
the default option instead of '--continue-on-errors'.
- ddlm_validate:
- updated the help message to indicate that '--die-on-errors' is
the default option instead of '--continue-on-errors'.
- COD::CIF::DDL:
- replaced Perl 'each @array' construct with a more portable
one in cif_to_ddlm().
- COD::CIF::DDL::DDLm::Validate:
- replaced '\d' with '[0-9]' in several regular expressions.
- COD::CIF::DDL::Ranges:
- moved the handling of a Perl capture variable into a conditional
statement in the parse_range() subroutine.
- COD::ErrorHandler:
- moved the handling of a Perl capture variable into a conditional
statement in the process_errors() subroutine.
- COD::Formulae::Print:
- updated the formula construction logic to remove the redundant
atom counts of '1' that were sometimes accidentally generated.
- COD::CIF::Tags::Merge:
- fixed merging of looped onto non-looped data items, and vice
versa.
- COD::CIF::Tags::Print:
- changed CIF data type for values with carriage return ('\r')
symbols from single-quoted strings to textfields;
- changed quoting of CIF 2.0 table keys with carriage return ('\r')
symbols from single-quoted strings to triple-quoted strings.
- COD::Precision:
- fixed unpacking of standard uncertainties with decimal dot, as
they have to be taken as provided, without adjustments to the
measured values.
cod-tools (3.0.1)
* Added:
- dependencies for Fedora 32.
* Fixed:
- dic2markdown:
- updated the script to properly process DDLm dictionary save frames
that do not contain an explicit definition class.
* Removed:
- dependencies:
- Carp::Assert as a run and build dependency.
cod-tools (3.0.0)
* Changed:
- cif2cod:
- header with field names is printed by default for CSV output format.
- cif2xyz:
- proper XYZ format with a header is produced by default.
- cif_fix_values:
- CIF dictionary handling interface has been changed to match the interface
of the cif_validate script. The '--dictionaries' option has been replaced
with the '--dictionary' and the '--add-dictionaries' option with the
'--add-dictionary' option.
- cif_parse:
- the output format from the one produced by the COD::ShowStruct
module to the one produced by the Data::Dumper module;
- merged in the cif_printout script.
- cif_select:
- replaced colon (':') with double dash ('--') in messages.
- cif_split and cif_split_primitive:
- modified the scripts to print extracted file names
to STDOUT instead of STDERR.
- cif_validate:
- validation messages are now output to STDOUT instead of STDERR.
- COD::CIF::Data::CIF2COD, cif2cod and cif2rdf:
- replaced values from @default_data_fields with values from
@new_data_fields; removed @new_data_fields. As a result, cif2cod and
cif2rdf now outputs columns of the "new" COD 'data' table schema.
- COD::CIF::Data::SymmetryGenerator:
- removed 'f2o' parameter from the interface of symop_generate_atoms().
- COD::CIF::Parser::Yapp:
- updated the parser to use the COD::CIF::Tags::Manage::new_datablock()
subroutine in order to ensure the structure of each generated CIF
data block structure.
- COD::CIF::Tags::Manage:
- allowed zero-length data block names in new_datablock() in order to
make it compatible with the usage in COD::CIF::Parser::Yapp.
- COD::UserMessage:
- the interface of print_message(), sprint_message(), note(), warning(),
error() and debug_note() subroutines.
- COD::CIF::Data::CODNumbers:
- stopped supporting the 'enantiomer' field in the cif_fill_data() and
is_related_enantiomer_entry() subroutines.
- codcif:
- cif_lexer_set_line_length_limit() and cif_lexer_set_tag_length_limit()
now accept and return size_t instead of int to comply with strlen().
- split cif{,2}_lexer_set_report_long_items() into
cif{,2}_lexer_set_report_long_tags() and unified
cif_lexer_set_report_long_lines() methods.
- moved lexer buffer specific code to cif_lex_buffer.c; as a result,
the following methods are now common to both lexers:
- cif_lexer_cleanup()
- cif_flex_reset_counters()
- cif_flex_current_line_number()
- cif_flex_set_current_line_number()
- cif_flex_current_position()
- cif_flex_set_current_position()
- cif_flex_current_line()
- cif_flex_previous_line_number()
- cif_flex_previous_position()
- cif_flex_previous_line()
- cif_lexer_set_line_length_limit()
- cif2cod, cif2rdf, cif_cell_contents, cif_cod_numbers,
COD::CIF::Data::CIF2COD and COD::CIF::Data::CellContents:
- attached hydrogen atoms are included in formula calculation by default.
- COD::Algebra::GaussJordan:
- Default epsilon factor from 2 to 8.
* Removed:
- the cif_parse_old_star script.
- the cod_predeposition_check script.
- the cif_printout_Python script.
- the COD::CIF::Data::CODPredepositionCheck module.
- the COD::ShowStruct module.
- STAR::Parser sources.
- COD::AtomNeighbours:
- the deprecated neighbour_list_from_chemistry_openbabel_obmol()
subroutine.
- sdf_add_cod_data:
- the deprecated '--tmp-dir' option.
- cif_printout:
- the deprecated '--output-struct' option;
- merged the script into cif_parse.
- cif_validate:
- support for DDL2 dictionaries;
- the deprecated '--ddl2-dictionaries', '--ddl2-add-dictionary',
'--ddl2-clear-dictionaries' options;
- the deprecated '--debug' option.
- codcif:
- unused functions process_escapes(), strclone(), strnclone(),
strappend() and translate_escape().
- cif_Fcalc:
- the deprecated '--dump-xyz-coordinates', '--dump-Cromer-Mann',
'--dump-cell-parameters', '--dump-cell-xyz-coordinates',
'--dump-sorted-F', '--dump-atoms-and-neighbors', '--dump-test-Fhkl'
options.
- COD::Algebra::GaussJordan:
- the deprecated backward_elimination() subroutine.
- COD::Algebra::GaussJordanBigRat:
- the deprecated backward_elimination() subroutine.
* Fixed:
- codcif:
- added casts to avoid comparisons of integer expressions of
different signedness.
cod-tools (2.13)
* Added:
- the COD::CIF::DDL::DDLm module;
- the COD::CIF::DDL::DDLm::Import module;
- the COD::CIF::DDL::DDLm::Validate module;
- the 'cif_compare_dics' script;
- the 'cif_ddl1_dic_check' script;
- the 'cif_ddlm_dic_check' script;
- the 'cif_ddlm_dic_print' script;
- the 'ddl1-to-ddlm' script;
- the 'ddlm_validate' script;
- COD::AtomNeighbours:
- the neighbour_list_to_cif_datablock() subroutine.
- COD::CIF::Data::CODFlags:
- the has_partially_occupied_ordered_atoms() subroutine.
- COD::CIF::Data::ExcludeFromStatistics:
- the 'has_partially_occupied_ordered_atoms' option to
the exclude_from_statistics() subroutine.
- cif_find_duplicates:
- the '--use-attached-hydrogens' option.
- COD::CIF::DDL:
- the cif_to_ddlm() subroutine;
- the ddl1_to_ddlm() subroutine.
- COD::CIF::DDL::Validate:
- the canonicalise_tag() subroutine.
- cif_validate:
- the '--range-su-multiplier' option;
- the '--ddl1-add-dictionary', '--ddl1-dictionaries',
'--ddl1-clear-dictionaries' options;
- the '--ddl2-add-dictionary', '--ddl2-dictionaries',
'--ddl2-clear-dictionaries' options;
- the '--ddlm-add-dictionary', '--ddlm-dictionaries',
'--ddlm-clear-dictionaries' options;
- the '--add-ddlm-import-path' and '--clear-ddlm-import-path' options;
- the '--report-missing-su' and '--no-report-missing-su' options.
- dic2markdown:
- CIF to dictionary conversion;
- internal cross-references;
- support for examples.
* Changed:
- COD::CIF::Data::AtomList:
- updated the datablock_from_atom_array() subroutine to ignore
missing atom information.
- COD::CIF::DDL::Ranges:
- updated the is_in_range() subroutine to accept an optional
multiplier that should be applied to the standard uncertainty (s.u.)
when determining if a numeric value resides in the specified range.
- cif_cod_numbers:
- added explicit default option values to the script instead of
relying on the default values of the COD::CIF::Data::CODNumbers
module.
- cif_validate:
- added support for DDLm dictionaries.
- dic2markdown:
- updated a warning message.
* Deprecated:
- cif_validator:
- support for DDL2 dictionaries;
- the '--ddl2-dictionaries', '--ddl2-add-dictionary' and
'--ddl2-clear-dictionaries' options.
* Fixed:
- cif2xyz:
- options '--do-not-add-xyz-header', '--dont-add-xyz-header' and
'--no-add-xyz-header' did not work as expected;
- cif_find_duplicates:
- updated the handling of the '--use-sigma', '--no-use-sigma'
and synonymous options to actually enable or disable the
related functionality.
cod-tools (2.12)
* Added:
- COD::AtomNeighbours:
- the neighbour_list_to_graph() subroutine.
- COD::CIF::Data::CODNumbers:
- allowing passing an option to include attached hydrogens in formula
calculation (off by default).
- cif_cod_numbers:
- the '--use-attached-hydrogens' option.
* Fixed:
- codcif:
- properly reporting CIF save_ frames outside data blocks.
- cif_overlay:
- fixing description of atom_rms() subroutine.
cod-tools (2.11)
* Added:
- COD::Algebra::GaussJordan:
- the gj_elimination() subroutine;
- the gj_elimination_non_zero_elements() subroutine;
- the back_substitution() subroutine which fully replaces
the deprecated backward_elimination() subroutine;
- the COD::Algebra::GaussJordanBigRat module which serves as a drop-in
replacement for the COD::Algebra::GaussJordan module, but uses BigRat
rational number arithmetic instead of the floating point arithmetic;
- COD::CIF::DDL:
- the get_category_name_from_local_data_name() subroutine.
- COD::CIF::DDL::DDL1:
- the classify_dic_blocks() subroutine;
- the get_data_name() subroutine;
- the get_data_names() subroutine;
- the convert_pseudo_data_name_to_category_name() subroutine.
- cif_validate:
- the '--merge-ddl1-dictionaries' and '--no-merge-ddl1-dictionaries'
options.
- COD::CIF::Tags::Excluded:
- several more data names to the exclusion list.
* Changed:
- cif_molecule:
- replaced subroutine calls to the COD::Algebra::GaussJordan module
with subroutine calls to the COD::Algebra::GaussJordanBigRat module.
- cif_validate:
- updated the dictionary handling logic to merge all DDL1
dictionaries into a single virtual dictionary;
- updated validation messages involving enumeration values
to contain single quotes around each of the reported enumeration
values.
- COD::CIF::DDL::Ranges:
- updated the range_to_string_char() subroutine to add single
quotes around the range limits.