# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
#
# =============================================================================
# Project     : Unbihexium
# File        : .gitignore
# Title       : Files that must never be committed
# Author      : Olaf Yunus Laitinen Imanov <yunus.z.imanov@helsinki.fi>
# Affiliation : University of Helsinki
# Copyright   : 2025-2026 Unbihexium OSS Foundation and contributors
# Licence     : Mozilla Public License 2.0, see LICENSE.txt
# Format      : Git ignore patterns, read by Git (gitignore(5))
# =============================================================================
#
# Abstract
# --------
# Lists the untracked files that Git must not offer to commit, organised by
# origin. Patterns follow gitignore(5) (https://git-scm.com/docs/gitignore):
# a trailing `/` matches directories only, a leading `/` anchors the pattern
# at the repository root and a leading `!` re-includes a path that an earlier
# pattern excluded.
#
# Notes for maintainers:
#
#   - Model weights are never committed: the model zoo builds its starter
#     weights locally from the catalogue, and trained checkpoints and ONNX
#     exports are user data (see the model weights section below).
#   - .env.example is committed on purpose; real .env files are ignored.
#
# Git reads a `#` only at the start of a line as a comment, so every comment
# stands on its own line above the pattern it explains. Check a path with
# `git check-ignore -v <path>`.
# =============================================================================

# -----------------------------------------------------------------------------
# Python: bytecode, extensions and packaging
# -----------------------------------------------------------------------------

# Bytecode cache directories written by the interpreter.
__pycache__/
# Compiled, optimised and DLL bytecode files.
*.py[cod]
# Jython class files.
*$py.class
# Compiled C extensions.
*.so
# Python copy left by old virtualenv versions.
.Python
# Build directory of setuptools and other backends.
build/
# Development eggs of setuptools.
develop-eggs/
# Built wheels and source distributions.
dist/
# Download directory of old installers.
downloads/
# Installed eggs of zc.buildout.
eggs/
# Eggs fetched by setup_requires.
.eggs/
# Library directory of in-tree installations.
lib/
# 64-bit library directory of in-tree installations.
lib64/
# Parts directory of zc.buildout.
parts/
# Source distribution staging directory.
sdist/
# Variable data of in-tree installations.
var/
# Wheel cache directory.
wheels/
# Shared wheels of in-tree installations.
share/python-wheels/
# Package metadata written by editable installs.
*.egg-info/
# Installation record of zc.buildout.
.installed.cfg
# Egg archives.
*.egg
# Manifest generated by distutils.
MANIFEST
# PyInstaller manifests.
*.manifest
# PyInstaller spec files.
*.spec
# Log written by pip on failure.
pip-log.txt
# Marker file left by old pip versions.
pip-delete-this-directory.txt

# -----------------------------------------------------------------------------
# Virtual environments and environment files
# -----------------------------------------------------------------------------

# Virtual environment created by uv and `python -m venv .venv`.
.venv/
# Virtual environment with the traditional name.
venv/
# Virtual environment named env.
env/
# Virtual environment named ENV.
ENV/
# Backup of a virtual environment named env.
env.bak/
# Backup of a virtual environment named venv.
venv.bak/
# Local packages directory of PEP 582.
__pypackages__/
# Local environment file, which may contain credentials.
.env
# Variants such as .env.local or .env.production.
.env.*
# The documented example file is committed on purpose.
!.env.example
# Local overrides of YAML configuration files.
*.local.yaml

# pyenv and uv interpreter pins are local choices; the supported versions are
# defined in pyproject.toml.
.python-version

# Other package managers. The project lock files are requirements*.txt.
Pipfile.lock
# Lock file of Poetry.
poetry.lock
# Lock file of uv projects; this project exports requirements*.txt instead.
uv.lock
# Lock file of PDM.
pdm.lock
# Local configuration of old PDM versions.
.pdm.toml
# Interpreter pin of PDM.
.pdm-python
# Build directory of PDM.
.pdm-build/

# -----------------------------------------------------------------------------
# Tests, coverage and tool caches
# -----------------------------------------------------------------------------

# Environments created by tox.
.tox/
# Environments created by nox.
.nox/
# Coverage data file.
.coverage
# Parallel coverage data files before `coverage combine`.
.coverage.*
# Coverage report in Cobertura XML format for Codecov.
coverage.xml
# Annotated source files of `coverage annotate`.
*.cover
# Annotated source files of older coverage versions.
*.py,cover
# HTML coverage report.
htmlcov/
# JUnit report of nose.
nosetests.xml
# Example database of Hypothesis.
.hypothesis/
# Cache of pytest, including the last failed tests.
.pytest_cache/
# Coverage directory of some test runners.
cover/
# Generic tool cache directory.
.cache/
# Incremental cache of mypy.
.mypy_cache/
# State file of the mypy daemon.
.dmypy.json
# State file of the mypy daemon without the leading dot.
dmypy.json
# Cache of the Pyre type checker.
.pyre/
# Cache of the pytype type checker.
.pytype/
# Cache of the ruff linter and formatter.
.ruff_cache/
# Cache of pyright.
.pyright/
# Cache of the lychee link checker.
.lycheecache
# Debug output of Cython.
cython_debug/
# Temporary lock files written by `make lock`.
.requirements*.tmp
# Previous lock files kept by `make lock-check` for comparison.
.requirements*.orig

# Copy of LICENSE.txt that `make licence`, `tox -e licence` and the License
# Compliance workflow create for `reuse lint`. The repository keeps a single
# licence text, LICENSE.txt, at the root.
/LICENSES/

# -----------------------------------------------------------------------------
# Jupyter and IPython
# -----------------------------------------------------------------------------

# Autosave checkpoints of Jupyter.
.ipynb_checkpoints/
# Default IPython profile.
profile_default/
# Local IPython configuration.
ipython_config.py

# -----------------------------------------------------------------------------
# Editors, IDEs and operating systems
# -----------------------------------------------------------------------------

# Workspace settings of Visual Studio Code.
.vscode/
# Project settings of JetBrains IDEs.
.idea/
# Project file of Spyder.
.spyderproject
# Project directory of Spyder.
.spyproject
# Project data of the rope refactoring library.
.ropeproject
# Vim swap files.
*.swp
# Additional Vim swap files.
*.swo
# Backup files of Emacs and other editors.
*~
# Folder metadata of macOS Finder.
.DS_Store
# Thumbnail cache of Windows Explorer.
Thumbs.db
# Folder settings of Windows.
desktop.ini

# -----------------------------------------------------------------------------
# Geospatial and scientific data. Inputs and outputs are kept out of Git; the
# tests create their data in temporary directories.
# -----------------------------------------------------------------------------

# GeoTIFF rasters with the .tif extension.
*.tif
# GeoTIFF rasters with the .tiff extension.
*.tiff
# NetCDF files.
*.nc
# HDF5 files with the .hdf5 extension.
*.hdf5
# HDF5 files with the .h5 extension.
*.h5
# Zarr stores, which are directories.
*.zarr/


# -----------------------------------------------------------------------------
# Model weights: checkpoints written by `unbihexium train` and ONNX exports
# -----------------------------------------------------------------------------

# ONNX models.
*.onnx
# PyTorch checkpoints.
*.pt
# PyTorch state dictionaries.
*.pth
# safetensors weight files.
*.safetensors

# -----------------------------------------------------------------------------
# Secrets and credentials
# -----------------------------------------------------------------------------

# Directory for local secrets.
secrets/
# PEM certificates and private keys.
*.pem
# Private keys.
*.key
# PKCS #12 key stores.
*.p12
# PKCS #12 key stores with the Windows extension.
*.pfx
# Credentials for FTP and HTTP clients.
.netrc
# PyPI upload credentials.
.pypirc

# -----------------------------------------------------------------------------
# Logs and temporary files
# -----------------------------------------------------------------------------

# Log files.
*.log
# Log directories.
logs/
# Temporary files with the .tmp extension.
*.tmp
# Temporary files with the .temp extension.
*.temp
# Backup files.
*.bak
# Backup written by `pre-commit autoupdate` and migration tools.
.pre-commit-config.yaml.bak

# -----------------------------------------------------------------------------
# Web framework defaults that some examples may create
# -----------------------------------------------------------------------------

# Instance folder of Flask.
instance/
# Cache of Flask-Assets.
.webassets-cache
# Local settings of Django.
local_settings.py
# Default SQLite database of Django.
db.sqlite3
# Journal of the default SQLite database.
db.sqlite3-journal

# =============================================================================
# End of file .gitignore
# Part of Unbihexium (https://github.com/unbihexium-oss/unbihexium).
# Cite the project as described in CITATION.cff.
# =============================================================================
