@@ -16,15 +16,15 @@ jobs:
1616 vmImage : ${{ parameters.vmImage }}
1717 strategy :
1818 matrix :
19- python310_minimums_wheel :
19+ python310_minimums :
2020 python.version : ' 3.10'
2121 NUMPY : 1.22.3
2222 SCIPY : 1.8.0
2323 PANDAS : 1.3.0
2424 STATSMODELS : 0.13.1
2525 XARRAY : 0.21.0
2626 FORMULAIC : 1.2.1
27- test.wheel : true
27+ PYTEST_PATTERN : " (slow or not slow) "
2828 python310_mid_sdist :
2929 python.version : ' 3.10'
3030 NUMPY : 1.23.0
@@ -62,11 +62,15 @@ jobs:
6262 XXHASH : true
6363 PYARROW : true
6464 BUILD_FLAGS : ' -Csetup-args=-Dno-binary=true'
65+ python312_cython_coverage :
66+ python.version : ' 3.12'
67+ BUILD_FLAGS : ' -Csetup-args=-Dcython-coverage=true'
68+ cython.coverage : true
6569 python313_latest :
6670 python.version : ' 3.13'
6771 XXHASH : true
6872 PYARROW : true
69- BUILD_FLAGS : ' -Csetup-args=-Dcython-coverage=true '
73+ PYTEST_PATTERN : " (slow or not slow) "
7074 python313_copy_on_write :
7175 python.version : ' 3.12'
7276 XXHASH : true
9296 jupyter kernelspec list
9397 displayName: 'Install dependencies'
9498
95- - script : |
96- python -m pip list
99+ - script : python -m pip list
97100 displayName : ' List Configuration'
98101
99102 - script : |
@@ -126,6 +129,13 @@ jobs:
126129 displayName: 'Install linearmodels (editable)'
127130 condition: and(ne(variables['test.wheel'], 'true'), ne(variables['test.sdist'], 'true'))
128131
132+ - script : |
133+ pushd linearmodels/panel
134+ cython --verbose -M --fast-fail -3 -X cpow=True -X boundscheck=False -X wraparound=False -X cdivision=True -X binding=True -X linetrace=True _utility.pyx
135+ popd
136+ displayName: 'Transpile Cython to C for coverage support'
137+ condition: eq(variables['cython.coverage'], 'true')
138+
129139 - script : |
130140 echo "Testing site packages"
131141 mkdir test_run_dir
@@ -137,16 +147,16 @@ jobs:
137147
138148 - script : |
139149 echo "Testing editable install"
140- export COVERAGE_OPTS="--cov= linearmodels --cov-report xml:coverage.xml --cov-report term"
141- echo pytest -m "${PYTEST_PATTERN}" --junitxml=junit/test-results.xml -n auto --durations=25 ${COVERAGE_OPTS} ${BUILD_FLAGS} linearmodels/tests
150+ export COVERAGE_OPTS="--cov-config=.coveragerc --cov= linearmodels --cov-branch --cov-report xml:coverage.xml --cov-report term"
151+ echo pytest -m "${PYTEST_PATTERN}" --junitxml=junit/test-results.xml -n auto --durations=25 ${COVERAGE_OPTS} linearmodels/tests
142152 pytest -m "${PYTEST_PATTERN}" --junitxml=junit/test-results.xml -n auto --durations=25 ${COVERAGE_OPTS} linearmodels/tests
143153 displayName: 'Run tests (editable)'
144154 condition: and(and(ne(variables['test.wheel'], 'true'), ne(variables['test.sdist'], 'true')), ne(variables['pip.pre'], 'true'))
145155
146156 - script : |
147157 echo "Testing pip-pre"
148- export COVERAGE_OPTS="--cov= linearmodels --cov-report xml:coverage.xml --cov-report term"
149- echo pytest -m "${PYTEST_PATTERN}" --junitxml=junit/test-results.xml -n auto --durations=25 ${COVERAGE_OPTS} ${BUILD_FLAGS} linearmodels/tests
158+ export COVERAGE_OPTS="--cov-config=.coveragerc --cov= linearmodels --cov-branch --cov-report= xml:coverage.xml --cov-report= term"
159+ echo pytest -m "${PYTEST_PATTERN}" --junitxml=junit/test-results.xml -n auto --durations=25 ${COVERAGE_OPTS} linearmodels/tests
150160 pytest -m "${PYTEST_PATTERN}" --junitxml=junit/test-results.xml -n auto --durations=25 ${COVERAGE_OPTS} linearmodels/tests
151161 displayName: 'Run tests (pip pre)'
152162 condition: eq(variables['pip.pre'], 'true')
0 commit comments