plan.py: add commandline parsing

This commit is contained in:
Danny Robson 2019-07-14 12:09:16 +10:00
parent f75047dde5
commit f5b269e3a4

20
plan.py
View File

@ -38,7 +38,8 @@ def required_rates(
while remain: while remain:
for dst_name, dst_rate in remain.pop().items(): for dst_name, dst_rate in remain.pop().items():
# Append the requested item # Append the requested item to the output rate. We'll add the
# inputs just below.
required_items[dst_name] += dst_rate required_items[dst_name] += dst_rate
# We can't craft resources, so just ignore them. # We can't craft resources, so just ignore them.
@ -148,13 +149,22 @@ def plan(recipes: satisfactory.Cookbook, required: Dict[str, Fraction]):
def main(): def main():
recipes = satisfactory.Cookbook('data/recipes') recipes = satisfactory.Cookbook('data/recipes')
# Create a list of items we want to make import argparse
# names = [ 'supercomputer' ]
names = recipes.components() parser = argparse.ArgumentParser()
parser.add_argument(
"item",
nargs="*",
type=str,
default=recipes.components(),
help="The name of an item to produce at full rate"
)
args = parser.parse_args()
# Create an initial name:rate request for all of the target items, then # Create an initial name:rate request for all of the target items, then
# create a plan for their creation. # create a plan for their creation.
request = [{n: basic_rate(recipes[n]['recipes'][0]) for n in names}] request = [{n: basic_rate(recipes[n]['recipes'][0]) for n in args.item}]
plan(recipes, request) plan(recipes, request)