Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to pixi #12

Merged
merged 38 commits into from
Jun 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
3d4d6db
Draft usage of pixi in ci.yml.
kklein Jun 18, 2024
67766ca
Merge branch 'main' into pixi
kklein Jun 18, 2024
f9fa366
Add names.
kklein Jun 18, 2024
fffe8f0
Merge branch 'pixi' of github.com:Quantco/metalearners into pixi
kklein Jun 18, 2024
32a315d
Wrap values in quotes.
kklein Jun 18, 2024
2f9b98e
Convert item to list.
kklein Jun 18, 2024
6c7f076
Fix typo.
kklein Jun 18, 2024
b93a525
Merge branch 'main' of github.com:Quantco/metalearners into pixi
kklein Jun 24, 2024
cab8da2
Add missing action.
kklein Jun 24, 2024
79a1dde
Move pchs to pixi.
kklein Jun 24, 2024
8ea9fd2
Fix syntax error.
kklein Jun 24, 2024
3beecff
Add missing tasks.
kklein Jun 24, 2024
cb5030d
Fix mypy job.
kklein Jun 24, 2024
793fdc5
Bring back mypy pch.
kklein Jun 24, 2024
95ede13
Bring back mypy pch.
kklein Jun 24, 2024
014a077
Remove redundant dependency.
kklein Jun 24, 2024
daf1fd0
Adapt readthedocs configuration.
kklein Jun 24, 2024
3ad76d2
Create docs environment.
kklein Jun 24, 2024
344b0dd
Fix docs task.
kklein Jun 24, 2024
c38798f
Merge branch 'main' into pixi
kklein Jun 24, 2024
b4e329e
Update .pre-commit-config.yaml
kklein Jun 24, 2024
eb8e0aa
Update pixi.toml
kklein Jun 24, 2024
0c06b3e
Update .github/workflows/ci.yml
kklein Jun 24, 2024
29137da
Update pixi.toml
kklein Jun 24, 2024
906c468
Update pixi.toml
kklein Jun 24, 2024
519882f
Update lock.
kklein Jun 24, 2024
dec9668
Remove redundant mypy step.
kklein Jun 24, 2024
b535141
Fix unit test name.
kklein Jun 24, 2024
5347f2a
Also update benchmark action.
kklein Jun 24, 2024
639cebd
Fix typo.
kklein Jun 24, 2024
0f29e36
Disable Windows tests.
kklein Jun 24, 2024
8a43f13
Remove redundant reference to lint environment.
kklein Jun 25, 2024
c8214c9
Update .pre-commit-config.yaml
kklein Jun 25, 2024
f9ecfb9
Update .github/workflows/ci.yml
kklein Jun 25, 2024
4d421fc
Replace license headers.
kklein Jun 25, 2024
1f39681
Merge branch 'main' into pixi
kklein Jun 25, 2024
28ea33b
Replace double quotes by single quotes.
kklein Jun 25, 2024
5ee2860
Merge branch 'pixi' of github.com:Quantco/metalearners into pixi
kklein Jun 25, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 7 additions & 13 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,14 @@ jobs:
name: Run benchmarks
runs-on: ubuntu-latest
steps:
- name: Checkout
- name: Checkout branch
uses: actions/checkout@v4
with:
ref: main
fetch-depth: 0
- name: Setup conda
uses: mamba-org/setup-micromamba@v1
with:
condarc-file: .github/assets/.condarc
environment-file: benchmarks/environment.yml
- name: Install package
run: python -m pip install -e .
- name: Run benchmark.py
run: python benchmarks/benchmark.py
- name: Set up pixi
uses: prefix-dev/[email protected]
- name: Install repository
run: |
pixi run -e default postinstall
pixi run -e default python benchmarks/benchmark.py
- name: Update readme.md
run: |
line_number=`grep "| T-learner" benchmarks/readme.md -n | cut -f1 -d:`
Expand Down
67 changes: 20 additions & 47 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,68 +18,41 @@ jobs:
steps:
- name: Checkout branch
uses: actions/checkout@v4
- name: Set up pixi
uses: prefix-dev/[email protected]
with:
ref: ${{ github.head_ref }}
# needed for 'pre-commit-mirrors-insert-license'
fetch-depth: 0
- name: Run pre-commit-conda
uses: quantco/pre-commit-conda@v1

mypy-type-checks:
name: Mypy Type Checks
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
fetch-depth: 0
- name: Set up Conda env
uses: mamba-org/setup-micromamba@422500192359a097648154e8db4e39bdb6c6eed7
with:
condarc-file: .github/assets/.condarc
environment-file: environment.yml
cache-environment: true
- name: Install repository
run: python -m pip install --no-build-isolation --no-deps --disable-pip-version-check -e .
- name: Run mypy
run: mypy .
environments: default lint
- name: pre-commit
run: pixi run pre-commit-run --color=always --show-diff-on-failure

unit-tests:
name: Unit Tests - ${{ matrix.os == 'ubuntu-latest' && 'Linux' || 'Windows' }} - Python ${{ matrix.python-version }}
name: Unit Tests
timeout-minutes: 30
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ["3.10", "3.11", "3.12"]
os: [ubuntu-latest, macos-latest]
env: ["py310", "py311", "py312"]
steps:
- name: Checkout branch
uses: actions/checkout@v4
- name: Set up pixi
uses: prefix-dev/[email protected]
with:
ref: ${{ github.head_ref }}
fetch-depth: 0
- name: Set up Conda env
uses: mamba-org/setup-micromamba@422500192359a097648154e8db4e39bdb6c6eed7
with:
condarc-file: .github/assets/.condarc
environment-file: environment.yml
cache-environment: true
create-args: >-
python=${{ matrix.python-version }}
pytest-md
pytest-emoji
environments: ${{ matrix.env }}
- name: Install repository
run: python -m pip install --no-build-isolation --no-deps --disable-pip-version-check -e .
- name: Run unittests
uses: quantco/pytest-action@v2
run: |
pixi run -e ${{ matrix.env }} postinstall
pixi run -e ${{ matrix.env }} coverage
- name: Generate code coverage report
if: matrix.python-version == '3.12'
uses: codecov/[email protected]
with:
report-title: Unit Tests - ${{ matrix.os == 'ubuntu-latest' && 'Linux' || 'Windows' }} - Python ${{ matrix.python-version }}
custom-arguments: --cov=metalearners --cov-report=xml --cov-report term-missing --color=yes
file: ./coverage.xml
- name: Upload coverage reports to Codecov
if: matrix.python-version == '3.12'
uses: codecov/codecov-action@125fc84a9a348dbcf27191600683ec096ec9021c
if: matrix.env == 'py312'
uses: codecov/codecov-action@v3.1.3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
102 changes: 69 additions & 33 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,45 +1,81 @@
exclude: ^\.pixi
repos:
- repo: https://github.com/Quantco/pre-commit-mirrors-insert-license
rev: 1.3.0
- repo: local
hooks:
# ensure pixi environments are up to date
# workaround for https://github.com/prefix-dev/pixi/issues/1482
- id: pixi-install
name: pixi-install
entry: pixi install -e default -e lint
language: system
always_run: true
require_serial: true
pass_filenames: false
- id: insert-license
pavelzw marked this conversation as resolved.
Show resolved Hide resolved
name: insert-license
entry: pixi run -e lint insert-license
types: [python]
language: system
args:
- --license-base64
- IyBDb3B5cmlnaHQgKGMpIFF1YW50Q28gMjAyNC0yMDI0CiMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQo=
- Q29weXJpZ2h0IChjKSBRdWFudENvIDIwMjQtMjAyNApTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNl
- --dynamic-years
- --comment-style
- "#"
- repo: https://github.com/Quantco/pre-commit-mirrors-docformatter
rev: 1.7.5
hooks:
- id: docformatter-conda
- repo: https://github.com/Quantco/pre-commit-mirrors-ruff
rev: 0.4.7
hooks:
- id: ruff-conda
- repo: https://github.com/Quantco/pre-commit-mirrors-black
rev: 24.4.2
hooks:
- id: docformatter
name: docformatter
entry: pixi run -e lint docformatter
args: [-i]
types: [python]
language: system
- id: ruff
name: ruff
entry: pixi run -e lint ruff check --fix --exit-non-zero-on-fix --force-exclude
language: system
types_or: [python, pyi]
require_serial: true
- id: black-conda
- repo: https://github.com/Quantco/pre-commit-mirrors-mypy
rev: 1.10.0
hooks:
- id: mypy-conda
additional_dependencies: [-c, conda-forge, types-setuptools]
- repo: https://github.com/Quantco/pre-commit-mirrors-prettier
rev: 3.2.5
hooks:
- id: prettier-conda
name: black-conda
entry: pixi run -e lint black
language: system
require_serial: true
types: [python]
- id: mypy
name: mypy
entry: pixi run -e default mypy
language: system
types: [python]
args: ["--ignore-missing-imports", "--scripts-are-modules"]
require_serial: true
- id: prettier
name: prettier
entry: pixi run -e lint prettier
language: system
files: \.(md|yml|yaml)$
- repo: https://github.com/Quantco/pre-commit-mirrors-pre-commit-hooks
rev: 4.6.0
hooks:
- id: trailing-whitespace-conda
- id: end-of-file-fixer-conda
- id: check-merge-conflict-conda
types: [text]
args: ["--write", "--list-different", "--ignore-unknown"]
- id: trailing-whitespace
name: trim trailing whitespace
language: system
entry: pixi run -e lint trailing-whitespace-fixer
types: [text]
stages: [commit, push, manual]
- id: end-of-file-fixer
name: fix end of files
language: system
entry: pixi run -e lint end-of-file-fixer
types: [text]
stages: [commit, push, manual]
- id: check-merge-conflict
name: check for merge conflicts
language: system
entry: pixi run -e lint check-merge-conflict
types: [text]
args: ["--assume-in-merge"]
- repo: https://github.com/Quantco/pre-commit-mirrors-typos
rev: 1.21.0
hooks:
- id: typos-conda
- id: typos
name: typos
entry: pixi run -e lint typos --force-exclude
language: system
types: [text]
exclude: "\\.csv$"
require_serial: true
16 changes: 6 additions & 10 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,13 @@ version: 2
build:
os: ubuntu-20.04
tools:
python: mambaforge-4.10
python: mambaforge-latest
commands:
- mamba install -c conda-forge -c nodefaults pixi
- pixi run -e docs postinstall
- pixi run -e docs docs
- pixi run -e docs readthedocs
sphinx:
configuration: docs/conf.py
python:
install:
- method: pip
path: .
extra_requirements:
- doc
- test
conda:
environment: environment.yml
formats:
- pdf
4 changes: 2 additions & 2 deletions benchmarks/benchmark.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# # Copyright (c) QuantCo 2024-2024
# # SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) QuantCo 2024-2024
# SPDX-License-Identifier: BSD-3-Clause

import json
from pathlib import Path
Expand Down
4 changes: 2 additions & 2 deletions data/download_twins.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# # Copyright (c) QuantCo 2024-2024
# # SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) QuantCo 2024-2024
# SPDX-License-Identifier: BSD-3-Clause

import pandas as pd
from git_root import git_root
Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# # Copyright (c) QuantCo 2024-2024
# # SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) QuantCo 2024-2024
# SPDX-License-Identifier: BSD-3-Clause

# Configuration file for the Sphinx documentation builder.
#
Expand Down
45 changes: 0 additions & 45 deletions environment.yml

This file was deleted.

4 changes: 2 additions & 2 deletions metalearners/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# # Copyright (c) QuantCo 2024-2024
# # SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) QuantCo 2024-2024
# SPDX-License-Identifier: BSD-3-Clause

import importlib.metadata
import warnings
Expand Down
4 changes: 2 additions & 2 deletions metalearners/_typing.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# # Copyright (c) QuantCo 2024-2024
# # SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) QuantCo 2024-2024
# SPDX-License-Identifier: BSD-3-Clause

from collections.abc import Collection, Mapping
from typing import Literal, Protocol, Union
Expand Down
4 changes: 2 additions & 2 deletions metalearners/_utils.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# # Copyright (c) QuantCo 2024-2024
# # SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) QuantCo 2024-2024
# SPDX-License-Identifier: BSD-3-Clause

from collections.abc import Callable
from inspect import signature
Expand Down
4 changes: 2 additions & 2 deletions metalearners/cross_fit_estimator.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# # Copyright (c) QuantCo 2024-2024
# # SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) QuantCo 2024-2024
# SPDX-License-Identifier: BSD-3-Clause

import warnings
from dataclasses import dataclass, field
Expand Down
4 changes: 2 additions & 2 deletions metalearners/data_generation.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# # Copyright (c) QuantCo 2024-2024
# # SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) QuantCo 2024-2024
# SPDX-License-Identifier: BSD-3-Clause

from typing import Literal

Expand Down
4 changes: 2 additions & 2 deletions metalearners/drlearner.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# # Copyright (c) QuantCo 2024-2024
# # SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) QuantCo 2024-2024
# SPDX-License-Identifier: BSD-3-Clause

import numpy as np
from joblib import Parallel, delayed
Expand Down
4 changes: 2 additions & 2 deletions metalearners/explainer.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# # Copyright (c) QuantCo 2024-2024
# # SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) QuantCo 2024-2024
# SPDX-License-Identifier: BSD-3-Clause

from collections.abc import Collection

Expand Down
4 changes: 2 additions & 2 deletions metalearners/metalearner.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# # Copyright (c) QuantCo 2024-2024
# # SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) QuantCo 2024-2024
# SPDX-License-Identifier: BSD-3-Clause

from abc import ABC, abstractmethod
from collections.abc import Callable, Collection
Expand Down
4 changes: 2 additions & 2 deletions metalearners/outcome_functions.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# # Copyright (c) QuantCo 2024-2024
# # SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) QuantCo 2024-2024
# SPDX-License-Identifier: BSD-3-Clause

from collections.abc import Callable

Expand Down
Loading
Loading