mirror of
https://github.com/mwisnowski/mtg_python_deckbuilder.git
synced 2025-12-24 03:20:12 +01:00
86 lines
No EOL
4.9 KiB
Markdown
86 lines
No EOL
4.9 KiB
Markdown
# MTG Python Deckbuilder
|
|
|
|
A command-line tool for building and analyzing Magic: The Gathering decks with advanced features for the Commander/EDH format.
|
|
|
|
## Features
|
|
|
|
- **Deck Building**: Create and manage Commander/EDH decks with intelligent card suggestions and theme detection
|
|
- **CSV File Tagging**: Automatically tag cards with themes and strategies
|
|
- **Commander Support**: Comprehensive support for Commander/EDH format rules and restrictions
|
|
- **Theme Detection**: Identify and suggest cards based on deck themes and strategies
|
|
- **Color Identity**: Filter cards based on Commander color identity rules
|
|
- **Price Checking**: Check card prices and stay within budget constraints
|
|
- **Data Management**: Efficient storage and retrieval of card data using CSV files
|
|
|
|
## Installation
|
|
|
|
1. Clone the repository:
|
|
```bash
|
|
git clone https://github.com/yourusername/mtg_python_deckbuilder.git
|
|
cd mtg_python_deckbuilder
|
|
```
|
|
|
|
2. Install dependencies using pip:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
## Usage
|
|
|
|
Run the application using:
|
|
```bash
|
|
python main.py
|
|
```
|
|
|
|
The main menu provides the following options:
|
|
- **Setup**: Initialize the card database and perform initial configuration
|
|
- **Build a Deck**: Create a new Commander deck with theme detection
|
|
- **Tag CSV Files**: Process and tag card data files
|
|
|
|
## Dependencies
|
|
|
|
Core dependencies:
|
|
- pandas >= 1.5.0
|
|
- inquirer >= 3.1.3
|
|
- typing-extensions >= 4.5.0
|
|
- fuzzywuzzy
|
|
- python-Levenshtein
|
|
- ipython
|
|
|
|
Development dependencies:
|
|
- mypy >= 1.3.0
|
|
- pandas-stubs >= 2.0.0
|
|
- types-inquirer >= 3.1.3
|
|
|
|
## Development Setup
|
|
|
|
1. Install development dependencies:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
2. Run type checks with mypy:
|
|
```bash
|
|
mypy .
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
- `main.py`: Entry point and CLI interface
|
|
- `card_info.py`: Card information lookup functionality
|
|
- `tagger.py`: Card tagging and theme detection
|
|
- `setup.py`: Database setup and initialization
|
|
- `settings.py`: Configuration and constants
|
|
- `type_definitions.py`: Custom type definitions
|
|
|
|
## Contributing
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
|
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
5. Open a Pull Request
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License - see the LICENSE file for details. |