Programma’s die argumenten accepteren · eindproject
Eindproject: Project: de catalogus-CLI uitvoeren
Het catalogusproject heeft niet langer één vaste uitvoering. Zijn publieke grens is nu de opdracht die aan het begin van het hoofdstuk is beschreven:
python catalog.py INPUT_PATH OUTPUT_PATH [--minimum-quantity COUNT]
Gebruik die in de Bash-sessie van de site om het projectbestand te maken:
python catalog.py catalog.csv selected.json --minimum-quantity 4
cat selected.json
De opdracht hoort dit te melden:
Wrote 2 items to selected.json.
selected.json hoort BK-101 en PN-330 in die volgorde te bevatten. Het item met hoeveelheid 0 haalt de drempel niet. De JSON-vorm, typen, UTF-8-tekst, inspringing en afsluitende newline blijven het contract uit hoofdstuk 7.
Hetzelfde programma buiten deze Bash-sessie
De Python-interface werkt op meerdere besturingssystemen. Alleen de schrijfwijze van paden in de aanroep verandert als je platformspecifieke scheidingstekens gebruikt.
python catalog.py catalog.csv selected.json --minimum-quantity 4
echo $?
De tweede regel drukt na de uitvoering de processtatus af.
python .\catalog.py .\catalog.csv .\selected.json --minimum-quantity 4
$LASTEXITCODE
De tweede regel drukt na de uitvoering de processtatus af.
python catalog.py catalog.csv selected.json --minimum-quantity 4
echo $?
De tweede regel drukt na de uitvoering de processtatus af.
Doorloop zelf het volledige contract
Aan het begin van dit hoofdstuk schreef je een tabel die vier verschillende uitkomsten beloofde. Verzamel ze nu alle vier en controleer elke keer de exitstatus:
python catalog.py --help; echo $?
python catalog.py catalog.csv out.json; echo $?
python catalog.py catalog.csv; echo $?
python catalog.py missing.csv out.json; echo $?
Je hoort 0, 0, 2, 1 te zien, in die volgorde. Probeer ook enkele optiewaarden: --minimum-quantity 0, dan -1, dan two. De laatste twee horen allebei door argparse te worden afgewezen voordat je converter iets opent.
Let op waar de tekst terechtkomt, niet alleen op wat die zegt. Stuur stdout met > naar een bestand en controleer of foutmeldingen nog steeds op je scherm verschijnen. Dat is precies het doel van twee stromen en de snelste manier om te bevestigen dat je het goed hebt gedaan.
Druk op Check my work (mijn werk controleren) wanneer selected.json en elke rij van de tabel kloppen.
Verrast een van de statussen je, vraag Monty dan welke laag die heeft opgeleverd. Zorg vooral dat je het verschil begrijpt tussen argparse dat eindigt met 2 en je eigen main dat 1 teruggeeft.
Opdracht
Voer de opgebouwde catalogusopdracht uit om met --minimum-quantity 4 een selected.json uit catalog.csv te maken, bekijk het bestand en lever de opgeslagen werkruimte in.
De beoordelaar controleert het opgeslagen resultaat en roept het programma aan met onbekende argv. Die bekijkt of veronderstelt geen shellgeschiedenis.