openepd 5.0.0__py3-none-any.whl → 5.1.1__py3-none-any.whl

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.
Files changed (61) hide show
  1. openepd/__version__.py +1 -1
  2. openepd/model/common.py +39 -0
  3. openepd/model/declaration.py +7 -2
  4. openepd/model/geography.py +1 -1
  5. openepd/model/lcia.py +6 -3
  6. openepd/model/org.py +0 -1
  7. openepd/model/pcr.py +2 -2
  8. openepd/model/specs/README.md +34 -8
  9. openepd/model/specs/asphalt.py +2 -2
  10. openepd/model/specs/base.py +13 -0
  11. openepd/model/specs/generated/__init__.py +80 -0
  12. openepd/model/specs/generated/cladding.py +4 -4
  13. openepd/model/specs/generated/concrete.py +8 -7
  14. openepd/model/specs/generated/electrical.py +2 -2
  15. openepd/model/specs/generated/finishes.py +10 -6
  16. openepd/model/specs/generated/masonry.py +6 -2
  17. openepd/model/specs/generated/network_infrastructure.py +7 -2
  18. openepd/model/specs/generated/openings.py +10 -6
  19. openepd/model/specs/generated/sheathing.py +8 -4
  20. openepd/model/specs/generated/steel.py +10 -5
  21. openepd/model/specs/range/__init__.py +101 -0
  22. openepd/model/specs/range/accessories.py +97 -0
  23. openepd/model/specs/range/aggregates.py +57 -0
  24. openepd/model/specs/range/aluminium.py +92 -0
  25. openepd/model/specs/range/asphalt.py +61 -0
  26. openepd/model/specs/range/bulk_materials.py +31 -0
  27. openepd/model/specs/range/cast_decks_and_underlayment.py +34 -0
  28. openepd/model/specs/range/cladding.py +275 -0
  29. openepd/model/specs/range/cmu.py +44 -0
  30. openepd/model/specs/range/concrete.py +179 -0
  31. openepd/model/specs/range/conveying_equipment.py +86 -0
  32. openepd/model/specs/range/electrical.py +422 -0
  33. openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py +96 -0
  34. openepd/model/specs/range/electricity.py +31 -0
  35. openepd/model/specs/range/finishes.py +585 -0
  36. openepd/model/specs/range/fire_and_smoke_protection.py +108 -0
  37. openepd/model/specs/range/furnishings.py +137 -0
  38. openepd/model/specs/range/grouting.py +34 -0
  39. openepd/model/specs/range/manufacturing_inputs.py +190 -0
  40. openepd/model/specs/range/masonry.py +87 -0
  41. openepd/model/specs/range/material_handling.py +50 -0
  42. openepd/model/specs/range/mechanical.py +307 -0
  43. openepd/model/specs/range/mechanical_insulation.py +42 -0
  44. openepd/model/specs/range/network_infrastructure.py +208 -0
  45. openepd/model/specs/range/openings.py +512 -0
  46. openepd/model/specs/range/other_electrical_equipment.py +31 -0
  47. openepd/model/specs/range/other_materials.py +194 -0
  48. openepd/model/specs/range/plumbing.py +200 -0
  49. openepd/model/specs/range/precast_concrete.py +115 -0
  50. openepd/model/specs/range/sheathing.py +86 -0
  51. openepd/model/specs/range/steel.py +332 -0
  52. openepd/model/specs/range/thermal_moisture_protection.py +336 -0
  53. openepd/model/specs/range/utility_piping.py +75 -0
  54. openepd/model/specs/range/wood.py +228 -0
  55. openepd/model/specs/range/wood_joists.py +44 -0
  56. openepd/model/validation/numbers.py +11 -5
  57. openepd/model/validation/quantity.py +440 -52
  58. {openepd-5.0.0.dist-info → openepd-5.1.1.dist-info}/METADATA +6 -1
  59. {openepd-5.0.0.dist-info → openepd-5.1.1.dist-info}/RECORD +61 -26
  60. {openepd-5.0.0.dist-info → openepd-5.1.1.dist-info}/LICENSE +0 -0
  61. {openepd-5.0.0.dist-info → openepd-5.1.1.dist-info}/WHEEL +0 -0
@@ -0,0 +1,512 @@
1
+ #
2
+ # Copyright 2024 by C Change Labs Inc. www.c-change-labs.com
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+ __all__ = (
17
+ "PanelDoorsRangeV1",
18
+ "PressureResistantDoorsRangeV1",
19
+ "SpecialFunctionDoorsRangeV1",
20
+ "SlidingGlassDoorsRangeV1",
21
+ "FenestrationAccessoriesRangeV1",
22
+ "FenestrationFramingRangeV1",
23
+ "FenestrationHardwareRangeV1",
24
+ "FlatGlassPanesRangeV1",
25
+ "ProcessedNonInsulatingGlassPanesRangeV1",
26
+ "GlazedDoorsRangeV1",
27
+ "UnitSkylightsRangeV1",
28
+ "WindowsRangeV1",
29
+ "IntegratedDoorsOpeningAssembliesRangeV1",
30
+ "MetalDoorAndFramesRangeV1",
31
+ "SpecialtyDoorsAndFramesRangeV1",
32
+ "WoodDoorsRangeV1",
33
+ "FenestrationPartsRangeV1",
34
+ "GlassPanesRangeV1",
35
+ "NAFSFenestrationRangeV1",
36
+ "InsulatingGlazingUnitsRangeV1",
37
+ "CurtainWallsRangeV1",
38
+ "DoorsAndFramesRangeV1",
39
+ "EntrancesRangeV1",
40
+ "GlazingRangeV1",
41
+ "StorefrontsRangeV1",
42
+ "TranslucentWallAndRoofAssembliesRangeV1",
43
+ "WindowWallAssembliesRangeV1",
44
+ "OpeningsRangeV1",
45
+ )
46
+
47
+ # NB! This is a generated code. Do not edit it manually. Please see src/openepd/model/specs/README.md
48
+
49
+
50
+ from openepd.compat.pydantic import pyd
51
+ from openepd.model.common import RangeInt, RangeRatioFloat
52
+ from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
53
+ from openepd.model.specs.generated.enums import (
54
+ FlatGlassPanesThickness,
55
+ FrameMaterial,
56
+ HardwareFunction,
57
+ NAFSPerformanceGrade,
58
+ Spacer,
59
+ ThermalSeparation,
60
+ )
61
+ from openepd.model.specs.generated.openings import GlazingIntendedApplication, NAFSPerformanceClass
62
+ from openepd.model.validation.quantity import AmountRangeLengthMm, AmountRangePressureMpa, AmountRangeSpeed
63
+
64
+
65
+ class PanelDoorsRangeV1(BaseOpenEpdHierarchicalSpec):
66
+ """
67
+ Panel doors performance specification.
68
+
69
+ Range version.
70
+ """
71
+
72
+ _EXT_VERSION = "1.0"
73
+
74
+
75
+ class PressureResistantDoorsRangeV1(BaseOpenEpdHierarchicalSpec):
76
+ """
77
+ Pressure-Resistant Doors.
78
+
79
+ Range version.
80
+ """
81
+
82
+ _EXT_VERSION = "1.0"
83
+
84
+
85
+ class SpecialFunctionDoorsRangeV1(BaseOpenEpdHierarchicalSpec):
86
+ """
87
+ Special function doors.
88
+
89
+ Includes doors for e.g., cold storage, hangars, lightproof applications,
90
+ security, sound control, vaults, etc.
91
+
92
+ Range version.
93
+ """
94
+
95
+ _EXT_VERSION = "1.0"
96
+
97
+ PanelDoors: PanelDoorsRangeV1 | None = None
98
+ PressureResistantDoors: PressureResistantDoorsRangeV1 | None = None
99
+
100
+
101
+ class SlidingGlassDoorsRangeV1(BaseOpenEpdHierarchicalSpec):
102
+ """
103
+ Sliding glass doors performance specification.
104
+
105
+ Range version.
106
+ """
107
+
108
+ _EXT_VERSION = "1.0"
109
+
110
+
111
+ class FenestrationAccessoriesRangeV1(BaseOpenEpdHierarchicalSpec):
112
+ """
113
+ Fenestration accessories.
114
+
115
+ Gaskets, seals, fasteners, and other low-mass items which may be useful in calculating the impact of a
116
+ fenestration system.
117
+
118
+ Range version.
119
+ """
120
+
121
+ _EXT_VERSION = "1.0"
122
+
123
+
124
+ class FenestrationFramingRangeV1(BaseOpenEpdHierarchicalSpec):
125
+ """
126
+ Fenestration Framing.
127
+
128
+ Lineal elements ("sticks") for use in fenestration, including frames, sashes, and mullions.
129
+
130
+ Range version.
131
+ """
132
+
133
+ _EXT_VERSION = "1.0"
134
+
135
+ thermal_separation: list[ThermalSeparation] | None = pyd.Field(default=None)
136
+ material: list[FrameMaterial] | None = pyd.Field(default=None)
137
+
138
+
139
+ class FenestrationHardwareRangeV1(BaseOpenEpdHierarchicalSpec):
140
+ """
141
+ Locks, operation hardware, and other substantial items declared on a per-piece basis.
142
+
143
+ Range version.
144
+ """
145
+
146
+ _EXT_VERSION = "1.0"
147
+
148
+ function: list[HardwareFunction] | None = pyd.Field(default=None, description="")
149
+
150
+
151
+ class FlatGlassPanesRangeV1(BaseOpenEpdHierarchicalSpec):
152
+ """
153
+ Monolithic, uncoated flat glass panes that are not substantially processed.
154
+
155
+ Range version.
156
+ """
157
+
158
+ _EXT_VERSION = "1.0"
159
+
160
+ thickness: list[FlatGlassPanesThickness] | None = pyd.Field(default=None)
161
+
162
+
163
+ class ProcessedNonInsulatingGlassPanesRangeV1(BaseOpenEpdHierarchicalSpec):
164
+ """
165
+ Solid glass panes without internal gaps which have been heat-treated or otherwise substantially processed.
166
+
167
+ Includes:
168
+ 1. Coatings including low-e and other coatings (see PCR)
169
+ 2. laminating (fire-rated, glass clad polycarbonate, interlayers
170
+ 3. Heat treated (heat strengthened, tempered, fire-rated)
171
+ 4. Mechanically or chemically processed or fabricated
172
+ (edging, bending, etching, drilling, notching, cutting, polishing, etc)
173
+ 5. combined products of processing in 1-5.
174
+
175
+ Range version.
176
+ """
177
+
178
+ _EXT_VERSION = "1.0"
179
+
180
+ low_emissivity: bool | None = None
181
+ electrochromic: bool | None = None
182
+ acid_etched: bool | None = None
183
+ tempered: bool | None = None
184
+ toughened: bool | None = None
185
+ laminated: bool | None = None
186
+ fire_resistant: bool | None = None
187
+ fire_protection: bool | None = None
188
+ pyrolytic_coated: bool | None = None
189
+ sputter_coat: bool | None = None
190
+ solar_heat_gain: RangeRatioFloat | None = None
191
+
192
+
193
+ class GlazedDoorsRangeV1(BaseOpenEpdHierarchicalSpec):
194
+ """
195
+ Factory assembled door which is at least 50% glass by area.
196
+
197
+ Includes sliding patio doors and hinged doors.
198
+
199
+ Range version.
200
+ """
201
+
202
+ _EXT_VERSION = "1.0"
203
+
204
+
205
+ class UnitSkylightsRangeV1(BaseOpenEpdHierarchicalSpec):
206
+ """
207
+ Unit skylights performance specification.
208
+
209
+ A factory assembled fenestration unit for installation on the roof of a structure to provide interior
210
+ building spaces with natural daylight, warmth, and ventilation; generally not operable
211
+ by hand (cf. roof window). Includes frame(s) and possibly operating hardware.
212
+
213
+ Range version.
214
+ """
215
+
216
+ _EXT_VERSION = "1.0"
217
+
218
+
219
+ class WindowsRangeV1(BaseOpenEpdHierarchicalSpec):
220
+ """
221
+ Windows including glazing and frame material.
222
+
223
+ Range version.
224
+ """
225
+
226
+ _EXT_VERSION = "1.0"
227
+
228
+
229
+ class IntegratedDoorsOpeningAssembliesRangeV1(BaseOpenEpdHierarchicalSpec):
230
+ """
231
+ Pre-installed unit that includes door, frame, and hardware.
232
+
233
+ Range version.
234
+ """
235
+
236
+ _EXT_VERSION = "1.0"
237
+
238
+
239
+ class MetalDoorAndFramesRangeV1(BaseOpenEpdHierarchicalSpec):
240
+ """
241
+ Metal doors and frames.
242
+
243
+ Range version.
244
+ """
245
+
246
+ _EXT_VERSION = "1.0"
247
+
248
+
249
+ class SpecialtyDoorsAndFramesRangeV1(BaseOpenEpdHierarchicalSpec):
250
+ """
251
+ Specialty doors and frames.
252
+
253
+ Includes e.g., access doors and panels, sliding glass doors, coiling doors, special function doors,
254
+ folding doors, etc.
255
+
256
+ Range version.
257
+ """
258
+
259
+ _EXT_VERSION = "1.0"
260
+
261
+ SpecialFunctionDoors: SpecialFunctionDoorsRangeV1 | None = None
262
+ SlidingGlassDoors: SlidingGlassDoorsRangeV1 | None = None
263
+
264
+
265
+ class WoodDoorsRangeV1(BaseOpenEpdHierarchicalSpec):
266
+ """
267
+ Wood doors performance specification.
268
+
269
+ Range version.
270
+ """
271
+
272
+ _EXT_VERSION = "1.0"
273
+
274
+
275
+ class FenestrationPartsRangeV1(BaseOpenEpdHierarchicalSpec):
276
+ """
277
+ Fenestration Parts.
278
+
279
+ Parts and assemblies for integration into building fenestration such as windows, curtain walls,
280
+ and storefronts.
281
+
282
+ Range version.
283
+ """
284
+
285
+ _EXT_VERSION = "1.0"
286
+
287
+ intended_application: GlazingIntendedApplication | None = pyd.Field(
288
+ default=None, description="Intended application."
289
+ )
290
+ FenestrationAccessories: FenestrationAccessoriesRangeV1 | None = None
291
+ FenestrationFraming: FenestrationFramingRangeV1 | None = None
292
+ FenestrationHardware: FenestrationHardwareRangeV1 | None = None
293
+
294
+
295
+ class GlassPanesRangeV1(BaseOpenEpdHierarchicalSpec):
296
+ """
297
+ Flat glass panes.
298
+
299
+ Range version.
300
+ """
301
+
302
+ _EXT_VERSION = "1.0"
303
+
304
+ FlatGlassPanes: FlatGlassPanesRangeV1 | None = None
305
+ ProcessedNonInsulatingGlassPanes: ProcessedNonInsulatingGlassPanesRangeV1 | None = None
306
+
307
+
308
+ class NAFSFenestrationRangeV1(BaseOpenEpdHierarchicalSpec):
309
+ """
310
+ Factory assembled fenestration units compliant to the North American Fenestration Standard.
311
+
312
+ Range version.
313
+ """
314
+
315
+ _EXT_VERSION = "1.0"
316
+
317
+ low_emissivity: bool | None = None
318
+ electrochromic: bool | None = None
319
+ acid_etched: bool | None = None
320
+ tempered: bool | None = None
321
+ toughened: bool | None = None
322
+ laminated: bool | None = None
323
+ fire_resistant: bool | None = None
324
+ fire_protection: bool | None = None
325
+ pyrolytic_coated: bool | None = None
326
+ sputter_coat: bool | None = None
327
+ solar_heat_gain: RangeRatioFloat | None = None
328
+ hurricane_resistant: bool | None = pyd.Field(
329
+ default=None, description="The product has been designed to resist windborne debris."
330
+ )
331
+ assembly_u_factor: str | None = pyd.Field(
332
+ default=None, description="Weighted average conductance of heat across assembly (including frame)."
333
+ )
334
+ air_infiltration: AmountRangeSpeed | None = pyd.Field(
335
+ default=None, description="Air infiltration, measured at a certain level of Differential Pressure."
336
+ )
337
+ thermal_separation: list[ThermalSeparation] | None = pyd.Field(default=None)
338
+ dp_rating: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
339
+ glass_panes: RangeInt | None = pyd.Field(
340
+ default=None,
341
+ description="Number of panes, each separated by a cavity. A 3 pane unit has 2 cavities. example: 3",
342
+ )
343
+ performance_class: NAFSPerformanceClass | None = pyd.Field(
344
+ default=None, description="Performance class according to NAFS."
345
+ )
346
+ performance_grade: list[NAFSPerformanceGrade] | None = pyd.Field(
347
+ default=None,
348
+ description="NAFS Performance Grade. The NAFS Performance Grade is a number that represents the performance of the glazing product. The higher the number, the better the performance. The NAFS Performance Grade is calculated using the NAFS Performance Class, the NAFS Performance Index, and the NAFS Performance Factor. While it is expressed as pressure, there are specific values which are allowed. The values are listed in the enum.",
349
+ )
350
+ GlazedDoors: GlazedDoorsRangeV1 | None = None
351
+ UnitSkylights: UnitSkylightsRangeV1 | None = None
352
+ Windows: WindowsRangeV1 | None = None
353
+
354
+
355
+ class InsulatingGlazingUnitsRangeV1(BaseOpenEpdHierarchicalSpec):
356
+ """
357
+ Insulating glazing units performance specification.
358
+
359
+ Range version.
360
+ """
361
+
362
+ _EXT_VERSION = "1.0"
363
+
364
+ low_emissivity: bool | None = None
365
+ electrochromic: bool | None = None
366
+ acid_etched: bool | None = None
367
+ tempered: bool | None = None
368
+ toughened: bool | None = None
369
+ laminated: bool | None = None
370
+ fire_resistant: bool | None = None
371
+ fire_protection: bool | None = None
372
+ pyrolytic_coated: bool | None = None
373
+ sputter_coat: bool | None = None
374
+ solar_heat_gain: RangeRatioFloat | None = None
375
+ intended_application: GlazingIntendedApplication | None = pyd.Field(
376
+ default=None, description="Intended application for IGUs."
377
+ )
378
+ hurricane_resistant: bool | None = pyd.Field(default=None)
379
+ dp_rating: AmountRangePressureMpa | None = pyd.Field(
380
+ default=None, description="Maximum Differential Pressure, a measure of wind tolerance."
381
+ )
382
+ air_infiltration: AmountRangeSpeed | None = pyd.Field(
383
+ default=None, description="Air infiltration, measured at a certain level of Differential Pressure."
384
+ )
385
+ glass_panes: RangeInt | None = pyd.Field(
386
+ default=None,
387
+ description="Number of panes, each separated by a cavity. A 3 pane unit has 2 cavities. example: 3",
388
+ )
389
+ cog_u_factor: str | None = pyd.Field(default=None, description="Conductance of heat at center of glass.")
390
+ spacer: list[Spacer] | None = pyd.Field(default=None, description="Spacer material for Integrated Glass Unit.")
391
+
392
+
393
+ class CurtainWallsRangeV1(BaseOpenEpdHierarchicalSpec):
394
+ """
395
+ Curtain Walls.
396
+
397
+ Exterior skin of building where walls are non-structural and are outboard of the floor slabs,
398
+ often as system of aluminum framing with vision glass and opaque panels of glass, metal, or other
399
+ materials.
400
+
401
+ Can be 'unitized' (prefabricated off-site) or 'stick' (fabricated on site).
402
+
403
+ Range version.
404
+ """
405
+
406
+ _EXT_VERSION = "1.0"
407
+
408
+
409
+ class DoorsAndFramesRangeV1(BaseOpenEpdHierarchicalSpec):
410
+ """
411
+ Doors (the operable part) and frames (what holds the door proper).
412
+
413
+ Range version.
414
+ """
415
+
416
+ _EXT_VERSION = "1.0"
417
+
418
+ height: AmountRangeLengthMm | None = pyd.Field(default=None)
419
+ width: AmountRangeLengthMm | None = pyd.Field(default=None)
420
+ IntegratedDoorsOpeningAssemblies: IntegratedDoorsOpeningAssembliesRangeV1 | None = None
421
+ MetalDoorAndFrames: MetalDoorAndFramesRangeV1 | None = None
422
+ SpecialtyDoorsAndFrames: SpecialtyDoorsAndFramesRangeV1 | None = None
423
+ WoodDoors: WoodDoorsRangeV1 | None = None
424
+
425
+
426
+ class EntrancesRangeV1(BaseOpenEpdHierarchicalSpec):
427
+ """
428
+ Building entrances (distinct from the door proper).
429
+
430
+ Range version.
431
+ """
432
+
433
+ _EXT_VERSION = "1.0"
434
+
435
+
436
+ class GlazingRangeV1(BaseOpenEpdHierarchicalSpec):
437
+ """
438
+ Glazing performance specification.
439
+
440
+ Broad category of glass-based products, accessories, and assemblies ranging from
441
+ glass panes and framing to curtain walls.
442
+
443
+ Range version.
444
+ """
445
+
446
+ _EXT_VERSION = "1.0"
447
+
448
+ FenestrationParts: FenestrationPartsRangeV1 | None = None
449
+ GlassPanes: GlassPanesRangeV1 | None = None
450
+ NAFSFenestration: NAFSFenestrationRangeV1 | None = None
451
+ InsulatingGlazingUnits: InsulatingGlazingUnitsRangeV1 | None = None
452
+
453
+
454
+ class StorefrontsRangeV1(BaseOpenEpdHierarchicalSpec):
455
+ """
456
+ Storefronts.
457
+
458
+ Fabricated building facades commonly used in retail applications, typically one or two stories
459
+ tall and using metal framing and glass.
460
+
461
+ Range version.
462
+ """
463
+
464
+ _EXT_VERSION = "1.0"
465
+
466
+
467
+ class TranslucentWallAndRoofAssembliesRangeV1(BaseOpenEpdHierarchicalSpec):
468
+ """
469
+ Translucent wall and roof assemblies.
470
+
471
+ Includes structured polycarbonate panel and fiberglass sandwich panel assemblies.
472
+
473
+ Range version.
474
+ """
475
+
476
+ _EXT_VERSION = "1.0"
477
+
478
+
479
+ class WindowWallAssembliesRangeV1(BaseOpenEpdHierarchicalSpec):
480
+ """
481
+ Window Wall Assemblies.
482
+
483
+ Exterior skin of building where walls are non-structural and sit between floor slabs, often as
484
+ system of aluminum framing with vision glass and opaque panels of glass, metal,
485
+ or other materials.
486
+
487
+ Range version.
488
+ """
489
+
490
+ _EXT_VERSION = "1.0"
491
+
492
+
493
+ class OpeningsRangeV1(BaseOpenEpdHierarchicalSpec):
494
+ """
495
+ Openings performance specification.
496
+
497
+ General category that includes windows, storefronts, window walls, curtain walls,
498
+ doors, entrances, etc.
499
+
500
+ Range version.
501
+ """
502
+
503
+ _EXT_VERSION = "1.0"
504
+
505
+ thickness: AmountRangeLengthMm | None = pyd.Field(default=None)
506
+ CurtainWalls: CurtainWallsRangeV1 | None = None
507
+ DoorsAndFrames: DoorsAndFramesRangeV1 | None = None
508
+ Entrances: EntrancesRangeV1 | None = None
509
+ Glazing: GlazingRangeV1 | None = None
510
+ Storefronts: StorefrontsRangeV1 | None = None
511
+ TranslucentWallAndRoofAssemblies: TranslucentWallAndRoofAssembliesRangeV1 | None = None
512
+ WindowWallAssemblies: WindowWallAssembliesRangeV1 | None = None
@@ -0,0 +1,31 @@
1
+ #
2
+ # Copyright 2024 by C Change Labs Inc. www.c-change-labs.com
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+ __all__ = ("OtherElectricalEquipmentRangeV1",)
17
+
18
+ # NB! This is a generated code. Do not edit it manually. Please see src/openepd/model/specs/README.md
19
+
20
+
21
+ from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
22
+
23
+
24
+ class OtherElectricalEquipmentRangeV1(BaseOpenEpdHierarchicalSpec):
25
+ """
26
+ Other Electrical Equipment.
27
+
28
+ Range version.
29
+ """
30
+
31
+ _EXT_VERSION = "1.0"