circuitdata 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 611504e3b618906c3034b1d9eea7c4e863a6e48b
|
|
4
|
+
data.tar.gz: 333947547beab6d85a82d1fe6ea38bbacff79915
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f1c44352aa96d8180a1d8edfe6d5357ce440be331c981866b7ec53d8d5fdd2ec07fc33301338d34c0c554c60eedfeda79c1c22018506b32f2925395390b0121b
|
|
7
|
+
data.tar.gz: 1d7ba1fa15a0d14f24ff9fb4e120b8f794127c0b5bdfdfc789b881ba60be08f32db73b2c19d0ec1c70724345cf6051c98f4ccbf8c940b13b3ee8a986f52011d6
|
data/lib/circuitdata.rb
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
"aliases": "",
|
|
44
|
-
"
|
|
44
|
+
"descriptive_name": "Soldermasks",
|
|
45
45
|
"description": "Materials used as soldermask"
|
|
46
46
|
},
|
|
47
47
|
"dielectrics": {
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
}
|
|
147
147
|
},
|
|
148
148
|
"aliases": "",
|
|
149
|
-
"
|
|
149
|
+
"descriptive_name": "Dielectrics",
|
|
150
150
|
"description": "Materials used as dielectrics/laminates"
|
|
151
151
|
},
|
|
152
152
|
"stiffeners": {
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
"additionalProperties": false,
|
|
155
155
|
"required": ["name"],
|
|
156
156
|
"properties": {
|
|
157
|
-
"
|
|
157
|
+
"descriptive_name": {
|
|
158
158
|
"type": "string",
|
|
159
159
|
"uom": null,
|
|
160
160
|
"description": "The name of the Soldermask. Use the official name or some name as close to it as possible"
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
}
|
|
172
172
|
},
|
|
173
173
|
"aliases": "",
|
|
174
|
-
"
|
|
174
|
+
"descriptive_name": "Stiffener",
|
|
175
175
|
"uom": null,
|
|
176
176
|
"description": "The materials to be used as stiffener"
|
|
177
177
|
}
|
|
@@ -275,6 +275,106 @@
|
|
|
275
275
|
"description": "The average copper coverage of the board"
|
|
276
276
|
}
|
|
277
277
|
},
|
|
278
|
+
"dielectric": {
|
|
279
|
+
"name": {
|
|
280
|
+
"type": "string",
|
|
281
|
+
"uom": null,
|
|
282
|
+
"description": "The name of the Laminate. Use the official name or some name as close to it as possible."
|
|
283
|
+
},
|
|
284
|
+
"manufacturer": {
|
|
285
|
+
"type": "string",
|
|
286
|
+
"uom": null,
|
|
287
|
+
"description": "The name of the manufacturer"
|
|
288
|
+
},
|
|
289
|
+
"ipc_4101_sheet": {
|
|
290
|
+
"type": "integer",
|
|
291
|
+
"uom": null,
|
|
292
|
+
"description": "The reference sheet number of the IPC 4101 Standard."
|
|
293
|
+
},
|
|
294
|
+
"ipc_4103_sheet": {
|
|
295
|
+
"type": "integer",
|
|
296
|
+
"uom": null,
|
|
297
|
+
"description": "The reference sheet number of the IPC 4103 Standard."
|
|
298
|
+
},
|
|
299
|
+
"ipc_4204_sheet": {
|
|
300
|
+
"type": "integer",
|
|
301
|
+
"uom": null,
|
|
302
|
+
"description": "The reference sheet number of the IPC 4204 Standard."
|
|
303
|
+
},
|
|
304
|
+
"tg_min": {
|
|
305
|
+
"type": "integer",
|
|
306
|
+
"uom": null,
|
|
307
|
+
"description": "The minimum Glass Transition Temperature (Tg) required."
|
|
308
|
+
},
|
|
309
|
+
"tg_range_from": {
|
|
310
|
+
"type": "integer",
|
|
311
|
+
"uom": null,
|
|
312
|
+
"description": "The Glass Transition Temperature (Tg) range starts at."
|
|
313
|
+
},
|
|
314
|
+
"tg_range_to": {
|
|
315
|
+
"type": "integer",
|
|
316
|
+
"uom": null,
|
|
317
|
+
"description": "The Glass Transition Temperature (Tg) range ands at."
|
|
318
|
+
},
|
|
319
|
+
"td_min": {
|
|
320
|
+
"type": "integer",
|
|
321
|
+
"uom": null,
|
|
322
|
+
"description": "The minimum required temperature at which a base laminate material experiences an established percentage of weight loss using Thermograv imetric Analysis (TGA)."
|
|
323
|
+
},
|
|
324
|
+
"td_range_from": {
|
|
325
|
+
"type": "integer",
|
|
326
|
+
"uom": null,
|
|
327
|
+
"description": "The Td range starts at."
|
|
328
|
+
},
|
|
329
|
+
"td_range_to": {
|
|
330
|
+
"type": "integer",
|
|
331
|
+
"uom": null,
|
|
332
|
+
"description": "The Td range stops at."
|
|
333
|
+
},
|
|
334
|
+
"halogen_free": {
|
|
335
|
+
"type": "boolean",
|
|
336
|
+
"uom": null,
|
|
337
|
+
"description": "Indicates the material is material free or is required to be"
|
|
338
|
+
},
|
|
339
|
+
"rw_en45545_2_2013": {
|
|
340
|
+
"type": "boolean",
|
|
341
|
+
"uom": null,
|
|
342
|
+
"description": "Railway Europe EN45545-2:2013 compatible"
|
|
343
|
+
},
|
|
344
|
+
"rw_nf_f_16_101": {
|
|
345
|
+
"type": "boolean",
|
|
346
|
+
"uom": null,
|
|
347
|
+
"description": "Railway France NF F 16-101 compatible"
|
|
348
|
+
},
|
|
349
|
+
"rw_uni_cei_11170_3": {
|
|
350
|
+
"type": "boolean",
|
|
351
|
+
"uom": null,
|
|
352
|
+
"description": "Railway Italy UNI CEI 11170-3 compatible."
|
|
353
|
+
},
|
|
354
|
+
"rw_nfpa_130": {
|
|
355
|
+
"type": "boolean",
|
|
356
|
+
"uom": null,
|
|
357
|
+
"description": "Railway USA NFPA 130 compatible."
|
|
358
|
+
},
|
|
359
|
+
"ul": {
|
|
360
|
+
"type": "boolean",
|
|
361
|
+
"uom": null,
|
|
362
|
+
"description": "UL compatible."
|
|
363
|
+
},
|
|
364
|
+
"link": {
|
|
365
|
+
"type": "string",
|
|
366
|
+
"uom": null,
|
|
367
|
+
"description": "The link to some url that gives more information or a reference to the product."
|
|
368
|
+
},
|
|
369
|
+
"accept_equivalent": {
|
|
370
|
+
"type": "boolean",
|
|
371
|
+
"uom": null,
|
|
372
|
+
"description": "Equivalent material to the one specified is OK to use as a replacement if true."
|
|
373
|
+
},
|
|
374
|
+
"aliases": "",
|
|
375
|
+
"descriptive_name": "Dielectrics",
|
|
376
|
+
"description": "Materials used as dielectrics/laminates"
|
|
377
|
+
},
|
|
278
378
|
"final_finish": {
|
|
279
379
|
"finish": {
|
|
280
380
|
"type": "string",
|
data/lib/circuitdata/tools.rb
CHANGED
|
@@ -8,24 +8,29 @@ class Circuitdata::Tools
|
|
|
8
8
|
|
|
9
9
|
def update_ra(type, key, value)
|
|
10
10
|
parsed_elements = Circuitdata.read_json(@definitions_path)[2]
|
|
11
|
-
unless @ra[:structured].has_key? key
|
|
12
|
-
@ra[:structured][key] = {
|
|
11
|
+
unless @ra[:structured][:elements].has_key? key
|
|
12
|
+
@ra[:structured][:elements][key] = {
|
|
13
13
|
:type => value[:type],
|
|
14
14
|
:elements => {},
|
|
15
15
|
:name => nil,
|
|
16
16
|
:description => nil,
|
|
17
17
|
:aliases => nil
|
|
18
18
|
}
|
|
19
|
-
@ra[:structured][key][:name] = value[:
|
|
20
|
-
@ra[:structured][key][:description] = value[:
|
|
19
|
+
@ra[:structured][:elements][key][:name] = value[:descriptive_name] if value.has_key? :descriptive_name
|
|
20
|
+
@ra[:structured][:elements][key][:description] = value[:description] if value.has_key? :description
|
|
21
21
|
if value.has_key? :aliases
|
|
22
|
-
@ra[:structured][key][:aliases] = value[:aliases] unless value[:aliases] == ""
|
|
22
|
+
@ra[:structured][:elements][key][:aliases] = value[:aliases] unless value[:aliases] == ""
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
|
-
if value
|
|
26
|
-
value[:
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
if value[:type] == "array"
|
|
26
|
+
subelement = value[:items]
|
|
27
|
+
else
|
|
28
|
+
subelement = value
|
|
29
|
+
end
|
|
30
|
+
if subelement.has_key? :properties
|
|
31
|
+
subelement[:properties].each do |skey, svalue|
|
|
32
|
+
unless @ra[:structured][:elements][key][:elements].has_key? skey
|
|
33
|
+
@ra[:structured][:elements][key][:elements][skey] = {
|
|
29
34
|
:in_product_generic => false,
|
|
30
35
|
:in_product_stackup => false,
|
|
31
36
|
:in_profile_default => false,
|
|
@@ -38,9 +43,7 @@ class Circuitdata::Tools
|
|
|
38
43
|
:description => nil,
|
|
39
44
|
:uom => nil,
|
|
40
45
|
:minimum => nil,
|
|
41
|
-
:maximum => nil
|
|
42
|
-
:in_profile_restricted_regex => nil,
|
|
43
|
-
:in_capabilities_regex => nil
|
|
46
|
+
:maximum => nil
|
|
44
47
|
}
|
|
45
48
|
if svalue.has_key? :$ref
|
|
46
49
|
elements = svalue[:$ref].split('/')
|
|
@@ -58,43 +61,43 @@ class Circuitdata::Tools
|
|
|
58
61
|
end
|
|
59
62
|
unless element.nil?
|
|
60
63
|
if element.has_key? :type
|
|
61
|
-
@ra[:structured][key][:elements][skey][:type] = element[:type]
|
|
64
|
+
@ra[:structured][:elements][key][:elements][skey][:type] = element[:type]
|
|
62
65
|
if element[:type] == "array"
|
|
63
66
|
if element.has_key? :items and element[:items].has_key? :type
|
|
64
|
-
@ra[:structured][key][:elements][skey][:arrayitems] == element[:items][:type]
|
|
67
|
+
@ra[:structured][:elements][key][:elements][skey][:arrayitems] == element[:items][:type]
|
|
65
68
|
end
|
|
66
69
|
end
|
|
67
70
|
end
|
|
68
|
-
@ra[:structured][key][:elements][skey][:enum] = element[:enum] if element.has_key? :enum
|
|
69
|
-
@ra[:structured][key][:elements][skey][:description] = element[:description] if element.has_key? :description
|
|
70
|
-
@ra[:structured][key][:elements][skey][:uom] = element[:uom] if element.has_key? :uom
|
|
71
|
-
@ra[:structured][key][:elements][skey][:minimum] = element[:minimum] if element.has_key? :minimum
|
|
72
|
-
@ra[:structured][key][:elements][skey][:maximum] = element[:maximum] if element.has_key? :maximum
|
|
71
|
+
@ra[:structured][:elements][key][:elements][skey][:enum] = element[:enum] if element.has_key? :enum
|
|
72
|
+
@ra[:structured][:elements][key][:elements][skey][:description] = element[:description] if element.has_key? :description
|
|
73
|
+
@ra[:structured][:elements][key][:elements][skey][:uom] = element[:uom] if element.has_key? :uom
|
|
74
|
+
@ra[:structured][:elements][key][:elements][skey][:minimum] = element[:minimum] if element.has_key? :minimum
|
|
75
|
+
@ra[:structured][:elements][key][:elements][skey][:maximum] = element[:maximum] if element.has_key? :maximum
|
|
73
76
|
end
|
|
74
77
|
else
|
|
75
78
|
if [:in_profile_restricted, :in_capabilities].include? type
|
|
76
|
-
case @ra[:structured][key][:elements][skey][:type]
|
|
79
|
+
case @ra[:structured][:elements][key][:elements][skey][:type]
|
|
77
80
|
when *["number", "integer", "boolean", "string"]
|
|
78
|
-
@ra[:structured][key][:elements][skey][:type] = "number" if @ra[:structured][key][:elements][skey][:type] == "integer"
|
|
79
|
-
unless ( svalue.has_key? :type and svalue[:type] == "array" ) and ( svalue.has_key? :items and svalue[:items].has_key? :type and svalue[:items][:type] == @ra[:structured][key][:elements][skey][:type])
|
|
80
|
-
(@ra[:errors][type][key] ||= {})[skey] = "Type is #{@ra[:structured][key][:elements][skey][:type]}, wrong check"
|
|
81
|
+
@ra[:structured][:elements][key][:elements][skey][:type] = "number" if @ra[:structured][:elements][key][:elements][skey][:type] == "integer"
|
|
82
|
+
unless ( svalue.has_key? :type and svalue[:type] == "array" ) and ( svalue.has_key? :items and svalue[:items].has_key? :type and svalue[:items][:type] == @ra[:structured][:elements][key][:elements][skey][:type])
|
|
83
|
+
(@ra[:errors][type][key] ||= {})[skey] = "Type is #{@ra[:structured][:elements][key][:elements][skey][:type]}, wrong check"
|
|
81
84
|
end
|
|
82
85
|
when "array"
|
|
83
86
|
unless svalue.has_key? :type and svalue[:type] == "array"
|
|
84
|
-
(@ra[:errors][type][key] ||= {})[skey] = "Type is #{@ra[:structured][key][:elements][skey][:type]}, wrong check"
|
|
87
|
+
(@ra[:errors][type][key] ||= {})[skey] = "Type is #{@ra[:structured][:elements][key][:elements][skey][:type]}, wrong check"
|
|
85
88
|
end
|
|
86
89
|
else
|
|
87
|
-
puts "unknown type #{@ra[:structured][key][:elements][skey][:type]} in #{key}, #{skey}"
|
|
90
|
+
puts "unknown type #{@ra[:structured][:elements][key][:elements][skey][:type]} in #{key}, #{skey} when doing #{type}"
|
|
88
91
|
end
|
|
89
92
|
end
|
|
90
93
|
end
|
|
91
|
-
@ra[:structured][key][:elements][skey][type] = true
|
|
94
|
+
@ra[:structured][:elements][key][:elements][skey][type] = true
|
|
92
95
|
end
|
|
93
96
|
end
|
|
94
97
|
end
|
|
95
98
|
|
|
96
99
|
def create_structure
|
|
97
|
-
@ra[:structured] = {}
|
|
100
|
+
@ra[:structured] = {:elements => {}, :custom => {}}
|
|
98
101
|
@ra[:errors] = {:in_profile_restricted => {}, :in_capabilities => {}}
|
|
99
102
|
parsed_schema = Circuitdata.read_json(@schema_path)[2]
|
|
100
103
|
parsed_schema[:properties][:open_trade_transfer_package][:properties][:products][:patternProperties]["^(?!generic$).*".to_sym][:properties][:printed_circuits_fabrication_data][:properties].each do |key, value|
|
|
@@ -116,57 +119,52 @@ class Circuitdata::Tools
|
|
|
116
119
|
parsed_schema[:properties][:open_trade_transfer_package][:properties][:capabilities][:properties][:printed_circuits_fabrication_data][:properties].each do |key, value|
|
|
117
120
|
self.update_ra(:in_capabilities, key, value)
|
|
118
121
|
end
|
|
119
|
-
@ra[:structured].sort.to_h
|
|
120
|
-
@ra[:structured].delete(:version)
|
|
122
|
+
@ra[:structured][:elements].sort.to_h
|
|
123
|
+
@ra[:structured][:elements].delete(:version)
|
|
124
|
+
|
|
121
125
|
return @ra
|
|
122
126
|
end
|
|
123
127
|
|
|
124
128
|
def create_documentation(ra)
|
|
125
|
-
ra[:documentation] = "## Elements and tags\n"
|
|
126
|
-
ra[:structured].each do |element_key, element_value|
|
|
127
|
-
ra[:documentation] += "
|
|
129
|
+
ra[:documentation] = "## Elements and tags\n====================\n\n"
|
|
130
|
+
ra[:structured][:elements].each do |element_key, element_value|
|
|
131
|
+
ra[:documentation] += "### #{element_key} [link](##{element_key.to_s.downcase.tr(" ", "-")})\n"
|
|
128
132
|
element_value[:elements].each do |e_key, e_value|
|
|
129
133
|
ra[:documentation] += "* #{e_key}\n"
|
|
130
134
|
end
|
|
131
135
|
ra[:documentation] += "\n"
|
|
132
136
|
end
|
|
133
|
-
ra[:structured].each do |element_key, element_value|
|
|
137
|
+
ra[:structured][:elements].each do |element_key, element_value|
|
|
134
138
|
ra[:documentation] += "### #{element_key}\n"
|
|
135
|
-
ra[:documentation] += "Name: #{element_value[:
|
|
136
|
-
ra[:documentation] += "Aliases: #{element_value[:aliases]}\n" unless element_value[:aliases].nil?
|
|
139
|
+
ra[:documentation] += "Name: #{element_value[:descriptive_name]}\n\n" unless element_value[:descriptive_name].nil?
|
|
140
|
+
ra[:documentation] += "Aliases: #{element_value[:aliases]}\n\n" unless element_value[:aliases].nil?
|
|
137
141
|
ra[:documentation] += "#{element_value[:description]}\n" unless element_value[:description].nil?
|
|
138
142
|
ra[:documentation] += "\n"
|
|
143
|
+
if element_value[:type] == "array"
|
|
144
|
+
ra[:documentation] += "**You must specify this as en array when used in a generic product description or a stackup, but as a single object when used in any of the other parts.**\n\n"
|
|
145
|
+
end
|
|
139
146
|
element_value[:elements].each do |e_key, e_value|
|
|
140
147
|
ra[:documentation] += "#### #{e_key}\n"
|
|
141
|
-
ra[:documentation] += "Aliases: #{e_value[:aliases]}\n" unless e_value[:aliases].nil?
|
|
142
|
-
ra[:documentation] += "#{e_value[:description]}\n" unless e_value[:description].nil?
|
|
143
|
-
ra[:documentation] += "Unit of Measure: #{e_value[:uom][0]}\n" unless e_value[:uom].nil?
|
|
144
|
-
unless e_value[:type].nil?
|
|
145
|
-
if e_value[:type] == "array"
|
|
146
|
-
if e_value[:arrayitems].nil?
|
|
147
|
-
ra[:documentation] += "Type: #{e_value[:type].capitalize} of unknown type\n"
|
|
148
|
-
else
|
|
149
|
-
ra[:documentation] += "Type: #{e_value[:type].capitalize} of #{e_value[:arrayitems].capitalize}\n"
|
|
150
|
-
end
|
|
151
|
-
else
|
|
152
|
-
ra[:documentation] += "Type: #{e_value[:type].capitalize}\n"
|
|
153
|
-
end
|
|
154
|
-
end
|
|
148
|
+
ra[:documentation] += "Aliases: #{e_value[:aliases]}\n\n" unless e_value[:aliases].nil?
|
|
149
|
+
ra[:documentation] += "#{e_value[:description]}\n\n" unless e_value[:description].nil?
|
|
150
|
+
ra[:documentation] += "Unit of Measure: #{e_value[:uom][0]}\n\n" unless e_value[:uom].nil?
|
|
155
151
|
if e_value.has_key? :enum and not e_value[:enum].nil?
|
|
156
152
|
ra[:documentation] += "Use one of these values:\n"
|
|
157
153
|
e_value[:enum].each do |ev|
|
|
158
154
|
ra[:documentation] += "* #{ev}\n"
|
|
159
155
|
end
|
|
156
|
+
ra[:documentation] += "\n"
|
|
157
|
+
end
|
|
158
|
+
ra[:documentation] += "| | Generic product | Stackup | Profile defaults | Profile enforced | Profile restricted | Capabilities |\n"
|
|
159
|
+
ra[:documentation] += "|-:|:---------------:|:-------:|:----------------:|:----------------:|:------------------:|:------------:|\n| **Use in:** | "
|
|
160
|
+
[e_value[:in_product_generic], e_value[:in_product_stackup], e_value[:in_profile_default], e_value[:in_profile_enforced], e_value[:in_profile_restricted], e_value[:in_capabilities]].each do |part|
|
|
161
|
+
part.nil? ? ra[:documentation] += "Disallowed | " : ra[:documentation] += "Allowed | "
|
|
162
|
+
end
|
|
163
|
+
ra[:documentation] += "\n|**Format:** | #{e_value[:type]} | #{e_value[:type]} | #{e_value[:type]} | #{e_value[:type]} | Array of #{e_value[:type]}s | Array of #{e_value[:type]}s |\n"
|
|
164
|
+
if e_value[:enum].nil? and e_value[:type] == "number"
|
|
165
|
+
ra[:documentation] += "|**Min value:** | #{e_value[:minimum]} | #{e_value[:minimum]} | #{e_value[:minimum]} | #{e_value[:minimum]} | Each item: #{e_value[:minimum]} | Each item: #{e_value[:minimum]} |\n" unless e_value[:minimum].nil?
|
|
166
|
+
ra[:documentation] += "|**Max value:** | #{e_value[:maximum]} | #{e_value[:maximum]} | #{e_value[:maximum]} | #{e_value[:maximum]} | Each item : #{e_value[:maximum]} | Each item: #{e_value[:maximum]} |\n" unless e_value[:maximum].nil?
|
|
160
167
|
end
|
|
161
|
-
ra[:documentation] += "Use in:\n"
|
|
162
|
-
e_value[:in_product_generic] ? ra[:documentation] += "* *Generic product section: Allowed*\n" : ra[:documentation] += "* *Generic product section: Disallowed*\n"
|
|
163
|
-
e_value[:in_product_stackup] ? ra[:documentation] += "* *Stackup product section: Allowed*\n" : ra[:documentation] += "* *Gtackup product section: Disallowed*\n"
|
|
164
|
-
e_value[:in_profile_default] ? ra[:documentation] += "* *Profile defaults section: Allowed*\n" : ra[:documentation] += "* *Profile defaults section: Disallowed*\n"
|
|
165
|
-
e_value[:in_profile_enforced] ? ra[:documentation] += "* *Profile enforced section: Allowed*\n" : ra[:documentation] += "* *Profile enforced section: Disallowed*\n"
|
|
166
|
-
e_value[:in_profile_restricted] ? ra[:documentation] += "* *Profile restricted section: Allowed*\n" : ra[:documentation] += "* *Profile restricted section: Disallowed*\n"
|
|
167
|
-
ra[:documentation] += "* - Value in restricted section must match regex #{e_value[:in_profile_restricted_regex]}\n" unless e_value[:in_profile_restricted_regex].nil?
|
|
168
|
-
e_value[:in_capabilities] ? ra[:documentation] += "* *Capabilites section: Allowed*\n" : ra[:documentation] += "* *Capabilities section: Disallowed*\n"
|
|
169
|
-
ra[:documentation] += "* - Value in capabilites section must match regex #{e_value[:in_capabilities_regex]}\n" unless e_value[:in_capabilities_regex].nil?
|
|
170
168
|
ra[:documentation] += "\n"
|
|
171
169
|
end
|
|
172
170
|
end
|
data/lib/circuitdata/version.rb
CHANGED