# ---------------------------------------------------------------------------
# Rust
# ---------------------------------------------------------------------------
# Cargo build artifacts. Must be anchored with a leading slash so nested
# `target/` directories (e.g. in vendored crates) are not swept up.
/target/
**/*.rs.bk
*.rs.orig

# `Cargo.lock` is intentionally NOT ignored. This crate builds a native
# extension, so it is effectively an application: pinning the lock file keeps
# builds reproducible, and sysinfo 0.39.6 requires rustc >= 1.95.

# Machine-local cargo configuration is ignored, not committed. The copy on this
# machine points rustc at an absolute path to a VS2017-era toolset, which is
# meaningless to anyone else and actively misleading inside a published sdist.
# Contributors who need it create it locally; CI needs none of it.
/.cargo/config.toml
/.cargo/config

# ---------------------------------------------------------------------------
# Python
# ---------------------------------------------------------------------------
# Byte-compiled files and caches
__pycache__/
*.py[cod]
*$py.class
*.so
*.dll
*.dylib

# Virtual environments
.venv/
venv/
env/
ENV/
.python-version

# Packaging / build output
build/
dist/
sdist/
wheels/
*.egg-info/
*.egg
.eggs/
pip-wheel-metadata/

# Written locally whenever a tool is invoked through `uv run`. This project
# pins Rust dependencies via `Cargo.lock` but does not pin its Python ones, so
# the lock file is never committed. It must also stay out of the sdist:
# maturin ships any file that is not ignored here, and a 300 KB dev lockfile
# has no business inside a package on PyPI.
uv.lock

# Native extension build artifacts.
# `*.so`/`*.dll`/`*.dylib` are unscoped, as is conventional for compiled
# extensions. `*.pyd` and `*.pdb` are scoped to the package directory
# instead: `*.pdb` is also a real Python (Protein Data Bank) extension, so a
# blanket pattern risks silently excluding data. Adjust the paths below if the
# package directory moves.
/python/polars_ros/_internal.pyd
/python/polars_ros/*.pdb

# Test / type-check / lint caches
.pytest_cache/
.mypy_cache/
.dmypy.json
.pyre/
.pytype/
.ruff_cache/
.tox/
.nox/
.hypothesis/

# Coverage
.coverage
.coverage.*
coverage.xml
htmlcov/
nosetests.xml

# Jupyter
.ipynb_checkpoints/
__marimo__

# Environment variables and secrets. `.env.example` stays tracked.
.env
.env.*
!.env.example

# ---------------------------------------------------------------------------
# Editors and OS
# ---------------------------------------------------------------------------
.vscode/
.idea/
*.swp
*.swo
*~
.DS_Store
Thumbs.db
desktop.ini
