diff --git a/NOTICE b/NOTICE index 72f29a8..0cbc263 100644 --- a/NOTICE +++ b/NOTICE @@ -69,7 +69,8 @@ is the committed fixture pymatgen-cells-pins.json. The Laue orbit and the absenc computed from pymatgen's operations in NumPy. pymatgen - https://github.com/materialsproject/pymatgen (MIT License) - Copyright (c) 2011-2026 The Materials Project + Copyright (c) 2011-2012 MIT & The Regents of the University of + California, through Lawrence Berkeley National Laboratory spglib - https://github.com/spglib/spglib (BSD-3-Clause) ================================================================================ @@ -124,8 +125,8 @@ P36); their output is committed as Tests/DiffractoOrientationTests/Fixtures/ orix-*-pins.json. No orix code is copied into the library. orix - https://github.com/pyxem/orix - Copyright (C) The pyxem developers - Licensed under the GNU General Public License v3.0 + Copyright 2018-2026 the orix developers + Licensed under the GNU General Public License v3.0 or later ================================================================================ Materials Project (test fixtures) @@ -143,3 +144,44 @@ response; the other two were written by hand in its format. A. Jain et al., "Commentary: The Materials Project: A materials genome approach to accelerating materials innovation", APL Materials 1, 011002 (2013), doi:10.1063/1.4812323 + +================================================================================ +Test fixtures: every source and its licence +================================================================================ + +Tests/Fixtures/README.md lists each committed fixture file. By source: + +CIF files (Tests/DiffractoCoreTests/Fixtures/*.cif). None is a copy of an +entry in a crystallographic database: no file comes from the Crystallography +Open Database (COD), the American Mineralogist Crystal Structure Database +(AMCSD) or ICSD. Each file says where it comes from in its first comment line: + - written in the tests of mac4DSTEM 7448401b (GPL-3.0) and copied with that + line, some completed or reduced as the comment says; + - written for this kit as regression cases (GPL-3.0-only, this licence); + - corundum_P1_rhombohedral.cif and magnesium_P63mmc_origin_shifted_loop.cif + were written with pymatgen CifWriter (MIT); the output of a tool carries no + licence of the tool. +Lattice parameters and atomic coordinates in them are published measurements, +cited as facts. 2H-WS2 (ws2_2H.cif) takes its cell and z(S) from W. J. +Schutte, J. L. de Boer and F. Jellinek, J. Solid State Chem. 70, 207-209 +(1987). COD entry 5910003 holds the same structure; COD dedicates its data to +the public domain under CC0 (https://www.crystallography.net/cod/), but the +fixture is written by hand and is not that file. + +Oracle outputs (the *-pins.json files). These are numbers computed by the +scripts under tools/pins/, which call the reference packages below; no source +code or test data of those packages is copied into them: + - pymatgen 2026.9.24 / pymatgen-core 2026.10.16 (MIT) and spglib 2.8.0 + (BSD-3-Clause): cells, symmetry operations, conventional cells, presets, + the Materials Project decoder and the X-ray cross-check; + - orix 0.15.0 (GPL-3.0-or-later): orix-*-pins.json and the orix part of + trigonal-pins.json and symmetry-pins.json; + - py4DSTEM f050d207 (GPL-3.0): py4dstem-*-pins.json, acom-matcher-pins.json + and the py4DSTEM part of the orientation-symmetry pins; + - NumPy and SciPy (BSD-3-Clause), or plain Python: the ring calibration, + ring indexing, ellipse, ring-overlay and indexing-display pins, and the + structure-factor phase sum. +No fixture is taken from the test data of pymatgen, orix or py4DSTEM. + +Materials Project records (mp-import/input-*.json): CC BY 4.0, credited in +the section above. diff --git a/README.md b/README.md index 6833c51..4d82681 100644 --- a/README.md +++ b/README.md @@ -243,8 +243,9 @@ the xy plane, reciprocal vectors without 2 pi, the per-axis index bound. The ele `DiffractoScattering` is py4DSTEM's (Lobato and Van Dyck 2014), also GPL-3.0. **pymatgen** (MIT) is an oracle: cells, symmetry and d-spacings are checked against it, and no pymatgen code is copied or ported; a part ported from pymatgen in the future would be MIT on its own, but one package with any GPL part is GPL, so the whole is GPL-3.0 and an app built on it must -be GPL-compatible. The CIF fixtures under `Tests/` come from those applications' tests (GPL-3.0) with their provenance in a comment -line; the beta'' cell content (Andersen et al. 1998) is written by a generator into the gitignored `References/`. Per-source notices are in `NOTICE`. +be GPL-compatible. The CIF fixtures under `Tests/` come from those applications' tests (GPL-3.0) or were written for this kit, with +their provenance in a comment line; none is a copy of a COD, AMCSD or ICSD entry. The Materials Project records are CC BY 4.0, and +`Tests/Fixtures/README.md` lists every fixture source with its licence. The beta'' cell content (Andersen et al. 1998) is written by a generator into the gitignored `References/`. Per-source notices are in `NOTICE`. ## Please cite diff --git a/Tests/Fixtures/README.md b/Tests/Fixtures/README.md index 9fe62b2..b70d9b7 100644 --- a/Tests/Fixtures/README.md +++ b/Tests/Fixtures/README.md @@ -1,53 +1,70 @@ # Test fixtures One row per committed fixture file under `Tests/*/Fixtures/`: size, the script under `tools/` that names it (the generator or its -pin script; a few scripts write a whole directory; a script found only by file-name prefix, tool-folder name or test module is marked so), and a note where the origin is not the kit's own pinned reference. 52 files. +pin script; a few scripts write a whole directory; a script found only by file-name prefix, tool-folder name or test module is marked so), and a note where the origin is not the kit's own pinned reference (every CIF says its source). 52 files. -Licence: every fixture is generated from this kit's own code and the pinned Python reference (named in the README) and ships under the kit's GPL-3.0-only licence, except the rows marked *third party*. No fixture is a copy of a real dataset: the committed text fixtures carry no local path or personal name (checked by search), and real datasets are read from `$MACEM_DATA` and never copied into the repo. +Licence: the sources and licences are in the next two sections and in `NOTICE`. The pin JSON files are computed by the scripts under `tools/pins/` and ship under the kit's GPL-3.0-only licence. The CIFs were not generated by those scripts: 16 come from the tests of mac4DSTEM 7448401b (GPL-3.0, same author) and 10 were written for this kit (GPL-3.0-only); the pin scripts only read them. The 3 rows marked *third party* keep their own licence. No fixture is a copy of a real dataset: the committed text fixtures carry no local path or personal name (checked by search), and real datasets are read from `$MACEM_DATA` and never copied into the repo. ## Third party 3 files, listed in the table below with the note *third party*. Keep their licence line when the files move. +## Sources and licences + +`NOTICE` names each source with its licence; in short: + +| Source | Files | Licence | +|---|---|---| +| Materials Project (recorded API response and two records in its format) | `mp-import/input-*.json` | CC BY 4.0, *third party* | +| Tests of mac4DSTEM 7448401b (the first comment line of each CIF says which) | 16 `*.cif` (note *mac4DSTEM tests*) | GPL-3.0, same author | +| Written for this kit: regression cases and the ideal hcp cell (two regression cases written with pymatgen `CifWriter`) | the other 10 `*.cif` (note *written for this kit*) | GPL-3.0-only | +| Published lattice parameters and coordinates inside the CIFs | `*.cif` | facts, cited in `NOTICE`; no file is a copy of a COD, AMCSD or ICSD entry | +| Outputs of pymatgen (MIT) and spglib (BSD-3-Clause) | cell, symmetry, preset and decoder pins | generated, GPL-3.0-only | +| Outputs of orix 0.15.0 (GPL-3.0-or-later) | `orix-*-pins.json`, parts of `trigonal-pins.json` and `symmetry-pins.json` | generated, GPL-3.0-only | +| Outputs of py4DSTEM f050d207 (GPL-3.0) | `py4dstem-*-pins.json`, `acom-matcher-pins.json` | generated, GPL-3.0-only | +| Outputs of NumPy and SciPy (BSD-3-Clause) or plain Python | ring, ellipse, overlay, display and structure-factor pins | generated, GPL-3.0-only | + +No fixture is copied from the test data of pymatgen, orix or py4DSTEM. + ## All fixtures | File | Size | Generated by | Note | |---|---|---|---| -| `DiffractoCoreTests/Fixtures/alpha_quartz_P1_origin_shifted.cif` | 747 B | review regression CIF, read by `RefuterRegressionTests` | | -| `DiffractoCoreTests/Fixtures/alpha_quartz_P3221.cif` | 924 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | | -| `DiffractoCoreTests/Fixtures/alpha_quartz_P3221_as_seeded.cif` | 712 B | `tools/pins/cells/pins.py` | | -| `DiffractoCoreTests/Fixtures/calcite_R-3c_hex.cif` | 1.4 KB | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | | -| `DiffractoCoreTests/Fixtures/cdi2_P-3m1.cif` | 462 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | | +| `DiffractoCoreTests/Fixtures/alpha_quartz_P1_origin_shifted.cif` | 747 B | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only) | +| `DiffractoCoreTests/Fixtures/alpha_quartz_P3221.cif` | 924 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/alpha_quartz_P3221_as_seeded.cif` | 712 B | `tools/pins/cells/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/calcite_R-3c_hex.cif` | 1.4 KB | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/cdi2_P-3m1.cif` | 462 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | | `DiffractoCoreTests/Fixtures/cif-symmetry-pins.json` | 19.4 KB | `tools/pins/cif-symmetry/pins.py` | | -| `DiffractoCoreTests/Fixtures/corundum_P1_rhombohedral.cif` | 1.3 KB | review regression CIF, read by `RefuterRegressionTests` | | -| `DiffractoCoreTests/Fixtures/fluorapatite_P63m.cif` | 781 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | | -| `DiffractoCoreTests/Fixtures/gold_P1.cif` | 396 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | | -| `DiffractoCoreTests/Fixtures/gold_P1_origin_shifted_exact_decimals.cif` | 588 B | review regression CIF, read by `RefuterRegressionTests` | | -| `DiffractoCoreTests/Fixtures/gold_centring_ops.cif` | 440 B | `tools/pins/cells/pins.py` | | -| `DiffractoCoreTests/Fixtures/ideal_hcp_P1.cif` | 504 B | `tools/pins/cells/pins.py` | | -| `DiffractoCoreTests/Fixtures/iron_P1_general_position.cif` | 470 B | review regression CIF, read by `RefuterRegressionTests` | | -| `DiffractoCoreTests/Fixtures/magnesium_P1_origin_shifted.cif` | 529 B | review regression CIF, read by `RefuterRegressionTests` | | -| `DiffractoCoreTests/Fixtures/magnesium_P63mmc.cif` | 401 B | `tools/pins/phase-vectors/pins.py` | | -| `DiffractoCoreTests/Fixtures/magnesium_P63mmc_24ops.cif` | 896 B | `tools/pins/cells/pins.py` | | -| `DiffractoCoreTests/Fixtures/magnesium_P63mmc_origin_shifted_loop.cif` | 1.5 KB | review regression CIF, read by `RefuterRegressionTests` | | -| `DiffractoCoreTests/Fixtures/mixed_centring.cif` | 561 B | review regression CIF, read by `RefuterRegressionTests` | | +| `DiffractoCoreTests/Fixtures/corundum_P1_rhombohedral.cif` | 1.3 KB | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only), with pymatgen `CifWriter` | +| `DiffractoCoreTests/Fixtures/fluorapatite_P63m.cif` | 781 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/gold_P1.cif` | 396 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/gold_P1_origin_shifted_exact_decimals.cif` | 588 B | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only) | +| `DiffractoCoreTests/Fixtures/gold_centring_ops.cif` | 440 B | `tools/pins/cells/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/ideal_hcp_P1.cif` | 504 B | `tools/pins/cells/pins.py` | written for this kit (GPL-3.0-only) | +| `DiffractoCoreTests/Fixtures/iron_P1_general_position.cif` | 470 B | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only) | +| `DiffractoCoreTests/Fixtures/magnesium_P1_origin_shifted.cif` | 529 B | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only) | +| `DiffractoCoreTests/Fixtures/magnesium_P63mmc.cif` | 401 B | `tools/pins/phase-vectors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/magnesium_P63mmc_24ops.cif` | 896 B | `tools/pins/cells/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/magnesium_P63mmc_origin_shifted_loop.cif` | 1.5 KB | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only), with pymatgen `CifWriter` | +| `DiffractoCoreTests/Fixtures/mixed_centring.cif` | 561 B | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only) | | `DiffractoCoreTests/Fixtures/mp-import/input-aluminium-v3.json` | 1.6 KB | `tools/pins/mp-import/pins.py` | third party: Materials Project data, CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), source https://materialsproject.org; credited in `NOTICE` | | `DiffractoCoreTests/Fixtures/mp-import/input-magnesiumJSON.json` | 1.1 KB | `tools/pins/mp-import/pins.py` | third party: Materials Project data, CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), source https://materialsproject.org; credited in `NOTICE` | | `DiffractoCoreTests/Fixtures/mp-import/input-siliconJSON.json` | 2.9 KB | `tools/pins/mp-import/pins.py` | third party: Materials Project data, CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), source https://materialsproject.org; credited in `NOTICE` | | `DiffractoCoreTests/Fixtures/mp-import/pymatgen-pins.json` | 6.3 KB | `tools/pins/mp-import/pins.py` | | -| `DiffractoCoreTests/Fixtures/polonium_P1_supercell_7x.cif` | 737 B | `tools/pins/conventional-cell/pins.py` | | +| `DiffractoCoreTests/Fixtures/polonium_P1_supercell_7x.cif` | 737 B | `tools/pins/conventional-cell/pins.py` | written for this kit (GPL-3.0-only) | | `DiffractoCoreTests/Fixtures/presets-pins.json` | 21.1 KB | `tools/pins/presets/pins.py` | | | `DiffractoCoreTests/Fixtures/pymatgen-cells-pins.json` | 2.7 MB | `tools/pins/cells/pins.py`, `tools/pins/conventional-cell/pins.py` | | -| `DiffractoCoreTests/Fixtures/pyrite_Pa-3.cif` | 1.1 KB | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | | -| `DiffractoCoreTests/Fixtures/pyrite_Pa-3_as_seeded.cif` | 787 B | `tools/pins/cells/pins.py` | | -| `DiffractoCoreTests/Fixtures/rocksalt_Fm-3m_192ops.cif` | 3.5 KB | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | | -| `DiffractoCoreTests/Fixtures/rocksalt_P1_origin_shifted.cif` | 703 B | review regression CIF, read by `RefuterRegressionTests` | | -| `DiffractoCoreTests/Fixtures/silicon_Fd-3m.cif` | 498 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | | +| `DiffractoCoreTests/Fixtures/pyrite_Pa-3.cif` | 1.1 KB | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/pyrite_Pa-3_as_seeded.cif` | 787 B | `tools/pins/cells/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/rocksalt_Fm-3m_192ops.cif` | 3.5 KB | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/rocksalt_P1_origin_shifted.cif` | 703 B | review regression CIF, read by `RefuterRegressionTests` | written for this kit (GPL-3.0-only) | +| `DiffractoCoreTests/Fixtures/silicon_Fd-3m.cif` | 498 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | | `DiffractoCoreTests/Fixtures/spglib-conventional-cell-pins.json` | 2.2 MB | `tools/pins/conventional-cell/pins.py` | | | `DiffractoCoreTests/Fixtures/tetragonal-pins.json` | 14.3 KB | `tools/pins/cells/tetragonal-pins.py` | | -| `DiffractoCoreTests/Fixtures/tetragonal_a_equals_c.cif` | 387 B | `tools/pins/cells/pins.py` | | -| `DiffractoCoreTests/Fixtures/tetragonal_a_equals_c_4ops.cif` | 623 B | `tools/pins/cells/pins.py` | | -| `DiffractoCoreTests/Fixtures/ws2_2H.cif` | 568 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | | +| `DiffractoCoreTests/Fixtures/tetragonal_a_equals_c.cif` | 387 B | `tools/pins/cells/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/tetragonal_a_equals_c_4ops.cif` | 623 B | `tools/pins/cells/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | +| `DiffractoCoreTests/Fixtures/ws2_2H.cif` | 568 B | `tools/pins/cells/pins.py`, `tools/pins/structure-factors/pins.py` | mac4DSTEM tests: from mac4DSTEM 7448401b (GPL-3.0, same author), named in its first comment line | | `DiffractoGeometryTests/Fixtures/indexing-display-pins.json` | 2.3 KB | `tools/pins/ring-display/indexing-display-pins.py` | | | `DiffractoGeometryTests/Fixtures/numpy-ring-calibration-pins.json` | 139.8 KB | `tools/pins/ring-calibration/q-pins.py`, `tools/pins/ring-calibration/ring-pins.py` | | | `DiffractoGeometryTests/Fixtures/numpy-ring-indexing-pins.json` | 4.7 MB | `tools/pins/ring-indexing/pins.py` | |