# -*- coding: utf-8 -*-
"""只操作本程序创建的临时对象；全部数据为合成样本。"""
import os, sys, json, sqlite3, tempfile, pathlib, subprocess, time, socket, stat
from pathlib import Path
def emit(**kw):
    print(json.dumps(kw, ensure_ascii=False, sort_keys=True))
samples=[{'name':'inodes','bavail':100000,'frsize':4096,'favail':0,'permission':True},{'name':'bytes','bavail':0,'frsize':4096,'favail':100,'permission':True},{'name':'permission','bavail':1000,'frsize':4096,'favail':100,'permission':False}]
def reason(s):
    if not s['permission']: return 'permission'
    if s['favail']==0: return 'inode_candidate'
    if s['bavail']==0: return 'byte_capacity'
    return 'needs_more_evidence'
results=[reason(x) for x in samples]
with tempfile.TemporaryDirectory(prefix='ywebs-next132-b2-inodes-') as d:
    for i in range(12): (Path(d)/('part-%02d'%i)).write_text('x')
    count=len(list(Path(d).iterdir()))
assert results==['inode_candidate','byte_capacity','permission'] and count==12
emit(classifications=results,small_files=count,synthetic_free_bytes=409600000,scope='合成statvfs分类；未耗尽inode')
