Conditions | 7 |
Total Lines | 87 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | from xml.dom.minidom import Document |
||
15 | def serializeList(self, itemOrList): |
||
16 | prov = 'http://www.w3.org/ns/prov#' |
||
17 | nfo = 'http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#' |
||
18 | dct = 'http://purl.org/dc/terms/' |
||
19 | dom = Document() |
||
20 | doc = dom.createElementNS(prov, 'prov:document') |
||
21 | doc.setAttribute('xmlns:prov', prov) |
||
22 | doc.setAttribute('xmlns:nfo', nfo) |
||
23 | doc.setAttribute('xmlns:dct', dct) |
||
24 | dom.appendChild(doc) |
||
25 | for i, item in enumerate(itemOrList): |
||
26 | entity = dom.createElementNS(prov, 'prov:entity') |
||
27 | entityId = 'niprov:file'+str(i) |
||
28 | entity.setAttribute('id', entityId) |
||
29 | |||
30 | fileUrl = dom.createElementNS(nfo, 'nfo:fileUrl') |
||
31 | fileUrlVal = dom.createTextNode(item.location.toUrl()) |
||
32 | fileUrl.appendChild(fileUrlVal) |
||
33 | entity.appendChild(fileUrl) |
||
34 | |||
35 | if 'size' in item.provenance: |
||
36 | |||
37 | fileSize = dom.createElementNS(nfo, 'nfo:fileSize') |
||
38 | fileSizeVal = dom.createTextNode(str(item.provenance['size'])) |
||
39 | fileSize.appendChild(fileSizeVal) |
||
40 | entity.appendChild(fileSize) |
||
41 | |||
42 | if 'created' in item.provenance: |
||
43 | |||
44 | fileLastMod = dom.createElementNS(nfo, 'nfo:fileLastModified') |
||
45 | fileLastModVal = dom.createTextNode(item.provenance['created'].isoformat()) |
||
46 | fileLastMod.appendChild(fileLastModVal) |
||
47 | entity.appendChild(fileLastMod) |
||
48 | |||
49 | if 'hash' in item.provenance: |
||
50 | |||
51 | fileHash = dom.createElementNS(nfo, 'nfo:FileHash') |
||
52 | hashId = entityId+'.hash' |
||
53 | fileHash.setAttribute('id', hashId) |
||
54 | |||
55 | hashAlgo = dom.createElementNS(nfo, 'nfo:hashAlgorithm') |
||
56 | hashAlgoVal = dom.createTextNode('MD5') |
||
57 | hashAlgo.appendChild(hashAlgoVal) |
||
58 | fileHash.appendChild(hashAlgo) |
||
59 | |||
60 | hashValue = dom.createElementNS(nfo, 'nfo:hashValue') |
||
61 | hashValueVal = dom.createTextNode(item.provenance['hash']) |
||
62 | hashValue.appendChild(hashValueVal) |
||
63 | fileHash.appendChild(hashValue) |
||
64 | |||
65 | hasHash = dom.createElementNS(nfo, 'nfo:hasHash') |
||
66 | hasHashVal = dom.createTextNode(hashId) |
||
67 | hasHash.appendChild(hasHashVal) |
||
68 | entity.appendChild(hasHash) |
||
69 | |||
70 | doc.appendChild(fileHash) |
||
71 | |||
72 | if 'transformation' in item.provenance: |
||
73 | |||
74 | act = dom.createElementNS(prov, 'prov:activity') |
||
75 | activityId = entityId+'.xform' |
||
76 | act.setAttribute('id', activityId) |
||
77 | |||
78 | actTitle = dom.createElementNS(dct, 'dct:title') |
||
79 | actTitleVal = dom.createTextNode(item.provenance['transformation']) |
||
80 | actTitle.appendChild(actTitleVal) |
||
81 | act.appendChild(actTitle) |
||
82 | doc.appendChild(act) |
||
83 | |||
84 | wasGen = dom.createElementNS(prov, 'prov:wasGeneratedBy') |
||
85 | entityRef = dom.createElementNS(prov, 'prov:entity') |
||
86 | entityRef.setAttribute('prov:ref', entityId) |
||
87 | wasGen.appendChild(entityRef) |
||
88 | activityRef = dom.createElementNS(prov, 'prov:activity') |
||
89 | activityRef.setAttribute('prov:ref', activityId) |
||
90 | wasGen.appendChild(activityRef) |
||
91 | doc.appendChild(wasGen) |
||
92 | |||
93 | if 'created' in item.provenance: |
||
94 | wasGenTime = dom.createElementNS(prov, 'prov:time') |
||
95 | wasGenTimeVal = dom.createTextNode(item.provenance['created'].isoformat()) |
||
96 | wasGenTime.appendChild(wasGenTimeVal) |
||
97 | wasGen.appendChild(wasGenTime) |
||
98 | |||
99 | doc.appendChild(entity) |
||
100 | |||
101 | return dom.toprettyxml(encoding="UTF-8") |
||
102 | |||
104 |