# Rules for telling git which untracked files to ignore, mainly based on
# file extension but also accounting for some idiosyncratic usages.
#
# Note:
# - *** Please add examples when adding exclusions.
# - ** Also explain if used for non standard stuff (e.g., tox.ini with Python).
# - This is shared across projects, so there might seem to be
#   some apparently extraneous patterns included.
# - Used to pruned 'git status' output, which gets
#   shown during check-in's (as a sanity check).
# - The patterns are glob-like with the extension that **/GLOB
#   matches the glob pattern in any subdirectory.
# - See 'man gitignore' for details.
#
#-------------------------------------------------------------------------------
# Tip:
# - Use 'git check-ignore' to test
# - Example old backup rule didn't work for symbolic links (due to trailing slash):
#   $ git check-ignore --non-matching --verbose backup
#   .gitignore:42:**/backup/    backup
# - Typical output for case not covered by rules:
#   $ git check-ignore --non-matching --verbose missing-file.txt
#   ::  missing-file.txt
# - This uses format <file>:<line>:<pattern> (n.b., '::' indicates no match).
#
#-------------------------------------------------------------------------------
# TODO:
# - Address the TODO's below.
#

# Special cases
# TODO: see why excluded by the rules
# Workflow files (e.g., .github/workflows/tests.yml).
!.github/**

# Log files and listings
# TODO: figure out how to apply to subdirs
**/*.log
**/*.list

# Any files with leading underscore (_), except specified cases (e.g., __xyz__.py)
# Warning: files in repo like _temp-user-docker.env ignored unless overridden (e.g., git add --force)
# TODO2?: _xyz.py
**/_*
!**/*__*__.py
# Likewise for trailing _'s (e.g., master-dir-link_)
**/*_

# Backup files
**/*.bak
**/backup

# Old or archived files
**/old
## OLD: **/archive

# Output, log-file directories, etc.
**/log-files
**/output-files
**/downloads
**/cache
*.pyc
*.pyo

# Model files
*.bin

# Top level distribution dir and related
# Note: tox support PyPi packaging
# TODO: dist created by tox utiility???
build
dist
.tox

# Jupyter
.ipynb_checkpoints

# (maldito) Mac
.DS_Store

#...............................................................................
# Idiosyncratic stuff for Tom
#

# Personal note files
# ex: reempl-notes.txt
**/*notes*txt

# Dated backup files
# ex: html_utils.py.09mar22
**/*.[0-9][0-9][A-Za-z]*[0-9][0-9]
# ex: usage.list.08Jan22.2
**/*.[0-9][0-9][A-Za-z]*[0-9][0-9].*
## TEST:
## ex: poe-models-25sep25.json
**/*[.-][0-9][0-9][A-Za-z]*[0-9][0-9][.-]*
versioned-files

# Emacs
TAGS

# Unit test, coverage reports, etc.
# TODO: show examples
.pytest_cache
**/tests/htmlcov
.coverage
.coverage.*
.hypothesis**
*-intellij
.mypy_cache
.vscode
.idea

# OS-specific directories
linux
win32
mac-os
# note: darwin21.1.0 => mac-os
darwin21.1.0
