examples/doc_examples.py
author robin
Fri, 23 Dec 2016 12:55:22 +0000
changeset 56 51219ad2b0bd
parent 11 a0a1adbc7b13
permissions -rw-r--r--
speed up windows 3.6 build
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
     1
if __name__=='__main__':
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
     2
	import pyRXP, traceback, os, sys, pprint
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
     3
	sys.stderr=sys.stdout
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
     4
	p=pyRXP.Parser()
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
     5
	print '''import pyRXP'''
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
     6
	print '''p=pyRXP.Parser()'''
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
     7
	
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
     8
	code = ['''pyRXP.version''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
     9
			'''pyRXP.RXPVersion''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    10
			'''p('<tag>content</tag>')''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    11
			'''p('<tag1><tag2>content</tag2></tag1>')''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    12
			-1,'''pprint.pprint(p('<tag1><tag2>content</tag2></tag1>'))''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    13
			'''p('<tag>my contents</tag>')''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    14
			'''p('<tag></tag>')''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    15
			'''p('<tag/>')''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    16
			'''p('<outerTag><innerTag>bb</innerTag>aaa<singleTag/></outerTag>')''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    17
			-1,'''pprint.pprint(p('<outerTag><innerTag>bb</innerTag>aaa<singleTag/></outerTag>'))''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    18
			'''p('<tag/><!-- this is a comment about the tag -->')''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    19
			'''p('<!-- this is a comment -->')''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    20
			'''p('<a>aaa</a') # note the missing '>''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    21
			'''p('<a></a><b></b>')''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    22
			'''p('<outer><a></a><b></b></outer>')''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    23
			'''os.getcwd()''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    24
			'''os.listdir('.')''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    25
			-1,'''dtd = open('tinydtd.dtd', 'r').read()''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    26
			'''dtd''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    27
			-1,'''fn=open('sample1.xml', 'r').read()''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    28
			'''fn''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    29
			'''p(fn)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    30
			-1,'''fn=open('sample2.xml', 'r').read()''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    31
			'''fn''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    32
			'''p(fn)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    33
			-1,'''fn=open('sample4.xml', 'r').read()''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    34
			'''fn''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    35
			'''p(fn,NoNoDTDWarning=0)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    36
			-1,'''fn=open('sample3.xml', 'r').read()''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    37
			'''fn''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    38
			'''p(fn)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    39
			'''p('<a></a><b></b>',AllowMultipleElements = 0)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    40
			'''p('<a></a><b></b>',AllowMultipleElements=1)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    41
			'''p('<a></A>',CaseInsensitive=1)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    42
			'''p('<a></A>',CaseInsensitive=0)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    43
			'''p('<a>&#999;</a>',ErrorOnBadCharacterEntities=0)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    44
			'''p('<a>&#999;</a>',ErrorOnBadCharacterEntities=1)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    45
			'''p('<a>&dud;</a>',ErrorOnUndefinedEntities=0)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    46
			'''p('<a>&dud;</a>',ErrorOnUndefinedEntities=1)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    47
			'''p('<a>&#109;</a>',ExpandCharacterEntities=1)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    48
			'''p('<a>&#109;</a>',ExpandCharacterEntities=0)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    49
			'''p('<a>&amp;</a>',ExpandGeneralEntities=0)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    50
			'''p('<a>&amp;</a>',ExpandGeneralEntities=1)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    51
			'''p('<a>&amp;</a>',IgnoreEntities=0)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    52
			'''p('<a>&amp;</a>',IgnoreEntities=1)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    53
			'''p('<a><!-- this is a comment --></a>',ReturnComments=1)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    54
			'''p('<a><!-- this is a comment --></a>',ReturnComments=0)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    55
			'''p('<a>causes an error</b>',SimpleErrorFormat=0)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    56
			'''p('<a>causes an error</b>',SimpleErrorFormat=1)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    57
			'''p('<a>&amp;</a>',XMLPredefinedEntities=1)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    58
			'''p('<a>&amp;</a>',XMLPredefinedEntities=0)''',
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    59
			]
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    60
	po = 0
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    61
	i = 0
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    62
	for c in code:
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    63
		if type(c) is type(1):
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    64
			po=1
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    65
		else:
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    66
			i += 1
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    67
			print '>>> '+c
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    68
			if po:
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    69
				po = 0
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    70
				exec c in globals(), locals()
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    71
			else:
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    72
				try:
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    73
					__x = eval(c)
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    74
					print __x
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    75
				except:
7cf042be50ba Move pyRXP into its own universe
rgbecker
parents:
diff changeset
    76
					traceback.print_exc()