Skip to content

Development Guide for contextual-langdetect

This document describes the development process and tools for the contextual-langdetect project.

Prerequisites

  • Install just - Command runner
  • Install uv - Python package manager

Setup

# Clone the repository
git clone https://github.com/osteele/contextual-langdetect.git
cd contextual-langdetect

# Install development dependencies
just setup

Development Commands

The project uses just as a command runner. Here are the available commands:

# Run all checks: format, lint, typecheck, and tests
just check

# Format code
just format

# Fix linting issues
just fix

# Lint code
just lint

# Type check
just typecheck

# Run tests (or a specific test with arguments)
just test [args]

# Run the main CLI
just run [args]

Development Tools

The repository includes CLI tools for development and testing purposes. These are not included in the package distribution.

# Analyze a file with the text analysis tool
just analyze path/to/textfile.txt [args]

# Generate language statistics from a file
just detect path/to/textfile.txt [args]

Tool Documentation

Algorithm Documentation

Project Structure

The project follows a standard Python package structure:

.
├── contextual_langdetect/  # Main package code
├── docs/                   # Documentation
├── tests/                  # Test suite
├── tools/                  # Development tools
├── pyproject.toml         # Project configuration and dependencies
├── justfile               # Command runner configuration
├── README.md              # User documentation
└── DEVELOPMENT.md         # Developer documentation (this file)

Dependencies

This project uses pyproject.toml for dependency management. The development dependencies are specified in the [dependency-groups.dev] section.

The uv tool is configured to handle dependency management. You don't need to run pip install or uv pip install manually - uv run, uv test, etc. will sync the environment automatically.