ScoreTree is an easy to use, multi-level grade weighting system that serves as excellent tool for cascade grading methods.
This package has been released through PyPI, so it can be installed using Python's pip
module:
python -m pip install scoretree
Note
The command above asumes that your Python interpreter is aliased to python
and references a version equal to or greater than 3.10
Alternatively, it is also possible to clone this repository and install the package via pip
and/or build
.
Here is an usage example. Feel free to take a look at other examples in the corresponding section of the repository.
from scoretree import Score, ScoreArea, ScoreTree
# Define a score tree:
st = ScoreTree([
# Add a list of areas to be evaluated:
ScoreArea(name=f"Simulation", weight=1, items=[
# Each area can contain other areas and/or scores:
ScoreArea("Stop maneuver", .2, [
# Scores are the minimal grading unit:
Score(
name="Distance to end",
weight=.8,
score_range=(0, 10),
value=9.8848,
inverse=True
),
Score("Deceleration intensity", .2, (0, 20), value=185555)
]),
# Different instance creation syntax:
ScoreArea("Track performance", .8, [
Score("Speed", .3, (0, 20), 5),
ScoreArea("Efficiency", .7, [
Score("Track time", .5, (0, 40), 30),
Score("Track distance", .5, (0, 200), value=10, inverse=True)
])
])
])
], colorized=True) # Enable or disable colorized output.
print(f"Total simulation score: {st.score}")
This would be the colorized output for the code snippet above:
Since this is a very small project that can be easily improved and can expand its functionality way further down the development process, any contributions, suggestions or bug reports are more than welcome!