Skip to content
This repository has been archived by the owner on Oct 2, 2023. It is now read-only.

Continuous PR to check differences between PokeAPI and Veekun #4

Draft
wants to merge 187 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 182 commits
Commits
Show all changes
187 commits
Select commit Hold shift + click to select a range
8032457
feat: add pokemon
Naramsim Aug 10, 2020
7cfd9e7
feat: add generation and region
Naramsim Aug 10, 2020
32e710c
featL add scripts and readme
Naramsim Aug 12, 2020
00c4ea7
Rework Go scraper (implement tags for Bulbapedia unmarshalling)
ichbinfrog Aug 19, 2020
68ac039
Set pokemon ID in [888,892] as Legendary
ichbinfrog Aug 19, 2020
056ff1e
Minor import fix
ichbinfrog Aug 19, 2020
67f35db
feat: add legendary mythical
Naramsim Aug 24, 2020
8a0b856
feat: add 808 809
Naramsim Aug 24, 2020
73285e1
feat: update types
Naramsim Aug 24, 2020
cf75d5f
feat: sync
Naramsim Aug 24, 2020
f4bcd44
fix: add is_baby
Naramsim Aug 24, 2020
02f7a01
Add gen 8 pokedex scripts
CMahk Aug 26, 2020
e2a1f9e
Update CSVs for initial gen 8 support
CMahk Aug 26, 2020
a1e6379
Tweak to_csv.py to add a header
CMahk Aug 26, 2020
21eeb34
Split the Let's Go games into their own versions
CMahk Aug 29, 2020
da25dee
Added output for both Let's Go games
CMahk Aug 29, 2020
50740bc
Updated CSV with entries for both Let's Go games
CMahk Aug 29, 2020
970c71a
Merge pull request #8 from CMahk/master-pokeapi
Naramsim Aug 30, 2020
8773045
Added missing pokemon from Crown Tundra to pokemon.csv file
alex-whan Oct 29, 2020
c284751
Added Crown Tundra new Pokemon to pokemon_types.csv
alex-whan Oct 29, 2020
e5a1331
Added Crown Tundra new Pokemon flavor text
alex-whan Oct 29, 2020
fc23818
Updated csv spacing for Crown Tundra pokemon in pokemon.csv
alex-whan Oct 29, 2020
5b14ec5
Updated species_names with Crown Tundra new Pokemon
alex-whan Oct 29, 2020
76816dd
Updated stats for Crown Tundra new Pokemon
alex-whan Oct 29, 2020
a67c45d
Updated pokemon_species.csv info with new Crown Tundra Pokemon
alex-whan Oct 29, 2020
2cc7a51
Added new abilities from Crown Tundra new Pokemon
alex-whan Oct 29, 2020
db8b507
Added new ability flavor text for abilities new to Crown Tundra expan…
alex-whan Oct 29, 2020
c07a411
Fixed ID labeling for Calyrex formes, new abilities, and removed Caly…
alex-whan Oct 29, 2020
d53a6d1
Merge remote-tracking branch 'upstream/master' into master-pokeapi
Naramsim Oct 29, 2020
8d11527
sync: from pokeapi
Naramsim Oct 29, 2020
f4cb631
Merge branch 'master-pokeapi' into feat/gen-8-data-alex-whan
Naramsim Oct 29, 2020
5261f16
Added missing Crown Tundra new ability names in English
alex-whan Oct 30, 2020
3f3d01b
Fixed incorrect ability IDs in Crown Tundra flavor text
alex-whan Oct 30, 2020
3ef9c71
Removed package.json and package-lock.json
alex-whan Oct 30, 2020
8856c39
Updated shadow/ice rider Calyrex with correct species ID
alex-whan Oct 30, 2020
d4ef567
Update pokemon.csv
Naramsim Nov 3, 2020
76a3c47
Update pokemon_species.csv
Naramsim Nov 3, 2020
5932b1f
Created duplicate As One ability listings in ability_names and abilit…
alex-whan Nov 3, 2020
6ca180a
Removed Shadow/Ice Rider Calyrex form descriptions from main species …
alex-whan Nov 6, 2020
8033911
Merge pull request #14 from alex-whan/feat/gen-8-data-alex-whan
Naramsim Nov 13, 2020
7a4fb07
align: put back package.json
Naramsim Nov 16, 2020
92ab6c4
fix: update data
Naramsim Nov 16, 2020
e162cc9
adds gen 8 + dlc pokemon and evolutions
Nov 20, 2020
43e865b
dex numbers, types, genera
Nov 20, 2020
5b758a0
add english form names
Nov 20, 2020
cedf4ee
メルタンまで
tomi-912 Nov 23, 2020
461ac9e
Merge pull request #17 from myoKun345/master-pokeapi
Naramsim Nov 24, 2020
814392c
add missing growth rates, gender diffs, and shapes
Nov 25, 2020
4be5177
add missing base experience
Nov 25, 2020
334eb3c
meltan/melmetal colors and happiness
Nov 25, 2020
b0e341f
add meltan/melmetal stats
Nov 25, 2020
4bf5cd9
decrement form ids after alcremie gap
Nov 25, 2020
9d47fbb
fix typo on slowking-galar's attack stat
Nov 26, 2020
62464c0
sync: data
Naramsim Nov 26, 2020
cf55bb3
pokemon species names add(8th gen)
tomi-912 Nov 26, 2020
e486f5b
Merge branch 'master-pokeapi' into species_names_change
tomi-912 Nov 26, 2020
8a500d7
Merge branch 'master-pokeapi' of https://github.com/PokeAPI/pokedex i…
Nov 26, 2020
3f1c58e
Merge branch 'PokeAPI-master-pokeapi' into master-pokeapi
Nov 26, 2020
ece510b
finish galar + expansion dex numbers
Nov 26, 2020
e3cafa7
accept merged forms.csv
Nov 26, 2020
5ad4096
add gen8 + meltan abilities
Nov 26, 2020
3f49eb7
add "updated kanto" (lgpe) dex numbers
Nov 26, 2020
12891ba
revert excel's text mangling
Nov 26, 2020
ce04719
Merge pull request #19 from tomi-912/species_names_change
Naramsim Nov 27, 2020
2c7c192
Merge pull request #18 from myoKun345/master-pokeapi
Naramsim Nov 30, 2020
f932f7a
sync: data
Naramsim Dec 2, 2020
2c3b867
sync: data
Naramsim Dec 5, 2020
265c207
Remove BOMs
oliver-ni Dec 13, 2020
1a74c13
sync data
Naramsim Dec 27, 2020
055191a
Merge pull request #20 from oliver-ni/master-pokeapi
Naramsim Dec 27, 2020
583013b
Added IoA moves
ercdndrs Jan 10, 2021
6994789
Add "all-allies" target
ercdndrs Jan 10, 2021
63ee0eb
Add 'All Allies' move target
ercdndrs Jan 10, 2021
637ed7b
Add IoA new moves
ercdndrs Jan 10, 2021
571654e
Fix capitalization and punctuation
ercdndrs Jan 10, 2021
6e904f7
Add moves introduced in the Crown Tundra DLC
ercdndrs Jan 10, 2021
c25f588
Add moves added in the Crown Tundra DLC
ercdndrs Jan 10, 2021
3e03441
Add translations for Gen 8 abilities
ercdndrs Jan 10, 2021
04fbda7
Add remainder of Gen 8 abilities
ercdndrs Jan 10, 2021
2acca9f
Merge pull request #23 from ercdndrs/master-pokeapi
Naramsim Jan 11, 2021
6d7b16b
Add stat data for toxtricity low key gmax
oliver-ni Jan 22, 2021
988b620
update french names for moves, abilities and items according to gener…
pifopi Jan 23, 2021
360167f
update Aegislash stats for gen 8
pifopi Jan 24, 2021
0879f24
adding the new moves for korean and spanish as well
pifopi Jan 24, 2021
be5193e
Update spanish moves names for 8th gen
pifopi Jan 24, 2021
f759b25
rapid spin is now 50 base power
pifopi Jan 25, 2021
b5465e8
Merge pull request #26 from poketwo/master-pokeapi
Naramsim Jan 25, 2021
e345440
Add move translations from sword/shield
Parnassius Jan 25, 2021
7c7fc70
Add ability translations from sword/shield
Parnassius Jan 24, 2021
32f8bf4
Merge pull request #28 from pifopi/master-pokeapi
Naramsim Jan 25, 2021
8340afd
Merge branch 'master-pokeapi' into abilities-moves-translations
Naramsim Jan 25, 2021
907e140
sync: forgotten types
Naramsim Jan 25, 2021
919cd68
sync: add data from https://github.com/PokeAPI/pokeapi/pull/457
Naramsim Feb 13, 2021
8710705
Merge branch 'master' into master-pokeapi
Naramsim Mar 10, 2021
839f1b4
convert to spaces
Naramsim Mar 10, 2021
4abfb5d
Fix typo in Zamazenta french name
deus-magna Apr 18, 2021
4ef59fd
Merge pull request #43 from deus-magna/zamazenta_french_name_typo
Naramsim Apr 18, 2021
de8a58f
sync: from pokeapi
Naramsim Apr 18, 2021
43ea745
Merge pull request #29 from Parnassius/abilities-moves-translations
Naramsim May 12, 2021
7733893
fix: add missing move
Naramsim May 16, 2021
7c994dd
Fix High Jump Kick description.
Glazelf Dec 6, 2021
8d02c27
Merge pull request #72 from Glazelf/hjk-effect-entry
Naramsim Dec 6, 2021
629cc01
sync: data
Naramsim Dec 6, 2021
1c2f980
sync: data
Naramsim Dec 6, 2021
c99d1dc
sync: data
Naramsim Dec 13, 2021
614b69c
sync: language, region,generation,version
Naramsim Dec 14, 2021
2363c53
Merge pull request #73 from PokeAPI/veekun-gen8-sync
Naramsim Dec 15, 2021
2687d0d
sync: ability
Naramsim Dec 15, 2021
e468eca
sync: characteristic
Naramsim Dec 15, 2021
4ae96a0
sync: item
Naramsim Dec 15, 2021
3720606
sync: pokemon_move_method
Naramsim Dec 15, 2021
02b67b0
Merge pull request #75 from PokeAPI/move-method-fix
Naramsim Dec 16, 2021
42ac351
Merge pull request #74 from PokeAPI/veekun-gen8-sync
Naramsim Dec 18, 2021
1f06e69
sync: types
Naramsim Dec 26, 2021
5cf1c43
sync: moves
Naramsim Dec 26, 2021
3644aa7
sync: nature
Naramsim Dec 26, 2021
ef64e9c
Merge pull request #78 from PokeAPI/veekun-gen8-sync
Naramsim Dec 27, 2021
ee63893
sync: machines
Naramsim Jan 21, 2022
51a1925
sync: evolution
Naramsim Jan 21, 2022
4cd7870
sync: evolution
Naramsim Jan 21, 2022
850f38b
sync: pokedex
Naramsim Jan 21, 2022
aacbf6f
sync: location
Naramsim Jan 21, 2022
404922d
Merge pull request #85 from PokeAPI/veekun-gen8-sync
Naramsim Jan 22, 2022
5948eae
sync: pokemon
Naramsim Jan 27, 2022
d923c5b
Merge pull request #86 from PokeAPI/veekun-gen8-sync
Naramsim Feb 6, 2022
2baf729
fix: add missing romaji
anhthang Mar 1, 2022
1d73943
feat: adding new gen 8 data from Legends: Arceus
anhthang Mar 1, 2022
f8d48fc
feat: adding 16 new hisuian forms, new forms for dialga, palkia, basc…
anhthang Mar 1, 2022
8ffb6e2
feat: add pokemon forms
anhthang Mar 2, 2022
6bd29fa
fix: update Basculegion Female, Enamorus Therian
anhthang Mar 2, 2022
897ec35
feat: add pokemon name in ko,fr,de. version name in other languages
anhthang Mar 2, 2022
d24039d
fix: gender rate
anhthang Mar 5, 2022
82e0f61
feat: add chinese stat names
anhthang Mar 5, 2022
5956f35
Merge pull request #96 from anhthang/stat-names
Naramsim May 4, 2022
5d6c9a1
Merge pull request #94 from anhthang/missing-romaji
Naramsim May 4, 2022
3cf3b2b
sync:
Naramsim May 5, 2022
2b6ebbf
feat: add zh-Hans stats name
anhthang May 6, 2022
ce4f925
Merge pull request #100 from anhthang/hans-stats-name
Naramsim May 6, 2022
5ae01ee
Merge branch 'master-pokeapi' into hisui
anhthang May 7, 2022
1cb7a6d
fix: update versions, version groups
anhthang May 15, 2022
960a2d1
fix: flavor text
anhthang May 17, 2022
9b2a631
feat: add chinese version name
anhthang May 18, 2022
21cb732
fix: remove additional flavor text
anhthang May 23, 2022
dcab074
fix: update shape_id, has_gender_differences, forms_switchable
anhthang May 25, 2022
5f24c48
feat: add missing flavor text
anhthang May 25, 2022
5caf8e2
fix: double quotes
anhthang May 26, 2022
1f194f7
fix: add form order
anhthang Jun 14, 2022
8bf9b68
fix: update version name for other languages
anhthang Jun 17, 2022
77fb639
feat: add version names for newly added versions
anhthang Jun 17, 2022
1fe327a
fix: add missing form order
anhthang Jun 22, 2022
3ccd8c5
fix: overqwil ability
anhthang Jun 22, 2022
c142c8f
fix: trim space
anhthang Jun 22, 2022
6cb752f
Update Silvally
Naramsim Jun 22, 2022
3530bc7
Merge pull request #95 from anhthang/hisui
Naramsim Jun 22, 2022
71672c9
Merge branch 'master-pokeapi' into version-name
anhthang Jun 22, 2022
5fc8b83
fix: remove blank version name
anhthang Jun 22, 2022
4503b6a
Merge pull request #104 from anhthang/version-name
Naramsim Jun 22, 2022
c71083c
feat: add Legends Arceus dex number
anhthang Jul 9, 2022
1380d97
feat: add dex names, generation names
anhthang Jul 10, 2022
b84cce9
fix: update capture_rate
anhthang Jul 11, 2022
ab5ce85
Add italian genus for Legend Arceus' new pokémons
Laxan3000 Jul 13, 2022
29d9e05
Update region_names.csv
Laxan3000 Jul 13, 2022
76d2b0e
Merge pull request #110 from Laxan3000/patch-1
Naramsim Jul 14, 2022
5ea299f
Merge pull request #111 from Laxan3000/patch-2
Naramsim Jul 14, 2022
193076a
Fix italian genuses to not be on spain id
Laxan3000 Jul 15, 2022
8093690
Merge pull request #112 from Laxan3000/patch-3
Naramsim Jul 15, 2022
7b37c30
fix: add quote
anhthang Jul 16, 2022
f842073
Drop 2.7 support
giginet Jul 18, 2022
20f57cf
Fix etree deprecation
giginet Jul 18, 2022
04eba43
Support dusk time of day
giginet Jul 18, 2022
16818ba
Merge pull request #108 from anhthang/dex_numbers
Naramsim Jul 19, 2022
8e79415
Merge pull request #114 from giginet/dusk
Naramsim Jul 19, 2022
c9b9998
Fix failing to bind default_language_id
giginet Jul 21, 2022
f9e4a16
Merge pull request #116 from giginet/fix-local-language-id
Naramsim Jul 22, 2022
510059e
Merge pull request #113 from giginet/update-markdown
Naramsim Jul 22, 2022
b901585
Introduce GitHub Action
giginet Jul 21, 2022
6b9eb25
Add tests for Docker Containers
giginet Jul 21, 2022
5ce3a6c
Disable TTY on CI
giginet Jul 21, 2022
2810724
Disable continue-on-error
giginet Jul 21, 2022
19fa915
Merge pull request #117 from giginet/support-github-action-for-pr2
Naramsim Jul 22, 2022
edd8da9
Fixed Overqwil's name
Laxan3000 Aug 3, 2022
d4ed9ae
Merge pull request #122 from Laxan3000/patch-4
Naramsim Sep 4, 2022
8f2acdf
Fixed gender rates of Meowstic and Indeedee
erezushi Sep 22, 2022
2647746
Merge pull request #126 from erezushi/gender-rate-fixes
Naramsim Sep 22, 2022
68ef757
sync: from pokeapi
Naramsim Sep 29, 2022
dcae4c3
add script that updates pokemon egg groups
SKCwillie Mar 15, 2023
5e4eb21
Merge pull request #154 from SKCwillie/add-pokemon-egg-group-script
Naramsim Mar 16, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Pokédex CI

on:
push:
branches: ["master-pokeapi"]
pull_request:
branches: ["master-pokeapi"]

env:
ENABLE_TTY: 0

jobs:
Docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup
run: |
bin/docker-pokedex setup -v
- name: Dump Pokédex
run: |
bin/docker-pokedex dump -l all

Python:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10"]

steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .
- name: Run Setup
run: |
pokedex setup
- name: Dump DB
run: |
pokedex dump -l all
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
os: linux
language: python
python:
- "2.7"
- "3.4"
- "3.5"
- "3.6"
Expand Down
19 changes: 14 additions & 5 deletions bin/docker-pokedex
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

curr_dir="$(pwd)"
log_file="${curr_dir}/bin/docker-pokedex.log"
ENABLE_TTY=${ENABLE_TTY:-1}

if [[ "${1}" = "rebuild" ]] || [[ ! -f "${log_file}" ]]; then
docker build --rm -t veekun/pokedex ${curr_dir}
Expand All @@ -13,8 +14,16 @@ if [[ "${1}" = "rebuild" ]] || [[ ! -f "${log_file}" ]]; then
fi;
fi

docker run -it --rm \
-e TERM=xterm-256color \
--name "pokedex-$(date +%Y%m%d-%H%M%S)" \
--mount type=bind,source="${curr_dir}/pokedex/data",target=/app/pokedex/data \
veekun/pokedex "${@}"
options=(
run
--rm
-e TERM=xterm-256color
--name "pokedex-$(date +%Y%m%d-%H%M%S)"
--mount type=bind,source="${curr_dir}/pokedex/data",target=/app/pokedex/data \
veekun/pokedex "${@}"
)
if [ "$ENABLE_TTY" -ne 0 ]; then
options+=(-it)
fi

docker ${options[@]}
17 changes: 17 additions & 0 deletions pokeapi/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib

# Test binary, built with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Dependency directories (remove the comment below to include it)
# vendor/

node_modules
9 changes: 9 additions & 0 deletions pokeapi/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# PokeAPI's pokedex

This projects serves as a short term solution for adding the new generation 8 data to our PokeAPI. We decided to take a temporary shift from [Veekun](https://github.com/veekun/pokedex) and allow our community to bring in new data fetched from the Internet.

We will review any PR or issue that brings in new data and eventually merge it so to have it live at https://pokeapi.co

## How to contribute

In order to contribute to this project you need to fill the CSV files contained in the folder `/pokedex/data/csv/`. You can contribute manually or by fetching the data from a _relatively_ trusted source with a script. If you use a script we would like to have it also committed to this repository inside the `/pokeapi/scripts/` folder.
65 changes: 65 additions & 0 deletions pokeapi/scripts/gen8/ability_names.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import csv
import os
from read_swsh import TextFile

# data_path contains the countents of the `message` folder found in sword/shield's romfs:/bin/
if __name__ == "__main__":
path = os.path.abspath(os.path.dirname(__file__))
data_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), "..", "..", "..", "..", "data")
csv_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), "..", "..", "..", "pokedex", "data", "csv")

languages = {
"JPN": 1,
"Korean": 3,
"Trad_Chinese": 4,
"French": 5,
"German": 6,
"Spanish": 7,
"Italian": 8,
"English": 9,
"JPN_KANJI": 11,
"Simp_Chinese": 12,
}

header = ["ability_id", "local_language_id", "name"]
entries = []

# conquest abilities
with open(os.path.join(csv_path, "ability_names.csv"), "r", encoding="utf-8", newline="") as csv_file:
reader = csv.reader(csv_file, delimiter=",")
for row in reader:
if row[0].isnumeric() and int(row[0]) > 10000:
entries.append([int(row[0]), int(row[1]), row[2]])

with open(os.path.join(csv_path, "ability_names.csv"), "w", encoding="utf-8", newline="") as csv_file:
writer = csv.writer(csv_file, delimiter=",", lineterminator="\n")
for language_dir, language_id in languages.items():
try:
# Parse through the .dat and .tbl
textFile = TextFile(
os.path.join(data_path, language_dir, "common", "tokusei.dat"),
os.path.join(data_path, language_dir, "common", "tokusei.tbl"),
)
dictionary = textFile.GetDict()
except UserWarning as error:
print(error)

try:
if len(dictionary) == 0:
raise UserWarning("Error: the files returned no data")

# Loop through the text file's dictionary and append the parsed data into the list
for label, text in dictionary.items():
id = int(label[0].split("_")[1])
if id == 0:
continue
entries.append([id, language_id, text])

except UserWarning as error:
print(error)

# Sort the list based on species id
writer.writerow(header)
entries.sort()
writer.writerows(entries)
print("Done")
65 changes: 65 additions & 0 deletions pokeapi/scripts/gen8/move_names.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import csv
import os
from read_swsh import TextFile

# data_path contains the countents of the `message` folder found in sword/shield's romfs:/bin/
if __name__ == "__main__":
path = os.path.abspath(os.path.dirname(__file__))
data_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), "..", "..", "..", "..", "data")
csv_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), "..", "..", "..", "pokedex", "data", "csv")

languages = {
"JPN": 1,
"Korean": 3,
"Trad_Chinese": 4,
"French": 5,
"German": 6,
"Spanish": 7,
"Italian": 8,
"English": 9,
"JPN_KANJI": 11,
"Simp_Chinese": 12,
}

header = ["move_id", "local_language_id", "name"]
entries = []

# shadow moves
with open(os.path.join(csv_path, "move_names.csv"), "r", encoding="utf-8", newline="") as csv_file:
reader = csv.reader(csv_file, delimiter=",")
for row in reader:
if row[0].isnumeric() and int(row[0]) > 10000:
entries.append([int(row[0]), int(row[1]), row[2]])

with open(os.path.join(csv_path, "move_names.csv"), "w", encoding="utf-8", newline="") as csv_file:
writer = csv.writer(csv_file, delimiter=",", lineterminator="\n")
for language_dir, language_id in languages.items():
try:
# Parse through the .dat and .tbl
textFile = TextFile(
os.path.join(data_path, language_dir, "common", "wazaname.dat"),
os.path.join(data_path, language_dir, "common", "wazaname.tbl"),
)
dictionary = textFile.GetDict()
except UserWarning as error:
print(error)

try:
if len(dictionary) == 0:
raise UserWarning("Error: the files returned no data")

# Loop through the text file's dictionary and append the parsed data into the list
for label, text in dictionary.items():
id = int(label[0].split("_")[1])
if id == 0:
continue
entries.append([id, language_id, text.strip("\r")])

except UserWarning as error:
print(error)

# Sort the list based on species id
writer.writerow(header)
entries.sort()
writer.writerows(entries)
print("Done")
Loading