Skip to content

Commit 9cb4299

Browse files
Merge pull request #250 from digitalghost-dev/1.8.11
1.8.11
2 parents f8d3265 + b5674ab commit 9cb4299

43 files changed

Lines changed: 520 additions & 293 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ on:
3131
- main
3232

3333
env:
34-
VERSION_NUMBER: 'v1.8.10'
34+
VERSION_NUMBER: 'v1.8.11'
3535
DOCKERHUB_REGISTRY_NAME: 'digitalghostdev/poke-cli'
3636
AWS_REGION: 'us-west-2'
3737

.goreleaser.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ builds:
1414
- windows
1515
- darwin
1616
ldflags:
17-
- -s -w -X main.version=v1.8.10
17+
- -s -w -X main.version=v1.8.11
1818

1919
archives:
2020
- formats: [ 'zip' ]

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ RUN go mod download
88

99
COPY . .
1010

11-
RUN go build -ldflags "-X main.version=v1.8.10" -o poke-cli .
11+
RUN go build -ldflags "-X main.version=v1.8.11" -o poke-cli .
1212

1313
# build 2
1414
FROM --platform=$BUILDPLATFORM alpine:3.23

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<img width="425" src="poke-cli.png" alt="pokemon-logo"/>
33
<h4></h4>
44
<img src="https://img.shields.io/github/v/release/digitalghost-dev/poke-cli?style=flat-square&logo=git&logoColor=FFCC00&label=Release%20Version&labelColor=EEE&color=FFCC00" alt="version-label">
5-
<img src="https://img.shields.io/docker/image-size/digitalghostdev/poke-cli/v1.8.10?arch=arm64&style=flat-square&logo=docker&logoColor=FFCC00&labelColor=EEE&color=FFCC00" alt="docker-image-size">
5+
<img src="https://img.shields.io/docker/image-size/digitalghostdev/poke-cli/v1.8.11?arch=arm64&style=flat-square&logo=docker&logoColor=FFCC00&labelColor=EEE&color=FFCC00" alt="docker-image-size">
66
<img src="https://img.shields.io/github/actions/workflow/status/digitalghost-dev/poke-cli/ci.yml?branch=main&style=flat-square&logo=github&logoColor=FFCC00&label=CI&labelColor=EEE&color=FFCC00" alt="ci-status-badge">
77
</div>
88
<div align="center">
@@ -99,11 +99,11 @@ Cloudsmith is a fully cloud-based service that lets you easily create, store, an
9999
3. Choose how to interact with the container:
100100
* Run a single command and exit:
101101
```bash
102-
docker run --rm -it digitalghostdev/poke-cli:v1.8.10 <command> [subcommand] [flag]
102+
docker run --rm -it digitalghostdev/poke-cli:v1.8.11 <command> [subcommand] [flag]
103103
```
104104
* Enter the container and use its shell:
105105
```bash
106-
docker run --rm -it --name poke-cli --entrypoint /bin/sh digitalghostdev/poke-cli:v1.8.10 -c "cd /app && exec sh"
106+
docker run --rm -it --name poke-cli --entrypoint /bin/sh digitalghostdev/poke-cli:v1.8.11 -c "cd /app && exec sh"
107107
# placed into the /app directory, run the program with './poke-cli'
108108
# example: ./poke-cli ability swift-swim
109109
```

card_data/pipelines/definitions.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44

55
import dagster as dg
66

7+
from .defs.extract.limitless.extract_standings import create_standings_dataframe
78
from .defs.extract.tcgcsv.extract_pricing import build_dataframe
89
from .defs.extract.tcgdex.extract_sets import extract_sets_data
910
from .defs.extract.tcgdex.extract_series import extract_series_data
11+
from .defs.load.limitless.load_standings import load_standings_data
1012
from .defs.load.tcgcsv.load_pricing import load_pricing_data, data_quality_checks_on_pricing
1113
from .defs.load.tcgdex.load_sets import load_sets_data, data_quality_check_on_sets
1214
from .defs.load.tcgdex.load_series import load_series_data, data_quality_check_on_series
@@ -17,7 +19,7 @@
1719
def defs() -> dg.Definitions:
1820
# load_from_defs_folder discovers dbt assets from transform_data.py
1921
folder_defs: dg.Definitions = load_from_defs_folder(project_root=Path(__file__).parent.parent)
20-
return dg.Definitions.merge(folder_defs, defs_discord_sensors, defs_pricing, defs_sets, defs_series)
22+
return dg.Definitions.merge(folder_defs, defs_discord_sensors, defs_pricing, defs_sets, defs_series, defs_standings)
2123

2224

2325
defs_discord_sensors: dg.Definitions = dg.Definitions(
@@ -63,4 +65,15 @@ def defs() -> dg.Definitions:
6365
defs_sets: dg.Definitions = dg.Definitions(
6466
assets=[extract_sets_data, load_sets_data, data_quality_check_on_sets],
6567
jobs=[sets_pipeline],
68+
)
69+
70+
# Standings pipeline job
71+
standings_pipeline = dg.define_asset_job(
72+
name="standings_pipeline_job",
73+
selection=dg.AssetSelection.assets(create_standings_dataframe).downstream(include_self=True),
74+
)
75+
76+
defs_standings: dg.Definitions = dg.Definitions(
77+
assets=[create_standings_dataframe, load_standings_data],
78+
jobs=[standings_pipeline],
6679
)

card_data/pipelines/defs/extract/tcgcsv/extract_pricing.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,22 @@
4848
"swsh3": "2675",
4949
"swsh2": "2626",
5050
"swsh1": "2585",
51+
# Sun & Moon
52+
"sm12": "2534",
53+
"sm115": "2480",
54+
"sm11": "2464",
55+
"sm10": "2420",
56+
"sm9": "2377",
57+
"sm8": "2328",
58+
"sm7.5": "2295",
59+
"sm7": "2278",
60+
"sm6": "2209",
61+
"sm5": "2178",
62+
"sm4": "2071",
63+
"sm3.5": "2054",
64+
"sm3": "1957",
65+
"sm2": "1919",
66+
"sm1": "1863"
5167
}
5268

5369

@@ -74,6 +90,18 @@ def get_card_number(card: dict) -> Optional[str]:
7490
return None
7591

7692

93+
def normalize_card_number(card_number: str) -> str:
94+
"""Zero-pad numeric parts of a card number to 3 digits.
95+
e.g. '1/149' -> '001/149', '10/149' -> '010/149'.
96+
"""
97+
if "/" in card_number:
98+
left, right = card_number.split("/", 1)
99+
left = left.zfill(3) if left.isdigit() else left
100+
right = right.zfill(3) if right.isdigit() else right
101+
return f"{left}/{right}"
102+
return card_number
103+
104+
77105
def extract_card_name(full_name: str) -> str:
78106
"""Extract clean card name, removing variant information after dash and parenthetical suffixes"""
79107

@@ -151,6 +179,9 @@ def pull_product_information(set_number: str) -> pl.DataFrame:
151179
if card_number is None:
152180
continue
153181

182+
if set_number.startswith("sm"):
183+
card_number = normalize_card_number(card_number)
184+
154185
card_info = {
155186
"product_id": card["productId"],
156187
"name": extract_card_name(card_name),

card_data/pipelines/defs/extract/tcgdex/extract_cards.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,13 @@ def create_card_dataframe(extract_card_info: list) -> pl.DataFrame:
9797
# Flatten types (list of strings)
9898
flat["types"] = ", ".join(card.get("types", []))
9999

100-
flat["attacks_json"] = json.dumps(card.get("attacks", []), ensure_ascii=False)
101-
102-
attacks = card.get("attacks", [])
100+
attacks = [atk for atk in card.get("attacks", []) if atk.get("name")]
101+
flat["attacks_json"] = json.dumps(attacks, ensure_ascii=False)
103102
for i, atk in enumerate(attacks):
104103
prefix = f"attack_{i + 1}"
105104
flat[f"{prefix}_name"] = atk.get("name")
106-
flat[f"{prefix}_damage"] = atk.get("damage")
105+
damage = atk.get("damage")
106+
flat[f"{prefix}_damage"] = str(damage) if damage is not None else None
107107
flat[f"{prefix}_effect"] = atk.get("effect")
108108
flat[f"{prefix}_cost"] = ", ".join(atk.get("cost", []))
109109

card_data/pipelines/defs/extract/tcgdex/extract_series.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,6 @@ def extract_series_data() -> pl.DataFrame:
3131
raise
3232

3333
filtered = [
34-
s.model_dump(mode="json") for s in validated if s.id in ["swsh", "sv", "me"]
34+
s.model_dump(mode="json") for s in validated if s.id in ["me", "sv", "swsh", "sm"]
3535
]
3636
return pl.DataFrame(filtered)

card_data/pipelines/defs/extract/tcgdex/extract_sets.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ def extract_sets_data() -> pl.DataFrame:
2424
"https://api.tcgdex.net/v2/en/series/me",
2525
"https://api.tcgdex.net/v2/en/series/sv",
2626
"https://api.tcgdex.net/v2/en/series/swsh",
27+
"https://api.tcgdex.net/v2/en/series/sm",
2728
]
2829

2930
flat: list[dict] = []

card_data/pipelines/poke_cli_dbt/dbt_project.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: 'poke_cli_dbt'
2-
version: '1.8.10'
2+
version: '1.8.11'
33

44
profile: 'poke_cli_dbt'
55

0 commit comments

Comments
 (0)