MLOps Zoomcamp 2025

Homework 6: Best Practices Statistics

Distribution of scores and reported study time for this homework.

Submissions

142

Median total score

6

Average total score

6

Score distribution

All values are points.

Questions score

Min
2
Median
6.0
Max
6
Q1
5.0
Avg
5.3
Q3
6.0

Learning in public score

Min
-
Median
0.0
Max
7
Q1
0.0
Avg
0.7
Q3
0.0

Total score

Min
3
Median
6.0
Max
14
Q1
5.0
Avg
6.1
Q3
6.0

Time distribution

All values are hours reported by students.

Lectures

Min
0.0
Median
6.0
Max
49.0
Q1
4.0
Avg
7.2
Q3
8.0

Homework

Min
1.0
Median
4.0
Max
49.0
Q1
3.0
Avg
5.5
Q3
5.8

Question breakdown

Correctness and answer distribution per question.

1. Refactoring

142 / 142 correct (100.0%)

Answer Count
if __name__ == "__main__": 32
if __name__ == '__main__': 32
if __name__ == "__main__": year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 10
if __name__ == '__main__': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 7
if __name__ == "__main__" 4
if __name__ == '__main__' 4
14.203865642696083 4
if __name__ == "__main__": main(year, month) 4
if __name__ == "__main__": main(2023, 3) 2
if __name__ == "__main__": main() 2
if len(sys.argv) != 3: print("Usage: python starter.py <year> <month>") sys.exit(1) 1
if __name__ == "__main__": main() 1
__name__ == "__main__": 1
batch_solved.py 1
if __name__ == '__main__': main(year, month) 1
if name == 'main': 1
if __name__ == '__main__': main() 1
Refactoring in MLOps means improving code structure without changing its external behavior. It makes the code cleaner, more maintainable, and easier to test. 1
_name_ == "_main_" 1
if __name__ == "__main__": year = int(sys.argv[1]) month = int(sys.argv[2]) main(year=year, month=month) 1
Output: taxi_type=yellow_year=2023_month=03.parquet 1
if __name__ == "__main__": year = int(sys.argv[1]) month = int(sys.argv[2]) main(year=year, month=month) 1
if __name__ == "__main__ 1
if __name__ == '__main__': main(int(sys.argv[1]), int(sys.argv[2])) 1
14.2039 1
main(year, month) 1
if __name__ == "__main__": main(2023, 1) 1
if __name__ == '__main__': args = parse_args() run(args.year, args.month) 1
predicted mean duration: 14.114625577797515 1
if __name__ == "__main__": main(year=2023, month=3) 1
if __name__ == "__main__": year = int(sys.argv[1]) month = int(sys.argv[2]) read_data_main(year, month) 1
if __name__ == '__main__': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 1
if __name__ == '__main__': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 1
if __name__=="__main__": main() 1
if(__name__ == '__main__'): 1
Done 1
if __name__ == "__main__": main(year=2023, month=3) 1
File created: output/yellow_tripdata_2023-03.parquet 1
__name__ == "__main__" 1
if __name__ == '__main__': main(2023, 3) 1
if __name__=='__main__': 1
to run the script 1
batch.py file has the code 1
if __name__ == '__main__': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 1
https://github.com/rshiva/datatalks-mlops-2025/blob/main/06-homework/batch.py 1
if __name__ == "__main__": import sys year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) 1

2. Installing pytest

142 / 142 correct (100.0%)

Answer Count
__init__.py 121
tests/__init__.py 4
pip install pytest 2
init.py 1
pytest is the popular testing framework used to write and run unit tests in Python. Installing it is straightforward with pip. pip install pytest 1
_init_.py 1
File: __init__.py 1
pipenv install pytest 1
The other file should be an empty init.py file inside the tests folder. 1
create a folder named tests with the following files: test_batch.py: This file contains the tests. __init__.py: 1
ls -lh tests/ total 4.0K -rw-rw-rw- 1 codespace codespace 0 Jun 30 22:39 __init__.py -rw-rw-rw- 1 codespace codespace 1.1K Jun 30 22:59 test_batch.py 1
ls -lh tests/ total 4.0K -rw-rw-rw- 1 codespace codespace 0 Jun 25 22:14 __init__.py -rw-rw-rw- 1 codespace codespace 1.1K Jun 26 17:59 test_batch.py 1
https://github.com/rshiva/datatalks-mlops-2025/tree/main/06-homework 1
batch.py 1

3. Writing first unit test

118 / 142 correct (83.1%)

1 1 3 (2.1%)
2 2 118 (83.1%)
3 3 12 (8.5%)
4 4 8 (5.6%)

4. Mocking S3 with Localstack

132 / 142 correct (93.0%)

1 --backend-store-uri 4 (2.8%)
2 --profile 1 (0.7%)
3 --endpoint-url 132 (93.0%)
4 --version 1 (0.7%)

5. Creating test data

113 / 142 correct (79.6%)

1 3620 113 (79.6%)
2 23620 10 (7.0%)
3 43620 12 (8.5%)
4 63620 0 (0.0%)

6. Finish the integration test

112 / 142 correct (78.9%)

1 13.08 8 (5.6%)
2 36.28 112 (78.9%)
3 69.28 11 (7.7%)
4 81.08 3 (2.1%)

Calculated: 14 July 2025, 17:19