# Python 3.10+ required (PuiKit, XeFM's UI framework, requires 3.10+)
# pygments for syntax highlighting (will fallback gracefully if not available)
# boto3 for AWS S3 support
# watchdog for automatic file list reloading
# pillow for the built-in image viewer (decode/crop/scale; the viewer degrades
#   to a metadata card without it, and inline terminal images need it too)
# pymigemo for Migemo (romaji -> Japanese) matching in incremental search
#   (will fallback gracefully to plain matching if not available)
#
# Backend/platform deps (pyobjc on macOS, windows-curses on Windows, numpy on
# Windows) are PuiKit's own requirements and resolve transitively via the puikit
# pin below, so XeFM does not list them here. pillow is listed because XeFM's
# image viewer imports PIL directly, independent of PuiKit.

# PuiKit is XeFM's UI/rendering framework (the TUI/GUI backend layer), published
# on PyPI as of 1.0. For co-development against a local checkout, ``make venv``
# additionally installs it editable from ../puikit, which overrides this pin.
# 1.5.0 is the floor, and unlike the last one it is hard rather than cosmetic:
# the TUI cursor cue passes ``Style(underline_color=...)``, a TypeError on any
# older PuiKit, and reads the ``colored_underlines`` capability, an
# AttributeError -- so a file pane cannot draw a row at all. Both arrived in
# puikit 1.5.0 (issue #350).
# The floors underneath it are recorded because they are still the answer to
# "why not lower": 1.4.3 drew the CSV / TSV table viewer's header wrong, a
# full-width (CJK) cell making PuiKit's TableView lay a row out wider than its
# own column rules (issue #355); and 1.2.0 is where the calls XeFM makes
# arrived -- the rich viewers' ``search_matcher`` hook (Migemo in incremental
# search -- issue #302), ``Panel.remove_layer`` (the progress dialog closing
# itself from under a covering confirm box -- issue #333), and
# ``MenuBar.open_menu`` / ``open_menu_mnemonic`` (keyboard menu activation --
# issue #304).
puikit>=1.5.0
pygments
boto3
watchdog
pillow

# Pinned exactly: 0.0.1's dictionary reader breaks on LP64 platforms
# (macOS/Linux) and xefm/migemo_search.py patches it at runtime — a future
# upstream release could move the internals that patch touches. See
# discussion #332 before bumping.
pymigemo==0.0.1
