Skip to content

Latest commit

 

History

History
128 lines (104 loc) · 5.6 KB

THIRD_PARTY_NOTICES.md

File metadata and controls

128 lines (104 loc) · 5.6 KB

Third-Party Notices

PyQCA is distributed under the MIT License. This file records third-party software and research sources that materially informed the project.

ThSQCA

PyQCA's threshold-sweep implementation in qca.sweep.threshold is a Python-native adaptation of the algorithmic structure published by ThSQCA. The adapted concepts include:

  • binary calibration using x >= threshold;
  • pass-through handling for pre-calibrated conditions;
  • outcome, single-condition, multi-condition, and dual threshold sweeps;
  • summary records containing expressions, consistency, coverage, and solution counts.

PyQCA does not call or bundle the R package. It uses its own QCA engines, result objects, validation, reporting, and visualization implementation.

Project:

The ThSQCA MIT license notice follows:

MIT License

Copyright (c) 2025 Yuki Toyoda

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

R package QCA

PyQCA is methodologically informed by the established R package QCA and uses standard QCA terminology such as truth tables, complex/parsimonious/intermediate solutions, directional expectations, consistency, and coverage.

No source code from the R package QCA is included in PyQCA. PyQCA does not link to, import, or distribute that package. The minimization implementation was reviewed against QCA 3.25; the audit found no direct source translation. See PROVENANCE_AUDIT.md.

mlQCA

PyQCA's optional qca.mlqca workflow is methodologically informed by the mlQCA project and its accompanying research article. The current Python implementation independently uses public XGBoost APIs to train a classifier, rank conditions using prediction contributions and tree importance, and extract frequently used split thresholds as calibration candidates. PyQCA then uses its own calibration, csQCA, minimization, model-ranking, and Pareto evaluation implementations. Fuzzy-set anchor proposals and sensitivity analysis are implemented using PyQCA's own fsQCA calibration and AnchorSensitivity components. GSQCA execution, reports, visualizations, and reproducibility records use PyQCA's own APIs.

No R source code from mlQCA is copied, bundled, or executed by PyQCA.

The source distribution includes tests/data/mlqca_vote_data.csv solely as a reproduction-test fixture. It is a mechanical CSV conversion of data/voteData.rda from mlQCA repository commit f5bce883ace6bdae394853539aca66d6576deba1, distributed under that repository's MIT License. The fixture is not included in the PyQCA wheel.

Research References

The following works describe methods implemented or discussed by PyQCA. Their inclusion is scholarly attribution and does not imply that their text or software is distributed with PyQCA.

Python Dependencies

PyQCA depends on NumPy and pandas and optionally uses Matplotlib. These libraries are installed separately and retain their own licenses. Their source code is not copied into this repository or distributed inside the PyQCA source tree.

The optional mlqca dependency group uses XGBoost (Apache-2.0) and scikit-learn (BSD-3-Clause). The optional mlqca-explain group additionally uses SHAP (MIT). These packages are installed separately and are not bundled in PyQCA wheels.