Skip to content

Commit

Permalink
add pip git install ci
Browse files Browse the repository at this point in the history
  • Loading branch information
ygeunkim committed Sep 12, 2024
1 parent 203437f commit f807cc0
Show file tree
Hide file tree
Showing 6 changed files with 153 additions and 3 deletions.
125 changes: 125 additions & 0 deletions .github/workflows/py-github-check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
on:
push:
branches: ['feature/python', 'feature/py-*'] # change to [main, master, 'hotfix/*', 'release/*', develop, 'feature/py-*'] after finish
# pull_request:
# branches: [main, master, 'hotfix/*', 'release/*', develop]

name: py-github-check

jobs:
build:
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.10', '3.11', '3.12']

defaults:
run:
working-directory: python

name: ${{ matrix.os }} (${{ matrix.python-version }})

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Verify git
run: git --version

- name: Set system dependencies on Linux
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libboost-all-dev libeigen3-dev
echo $(sudo apt list --installed)
echo "EIGEN_INCLUDE_DIR=/usr/include/eigen3" >> $GITHUB_ENV
echo "BOOST_INCLUDE_DIR=/usr/include/boost" >> $GITHUB_ENV
- name: Set system dependencies on macOS
if: runner.os == 'macOS'
run: |
brew update
brew install llvm libomp boost eigen
EIGEN_LOC=$(brew --prefix eigen)
BOOST_LOC=$(brew --prefix boost)
LLVM_LOC=$(brew --prefix llvm)
OMP_LOC=$(brew --prefix libomp)
echo "EIGEN_INCLUDE_DIR=$EIGEN_LOC/include/eigen3" >> $GITHUB_ENV
echo "BOOST_INCLUDE_DIR=$BOOST_LOC/include" >> $GITHUB_ENV
echo "LLVM_LOC=$LLVM_LOC" >> $GITHUB_ENV
echo "OMP_LOC=$OMP_LOC" >> $GITHUB_ENV
echo "CC=$LLVM_LOC/bin/clang" >> $GITHUB_ENV
echo "CXX=$LLVM_LOC/bin/clang++" >> $GITHUB_ENV
echo "CPPFLAGS=-I$LLVM_LOC/include -I$OMP_LOC/include" >> $GITHUB_ENV
echo "LDFLAGS=-L$LLVM_LOC/lib -L$OMP_LOC/lib" >> $GITHUB_ENV
- name: Set system dependencies on Windows
if: runner.os == 'Windows'
run: |
choco install eigen -y --no-progress
choco install boost-msvc-14.3 -y --no-progress
$eigenPath = (
Get-ChildItem -Path "C:\ProgramData\chocolatey\lib\eigen" -Recurse -Filter "Eigen" |
Select-Object -First 1
).Parent.FullName
if ($eigenPath) {
echo "eigen is installed in $eigenPath"
} else {
Write-Error "Wrong eigen path"
exit 1
}
$boostPath = $null
$boostCand = @("C:\local", "C:\ProgramData\chocolatey\lib")
foreach ($cand in $boostCand) {
$isPath = (
Get-ChildItem -Path $cand -Directory |
Where-Object { $_.Name -match "boost" } |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
).FullName
if ($isPath) {
$boostPath = $isPath
break
}
}
if ($boostPath) {
echo "boost is installed in $boostPath"
} else {
Write-Error "Wrong boost path"
exit 1
}
echo "EIGEN_INCLUDE_DIR=$eigenPath" >> $Env:GITHUB_ENV
echo "BOOST_INCLUDE_DIR=$boostPath" >> $Env:GITHUB_ENV
- name: Verify Eigen and boost on non-Windows
if: runner.os != 'Windows'
run: |
ls ${{ env.EIGEN_INCLUDE_DIR }}
ls ${{ env.BOOST_INCLUDE_DIR }}
- name: Verify Eigen and boost on Windows
if: runner.os == 'Windows'
run: |
dir ${{ env.EIGEN_INCLUDE_DIR }}
dir ${{ env.BOOST_INCLUDE_DIR }}
- name: Install package from github
# change branch after finishing the feature
run: |
pip install --upgrade pip
python -m pip install git+https://github.com/ygeunkim/bvhar.git@feature/python#subdirectory=python[test]
- name: Verify installation
run: pip list

- name: OpenMP check
run: python -c "from bvhar.utils import checkomp; checkomp.check_omp()"

- name: Test
run: pytest
6 changes: 5 additions & 1 deletion .github/workflows/py-sdist-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,11 @@ jobs:
- name: Install sdist on Windows
if: runner.os == 'Windows'
run: |
$dist = (Get-ChildItem -Path dist -Filter "*.zip" | Select-Object -First 1).FullName
$dist = (
Get-ChildItem -Path dist |
Where-Object { $_.Name -like "*.zip" -or $_.Name -like "*.tar.gz" } |
Select-Object -First 1
).FullName
pip install $dist
- name: Verify installation
Expand Down
2 changes: 2 additions & 0 deletions python/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include setup.py
include pyproject.toml
9 changes: 7 additions & 2 deletions python/docs/index.qmd
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
# bvhar <a href="https://github.com/ygeunkim/bvhar/tree/feature/python/python/"><img src="logo.png" align="right" height="138" /></a>

This is a python version for [`bvhar`](https://cloud.r-project.org/web/packages/bvhar/index.html) package.
This is a Python version for [`bvhar`](https://cloud.r-project.org/web/packages/bvhar/index.html) package.

The package implements C++ headers made in R package.
Learn more about [`bvhar for R`](https://ygeunkim.github.io/package/bvhar/index.html).

::: {.callout-note}
`bvhar` for Python is not ready to use. This page is rendered just for testing; yet.
:::

## Eigen and boost setting

`bvhar` C++ sources uses
Expand Down Expand Up @@ -40,5 +44,6 @@ pip install -e .

## Usage

`bvhar` for python is not ready to use.
You can see the development status in PR [#10](https://github.com/ygeunkim/bvhar/pull/10).


9 changes: 9 additions & 0 deletions python/docs/intro.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,17 @@ etf_vix

# Models

```{python}
from bvhar.model import VarOls, VharOls
```

## VAR

```{python}
fit_var = VarOls(etf_vix, 1, True)
fit_var.fit()
```

## VHAR

## BVAR
Expand Down
5 changes: 5 additions & 0 deletions python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,11 @@ doc = [
test = [
"pytest"
]
dev = [
"pytest",
"jupyter",
"quartodoc"
]

[build-system]
requires = [
Expand Down

0 comments on commit f807cc0

Please sign in to comment.