PHP Classes

File: test/py/test.py

Recommend this page to a friend!
  Packages of Nikos M.   Formal PHP Validation Library   test/py/test.py   Download  
File: test/py/test.py
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Formal PHP Validation Library
Validate a set values with support to type casting
Author: By
Last change:
Date: 8 months ago
Size: 3,390 bytes
 

Contents

Class file image Download
import os, sys DIR = os.path.dirname(os.path.abspath(__file__)) def import_module(name, path): #import imp #try: # mod_fp, mod_path, mod_desc = imp.find_module(name, [path]) # mod = getattr( imp.load_module(name, mod_fp, mod_path, mod_desc), name ) #except ImportError as exc: # mod = None # sys.stderr.write("Error: failed to import module ({})".format(exc)) #finally: # if mod_fp: mod_fp.close() #return mod import importlib.util, sys spec = importlib.util.spec_from_file_location(name, path+name+'.py') mod = importlib.util.module_from_spec(spec) sys.modules[name] = mod spec.loader.exec_module(mod) return getattr(mod, name) # import the Formal.py (as a) module, probably you will want to place this in another dir/package Formal = import_module('Formal', os.path.join(DIR, '../../src/py/')) if not Formal: print ('Could not load the Formal Module') sys.exit(1) else: pass def test(): import json formal = Formal().option('WILDCARD', '*').option('SEPARATOR', '.').option('break_on_first_error', False) formdata = { 'foo' : '', 'moo' : [ {'choo' : 1}, {'choo' : 2}, {'choo' : 3}, ], 'soo' : [ { 'boo' : 1, 'xoo' : 'a' }, { 'boo' : 2, 'xoo' : 'b' }, { 'boo' : 3, 'xoo' : 'c' }, ], 'koo' : [ '', '', '', ], 'num' : [ '0.1', '1.2', ], 'date' : [ '2012-11-02', '20-11-02', ] } data = formal.option('defaults', { 'foo' : 'bar', 'moo.*.foo' : 'bar', 'koo.*' : 'bar' }).option('typecasters', { 'koo.*.foo' : Formal.typecast('str'), 'num.*' : Formal.typecast('composite', [Formal.typecast('float'), Formal.typecast('clamp', [0.0, 1.0]) ])}).option('validators', { 'foo.*' : Formal.validate('required'), 'foo.*.foo' : Formal.validate('required'), 'moo.*.foo' : Formal.validate('required'), 'koo.*.foo' : Formal.validate('optional', Formal.validate('required')), 'date.*' : Formal.validate('match', Formal.datetime('Y-m-d'), '"{key}" should match {args} !'), 'date.0' : Formal.validate('eq', Formal.field('date.1')) }).process(formdata) err = formal.getErrors() print(json.dumps(formdata, indent=4)) print(json.dumps(data, indent=4)) print("\n".join(map(str, err))) print(json.dumps(formal.get('soo.1.boo', 'default', formdata), indent=4)) print(json.dumps(formal.get('soo.*.boo', 'default', formdata), indent=4)) print(json.dumps(formal.get('soo.*.*', 'default', formdata), indent=4)) print(json.dumps(formal.get('soo.1.koo', 'default', formdata), indent=4)) print(json.dumps(formal.get('soo.*.koo', 'default', formdata), indent=4)) print(json.dumps(formal.get('soo.koo.1', 'default', formdata), indent=4)) print(json.dumps(formal.get('soo.koo.*', 'default', formdata), indent=4)) print('Formal.VERSION ' + Formal.VERSION) test()