lme4 2.1.0a1__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.
- lme4-2.1.0a1/MANIFEST.in +6 -0
- lme4-2.1.0a1/PKG-INFO +157 -0
- lme4-2.1.0a1/README.md +143 -0
- lme4-2.1.0a1/pyproject.toml +40 -0
- lme4-2.1.0a1/setup.cfg +4 -0
- lme4-2.1.0a1/setup.py +81 -0
- lme4-2.1.0a1/src/cpp/bindings.cpp +314 -0
- lme4-2.1.0a1/src/cpp/bobyqa.cpp +1866 -0
- lme4-2.1.0a1/src/cpp/bobyqa.h +58 -0
- lme4-2.1.0a1/src/cpp/external.cpp +307 -0
- lme4-2.1.0a1/src/cpp/external.h +38 -0
- lme4-2.1.0a1/src/cpp/glmFamily.cpp +376 -0
- lme4-2.1.0a1/src/cpp/glmFamily.h +219 -0
- lme4-2.1.0a1/src/cpp/optimizer.cpp +290 -0
- lme4-2.1.0a1/src/cpp/optimizer.h +156 -0
- lme4-2.1.0a1/src/cpp/predModule.cpp +386 -0
- lme4-2.1.0a1/src/cpp/predModule.h +199 -0
- lme4-2.1.0a1/src/cpp/respModule.cpp +198 -0
- lme4-2.1.0a1/src/cpp/respModule.h +133 -0
- lme4-2.1.0a1/src/cpp/rmath.h +320 -0
- lme4-2.1.0a1/src/lme4/__init__.py +50 -0
- lme4-2.1.0a1/src/lme4/_backend.py +11 -0
- lme4-2.1.0a1/src/lme4/_fgq_rules.json +1 -0
- lme4-2.1.0a1/src/lme4/allfit.py +230 -0
- lme4-2.1.0a1/src/lme4/bootmer.py +437 -0
- lme4-2.1.0a1/src/lme4/control.py +140 -0
- lme4-2.1.0a1/src/lme4/covariance.py +772 -0
- lme4-2.1.0a1/src/lme4/datasets/Arabidopsis.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/Dyestuff.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/Dyestuff2.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/InstEval.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/Pastes.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/Penicillin.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/VerbAgg.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/__init__.py +27 -0
- lme4-2.1.0a1/src/lme4/datasets/_factors.json +5982 -0
- lme4-2.1.0a1/src/lme4/datasets/cake.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/cbpp.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/cbpp2.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/culcitalogreg.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/culcitalvolume.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/gopherdat2.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/grouseticks.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/grouseticks_agg.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/salamander.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/schizophrenia.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/sleepstudy.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/datasets/toenail.csv.gz +0 -0
- lme4-2.1.0a1/src/lme4/family.py +197 -0
- lme4-2.1.0a1/src/lme4/influence.py +296 -0
- lme4-2.1.0a1/src/lme4/lmer.py +263 -0
- lme4-2.1.0a1/src/lme4/lmlist.py +1362 -0
- lme4-2.1.0a1/src/lme4/mermod.py +1111 -0
- lme4-2.1.0a1/src/lme4/modelframe.py +961 -0
- lme4-2.1.0a1/src/lme4/modular.py +826 -0
- lme4-2.1.0a1/src/lme4/modules.py +204 -0
- lme4-2.1.0a1/src/lme4/nbinom.py +447 -0
- lme4-2.1.0a1/src/lme4/nlmer.py +616 -0
- lme4-2.1.0a1/src/lme4/optimizers.py +571 -0
- lme4-2.1.0a1/src/lme4/options.py +20 -0
- lme4-2.1.0a1/src/lme4/predict.py +848 -0
- lme4-2.1.0a1/src/lme4/profile.py +1035 -0
- lme4-2.1.0a1/src/lme4/reformulas.py +499 -0
- lme4-2.1.0a1/src/lme4/rformat.py +257 -0
- lme4-2.1.0a1/src/lme4/rlang.py +536 -0
- lme4-2.1.0a1/src/lme4/symbolic.py +181 -0
- lme4-2.1.0a1/src/lme4/varcorr.py +198 -0
- lme4-2.1.0a1/src/lme4.egg-info/PKG-INFO +157 -0
- lme4-2.1.0a1/src/lme4.egg-info/SOURCES.txt +422 -0
- lme4-2.1.0a1/src/lme4.egg-info/dependency_links.txt +1 -0
- lme4-2.1.0a1/src/lme4.egg-info/requires.txt +7 -0
- lme4-2.1.0a1/src/lme4.egg-info/top_level.txt +2 -0
- lme4-2.1.0a1/tests/test_allfit.py +89 -0
- lme4-2.1.0a1/tests/test_bootmer.py +190 -0
- lme4-2.1.0a1/tests/test_formula.py +78 -0
- lme4-2.1.0a1/tests/test_glmer.py +98 -0
- lme4-2.1.0a1/tests/test_influence.py +149 -0
- lme4-2.1.0a1/tests/test_lmer.py +183 -0
- lme4-2.1.0a1/tests/test_lmlist.py +217 -0
- lme4-2.1.0a1/tests/test_nbinom.py +128 -0
- lme4-2.1.0a1/tests/test_nlmer.py +223 -0
- lme4-2.1.0a1/tests/test_predict.py +366 -0
- lme4-2.1.0a1/tests/test_profile.py +251 -0
- lme4-2.1.0a1/tests/test_reference.py +77 -0
- lme4-2.1.0a1/tests/test_reference_extras.py +108 -0
- lme4-2.1.0a1/tests/test_simulate.py +234 -0
- lme4-2.1.0a1/third_party/eigen/COPYING.MPL2 +373 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/Cholesky +45 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/CholmodSupport +48 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/Core +384 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/Dense +7 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/Eigen +2 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/Eigenvalues +60 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/Geometry +59 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/Householder +29 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/IterativeLinearSolvers +48 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/Jacobi +32 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/KLUSupport +41 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/LU +47 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/MetisSupport +35 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/OrderingMethods +70 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/PaStiXSupport +49 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/PardisoSupport +35 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/QR +50 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/QtAlignedMalloc +39 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/SPQRSupport +34 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/SVD +50 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/Sparse +34 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/SparseCholesky +37 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/SparseCore +69 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/SparseLU +50 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/SparseQR +36 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/StdDeque +27 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/StdList +26 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/StdVector +27 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/SuperLUSupport +64 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/UmfPackSupport +40 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Cholesky/LDLT.h +688 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Cholesky/LLT.h +558 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/ArithmeticSequence.h +413 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Array.h +417 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/ArrayBase.h +226 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/ArrayWrapper.h +209 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Assign.h +90 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/AssignEvaluator.h +1010 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Assign_MKL.h +178 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/BandMatrix.h +353 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Block.h +448 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/BooleanRedux.h +162 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/CommaInitializer.h +164 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/ConditionEstimator.h +175 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/CoreEvaluators.h +1741 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/CoreIterators.h +132 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/CwiseBinaryOp.h +183 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/CwiseTernaryOp.h +197 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/CwiseUnaryOp.h +103 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/CwiseUnaryView.h +132 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/DenseBase.h +701 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/DenseCoeffsBase.h +685 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/DenseStorage.h +652 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Diagonal.h +258 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/DiagonalMatrix.h +391 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/DiagonalProduct.h +28 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Dot.h +318 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/EigenBase.h +160 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/ForceAlignedAccess.h +150 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Fuzzy.h +155 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/GeneralProduct.h +465 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/GenericPacketMath.h +1040 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/GlobalFunctions.h +194 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/IO.h +258 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/IndexedView.h +237 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Inverse.h +117 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Map.h +171 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/MapBase.h +310 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/MathFunctions.h +2057 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/MathFunctionsImpl.h +200 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Matrix.h +565 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/MatrixBase.h +547 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/NestByValue.h +85 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/NoAlias.h +109 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/NumTraits.h +335 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/PermutationMatrix.h +605 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/PlainObjectBase.h +1128 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Product.h +191 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/ProductEvaluators.h +1179 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Random.h +218 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Redux.h +515 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Ref.h +381 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Replicate.h +142 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Reshaped.h +454 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/ReturnByValue.h +119 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Reverse.h +217 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Select.h +164 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/SelfAdjointView.h +365 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Solve.h +188 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/SolveTriangular.h +235 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/SolverBase.h +168 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/StableNorm.h +251 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/StlIterators.h +463 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Stride.h +116 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Swap.h +68 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Transpose.h +464 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Transpositions.h +386 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/TriangularMatrix.h +1001 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/VectorBlock.h +96 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/VectorwiseOp.h +784 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/Visitor.h +381 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AVX/Complex.h +372 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/Default/Half.h +942 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/Default/Settings.h +49 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/NEON/Complex.h +584 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/SSE/Complex.h +351 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/functors/StlFunctors.h +166 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/Parallelizer.h +180 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/BlasUtil.h +583 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/Constants.h +563 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/IntegralConstant.h +272 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/MKL_support.h +137 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/Macros.h +1464 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/Memory.h +1163 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/Meta.h +812 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/NonMPL2.h +3 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/StaticAssert.h +221 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Core/util/XprHelper.h +856 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/RealQZ.h +657 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/RealSchur.h +558 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/AlignedBox.h +486 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/AngleAxis.h +247 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/EulerAngles.h +114 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/Homogeneous.h +501 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/Hyperplane.h +282 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/OrthoMethods.h +235 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/ParametrizedLine.h +232 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/Quaternion.h +870 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/Rotation2D.h +199 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/RotationBase.h +206 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/Scaling.h +188 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/Transform.h +1563 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/Translation.h +202 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/Umeyama.h +166 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Householder/BlockHouseholder.h +110 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Householder/Householder.h +176 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Householder/HouseholderSequence.h +545 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/Jacobi/Jacobi.h +483 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/LU/Determinant.h +117 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/LU/FullPivLU.h +877 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/LU/InverseImpl.h +432 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/LU/PartialPivLU.h +624 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/LU/arch/InverseSize4.h +351 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/MetisSupport/MetisSupport.h +137 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/OrderingMethods/Amd.h +435 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/OrderingMethods/Ordering.h +153 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/QR/HouseholderQR.h +434 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SVD/BDCSVD.h +1366 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SVD/JacobiSVD.h +812 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SVD/SVDBase.h +376 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/AmbiVector.h +378 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/CompressedStorage.h +274 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseAssign.h +270 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseBlock.h +571 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseColEtree.h +206 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseDot.h +98 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseMap.h +305 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparsePermutation.h +178 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseProduct.h +181 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseRedux.h +49 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseRef.h +397 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseTranspose.h +92 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseUtil.h +186 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseVector.h +478 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/SparseView.h +254 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseCore/TriangularSolver.h +315 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU.h +923 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SparseQR/SparseQR.h +758 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/StlSupport/StdDeque.h +116 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/StlSupport/StdList.h +106 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/StlSupport/StdVector.h +131 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/StlSupport/details.h +84 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/misc/Image.h +82 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/misc/Kernel.h +79 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/misc/RealSvd2x2.h +55 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/misc/blas.h +440 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/misc/lapack.h +152 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/misc/lapacke.h +16292 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/misc/lapacke_mangling.h +17 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/plugins/BlockMethods.h +1442 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
- lme4-2.1.0a1/third_party/eigen/Eigen/src/plugins/ReshapedMethods.h +149 -0
lme4-2.1.0a1/MANIFEST.in
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
include README.md setup.py pyproject.toml
|
|
2
|
+
recursive-include src/cpp *.cpp *.h
|
|
3
|
+
recursive-include third_party/eigen *
|
|
4
|
+
include src/lme4/_fgq_rules.json
|
|
5
|
+
recursive-include src/lme4/datasets *.csv.gz *.json
|
|
6
|
+
recursive-exclude * __pycache__ *.pyc *.pyd *.so *.lib *.pdb
|
lme4-2.1.0a1/PKG-INFO
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: lme4
|
|
3
|
+
Version: 2.1.0a1
|
|
4
|
+
Summary: Linear, generalized linear and nonlinear mixed-effects models: a faithful Python transcription of the R package lme4 with a C++ (Eigen) backend
|
|
5
|
+
License-Expression: GPL-2.0-or-later
|
|
6
|
+
Requires-Python: >=3.9
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
Requires-Dist: numpy>=1.22
|
|
9
|
+
Requires-Dist: scipy>=1.8
|
|
10
|
+
Requires-Dist: pandas>=1.5
|
|
11
|
+
Requires-Dist: nlopt>=2.7
|
|
12
|
+
Provides-Extra: test
|
|
13
|
+
Requires-Dist: pytest; extra == "test"
|
|
14
|
+
|
|
15
|
+
# lme4 para Python
|
|
16
|
+
|
|
17
|
+
Transcripción fiel del paquete de R **lme4 2.1-0** (Bates, Maechler, Bolker, Walker y otros)
|
|
18
|
+
a Python, con el mismo backend numérico en **C++/Eigen** (expuesto con pybind11) y entrada
|
|
19
|
+
de datos con **pandas**.
|
|
20
|
+
|
|
21
|
+
No es un *wrapper* de R ni requiere R instalado: el código C++ de lme4 (`predModule`,
|
|
22
|
+
`respModule`, `glmFamily`, Nelder-Mead, PIRLS, Laplace/AGQ) y el BOBYQA de `minqa` fueron
|
|
23
|
+
transcritos, y la lógica R (`lFormula`, `mkReTrms`, `mkLmerDevfun`, `optimizeLmer`,
|
|
24
|
+
`mkMerMod`, `summary`, `VarCorr`, ...) se transcribió a Python función por función.
|
|
25
|
+
|
|
26
|
+
## Uso
|
|
27
|
+
|
|
28
|
+
Las fórmulas se pueden escribir de forma **simbólica**, con `==` en lugar de `~`:
|
|
29
|
+
|
|
30
|
+
```python
|
|
31
|
+
from lme4 import lmer, glmer, binomial, V, cbind, load_dataset
|
|
32
|
+
|
|
33
|
+
sleepstudy = load_dataset("sleepstudy")
|
|
34
|
+
Reaction, Days, Subject = V("Reaction Days Subject")
|
|
35
|
+
|
|
36
|
+
fm1 = lmer(Reaction == Days + (Days | Subject), data=sleepstudy)
|
|
37
|
+
print(fm1.summary())
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
o como en R, con un string:
|
|
41
|
+
|
|
42
|
+
```python
|
|
43
|
+
fm1 = lmer("Reaction ~ Days + (Days | Subject)", data=sleepstudy)
|
|
44
|
+
|
|
45
|
+
cbpp = load_dataset("cbpp")
|
|
46
|
+
gm1 = glmer("cbind(incidence, size - incidence) ~ period + (1 | herd)",
|
|
47
|
+
data=cbpp, family=binomial)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Salida (idéntica a la de R):
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Linear mixed model fit by REML ['lmerMod']
|
|
54
|
+
Formula: Reaction ~ Days + (Days | Subject)
|
|
55
|
+
Data: sleepstudy
|
|
56
|
+
|
|
57
|
+
REML criterion at convergence: 1743.6
|
|
58
|
+
...
|
|
59
|
+
Random effects:
|
|
60
|
+
Groups Name Variance Std.Dev. Corr
|
|
61
|
+
Subject (Intercept) 612.10 24.741
|
|
62
|
+
Days 35.07 5.922 0.07
|
|
63
|
+
Residual 654.94 25.592
|
|
64
|
+
Number of obs: 180, groups: Subject, 18
|
|
65
|
+
|
|
66
|
+
Fixed effects:
|
|
67
|
+
Estimate Std. Error t value
|
|
68
|
+
(Intercept) 251.405 6.825 36.838
|
|
69
|
+
Days 10.467 1.546 6.771
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Fórmulas simbólicas
|
|
73
|
+
|
|
74
|
+
| Python | R |
|
|
75
|
+
|---------------------------|--------------------------|
|
|
76
|
+
| `y == x + z` | `y ~ x + z` |
|
|
77
|
+
| `(x | g)`, `(1 + x | g)` | `(x | g)`, `(1 + x | g)` |
|
|
78
|
+
| `x.dbar(g)` | `(x || g)` |
|
|
79
|
+
| `a & b` | `a:b` |
|
|
80
|
+
| `a * b`, `a / b` | `a * b`, `a / b` |
|
|
81
|
+
| `(a + b + c) ** 2` | `(a + b + c)^2` |
|
|
82
|
+
| `0 + x`, `x - 1` | `0 + x`, `x - 1` |
|
|
83
|
+
| `I(x ** 2)`, `log(x)`, `np.log(x)` | `I(x^2)`, `log(x)` |
|
|
84
|
+
| `cbind(s, n - s)` | `cbind(s, n - s)` |
|
|
85
|
+
|
|
86
|
+
En Python `|` y `&` tienen menor precedencia que `+`: escribe `x + (a & b)` para `x + a:b`
|
|
87
|
+
(igual que `(Days | Subject)` ya necesita paréntesis en R).
|
|
88
|
+
|
|
89
|
+
### Métodos del modelo ajustado
|
|
90
|
+
|
|
91
|
+
`fixef()`, `ranef(condVar=True)`, `coef()`, `VarCorr()`, `sigma()`, `logLik()`, `AIC()`,
|
|
92
|
+
`BIC()`, `deviance()`, `REMLcrit()`, `vcov()`, `summary()`, `fitted()`, `residuals()`,
|
|
93
|
+
`predict()`, `simulate()`, `confint()`, `anova()`, `refitML()`, `update()`, `refit()`,
|
|
94
|
+
`getME(name)`, `isSingular()`, `hatvalues()`, `as_function()` (función de devianza), ...
|
|
95
|
+
|
|
96
|
+
Los resultados se devuelven como objetos pandas (`Series`/`DataFrame`) con los mismos
|
|
97
|
+
nombres que en R.
|
|
98
|
+
|
|
99
|
+
Los argumentos de control usan `_` en vez de `.`:
|
|
100
|
+
`lmerControl(optimizer="bobyqa", check_conv_grad="ignore")`.
|
|
101
|
+
|
|
102
|
+
## Instalación
|
|
103
|
+
|
|
104
|
+
Requisitos: Python ≥ 3.9, numpy, scipy, pandas, nlopt, pybind11 y un compilador C++17.
|
|
105
|
+
|
|
106
|
+
Con Poetry, directamente desde GitHub:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
poetry add git+https://github.com/ljofreflor/lme4.git#develop
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
o con pip:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
pip install git+https://github.com/ljofreflor/lme4.git@develop
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
La instalación compila el backend C++. Usa el compilador del sistema (MSVC, gcc,
|
|
119
|
+
clang) y, si no hay ninguno, recurre automáticamente a Zig (paquete `ziglang`,
|
|
120
|
+
que en Windows se instala como dependencia de compilación). La primera
|
|
121
|
+
compilación tarda unos minutos. Para forzar Zig: `LME4_USE_ZIG=1`.
|
|
122
|
+
|
|
123
|
+
Desarrollo local (compila la extensión dentro de `src/lme4`):
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
pip install numpy scipy pandas nlopt pybind11 ziglang
|
|
127
|
+
python tools/build_ext.py --zig
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Fidelidad respecto de R
|
|
131
|
+
|
|
132
|
+
- Los tests (`pytest`) reproducen valores numéricos de la suite de tests de lme4 2.1-0
|
|
133
|
+
(por ejemplo: `Dyestuff` REML 319.654276842342, `sleepstudy` REML 1743.628,
|
|
134
|
+
`cbpp` deviance 73.47154).
|
|
135
|
+
- Diferencias de implementación:
|
|
136
|
+
- La factorización de Cholesky dispersa usa `Eigen::SimplicialLLT` con ordenamiento AMD
|
|
137
|
+
en lugar de CHOLMOD. Es matemáticamente idéntica, pero la permutación de `getME(m, "L")`
|
|
138
|
+
puede diferir.
|
|
139
|
+
- `nloptwrap` usa el paquete `nlopt` de Python (la misma biblioteca C que `nloptr`).
|
|
140
|
+
- `nlminbwrap` usa L-BFGS-B de scipy (el código PORT de R no está disponible).
|
|
141
|
+
- Las familias GLM se identifican por nombre: no se aceptan familias definidas por el
|
|
142
|
+
usuario.
|
|
143
|
+
- Los niveles de factores creados a partir de strings se ordenan por punto de código
|
|
144
|
+
(R usa el orden del *locale*). Los `Categorical` de pandas conservan su orden.
|
|
145
|
+
|
|
146
|
+
## Estructura
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
src/cpp/ backend C++ (transcripción de lme4/src y minqa/src)
|
|
150
|
+
src/lme4/ paquete Python (transcripción de lme4/R y reformulas/R)
|
|
151
|
+
tests/ tests portados de lme4/tests
|
|
152
|
+
tools/ compilación y conversión de datos
|
|
153
|
+
upstream/ código fuente original de lme4, reformulas y minqa (referencia)
|
|
154
|
+
third_party/ Eigen 3.4.0 (MPL2)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Licencia: GPL (>= 2), como lme4.
|
lme4-2.1.0a1/README.md
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# lme4 para Python
|
|
2
|
+
|
|
3
|
+
Transcripción fiel del paquete de R **lme4 2.1-0** (Bates, Maechler, Bolker, Walker y otros)
|
|
4
|
+
a Python, con el mismo backend numérico en **C++/Eigen** (expuesto con pybind11) y entrada
|
|
5
|
+
de datos con **pandas**.
|
|
6
|
+
|
|
7
|
+
No es un *wrapper* de R ni requiere R instalado: el código C++ de lme4 (`predModule`,
|
|
8
|
+
`respModule`, `glmFamily`, Nelder-Mead, PIRLS, Laplace/AGQ) y el BOBYQA de `minqa` fueron
|
|
9
|
+
transcritos, y la lógica R (`lFormula`, `mkReTrms`, `mkLmerDevfun`, `optimizeLmer`,
|
|
10
|
+
`mkMerMod`, `summary`, `VarCorr`, ...) se transcribió a Python función por función.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
Las fórmulas se pueden escribir de forma **simbólica**, con `==` en lugar de `~`:
|
|
15
|
+
|
|
16
|
+
```python
|
|
17
|
+
from lme4 import lmer, glmer, binomial, V, cbind, load_dataset
|
|
18
|
+
|
|
19
|
+
sleepstudy = load_dataset("sleepstudy")
|
|
20
|
+
Reaction, Days, Subject = V("Reaction Days Subject")
|
|
21
|
+
|
|
22
|
+
fm1 = lmer(Reaction == Days + (Days | Subject), data=sleepstudy)
|
|
23
|
+
print(fm1.summary())
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
o como en R, con un string:
|
|
27
|
+
|
|
28
|
+
```python
|
|
29
|
+
fm1 = lmer("Reaction ~ Days + (Days | Subject)", data=sleepstudy)
|
|
30
|
+
|
|
31
|
+
cbpp = load_dataset("cbpp")
|
|
32
|
+
gm1 = glmer("cbind(incidence, size - incidence) ~ period + (1 | herd)",
|
|
33
|
+
data=cbpp, family=binomial)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Salida (idéntica a la de R):
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Linear mixed model fit by REML ['lmerMod']
|
|
40
|
+
Formula: Reaction ~ Days + (Days | Subject)
|
|
41
|
+
Data: sleepstudy
|
|
42
|
+
|
|
43
|
+
REML criterion at convergence: 1743.6
|
|
44
|
+
...
|
|
45
|
+
Random effects:
|
|
46
|
+
Groups Name Variance Std.Dev. Corr
|
|
47
|
+
Subject (Intercept) 612.10 24.741
|
|
48
|
+
Days 35.07 5.922 0.07
|
|
49
|
+
Residual 654.94 25.592
|
|
50
|
+
Number of obs: 180, groups: Subject, 18
|
|
51
|
+
|
|
52
|
+
Fixed effects:
|
|
53
|
+
Estimate Std. Error t value
|
|
54
|
+
(Intercept) 251.405 6.825 36.838
|
|
55
|
+
Days 10.467 1.546 6.771
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Fórmulas simbólicas
|
|
59
|
+
|
|
60
|
+
| Python | R |
|
|
61
|
+
|---------------------------|--------------------------|
|
|
62
|
+
| `y == x + z` | `y ~ x + z` |
|
|
63
|
+
| `(x | g)`, `(1 + x | g)` | `(x | g)`, `(1 + x | g)` |
|
|
64
|
+
| `x.dbar(g)` | `(x || g)` |
|
|
65
|
+
| `a & b` | `a:b` |
|
|
66
|
+
| `a * b`, `a / b` | `a * b`, `a / b` |
|
|
67
|
+
| `(a + b + c) ** 2` | `(a + b + c)^2` |
|
|
68
|
+
| `0 + x`, `x - 1` | `0 + x`, `x - 1` |
|
|
69
|
+
| `I(x ** 2)`, `log(x)`, `np.log(x)` | `I(x^2)`, `log(x)` |
|
|
70
|
+
| `cbind(s, n - s)` | `cbind(s, n - s)` |
|
|
71
|
+
|
|
72
|
+
En Python `|` y `&` tienen menor precedencia que `+`: escribe `x + (a & b)` para `x + a:b`
|
|
73
|
+
(igual que `(Days | Subject)` ya necesita paréntesis en R).
|
|
74
|
+
|
|
75
|
+
### Métodos del modelo ajustado
|
|
76
|
+
|
|
77
|
+
`fixef()`, `ranef(condVar=True)`, `coef()`, `VarCorr()`, `sigma()`, `logLik()`, `AIC()`,
|
|
78
|
+
`BIC()`, `deviance()`, `REMLcrit()`, `vcov()`, `summary()`, `fitted()`, `residuals()`,
|
|
79
|
+
`predict()`, `simulate()`, `confint()`, `anova()`, `refitML()`, `update()`, `refit()`,
|
|
80
|
+
`getME(name)`, `isSingular()`, `hatvalues()`, `as_function()` (función de devianza), ...
|
|
81
|
+
|
|
82
|
+
Los resultados se devuelven como objetos pandas (`Series`/`DataFrame`) con los mismos
|
|
83
|
+
nombres que en R.
|
|
84
|
+
|
|
85
|
+
Los argumentos de control usan `_` en vez de `.`:
|
|
86
|
+
`lmerControl(optimizer="bobyqa", check_conv_grad="ignore")`.
|
|
87
|
+
|
|
88
|
+
## Instalación
|
|
89
|
+
|
|
90
|
+
Requisitos: Python ≥ 3.9, numpy, scipy, pandas, nlopt, pybind11 y un compilador C++17.
|
|
91
|
+
|
|
92
|
+
Con Poetry, directamente desde GitHub:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
poetry add git+https://github.com/ljofreflor/lme4.git#develop
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
o con pip:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
pip install git+https://github.com/ljofreflor/lme4.git@develop
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
La instalación compila el backend C++. Usa el compilador del sistema (MSVC, gcc,
|
|
105
|
+
clang) y, si no hay ninguno, recurre automáticamente a Zig (paquete `ziglang`,
|
|
106
|
+
que en Windows se instala como dependencia de compilación). La primera
|
|
107
|
+
compilación tarda unos minutos. Para forzar Zig: `LME4_USE_ZIG=1`.
|
|
108
|
+
|
|
109
|
+
Desarrollo local (compila la extensión dentro de `src/lme4`):
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
pip install numpy scipy pandas nlopt pybind11 ziglang
|
|
113
|
+
python tools/build_ext.py --zig
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Fidelidad respecto de R
|
|
117
|
+
|
|
118
|
+
- Los tests (`pytest`) reproducen valores numéricos de la suite de tests de lme4 2.1-0
|
|
119
|
+
(por ejemplo: `Dyestuff` REML 319.654276842342, `sleepstudy` REML 1743.628,
|
|
120
|
+
`cbpp` deviance 73.47154).
|
|
121
|
+
- Diferencias de implementación:
|
|
122
|
+
- La factorización de Cholesky dispersa usa `Eigen::SimplicialLLT` con ordenamiento AMD
|
|
123
|
+
en lugar de CHOLMOD. Es matemáticamente idéntica, pero la permutación de `getME(m, "L")`
|
|
124
|
+
puede diferir.
|
|
125
|
+
- `nloptwrap` usa el paquete `nlopt` de Python (la misma biblioteca C que `nloptr`).
|
|
126
|
+
- `nlminbwrap` usa L-BFGS-B de scipy (el código PORT de R no está disponible).
|
|
127
|
+
- Las familias GLM se identifican por nombre: no se aceptan familias definidas por el
|
|
128
|
+
usuario.
|
|
129
|
+
- Los niveles de factores creados a partir de strings se ordenan por punto de código
|
|
130
|
+
(R usa el orden del *locale*). Los `Categorical` de pandas conservan su orden.
|
|
131
|
+
|
|
132
|
+
## Estructura
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
src/cpp/ backend C++ (transcripción de lme4/src y minqa/src)
|
|
136
|
+
src/lme4/ paquete Python (transcripción de lme4/R y reformulas/R)
|
|
137
|
+
tests/ tests portados de lme4/tests
|
|
138
|
+
tools/ compilación y conversión de datos
|
|
139
|
+
upstream/ código fuente original de lme4, reformulas y minqa (referencia)
|
|
140
|
+
third_party/ Eigen 3.4.0 (MPL2)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Licencia: GPL (>= 2), como lme4.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77", "wheel", "pybind11>=2.12", "ziglang; platform_system == \"Windows\""]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "lme4"
|
|
7
|
+
version = "2.1.0a1"
|
|
8
|
+
description = "Linear, generalized linear and nonlinear mixed-effects models: a faithful Python transcription of the R package lme4 with a C++ (Eigen) backend"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "GPL-2.0-or-later"
|
|
11
|
+
requires-python = ">=3.9"
|
|
12
|
+
dependencies = ["numpy>=1.22", "scipy>=1.8", "pandas>=1.5", "nlopt>=2.7"]
|
|
13
|
+
|
|
14
|
+
[project.optional-dependencies]
|
|
15
|
+
test = ["pytest"]
|
|
16
|
+
|
|
17
|
+
[tool.setuptools]
|
|
18
|
+
package-dir = { "" = "src" }
|
|
19
|
+
|
|
20
|
+
[tool.setuptools.packages.find]
|
|
21
|
+
where = ["src"]
|
|
22
|
+
|
|
23
|
+
[tool.setuptools.package-data]
|
|
24
|
+
lme4 = ["_fgq_rules.json", "datasets/*.csv.gz", "datasets/_factors.json"]
|
|
25
|
+
|
|
26
|
+
[tool.pytest.ini_options]
|
|
27
|
+
testpaths = ["tests"]
|
|
28
|
+
pythonpath = ["src"]
|
|
29
|
+
|
|
30
|
+
[tool.cibuildwheel]
|
|
31
|
+
build = "cp39-* cp310-* cp311-* cp312-* cp313-*"
|
|
32
|
+
skip = "*-win32 *-manylinux_i686 *-musllinux_*"
|
|
33
|
+
# NumPy 2 wheels need glibc >= 2.28
|
|
34
|
+
manylinux-x86_64-image = "manylinux_2_28"
|
|
35
|
+
manylinux-aarch64-image = "manylinux_2_28"
|
|
36
|
+
test-requires = ["pytest"]
|
|
37
|
+
# test against the installed wheel (override pythonpath=src from the pytest config)
|
|
38
|
+
test-command = "pytest -q -p no:cacheprovider -W ignore -o pythonpath= {project}/tests/test_lmer.py {project}/tests/test_glmer.py {project}/tests/test_reference.py"
|
|
39
|
+
# run the (slower) tests only on one Python version per platform
|
|
40
|
+
test-skip = "cp39-* cp310-* cp311-* cp313-*"
|
lme4-2.1.0a1/setup.cfg
ADDED
lme4-2.1.0a1/setup.py
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"""Build script for the C++ backend (lme4._lme4cpp).
|
|
2
|
+
|
|
3
|
+
Uses pybind11 + the vendored Eigen headers in third_party/eigen. Any C++17
|
|
4
|
+
compiler works (MSVC, gcc, clang). If no working compiler is found, the
|
|
5
|
+
extension is built with the Zig toolchain from the ``ziglang`` package
|
|
6
|
+
(declared as a build requirement on Windows in pyproject.toml), so that
|
|
7
|
+
``pip install`` / ``poetry add`` work on machines without Visual Studio.
|
|
8
|
+
"""
|
|
9
|
+
import os
|
|
10
|
+
import subprocess
|
|
11
|
+
import sys
|
|
12
|
+
import sysconfig
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
|
|
15
|
+
from pybind11.setup_helpers import Pybind11Extension, build_ext
|
|
16
|
+
from setuptools import setup
|
|
17
|
+
|
|
18
|
+
ROOT = Path(__file__).resolve().parent
|
|
19
|
+
SRC = ["glmFamily.cpp", "predModule.cpp", "respModule.cpp", "optimizer.cpp", "bobyqa.cpp",
|
|
20
|
+
"external.cpp", "bindings.cpp"]
|
|
21
|
+
|
|
22
|
+
ext = Pybind11Extension(
|
|
23
|
+
"lme4._lme4cpp",
|
|
24
|
+
[f"src/cpp/{f}" for f in SRC],
|
|
25
|
+
include_dirs=["third_party/eigen"],
|
|
26
|
+
define_macros=[("NDEBUG", None), ("_USE_MATH_DEFINES", None)],
|
|
27
|
+
cxx_std=17,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def zig_compile(output: Path):
|
|
32
|
+
"""Compile the extension with ``python -m ziglang c++``."""
|
|
33
|
+
import pybind11
|
|
34
|
+
cmd = [sys.executable, "-m", "ziglang", "c++", "-std=c++17", "-shared", "-O2",
|
|
35
|
+
"-DNDEBUG", "-D_USE_MATH_DEFINES", "-fvisibility=hidden",
|
|
36
|
+
"-Wno-macro-redefined", "-Wno-deprecated-declarations",
|
|
37
|
+
f"-I{sysconfig.get_paths()['include']}", f"-I{pybind11.get_include()}",
|
|
38
|
+
f"-I{ROOT / 'third_party' / 'eigen'}",
|
|
39
|
+
*[str(ROOT / "src" / "cpp" / f) for f in SRC]]
|
|
40
|
+
if sys.platform == "win32":
|
|
41
|
+
cmd[4:4] = ["-target", "x86_64-windows-gnu"]
|
|
42
|
+
cmd += [f"-L{Path(sys.base_prefix) / 'libs'}",
|
|
43
|
+
f"-lpython{sys.version_info.major}{sys.version_info.minor}"]
|
|
44
|
+
elif sys.platform == "darwin":
|
|
45
|
+
cmd += ["-undefined", "dynamic_lookup"]
|
|
46
|
+
else:
|
|
47
|
+
cmd += ["-fPIC"]
|
|
48
|
+
output.parent.mkdir(parents=True, exist_ok=True)
|
|
49
|
+
cmd += ["-o", str(output)]
|
|
50
|
+
print("building lme4._lme4cpp with zig:\n " + " ".join(cmd), flush=True)
|
|
51
|
+
subprocess.check_call(cmd)
|
|
52
|
+
for suffix in (".lib", ".pdb"): # zig leaves import libs next to the .pyd
|
|
53
|
+
extra = output.with_suffix(suffix)
|
|
54
|
+
if extra.exists():
|
|
55
|
+
extra.unlink()
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class build_ext_with_fallback(build_ext):
|
|
59
|
+
"""Try the platform compiler first; fall back to zig if it is missing."""
|
|
60
|
+
|
|
61
|
+
def run(self):
|
|
62
|
+
if os.environ.get("LME4_USE_ZIG") == "1":
|
|
63
|
+
return self._zig_all()
|
|
64
|
+
try:
|
|
65
|
+
super().run()
|
|
66
|
+
except Exception as e: # missing MSVC raises DistutilsPlatformError, etc.
|
|
67
|
+
print(f"C++ compiler build failed ({e}); trying the zig toolchain", flush=True)
|
|
68
|
+
self._zig_all()
|
|
69
|
+
|
|
70
|
+
def _zig_all(self):
|
|
71
|
+
try:
|
|
72
|
+
import ziglang # noqa: F401
|
|
73
|
+
except ImportError:
|
|
74
|
+
raise RuntimeError(
|
|
75
|
+
"No C++17 compiler was found and the 'ziglang' package is not installed. "
|
|
76
|
+
"Install a compiler (e.g. Visual Studio Build Tools) or `pip install ziglang`.")
|
|
77
|
+
for e in self.extensions:
|
|
78
|
+
zig_compile(Path(self.get_ext_fullpath(e.name)))
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
setup(ext_modules=[ext], cmdclass={"build_ext": build_ext_with_fallback})
|