#!/usr/bin/python3

# PoC

# add a new entry and remove a random old entry with a probability
# depending on the target size

import argparse
import json
import random
import time

ap = argparse.ArgumentParser()

ap.add_argument("--targetsize", type=int, default=1000)
ap.add_argument("file")
ap.add_argument("value", type=float)

args = ap.parse_args()

ts = []
try:
    with open(args.file) as f:
        ts = json.load(f)
except FileNotFoundError as e:
    pass # Ok, will create

now = time.time()
ts.append((now, args.value))
if random.random() > 1 - len(ts) / args.targetsize:
    i = random.randrange(0, len(ts))
    ts.pop(i)

with open(args.file, "w") as f:
    json.dump(ts, f)
print(len(ts))