Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
1ad48b6
Setting up GitHub Classroom Feedback
github-classroom[bot] May 13, 2023
4b94b24
Add assignment deadline url
github-classroom[bot] May 13, 2023
cd23368
redo
platt-sam May 31, 2023
3a469fb
expanding
platt-sam Jun 2, 2023
4db9e77
add helper methods
platt-sam Jun 2, 2023
75f5c8f
add teamfactory. add new engine attribute and related classes
platt-sam Jun 5, 2023
ff8539c
add attribute for if driver's surname should be before the givenname,…
platt-sam Jun 5, 2023
2b1349f
instantiate teams and add them to the championship
platt-sam Jun 5, 2023
28d5d9d
how team works
platt-sam Jun 5, 2023
8c16f74
add type checking for championship
platt-sam Jun 5, 2023
00f86d5
comments
platt-sam Jun 5, 2023
969cf32
update usage and project description
platt-sam Jun 5, 2023
ccef171
glossary of terms
platt-sam Jun 5, 2023
430459c
update usage
platt-sam Jun 5, 2023
4e9a6f4
error messages
platt-sam Jun 5, 2023
23e14c0
ignore __pycache__ and other
platt-sam Jun 5, 2023
25ef6dd
Merge pull request #2 from SOUComputerScience/keyattribute
platt-sam Jun 5, 2023
f84c0ba
fix bugs
platt-sam Jun 5, 2023
7d9174b
rewriting the code i lost
platt-sam Jun 5, 2023
20b9cc6
Merge pull request #3 from SOUComputerScience/keyattribute
platt-sam Jun 5, 2023
e140e46
getDriverStandings functionality
platt-sam Jun 5, 2023
dd7dc03
comment
platt-sam Jun 5, 2023
6236a47
calculate race results
platt-sam Jun 5, 2023
1b06bd5
get points for driver and team
platt-sam Jun 5, 2023
9e9f1f7
Merge pull request #4 from SOUComputerScience/rankings
platt-sam Jun 5, 2023
224ad9e
better error handling
platt-sam Jun 5, 2023
e621a49
add __str__ method
platt-sam Jun 5, 2023
049dce5
comments and docstrings
platt-sam Jun 5, 2023
16be3d1
docstrings and comments
platt-sam Jun 5, 2023
111e189
add error checking and driver number
platt-sam Jun 5, 2023
fbc23a9
add __str__ method
platt-sam Jun 5, 2023
fa37fc8
add error messages and docstrings
platt-sam Jun 5, 2023
460263d
comments and docstrings
platt-sam Jun 5, 2023
811ae0a
docstrings
platt-sam Jun 5, 2023
d0061e0
add support for suffixes
platt-sam Jun 5, 2023
97b1eb7
add more drivers
platt-sam Jun 5, 2023
354fc9c
create files and add imports for unit tests
platt-sam Jun 5, 2023
4fd0360
add pytest requirement
platt-sam Jun 5, 2023
a8a00a7
Merge pull request #5 from SOUComputerScience/rankings
platt-sam Jun 5, 2023
c641d0d
added drivers, adding races
platt-sam Jun 7, 2023
4bc8118
add circuit name attribute:
platt-sam Jun 7, 2023
aacafef
remove race as a parameter of holdRace method, redundant
platt-sam Jun 7, 2023
2ccd298
bug fixes
platt-sam Jun 7, 2023
bcd1418
i think it works[
platt-sam Jun 7, 2023
0838fe5
add notes of what races to add
platt-sam Jun 7, 2023
426499c
add races
platt-sam Jun 7, 2023
9add6e3
unit tests for driver
platt-sam Jun 7, 2023
8d2dcab
remove unused imports and unused fixtures
platt-sam Jun 7, 2023
c03c00e
add and reformat tests, add dummy data
platt-sam Jun 7, 2023
efeb8ba
remove unused import
platt-sam Jun 7, 2023
1ce22d5
add method getDrivers
platt-sam Jun 8, 2023
621007a
add test case for getDrivers
platt-sam Jun 8, 2023
cbb7cb5
Merge pull request #6 from SOUComputerScience/rankings
platt-sam Jun 8, 2023
252eaf4
final commit
platt-sam Jun 8, 2023
889cf62
Merge pull request #7 from SOUComputerScience/rankings
platt-sam Jun 8, 2023
54ba35f
series class test cases
platt-sam Jun 8, 2023
c906134
add __str__ for series class
platt-sam Jun 8, 2023
edcdff8
fixtures and imports
platt-sam Jun 8, 2023
7c0702f
add typechecking
platt-sam Jun 8, 2023
1a4e948
add __str__ method
platt-sam Jun 8, 2023
1004588
championship tests
platt-sam Jun 8, 2023
ddbddc0
more test cases
platt-sam Jun 9, 2023
203114b
engine unit tests
platt-sam Jun 9, 2023
83e26ae
unit tests
platt-sam Jun 9, 2023
c961350
comments
platt-sam Jun 9, 2023
16b20fc
add dummy data for RaceResults
platt-sam Jun 9, 2023
3d61cbc
remove unused imports and cleanup comment formatting
platt-sam Jun 9, 2023
c66330f
skeleton for teamfactory tests
platt-sam Jun 9, 2023
47f5a8b
fix bug
platt-sam Jun 9, 2023
40d004b
team factory tests and fixes
platt-sam Jun 9, 2023
9518fdf
use fixture instead of directly using var
platt-sam Jun 10, 2023
10336c3
remove extraneous todo
platt-sam Jun 10, 2023
e4fdeb4
championship tests
platt-sam Jun 10, 2023
c6f16d1
cleanup
platt-sam Jun 10, 2023
b1117d1
complete project
platt-sam Jun 10, 2023
aeb818f
added in race results
platt-sam Jun 10, 2023
2ac8e11
updated to include the sprint race
platt-sam Jun 10, 2023
6f91b0a
sprint race standings included
platt-sam Jun 10, 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
129 changes: 129 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/
59 changes: 59 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Racing Info CLI

A CLI program to track information about various motor racing series, such as the teams, drivers, engine manufacturers, and championship standings.

Current implementation includes the Formula One 2023 Championship.

## Glossary of Terms

*This glossary is listed in no particular order.*

#### **Formula One / Formula 1 / F1**
An international motor racing series featuring open wheel racing. Currently, Formula One races are only street circuits or road courses. Famous Formula One drivers include Michael Schumacher, Lewis Hamilton, Max Verstappen, Fernando Alonso, and Sebastian Vettel.

#### **Formula Two / Formula 2 / F2**
A junior series of Formula One. Similar to the relationship between Minor League Baseball and Major League Baseball.

#### **Formula E**
The electric vehicle open wheel racing series governed by the FIA.

#### **FIA / Fédération Internationale de l'Automobile**
The governing body of Formula One, and other related motor-racing series like Formula Two and Formula E.

#### **IndyCar**
A series of open wheel racing based in the United States. Most race are in the United States, although drivers come from a variety of countries. The points and team structures of IndyCar are very different from the system used by Formula One. IndyCar tracks can be ovals, street circuits, or road courses.

#### **Open Wheel Racing**
A type of vehicle in which the wheels are exposed. If you've seen Cars 2, think of the Italian race-car. Open wheel racing series include Formula One and IndyCar. This is in contrast to series like Nascar, in which the cars look very similar to regular street cars.

## Usage

### Set up environment

From the root project directory (`final_project-platt-sam`) run the following commands:

virtualenv -p python3 env
source env/bin/activate

### Install required packages

pip3 install -r requirements.txt

### Run unit tests

pytest tests

All tests should pass. Please report any failed tests to the project maintainer.

### Run the main program

python3 main.py

## Future Versions

* include Team Principals as an attribute of a Team
* add other FIA series like Formula 2, Formula E, and WEC (World Endurance Championship)
* differentiate between reserve/test drivers and full-time drivers
* add support for IndyCar type series
* add support for calculating standings using IndyCar's points system
* create an abstract class for Teams, create concrete classes for IndyCar and Formula One teams
Empty file added __init__.py
Empty file.
Loading