v0.1-sprint0: Esqueleto completo AR-ShipDesign
- Estructura completa de carpetas (236 módulos stub + implementados) - pyproject.toml, requirements, .gitignore, LICENSE (propietario) - core/project.py: serialización .arsd (ZIP con JSON) - core/units.py: conversiones SI <-> imperial completas - ui/main_window.py: layout DELFTship-style con todos los paneles - Árbol de proyecto (dock izquierda) - Tabs de módulos (centro) - Panel de propiedades (dock derecha) - Panel hidrostáticos en vivo (inferior, fijo) - ui/i18n: español e inglés - ui/themes: tema claro y oscuro - utils/logger.py, settings.py, validation.py - data/liquids.json: 15 líquidos navales - data/stability_criteria.json: IMO IS Code 2008, A.749(18), USCG - tests/test_startup.py: 12 tests, todos PASSED - Módulo scantling/ ISO 12215 (stubs Sprint 2.5) - Módulo fabrication/molds/ para moldes FRP (stubs Sprint 13B) - Módulo fabrication/ para CNC plasma/router/laser (stubs Sprint 13)
This commit is contained in:
+253
@@ -0,0 +1,253 @@
|
||||
"""Script de creación de stubs — ejecutar una sola vez desde D:/AR-ShipDesign/"""
|
||||
import os
|
||||
|
||||
stubs = {
|
||||
"arshipdesign/core/__init__.py": "# arshipdesign/core\n",
|
||||
"arshipdesign/core/ship.py": '"""Clase Ship. Stub — Sprint 1."""\nclass Ship:\n def __init__(self): raise NotImplementedError("Ship — Sprint 1")\n',
|
||||
"arshipdesign/core/hull.py": '"""Geometría del casco NURBS. Stub — Sprint 1."""\nraise NotImplementedError("hull — Sprint 1")\n',
|
||||
"arshipdesign/core/appendage.py": '"""Apéndices. Stub — Sprint 1."""\nraise NotImplementedError("appendage — Sprint 1")\n',
|
||||
"arshipdesign/core/superstructure.py": '"""Superestructura. Stub — Sprint 1."""\nraise NotImplementedError("superstructure — Sprint 1")\n',
|
||||
"arshipdesign/core/offsets.py": '"""Tabla de offsets. Stub — Sprint 1."""\nraise NotImplementedError("offsets — Sprint 1")\n',
|
||||
"arshipdesign/core/waterplane.py": '"""Plano de flotación. Stub — Sprint 2."""\nraise NotImplementedError("waterplane — Sprint 2")\n',
|
||||
"arshipdesign/core/section.py": '"""Sección transversal. Stub — Sprint 1."""\nraise NotImplementedError("section — Sprint 1")\n',
|
||||
"arshipdesign/core/compartment.py": '"""Compartimento. Stub — Sprint 4."""\nraise NotImplementedError("compartment — Sprint 4")\n',
|
||||
"arshipdesign/core/tank.py": '"""Tanque. Stub — Sprint 4."""\nraise NotImplementedError("tank — Sprint 4")\n',
|
||||
"arshipdesign/core/liquid.py": '"""Líquidos. Stub — Sprint 4."""\nraise NotImplementedError("liquid — Sprint 4")\n',
|
||||
"arshipdesign/core/weight_item.py": '"""Peso puntual. Stub — Sprint 4."""\nraise NotImplementedError("weight_item — Sprint 4")\n',
|
||||
"arshipdesign/core/lightship.py": '"""Peso en rosca. Stub — Sprint 4."""\nraise NotImplementedError("lightship — Sprint 4")\n',
|
||||
"arshipdesign/core/loadcase.py": '"""Condiciones de carga. Stub — Sprint 4."""\nraise NotImplementedError("loadcase — Sprint 4")\n',
|
||||
"arshipdesign/core/rig.py": '"""Aparejo velero. Stub — Sprint 6."""\nraise NotImplementedError("rig — Sprint 6")\n',
|
||||
"arshipdesign/core/sail.py": '"""Velas. Stub — Sprint 6."""\nraise NotImplementedError("sail — Sprint 6")\n',
|
||||
"arshipdesign/core/engine.py": '"""Motor. Stub — Sprint 5."""\nraise NotImplementedError("engine — Sprint 5")\n',
|
||||
"arshipdesign/core/propeller.py": '"""Hélice. Stub — Sprint 5."""\nraise NotImplementedError("propeller — Sprint 5")\n',
|
||||
"arshipdesign/core/gear.py": '"""Reductora. Stub — Sprint 5."""\nraise NotImplementedError("gear — Sprint 5")\n',
|
||||
"arshipdesign/core/generator.py": '"""Genset. Stub — Sprint 7."""\nraise NotImplementedError("generator — Sprint 7")\n',
|
||||
"arshipdesign/core/battery.py": '"""Baterías. Stub — Sprint 7."""\nraise NotImplementedError("battery — Sprint 7")\n',
|
||||
"arshipdesign/core/electrical_load.py": '"""Carga eléctrica. Stub — Sprint 7."""\nraise NotImplementedError("electrical_load — Sprint 7")\n',
|
||||
"arshipdesign/core/pipe.py": '"""Tubería. Stub — Sprint 7."""\nraise NotImplementedError("pipe — Sprint 7")\n',
|
||||
"arshipdesign/core/valve.py": '"""Válvula. Stub — Sprint 7."""\nraise NotImplementedError("valve — Sprint 7")\n',
|
||||
"arshipdesign/core/pump.py": '"""Bomba. Stub — Sprint 7."""\nraise NotImplementedError("pump — Sprint 7")\n',
|
||||
"arshipdesign/core/system.py": '"""Sistema del buque. Stub — Sprint 7."""\nraise NotImplementedError("system — Sprint 7")\n',
|
||||
"arshipdesign/geometry/__init__.py": "# arshipdesign/geometry\n",
|
||||
"arshipdesign/geometry/nurbs_surface.py": '"""Superficie NURBS geomdl. Stub — Sprint 1."""\nraise NotImplementedError("nurbs_surface — Sprint 1")\n',
|
||||
"arshipdesign/geometry/nurbs_curve.py": '"""Curva NURBS. Stub — Sprint 1."""\nraise NotImplementedError("nurbs_curve — Sprint 1")\n',
|
||||
"arshipdesign/geometry/mesh.py": '"""Malla triangular. Stub — Sprint 1."""\nraise NotImplementedError("mesh — Sprint 1")\n',
|
||||
"arshipdesign/geometry/slicer.py": '"""Corte por planos. Stub — Sprint 1."""\nraise NotImplementedError("slicer — Sprint 1")\n',
|
||||
"arshipdesign/geometry/intersection.py": '"""Intersecciones. Stub — Sprint 1."""\nraise NotImplementedError("intersection — Sprint 1")\n',
|
||||
"arshipdesign/geometry/fairing.py": '"""Análisis curvatura. Stub — Sprint 1."""\nraise NotImplementedError("fairing — Sprint 1")\n',
|
||||
"arshipdesign/geometry/boolean.py": '"""Booleanas trimesh. Stub — Sprint 1."""\nraise NotImplementedError("boolean — Sprint 1")\n',
|
||||
"arshipdesign/geometry/fitting.py": '"""Ajuste NURBS. Stub — Sprint 1."""\nraise NotImplementedError("fitting — Sprint 1")\n',
|
||||
"arshipdesign/hydrostatics/__init__.py": "# arshipdesign/hydrostatics\n",
|
||||
"arshipdesign/hydrostatics/integrator.py": '"""Integradores Simpson. Stub — Sprint 2."""\nraise NotImplementedError("integrator — Sprint 2")\n',
|
||||
"arshipdesign/hydrostatics/upright.py": '"""Hidrostáticos vertical. Stub — Sprint 2."""\nraise NotImplementedError("upright — Sprint 2")\n',
|
||||
"arshipdesign/hydrostatics/heeled.py": '"""Equilibrio escorado. Stub — Sprint 3."""\nraise NotImplementedError("heeled — Sprint 3")\n',
|
||||
"arshipdesign/hydrostatics/trim.py": '"""Equilibrio asiento. Stub — Sprint 3."""\nraise NotImplementedError("trim — Sprint 3")\n',
|
||||
"arshipdesign/hydrostatics/free_floating.py": '"""Equilibrio libre 3DOF. Stub — Sprint 3."""\nraise NotImplementedError("free_floating — Sprint 3")\n',
|
||||
"arshipdesign/hydrostatics/coefficients.py": '"""Coeficientes de forma. Stub — Sprint 2."""\nraise NotImplementedError("coefficients — Sprint 2")\n',
|
||||
"arshipdesign/hydrostatics/curves_of_form.py": '"""Curvas hidrostáticas. Stub — Sprint 2."""\nraise NotImplementedError("curves_of_form — Sprint 2")\n',
|
||||
"arshipdesign/hydrostatics/bonjean.py": '"""Curvas Bonjean. Stub — Sprint 2."""\nraise NotImplementedError("bonjean — Sprint 2")\n',
|
||||
"arshipdesign/stability/__init__.py": "# arshipdesign/stability\n",
|
||||
"arshipdesign/stability/intact.py": '"""Estabilidad intacta GZ. Stub — Sprint 3."""\nraise NotImplementedError("intact — Sprint 3")\n',
|
||||
"arshipdesign/stability/damage.py": '"""Estabilidad avería. Stub — Sprint 3."""\nraise NotImplementedError("damage — Sprint 3")\n',
|
||||
"arshipdesign/stability/criteria.py": '"""Criterios IMO. Stub — Sprint 3."""\nraise NotImplementedError("criteria — Sprint 3")\n',
|
||||
"arshipdesign/stability/floodable_length.py": '"""Longitud inundable. Stub — Sprint 3."""\nraise NotImplementedError("floodable_length — Sprint 3")\n',
|
||||
"arshipdesign/stability/weather.py": '"""Criterio meteorológico. Stub — Sprint 3."""\nraise NotImplementedError("weather — Sprint 3")\n',
|
||||
"arshipdesign/scantling/__init__.py": "# arshipdesign/scantling\n",
|
||||
"arshipdesign/scantling/design_pressures.py": '"""Presiones diseño ISO 12215-5. Stub — Sprint 2.5."""\nraise NotImplementedError("design_pressures — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/plating.py": '"""Espesor mínimo forros. Stub — Sprint 2.5."""\nraise NotImplementedError("plating — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/frames.py": '"""Cuadernas módulo sección. Stub — Sprint 2.5."""\nraise NotImplementedError("frames — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/longitudinals.py": '"""Refuerzos longitudinales. Stub — Sprint 2.5."""\nraise NotImplementedError("longitudinals — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/deck_beams.py": '"""Baos cubierta. Stub — Sprint 2.5."""\nraise NotImplementedError("deck_beams — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/bulkheads.py": '"""Mamparos. Stub — Sprint 2.5."""\nraise NotImplementedError("bulkheads — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/keel_structure.py": '"""Quilla y varengas. Stub — Sprint 2.5."""\nraise NotImplementedError("keel_structure — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/mast_step.py": '"""Paso de mástil. Stub — Sprint 2.5."""\nraise NotImplementedError("mast_step — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/engine_beds.py": '"""Bancadas motor. Stub — Sprint 2.5."""\nraise NotImplementedError("engine_beds — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/keel_bolts.py": '"""Pernos quilla. Stub — Sprint 2.5."""\nraise NotImplementedError("keel_bolts — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/section_library.py": '"""Perfiles estructurales. Stub — Sprint 2.5."""\nraise NotImplementedError("section_library — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/framing_system.py": '"""Sistema de cuadernas. Stub — Sprint 2.5."""\nraise NotImplementedError("framing_system — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/optimizer.py": '"""Optimización peso/resistencia. Stub — Sprint 2.5."""\nraise NotImplementedError("optimizer — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/scantling_report.py": '"""Reporte escantillado. Stub — Sprint 2.5."""\nraise NotImplementedError("scantling_report — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/standards/__init__.py": "# scantling/standards\n",
|
||||
"arshipdesign/scantling/standards/iso_12215_5.py": '"""ISO 12215-5. Stub — Sprint 2.5."""\nraise NotImplementedError("iso_12215_5 — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/standards/iso_12215_6.py": '"""ISO 12215-6. Stub — Sprint 2.5."""\nraise NotImplementedError("iso_12215_6 — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/standards/iso_12215_9.py": '"""ISO 12215-9 veleros. Stub — Sprint 2.5."""\nraise NotImplementedError("iso_12215_9 — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/standards/lloyds_small_craft.py": '"""Lloyds Small Craft. Stub — Sprint 2.5."""\nraise NotImplementedError("lloyds_small_craft — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/materials/__init__.py": "# scantling/materials\n",
|
||||
"arshipdesign/scantling/materials/steel_structural.py": '"""Acero naval. Stub — Sprint 2.5."""\nraise NotImplementedError("steel_structural — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/materials/aluminum_marine.py": '"""Aluminio marino. Stub — Sprint 2.5."""\nraise NotImplementedError("aluminum_marine — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/materials/plywood_marine.py": '"""Plywood marino BS1088. Stub — Sprint 2.5."""\nraise NotImplementedError("plywood_marine — Sprint 2.5")\n',
|
||||
"arshipdesign/scantling/materials/frp_laminates.py": '"""Laminados FRP. Stub — Sprint 2.5."""\nraise NotImplementedError("frp_laminates — Sprint 2.5")\n',
|
||||
"arshipdesign/resistance/__init__.py": "# arshipdesign/resistance\n",
|
||||
"arshipdesign/resistance/holtrop_mennen.py": '"""Holtrop Mennen 1984. Stub — Sprint 5."""\nraise NotImplementedError("holtrop_mennen — Sprint 5")\n',
|
||||
"arshipdesign/resistance/savitsky.py": '"""Savitsky 1964. Stub — Sprint 5."""\nraise NotImplementedError("savitsky — Sprint 5")\n',
|
||||
"arshipdesign/resistance/van_oortmerssen.py": '"""Van Oortmerssen. Stub — Sprint 5."""\nraise NotImplementedError("van_oortmerssen — Sprint 5")\n',
|
||||
"arshipdesign/resistance/compton.py": '"""Compton 1986. Stub — Sprint 5."""\nraise NotImplementedError("compton — Sprint 5")\n',
|
||||
"arshipdesign/resistance/dsyhs.py": '"""DSYHS veleros. Stub — Sprint 6."""\nraise NotImplementedError("dsyhs — Sprint 6")\n',
|
||||
"arshipdesign/resistance/effective_power.py": '"""PE = RT x V. Stub — Sprint 5."""\nraise NotImplementedError("effective_power — Sprint 5")\n',
|
||||
"arshipdesign/resistance/added_resistance.py": '"""Resistencia en olas. Stub — Sprint 9."""\nraise NotImplementedError("added_resistance — Sprint 9")\n',
|
||||
"arshipdesign/propulsion/__init__.py": "# arshipdesign/propulsion\n",
|
||||
"arshipdesign/propulsion/wageningen_b.py": '"""Serie B Wageningen. Stub — Sprint 5."""\nraise NotImplementedError("wageningen_b — Sprint 5")\n',
|
||||
"arshipdesign/propulsion/propeller_design.py": '"""Diseño hélice. Stub — Sprint 5."""\nraise NotImplementedError("propeller_design — Sprint 5")\n',
|
||||
"arshipdesign/propulsion/propeller_matching.py": '"""Matching motor-hélice. Stub — Sprint 5."""\nraise NotImplementedError("propeller_matching — Sprint 5")\n',
|
||||
"arshipdesign/propulsion/cavitation.py": '"""Cavitación. Stub — Sprint 5."""\nraise NotImplementedError("cavitation — Sprint 5")\n',
|
||||
"arshipdesign/propulsion/waterjet.py": '"""Waterjet. Stub — Sprint 5."""\nraise NotImplementedError("waterjet — Sprint 5")\n',
|
||||
"arshipdesign/propulsion/pod.py": '"""Pod azimutal. Stub — Sprint 5."""\nraise NotImplementedError("pod — Sprint 5")\n',
|
||||
"arshipdesign/propulsion/electric_drive.py": '"""Propulsión eléctrica. Stub — Sprint 5."""\nraise NotImplementedError("electric_drive — Sprint 5")\n',
|
||||
"arshipdesign/fabrication/__init__.py": "# arshipdesign/fabrication\n",
|
||||
"arshipdesign/fabrication/bom.py": '"""BOM lista de materiales. Stub — Sprint 13."""\nraise NotImplementedError("bom — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/material_estimator.py": '"""Estimación de material. Stub — Sprint 13."""\nraise NotImplementedError("material_estimator — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/part_splitter.py": '"""División de piezas. Stub — Sprint 13."""\nraise NotImplementedError("part_splitter — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/nesting.py": '"""Nesting 2D. Stub — Sprint 13."""\nraise NotImplementedError("nesting — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/gcode_generator.py": '"""G-code CNC plasma/router/laser. Stub — Sprint 13."""\nraise NotImplementedError("gcode_generator — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/sheet.py": '"""Lámina de material. Stub — Sprint 13."""\nraise NotImplementedError("sheet — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/construction_sequence.py": '"""Secuencia de montaje. Stub — Sprint 13."""\nraise NotImplementedError("construction_sequence — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/fabrication_report.py": '"""Reporte fabricación. Stub — Sprint 13."""\nraise NotImplementedError("fabrication_report — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/joints/__init__.py": "# fabrication/joints\n",
|
||||
"arshipdesign/fabrication/joints/scarf_joint.py": '"""Scarf joint. Stub — Sprint 13."""\nraise NotImplementedError("scarf_joint — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/joints/butt_joint.py": '"""Butt joint. Stub — Sprint 13."""\nraise NotImplementedError("butt_joint — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/joints/weld_prep.py": '"""Preparación soldadura. Stub — Sprint 13."""\nraise NotImplementedError("weld_prep — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/joints/epoxy_bond.py": '"""Unión epóxica. Stub — Sprint 13."""\nraise NotImplementedError("epoxy_bond — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/details/__init__.py": "# fabrication/details\n",
|
||||
"arshipdesign/fabrication/details/slot_tab.py": '"""Slots y tabs. Stub — Sprint 13."""\nraise NotImplementedError("slot_tab — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/details/dogbone.py": '"""Dog-bones CNC. Stub — Sprint 13."""\nraise NotImplementedError("dogbone — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/details/limber_holes.py": '"""Agujeros achique. Stub — Sprint 13."""\nraise NotImplementedError("limber_holes — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/details/lightening_holes.py": '"""Vaciados aligeramiento. Stub — Sprint 13."""\nraise NotImplementedError("lightening_holes — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/details/alignment_marks.py": '"""Marcas alineación. Stub — Sprint 13."""\nraise NotImplementedError("alignment_marks — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/details/grain_direction.py": '"""Dirección fibra plywood. Stub — Sprint 13."""\nraise NotImplementedError("grain_direction — Sprint 13")\n',
|
||||
"arshipdesign/fabrication/standards/__init__.py": "# fabrication/standards\n",
|
||||
"arshipdesign/fabrication/standards/iso_12215.py": '"""ISO 12215 FRP construcción. Stub — Sprint 13B."""\nraise NotImplementedError("iso_12215 fabrication — Sprint 13B")\n',
|
||||
"arshipdesign/fabrication/standards/abyc.py": '"""ABYC. Stub — Sprint 13B."""\nraise NotImplementedError("abyc — Sprint 13B")\n',
|
||||
"arshipdesign/fabrication/materials/__init__.py": "# fabrication/materials\n",
|
||||
"arshipdesign/fabrication/molds/__init__.py": "# fabrication/molds — Moldes FRP\n",
|
||||
"arshipdesign/fabrication/molds/plug.py": '"""Plug macho FRP. Stub — Sprint 13B."""\nraise NotImplementedError("plug — Sprint 13B")\n',
|
||||
"arshipdesign/fabrication/molds/mold_female.py": '"""Molde hembra. Stub — Sprint 13B."""\nraise NotImplementedError("mold_female — Sprint 13B")\n',
|
||||
"arshipdesign/fabrication/molds/parting_line.py": '"""Línea partición. Stub — Sprint 13B."""\nraise NotImplementedError("parting_line — Sprint 13B")\n',
|
||||
"arshipdesign/fabrication/molds/station_molds.py": '"""Cuadernas del molde con offsets. Stub — Sprint 13B."""\nraise NotImplementedError("station_molds — Sprint 13B")\n',
|
||||
"arshipdesign/fabrication/molds/lofting.py": '"""Lofting tabla offsets. Stub — Sprint 13B."""\nraise NotImplementedError("lofting — Sprint 13B")\n',
|
||||
"arshipdesign/fabrication/molds/laminate_schedule.py": '"""Schedule laminado molde. Stub — Sprint 13B."""\nraise NotImplementedError("laminate_schedule — Sprint 13B")\n',
|
||||
"arshipdesign/fabrication/molds/hull_laminate.py": '"""Schedule laminado casco FRP. Stub — Sprint 13B."""\nraise NotImplementedError("hull_laminate — Sprint 13B")\n',
|
||||
"arshipdesign/fabrication/molds/resin_calculator.py": '"""Cálculo materiales FRP. Stub — Sprint 13B."""\nraise NotImplementedError("resin_calculator — Sprint 13B")\n',
|
||||
"arshipdesign/fabrication/molds/mold_structure.py": '"""Estructura del molde. Stub — Sprint 13B."""\nraise NotImplementedError("mold_structure — Sprint 13B")\n',
|
||||
"arshipdesign/fabrication/molds/mold_report.py": '"""Reporte molde FRP. Stub — Sprint 13B."""\nraise NotImplementedError("mold_report — Sprint 13B")\n',
|
||||
"arshipdesign/io/__init__.py": "# arshipdesign/io\n",
|
||||
"arshipdesign/io/offsets_csv.py": '"""Offsets CSV. Stub — Sprint 1."""\nraise NotImplementedError("offsets_csv — Sprint 1")\n',
|
||||
"arshipdesign/io/offsets_excel.py": '"""Offsets Excel. Stub — Sprint 1."""\nraise NotImplementedError("offsets_excel — Sprint 1")\n',
|
||||
"arshipdesign/io/dxf_reader.py": '"""Lectura DXF. Stub — Sprint 1."""\nraise NotImplementedError("dxf_reader — Sprint 1")\n',
|
||||
"arshipdesign/io/dxf_writer.py": '"""Escritura DXF. Stub — Sprint 10."""\nraise NotImplementedError("dxf_writer — Sprint 10")\n',
|
||||
"arshipdesign/io/stl_export.py": '"""Exportación STL. Stub — Sprint 1."""\nraise NotImplementedError("stl_export — Sprint 1")\n',
|
||||
"arshipdesign/io/obj_export.py": '"""Exportación OBJ. Stub — Sprint 1."""\nraise NotImplementedError("obj_export — Sprint 1")\n',
|
||||
"arshipdesign/io/pdf_export.py": '"""Exportación PDF. Stub — Sprint 10."""\nraise NotImplementedError("pdf_export — Sprint 10")\n',
|
||||
"arshipdesign/ui/__init__.py": "# arshipdesign/ui\n",
|
||||
"arshipdesign/ui/commands/__init__.py": "# ui/commands\n",
|
||||
"arshipdesign/ui/commands/command.py": '"""Command base Undo/Redo. Stub — Sprint 1."""\nraise NotImplementedError("command — Sprint 1")\n',
|
||||
"arshipdesign/ui/commands/modify_hull.py": '"""Comando modificar casco. Stub — Sprint 1."""\nraise NotImplementedError("modify_hull — Sprint 1")\n',
|
||||
"arshipdesign/ui/commands/add_tank.py": '"""Comando añadir tanque. Stub — Sprint 4."""\nraise NotImplementedError("add_tank — Sprint 4")\n',
|
||||
"arshipdesign/ui/shortcuts.py": "# Atajos de teclado — Stub Sprint 1\n",
|
||||
"arshipdesign/ui/widgets/__init__.py": "# ui/widgets\n",
|
||||
"arshipdesign/ui/widgets/viewer_3d.py": '"""Vista 3D PyVista. Stub — Sprint 1."""\nraise NotImplementedError("viewer_3d — Sprint 1")\n',
|
||||
"arshipdesign/ui/widgets/viewer_lines.py": '"""Plano líneas 2D. Stub — Sprint 1."""\nraise NotImplementedError("viewer_lines — Sprint 1")\n',
|
||||
"arshipdesign/ui/widgets/viewer_polar.py": '"""Diagrama polar. Stub — Sprint 6."""\nraise NotImplementedError("viewer_polar — Sprint 6")\n',
|
||||
"arshipdesign/ui/widgets/offsets_editor.py": '"""Editor offsets. Stub — Sprint 1."""\nraise NotImplementedError("offsets_editor — Sprint 1")\n',
|
||||
"arshipdesign/ui/widgets/tank_editor.py": '"""Editor tanques. Stub — Sprint 4."""\nraise NotImplementedError("tank_editor — Sprint 4")\n',
|
||||
"arshipdesign/ui/widgets/loadcase_editor.py": '"""Editor casos carga. Stub — Sprint 4."""\nraise NotImplementedError("loadcase_editor — Sprint 4")\n',
|
||||
"arshipdesign/ui/widgets/rig_editor.py": '"""Editor aparejo. Stub — Sprint 6."""\nraise NotImplementedError("rig_editor — Sprint 6")\n',
|
||||
"arshipdesign/ui/widgets/engine_picker.py": '"""Selector motor. Stub — Sprint 5."""\nraise NotImplementedError("engine_picker — Sprint 5")\n',
|
||||
"arshipdesign/ui/widgets/propeller_designer.py": '"""Diseñador hélice. Stub — Sprint 5."""\nraise NotImplementedError("propeller_designer — Sprint 5")\n',
|
||||
"arshipdesign/ui/widgets/electrical_load_table.py": '"""Tabla EPLA. Stub — Sprint 7."""\nraise NotImplementedError("electrical_load_table — Sprint 7")\n',
|
||||
"arshipdesign/ui/widgets/system_diagram_canvas.py": '"""Canvas P&ID. Stub — Sprint 7."""\nraise NotImplementedError("system_diagram_canvas — Sprint 7")\n',
|
||||
"arshipdesign/ui/widgets/curve_plotter.py": '"""Graficador curvas pyqtgraph. Stub — Sprint 3."""\nraise NotImplementedError("curve_plotter — Sprint 3")\n',
|
||||
"arshipdesign/ui/dialogs/__init__.py": "# ui/dialogs\n",
|
||||
"arshipdesign/ui/dialogs/wizards.py": '"""Wizards embarcaciones. Stub — Sprint 1."""\nraise NotImplementedError("wizards — Sprint 1")\n',
|
||||
"arshipdesign/ui/dialogs/stability_criteria_picker.py": '"""Criterios estabilidad. Stub — Sprint 3."""\nraise NotImplementedError("stability_criteria_picker — Sprint 3")\n',
|
||||
"arshipdesign/ui/dialogs/liquid_picker.py": '"""Selector líquido. Stub — Sprint 4."""\nraise NotImplementedError("liquid_picker — Sprint 4")\n',
|
||||
"arshipdesign/ui/dialogs/preferences.py": '"""Preferencias. Stub — Sprint 1."""\nraise NotImplementedError("preferences — Sprint 1")\n',
|
||||
"arshipdesign/systems/__init__.py": "# arshipdesign/systems\n",
|
||||
"arshipdesign/systems/electrical/__init__.py": "# systems/electrical\n",
|
||||
"arshipdesign/systems/electrical/load_analysis.py": '"""EPLA. Stub — Sprint 7."""\nraise NotImplementedError("load_analysis — Sprint 7")\n',
|
||||
"arshipdesign/systems/electrical/generator_sizing.py": '"""Generadores. Stub — Sprint 7."""\nraise NotImplementedError("generator_sizing — Sprint 7")\n',
|
||||
"arshipdesign/systems/electrical/battery_sizing.py": '"""Baterías. Stub — Sprint 7."""\nraise NotImplementedError("battery_sizing — Sprint 7")\n',
|
||||
"arshipdesign/systems/electrical/one_line_diagram.py": '"""Diagrama unifilar. Stub — Sprint 7."""\nraise NotImplementedError("one_line_diagram — Sprint 7")\n',
|
||||
"arshipdesign/systems/electrical/cable_sizing.py": '"""Cables. Stub — Sprint 7."""\nraise NotImplementedError("cable_sizing — Sprint 7")\n',
|
||||
"arshipdesign/systems/fuel/__init__.py": "# systems/fuel\n",
|
||||
"arshipdesign/systems/fuel/fuel_system.py": '"""Combustible. Stub — Sprint 7."""\nraise NotImplementedError("fuel_system — Sprint 7")\n',
|
||||
"arshipdesign/systems/fuel/autonomy.py": '"""Autonomía. Stub — Sprint 7."""\nraise NotImplementedError("autonomy — Sprint 7")\n',
|
||||
"arshipdesign/systems/fuel/day_tank.py": '"""Tanque diario. Stub — Sprint 7."""\nraise NotImplementedError("day_tank — Sprint 7")\n',
|
||||
"arshipdesign/systems/freshwater/__init__.py": "# systems/freshwater\n",
|
||||
"arshipdesign/systems/freshwater/fw_system.py": '"""Agua dulce. Stub — Sprint 7."""\nraise NotImplementedError("fw_system — Sprint 7")\n',
|
||||
"arshipdesign/systems/freshwater/watermaker.py": '"""Osmosis inversa. Stub — Sprint 7."""\nraise NotImplementedError("watermaker — Sprint 7")\n',
|
||||
"arshipdesign/systems/ballast/__init__.py": "# systems/ballast\n",
|
||||
"arshipdesign/systems/ballast/ballast_system.py": '"""Lastre. Stub — Sprint 7."""\nraise NotImplementedError("ballast_system — Sprint 7")\n',
|
||||
"arshipdesign/systems/bilge/__init__.py": "# systems/bilge\n",
|
||||
"arshipdesign/systems/bilge/bilge_system.py": '"""Achique. Stub — Sprint 7."""\nraise NotImplementedError("bilge_system — Sprint 7")\n',
|
||||
"arshipdesign/systems/bilge/oily_water_separator.py": '"""Separador sentinas OWS. Stub — Sprint 7."""\nraise NotImplementedError("oily_water_separator — Sprint 7")\n',
|
||||
"arshipdesign/systems/firefighting/__init__.py": "# systems/firefighting\n",
|
||||
"arshipdesign/systems/firefighting/fire_main.py": '"""CI agua salada. Stub — Sprint 8."""\nraise NotImplementedError("fire_main — Sprint 8")\n',
|
||||
"arshipdesign/systems/firefighting/co2_system.py": '"""CO2. Stub — Sprint 8."""\nraise NotImplementedError("co2_system — Sprint 8")\n',
|
||||
"arshipdesign/systems/firefighting/detection.py": '"""Detección incendios. Stub — Sprint 8."""\nraise NotImplementedError("detection — Sprint 8")\n',
|
||||
"arshipdesign/systems/hvac/__init__.py": "# systems/hvac\n",
|
||||
"arshipdesign/systems/hvac/heat_balance.py": '"""Balance térmico. Stub — Sprint 8."""\nraise NotImplementedError("heat_balance — Sprint 8")\n',
|
||||
"arshipdesign/systems/hvac/chiller_sizing.py": '"""Chiller. Stub — Sprint 8."""\nraise NotImplementedError("chiller_sizing — Sprint 8")\n',
|
||||
"arshipdesign/systems/steering/__init__.py": "# systems/steering\n",
|
||||
"arshipdesign/systems/steering/rudder_design.py": '"""Timón. Stub — Sprint 8."""\nraise NotImplementedError("rudder_design — Sprint 8")\n',
|
||||
"arshipdesign/systems/steering/steering_gear.py": '"""Servo. Stub — Sprint 8."""\nraise NotImplementedError("steering_gear — Sprint 8")\n',
|
||||
"arshipdesign/systems/steering/thrusters.py": '"""Thruster. Stub — Sprint 8."""\nraise NotImplementedError("thrusters — Sprint 8")\n',
|
||||
"arshipdesign/systems/anchoring/__init__.py": "# systems/anchoring\n",
|
||||
"arshipdesign/systems/anchoring/anchor_selection.py": '"""Ancla. Stub — Sprint 8."""\nraise NotImplementedError("anchor_selection — Sprint 8")\n',
|
||||
"arshipdesign/systems/anchoring/windlass.py": '"""Molinete. Stub — Sprint 8."""\nraise NotImplementedError("windlass — Sprint 8")\n',
|
||||
"arshipdesign/seakeeping/__init__.py": "# arshipdesign/seakeeping\n",
|
||||
"arshipdesign/seakeeping/strip_theory.py": '"""Strip theory STF. Stub — Sprint 9."""\nraise NotImplementedError("strip_theory — Sprint 9")\n',
|
||||
"arshipdesign/seakeeping/rao.py": '"""RAOs. Stub — Sprint 9."""\nraise NotImplementedError("rao — Sprint 9")\n',
|
||||
"arshipdesign/seakeeping/spectra.py": '"""Espectros olas. Stub — Sprint 9."""\nraise NotImplementedError("spectra — Sprint 9")\n',
|
||||
"arshipdesign/seakeeping/short_term.py": '"""Mar corto. Stub — Sprint 9."""\nraise NotImplementedError("short_term — Sprint 9")\n',
|
||||
"arshipdesign/seakeeping/slamming.py": '"""Pantocazo. Stub — Sprint 9."""\nraise NotImplementedError("slamming — Sprint 9")\n',
|
||||
"arshipdesign/seakeeping/motion_sickness.py": '"""MSI ISO 2631. Stub — Sprint 9."""\nraise NotImplementedError("motion_sickness — Sprint 9")\n',
|
||||
"arshipdesign/sailing/__init__.py": "# arshipdesign/sailing\n",
|
||||
"arshipdesign/sailing/vpp.py": '"""VPP. Stub — Sprint 6."""\nraise NotImplementedError("vpp — Sprint 6")\n',
|
||||
"arshipdesign/sailing/aero_model.py": '"""Modelo aerodinámico. Stub — Sprint 6."""\nraise NotImplementedError("aero_model — Sprint 6")\n',
|
||||
"arshipdesign/sailing/hydro_model.py": '"""Hidrodinámica velero. Stub — Sprint 6."""\nraise NotImplementedError("hydro_model — Sprint 6")\n',
|
||||
"arshipdesign/sailing/sail_coefficients.py": '"""CL CD velas. Stub — Sprint 6."""\nraise NotImplementedError("sail_coefficients — Sprint 6")\n',
|
||||
"arshipdesign/sailing/polar_diagram.py": '"""Diagrama polar. Stub — Sprint 6."""\nraise NotImplementedError("polar_diagram — Sprint 6")\n',
|
||||
"arshipdesign/sailing/multihull.py": '"""Multicasco. Stub — Sprint 6."""\nraise NotImplementedError("multihull — Sprint 6")\n',
|
||||
"arshipdesign/reports/__init__.py": "# arshipdesign/reports\n",
|
||||
"arshipdesign/reports/hydrostatic_report.py": '"""Reporte hidrostático. Stub — Sprint 10."""\nraise NotImplementedError("hydrostatic_report — Sprint 10")\n',
|
||||
"arshipdesign/reports/stability_booklet.py": '"""Cuaderno estabilidad. Stub — Sprint 10."""\nraise NotImplementedError("stability_booklet — Sprint 10")\n',
|
||||
"arshipdesign/reports/lines_plan.py": '"""Plano de líneas. Stub — Sprint 10."""\nraise NotImplementedError("lines_plan — Sprint 10")\n',
|
||||
"arshipdesign/reports/resistance_powering.py": '"""Reporte resistencia. Stub — Sprint 10."""\nraise NotImplementedError("resistance_powering — Sprint 10")\n',
|
||||
"arshipdesign/reports/pdf_builder.py": '"""Constructor PDFs. Stub — Sprint 10."""\nraise NotImplementedError("pdf_builder — Sprint 10")\n',
|
||||
"arshipdesign/parametric/__init__.py": "# arshipdesign/parametric\n",
|
||||
"arshipdesign/parametric/wigley.py": '"""Wigley validación. Stub — Sprint 1."""\nraise NotImplementedError("wigley — Sprint 1")\n',
|
||||
"arshipdesign/parametric/series60.py": '"""Serie 60. Stub — Sprint 11."""\nraise NotImplementedError("series60 — Sprint 11")\n',
|
||||
"arshipdesign/parametric/wizard_workboat.py": '"""Wizard workboat. Stub — Sprint 11."""\nraise NotImplementedError("wizard_workboat — Sprint 11")\n',
|
||||
"arshipdesign/parametric/wizard_cruiser.py": '"""Wizard crucero. Stub — Sprint 11."""\nraise NotImplementedError("wizard_cruiser — Sprint 11")\n',
|
||||
"arshipdesign/parametric/wizard_sailing_mono.py": '"""Wizard velero mono. Stub — Sprint 11."""\nraise NotImplementedError("wizard_sailing_mono — Sprint 11")\n',
|
||||
"arshipdesign/parametric/wizard_planing.py": '"""Wizard planeador. Stub — Sprint 11."""\nraise NotImplementedError("wizard_planing — Sprint 11")\n',
|
||||
"arshipdesign/parametric/lackenby_transform.py": '"""Lackenby. Stub — Sprint 11."""\nraise NotImplementedError("lackenby_transform — Sprint 11")\n',
|
||||
"arshipdesign/tanks/__init__.py": "# arshipdesign/tanks\n",
|
||||
"arshipdesign/tanks/tank_definition.py": '"""Definición tanque. Stub — Sprint 4."""\nraise NotImplementedError("tank_definition — Sprint 4")\n',
|
||||
"arshipdesign/tanks/sounding_table.py": '"""Tablas sondaje. Stub — Sprint 4."""\nraise NotImplementedError("sounding_table — Sprint 4")\n',
|
||||
"arshipdesign/tanks/fsm.py": '"""Free Surface Moment. Stub — Sprint 4."""\nraise NotImplementedError("fsm — Sprint 4")\n',
|
||||
"arshipdesign/tanks/capacity_plan.py": '"""Plan capacidades. Stub — Sprint 4."""\nraise NotImplementedError("capacity_plan — Sprint 4")\n',
|
||||
"arshipdesign/engines/__init__.py": "# arshipdesign/engines\n",
|
||||
"arshipdesign/engines/engine_db.py": '"""Catálogo motores. Stub — Sprint 5."""\nraise NotImplementedError("engine_db — Sprint 5")\n',
|
||||
"arshipdesign/engines/engine_selection.py": '"""Selección motor. Stub — Sprint 5."""\nraise NotImplementedError("engine_selection — Sprint 5")\n',
|
||||
"arshipdesign/engines/fuel_consumption.py": '"""Consumo combustible. Stub — Sprint 5."""\nraise NotImplementedError("fuel_consumption — Sprint 5")\n',
|
||||
"arshipdesign/engines/engine_curve.py": '"""Curva BHP RPM. Stub — Sprint 5."""\nraise NotImplementedError("engine_curve — Sprint 5")\n',
|
||||
"arshipdesign/engines/nox_emissions.py": '"""Emisiones NOx IMO. Stub — Sprint 5."""\nraise NotImplementedError("nox_emissions — Sprint 5")\n',
|
||||
"data/benchmarks/README.md": "# Cascos de validacion\n\nArchivos de referencia para validar los modulos de calculo.\n",
|
||||
"docs/user_manual.md": "# Manual de Usuario AR-ShipDesign\n\n*En construccion*\n",
|
||||
"docs/theory_manual.md": "# Manual Teorico AR-ShipDesign\n\nFormulas y referencias bibliograficas.\n\n*En construccion*\n",
|
||||
"docs/developer_guide.md": "# Guia del Desarrollador\n\n*En construccion*\n",
|
||||
"docs/validation_report.md": "# Reporte de Validacion\n\n*En construccion*\n",
|
||||
}
|
||||
|
||||
created = 0
|
||||
for path, content in stubs.items():
|
||||
if not os.path.exists(path):
|
||||
d = os.path.dirname(path)
|
||||
if d:
|
||||
os.makedirs(d, exist_ok=True)
|
||||
with open(path, "w", encoding="utf-8") as f:
|
||||
f.write(content)
|
||||
created += 1
|
||||
|
||||
print(f"OK {created} archivos creados")
|
||||
Reference in New Issue
Block a user