bfiles 2024-12-09
Initial creation of the bfiles project with bundler, unbundler, CLI, and test suite
110 files · 13,674+ · 256-

Project bootstrap with full bundling utility

13 files changed
  • pyproject.toml Python package config using setuptools, targeting Python 3.11+ with dependencies on provide-foundation, pathspec, rich, and tiktoken
  • cli.py Click CLI entry points (bfiles and bf alias) with bundle and unbundle commands
  • config.py BfilesConfig attrs-based configuration with include/exclude pattern support
  • bundler.py Core bundler for file discovery, filtering, metadata extraction, and bundle generation
  • unbundler.py Bundle parser, file extractor, and checksum verifier
  • chunking.py Token-based file splitting via tiktoken with configurable overlap
  • exclusions.py Exclusion engine respecting .gitignore patterns via pathspec with default artifact exclusions
  • metadata.py File metadata extraction
  • metadata_writer.py Metadata output formatting
  • output.py Rich terminal output for statistics display
  • progress.py Progress display helpers
  • errors.py Error hierarchy for the project
  • utils.py Shared utility functions
  • Created complete Python package with pyproject.toml using setuptools, targeting Python 3.11+ with dependencies on provide-foundation, pathspec, rich, and tiktoken baseline internal
    1 file
    • pyproject.toml
  • Established CLI entry points (bfiles and bf alias) using Click with bundle and unbundle commands decouple behavioral
    1 file
    • cli.py
  • Implemented BfilesConfig attrs-based configuration with support for include/exclude patterns (glob, regex, literal) instantiate internal
    1 file
    • config.py
  • Built the core bundler (bundler.py) for file discovery, filtering, metadata extraction (size, hash, MIME type), and bundle file generation instantiate internal
    1 file
    • bundler.py
  • Built the unbundler (unbundler.py) for parsing bundle files, extracting files, and verifying checksums instantiate internal
    1 file
    • unbundler.py
  • Added file chunking support (chunking.py) with token-based splitting via tiktoken and configurable overlap harden internal
    1 file
    • chunking.py
  • Implemented exclusion engine (exclusions.py) respecting .gitignore patterns via pathspec, with default exclusions for common artifacts decouple behavioral
    1 file
    • exclusions.py
  • Added metadata handling (metadata.py, metadata_writer.py) for file metadata extraction and output instantiate behavioral
    2 files
    • metadata.py
    • metadata_writer.py
  • Created rich terminal output (output.py, progress.py) for statistics and progress display decouple behavioral
    2 files
    • output.py
    • progress.py
  • Added comprehensive error hierarchy (errors.py) and utility functions (utils.py) instantiate internal
    2 files
    • errors.py
    • utils.py
  • Wrote extensive test suite: tests for CLI, core, config, exclusions, metadata, output, unbundler (chunks, extraction, security), and utilities qualify behavioral
    8 files
    • test_cli.py
    • test_core.py
    • test_config.py
    • test_exclusions.py
    • test_metadata.py
    • test_output.py
    • test_unbundler.py
    • test_utils.py
  • Added CI workflow (.github/workflows/ci.yml), man page (docs/bfiles.1), format specification (docs/specs.txt), and development documentation specify errata
    3 files
    • ci.yml
    • bfiles.1
    • specs.txt

Documentation and project metadata

6 files changed
  • README.md Full documentation with features, installation, usage, API reference, and configuration
  • LICENSE Apache 2.0 license
  • VERSION Project version file
  • CLAUDE.md AI-assisted development guidance
  • PLAN.md Project planning document
  • TODO.md Task tracking document
  • Rewrote README from stub to full documentation with features, installation, usage, API reference, and configuration qualify errata
    1 file
    • README.md
  • Added LICENSE (Apache 2.0), VERSION file, CLAUDE.md for AI-assisted development guidance baseline internal
    3 files
    • LICENSE
    • VERSION
    • CLAUDE.md
  • Added .dev/PLAN.md and .dev/TODO.md for project planning instantiate internal
    2 files
    • PLAN.md
    • TODO.md