"""Authored CSV/object roundtrip for an explicit all-string, fixed-column subset."""
import csv,io,json,platform,hashlib
COLUMNS=['id','note','status']
def from_csv(raw):
 if not isinstance(raw,bytes) or len(raw)>16384:raise ValueError('byte budget')
 rows=list(csv.reader(io.StringIO(raw.decode('utf-8-sig'),newline=''),delimiter=',',quotechar='"',doublequote=True,skipinitialspace=False,strict=True))
 if not rows or rows[0]!=COLUMNS or len(rows)>101:raise ValueError('exact header/row budget')
 if any(len(r)!=len(COLUMNS) for r in rows[1:]):raise ValueError('ragged record')
 return [dict(zip(COLUMNS,r)) for r in rows[1:]]
def to_csv(records):
 if not isinstance(records,list) or len(records)>100:raise ValueError('record list')
 for row in records:
  if not isinstance(row,dict) or set(row)!=set(COLUMNS) or any(type(v)is not str or len(v)>1024 for v in row.values()):raise ValueError('exact keys and string values')
 out=io.StringIO(newline='');wr=csv.writer(out,lineterminator='\n',quoting=csv.QUOTE_MINIMAL);wr.writerow(COLUMNS)
 for r in records:wr.writerow([r[c] for c in COLUMNS])
 return out.getvalue().encode('utf-8')
def demo():
 expected=[{'id':'001','note':'الف,ب','status':''},{'id':'002','note':'دو\nخط','status':' '},{'id':'003','note':'گفت "بله"','status':'open'},{'id':'004','note':'=1+1','status':'open'}]
 original=b'\xef\xbb\xbf'+('"id","note","status"\r\n"001","الف,ب",""\r\n"002","دو\nخط"," "\r\n"003","گفت ""بله""","open"\r\n"004","=1+1","open"\r\n').encode()
 parsed=from_csv(original);assert parsed==expected
 json_text=json.dumps(parsed,ensure_ascii=False,indent=2);back=json.loads(json_text);encoded=to_csv(back);again=from_csv(encoded);assert again==expected and encoded!=original
 rejected=[]
 for name,row in [('null',[{'id':'1','note':None,'status':''}]),('missing',[{'id':'1','note':''}]),('extra',[{'id':'1','note':'','status':'','x':''}]),('nested',[{'id':'1','note':{},'status':''}]),('number',[{'id':1,'note':'','status':''}])]:
  try:to_csv(row)
  except ValueError:rejected.append(name)
  else:raise AssertionError(name)
 for name,raw in [('duplicate-header',b'id,note,note\n1,a,b\n'),('short-row',b'id,note,status\n1,a\n'),('extra-column',b'id,note,status\n1,a,b,c\n')]:
  try:from_csv(raw)
  except ValueError:rejected.append(name)
  else:raise AssertionError(name)
 assert from_csv(to_csv([]))==[]
 return {'runtime':platform.python_version(),'original_csv_utf8':original.decode('utf-8'),'json_records':parsed,'reencoded_csv':encoded.decode(),'record_and_string_equality':again==expected,'byte_identity_claimed':False,'original_sha256':hashlib.sha256(original).hexdigest(),'reencoded_sha256':hashlib.sha256(encoded).hexdigest(),'rejected_cases':rejected,'formula_like_string_preserved_not_spreadsheet_sanitized':True,'all_assertions_passed':True}
if __name__=='__main__':print(json.dumps(demo(),ensure_ascii=False,indent=2))
