pymtgdeck 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,10 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
@@ -0,0 +1,36 @@
1
+ # AGENTS.md
2
+
3
+ This file contains essential information for agents working with this pymtgdeck repository. It answers: "Would an agent likely miss this without help?"
4
+
5
+ ## Project Overview
6
+ This is a Python library for maintaining Magic: The Gathering virtual binders and constrained decks, using pyscryfall for card data handling.
7
+
8
+ ## Core Architecture
9
+ - **Entry**: Wraps a ScryfallCard with a count
10
+ - **Binder**: Collection of entries with unlimited card counts
11
+ - **Deck**: Subclass of Binder with deck-specific constraints (max 40 cards, max 4 copies per card)
12
+
13
+ ## Key Commands
14
+ - Run tests: `pytest` (from repo root)
15
+ - Install dev dependencies: `uv sync` (uses pyproject.toml)
16
+
17
+ ## Important Files
18
+ - `src/pymtgdeck/` - Main source code
19
+ - `tests/` - Test directory with synthetic JSON fixtures
20
+ - `pyproject.toml` - Build config, dependencies, and pytest configuration
21
+ - `README.md` - Complete documentation
22
+
23
+ ## Key Constraints
24
+ - Each card can appear at most 4 times in a deck (Deck.max_card_copy_count = 4)
25
+ - Total deck size is limited to 40 cards (Deck.max_card_count = 40)
26
+ - The library requires Python 3.12+
27
+ - Dependencies managed via uv with `pyscryfall==0.1.2`
28
+
29
+ ## Testing Setup
30
+ - Tests use pytest with configuration in pyproject.toml
31
+ - Test fixtures loaded from `tests/data/` directory
32
+ - Tests run from repository root (pytest config sets pythonpath = ["."])
33
+
34
+ ## Import Structure
35
+ - Use `from pymtgdeck import Entry, Binder, Deck`
36
+ - All classes are properly exported via `__all__` in __init__.py