fromnewtypeimportNewTypeimportjsonfrompathlibimportPathclassConfigDict(NewType(dict)):def__init__(self,config_file:str="config.json"):super().__init__()self.config_file=Path(config_file)ifself.config_file.exists():self.load()defload(self):withopen(self.config_file)asf:self.update(json.load(f))defsave(self):withopen(self.config_file,'w')asf:json.dump(self,f,indent=2)def__setitem__(self,key,value):super().__setitem__(key,value)self.save()# Auto-save on changes# Usageconfig=ConfigDict("app_config.json")config["api_key"]="secret123"# Automatically saves to file
fromnewtypeimportNewTypefromtypingimportAny,DictimportreclassValidatedDict(NewType(dict)):def__init__(self,schema:Dict[str,Any]):super().__init__()self.schema=schemadef__setitem__(self,key:str,value:Any):ifkeynotinself.schema:raiseKeyError(f"Key '{key}' not in schema")expected_type=self.schema[key].get('type')ifnotisinstance(value,expected_type):raiseTypeError(f"Value for '{key}' must be {expected_type}")pattern=self.schema[key].get('pattern')ifpatternandisinstance(value,str):ifnotre.match(pattern,value):raiseValueError(f"Value for '{key}' doesn't match pattern {pattern}")super().__setitem__(key,value)# Usageschema={'email':{'type':str,'pattern':r'^[\w\.-]+@[\w\.-]+\.\w+$'},'age':{'type':int},}user_data=ValidatedDict(schema)user_data['email']='user@example.com'# Validuser_data['age']=25# Validuser_data['email']='invalid'# Raises ValueError
fromnewtypeimportNewTypefromdatetimeimportdatetimeimportjsonclassAuditedDict(NewType(dict)):def__init__(self,audit_file:str="audit.log"):super().__init__()self.audit_file=audit_filedef_log_operation(self,operation:str,key:str,value:Any=None):log_entry={'timestamp':datetime.now().isoformat(),'operation':operation,'key':key,'value':value}withopen(self.audit_file,'a')asf:f.write(json.dumps(log_entry)+'\n')def__setitem__(self,key,value):self._log_operation('set',key,value)super().__setitem__(key,value)def__delitem__(self,key):self._log_operation('delete',key)super().__delitem__(key)# Usageaudit_dict=AuditedDict()audit_dict['user']='admin'# Logs the operationdelaudit_dict['user']# Logs the deletion