This project tests and demonstrates all Cocina functionality.
# Basic functionality test
pixi run cocina job basic
# Advanced features test (environment-specific config, complex args, timing)
pixi run cocina job advanced --env dev
# Grouped jobs and constants access test
pixi run cocina job group.subjob --env prod
# Multiple jobs in sequence
pixi run cocina job basic advanced group.subjob
# Dry run validation
pixi run cocina job advanced --dry_run --env prod- ConfigHandler: Main configuration and constants management
- ConfigArgs: Job-specific configuration with structured argument access
- CLI: Project initialization and job execution
- Printer: Professional output with timestamps and logging
- Timer: Performance monitoring and lap timing
- Environment overrides:
dev.yaml,prod.yamloverride main config - Job-specific config: Each job has its own YAML configuration
- Complex arguments: Dict, list, and mixed argument patterns
- Constants access: Protected constants from
cocina_example/constants.py
Tests fundamental features:
- Simple argument parsing (args/kwargs)
- ConfigHandler for main configuration access
- Basic Printer usage
Tests sophisticated features:
- Environment-specific job configuration
- Complex nested arguments and options
- Error handling and timing
- Performance monitoring
Tests organizational features:
- Grouped job structure
- Constants access from package
- Multi-step workflows
- List/tuple argument patterns
cocina_example/
├── .cocina # Cocina configuration
├── config/
│ ├── config.yaml # Main configuration
│ ├── dev.yaml # Development environment
│ ├── prod.yaml # Production environment
│ └── args/ # Job configurations
│ ├── basic.yaml
│ ├── advanced.yaml
│ └── group/
│ └── subjob.yaml
├── jobs/ # Job implementations
│ ├── basic.py
│ ├── advanced.py
│ └── group/
│ └── subjob.py
└── cocina_example/ # Package with constants
├── constants.py
└── ...
See Cocina Documentation for complete usage guide, API reference, and advanced patterns.
CC-BY-4.0