Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .copier-answers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#
# If you want to run this as a one-off command, prefix with:
# `pixi exec --spec copier --spec ruamel.yaml -- {command}`
_commit: v0.5.3
_commit: v0.6.0
_src_path: https://github.com/quantco/copier-template-python-open-source
add_autobump_workflow: false
author_email: oliver.borchert@quantco.com
Expand Down
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1 @@
pixi.lock merge=binary linguist-language=YAML linguist-generated=true
pixi.lock merge=binary linguist-language=YAML linguist-generated=true -diff
6 changes: 3 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ jobs:
with:
fetch-depth: 0
- name: Set up pixi
uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2
uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2
with:
environments: build
- name: Set version
run: pixi run -e build set-version
- name: Build project
run: pixi run -e build build-sdist
- name: Upload package
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: sdist
path: dist/*
Expand Down Expand Up @@ -109,7 +109,7 @@ jobs:
id-token: write
environment: pypi
steps:
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
path: dist
merge-multiple: true
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ jobs:
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- name: Checkout branch
- name: Check out branch
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
# needed for 'pre-commit-mirrors-insert-license'
fetch-depth: 0
- name: Set up pixi
uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2
uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2
with:
environments: default default-py311
- name: Install Rust
Expand All @@ -44,7 +44,12 @@ jobs:
fail-fast: true
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
environment: [py311, py312, py313, py314]
environment:
- py311
- py312
- py313
- py314
- py315
with_optionals: [false]
include:
# Test with optional dependencies across OSes
Expand All @@ -65,7 +70,7 @@ jobs:
- name: Checkout branch
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up pixi
uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2
uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2
with:
environments: ${{ matrix.environment }}
# FIXME: Remove when `s3_server` fixture does not start a process anymore
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ jobs:
# actions: read

steps:
- name: "Checkout code"
- name: "Check out code"
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: "Run analysis"
uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4
uses: ossf/scorecard-action@fa7117db83c52d787ae5a89f350999701505d78e # v2.5.0
with:
results_file: results.sarif
results_format: sarif
Expand All @@ -65,7 +65,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: SARIF file
path: results.sarif
Expand All @@ -74,6 +74,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard (optional).
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
uses: github/codeql-action/upload-sarif@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0
with:
sarif_file: results.sarif
200 changes: 40 additions & 160 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Created by https://www.toptal.com/developers/gitignore/api/linux,macos,direnv,python,windows,pycharm+all,visualstudiocode,vim
# Edit at https://www.toptal.com/developers/gitignore?templates=linux,macos,direnv,python,windows,pycharm+all,visualstudiocode,vim
# Explicitly unignore hidden files for ripgrep. Individual folders can still
# be ignored in the blocks below.
!.*

### direnv ###
.direnv
Expand All @@ -22,177 +23,45 @@
### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### macOS Patch ###
# iCloud generated files
*.icloud

### PyCharm+all ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# AWS User-specific
.idea/**/aws.xml

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# SonarLint plugin
.idea/sonarlint/

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### PyCharm+all Patch ###
# Ignore everything but code style settings and run configurations
# that are supposed to be shared within teams.

.idea/*

!.idea/codeStyles
!.idea/runConfigurations
# IDEs
.idea/
.vscode/
#!.vscode/settings.json
#!.vscode/tasks.json
#!.vscode/launch.json
#!.vscode/extensions.json
#!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/

### Python ###
# Byte-compiled / optimized / DLL files
# python
__pycache__/
.pytest_cache/
.mypy_cache/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
.ipynb_checkpoints
.ruff_cache/
.venv
venv/
__pypackages__/
cython_debug/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt
.pixi

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
# coverage
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
/coverage
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
htmlcov/
.tox/
.nox/

# Translations
*.mo
Expand All @@ -217,6 +86,13 @@ docs/**/_gen/

# PyBuilder
.pybuilder/
build/
out/
output/
dist/
.cache/
*.so
cmake-build-*/
target/

# Jupyter Notebook
Expand Down Expand Up @@ -288,6 +164,8 @@ venv.bak/

# mkdocs documentation
/site
docs/_build/
*.conda

# mypy
.mypy_cache/
Expand Down Expand Up @@ -385,7 +263,9 @@ $RECYCLE.BIN/
# Windows shortcuts
*.lnk

# End of https://www.toptal.com/developers/gitignore/api/linux,macos,direnv,python,windows,pycharm+all,visualstudiocode,vim
# Claude
.claude/*.local.*
.claude/worktrees/

# interactive testing
/*.ipynb
Expand Down
6 changes: 4 additions & 2 deletions .lefthook.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ pre-commit:
- name: prettier
glob: "*.{md,yml,yaml}"
run: pixi {run} prettier --write --no-error-on-unmatched-pattern --list-different --ignore-unknown {staged_files}
- name: taplo
- name: tombi
glob: "*.toml"
run: pixi {run} taplo format {staged_files}
run: pixi {run} tombi format --offline {staged_files}
- name: cargo-fmt
glob: "*.rs"
run: pixi {run} cargo fmt
Expand All @@ -50,6 +50,8 @@ pre-commit:
- "*.rst"
- name: typos
glob: "*"
exclude:
- .copier-answers.yml
file_types: text
run: pixi {run} typos --force-exclude {staged_files}
- name: zizmor
Expand Down
10 changes: 5 additions & 5 deletions dataframely/__init__.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Copyright (c) QuantCo 2025-2026
# SPDX-License-Identifier: BSD-3-Clause

import importlib.metadata
import warnings
import warnings as _warnings
from importlib import metadata as _metadata

try:
__version__ = importlib.metadata.version(__name__)
except importlib.metadata.PackageNotFoundError as e: # pragma: no cover
warnings.warn(f"Could not determine version of {__name__}\n{e!s}", stacklevel=2)
__version__ = _metadata.version(__name__)
except _metadata.PackageNotFoundError as e: # pragma: no cover
_warnings.warn(f"Could not determine version of {__name__}\n{e!s}", stacklevel=2)
__version__ = "unknown"

from . import random
Expand Down
Loading
Loading