pyflightstream 0.40.0__tar.gz → 0.41.0__tar.gz
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.
- {pyflightstream-0.40.0/src/pyflightstream.egg-info → pyflightstream-0.41.0}/PKG-INFO +18 -13
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/README.md +17 -12
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/pyproject.toml +12 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_cli.py +4 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_console.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_deprecations.py +9 -110
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_digest.py +6 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_errors.py +2 -9
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_fsm.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_fsm_fresh.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_maturity.py +4 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_progress.py +5 -5
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/__init__.py +22 -106
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/_farfield_spec.py +8 -8
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/_fsi_external.py +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/_geometry_emit.py +6 -6
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/_geometry_instruction.py +6 -6
- pyflightstream-0.41.0/src/pyflightstream/cases/_matrix_upgrade.py +201 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/_setup_link.py +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/_skipped_families.py +25 -25
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/ccs_wing.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/farfield_inputs.py +11 -11
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/fsi_workspace.py +30 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/matrix.py +26 -294
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/naming.py +2 -41
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/pproc.py +74 -17
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/selection.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/settings.py +7 -6
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/setup_surfaces.py +5 -5
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/sixdof.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/__init__.py +2 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_additional.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_clock.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_export_first_step.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_exports.py +6 -5
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_farfield.py +82 -33
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_freestream.py +33 -33
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_geometry.py +12 -12
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_motion.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_names.py +4 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_pproc.py +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_probes.py +17 -10
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_qsteady_rotor.py +47 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_registry.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_rotor.py +7 -7
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_rows.py +5 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_sixdof.py +5 -5
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_skeleton.py +6 -6
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_streamlines.py +5 -5
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_timing.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_unsteady.py +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_vocabulary.py +6 -5
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_wake_length.py +15 -12
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/__init__.py +3 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/_meta.yaml +5 -6
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/actuators.yaml +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/advanced_settings.yaml +7 -7
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/aeroelastic_coupling.yaml +4 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/boundary_conditions.yaml +7 -7
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/motion_definitions.yaml +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/probe_points.yaml +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/solver_analysis.yaml +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/solver_export.yaml +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/solver_settings.yaml +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/surface_sections.yaml +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/unsteady_solver.yaml +4 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/farfield/balances.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/farfield/fields.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/farfield/quadrature.py +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/farfield/trefftz.py +11 -11
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/__init__.py +1 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/_direct_morphing.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/cli.py +9 -9
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/config.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/driver.py +70 -10
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/external.py +9 -9
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/loads.py +29 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/sections.py +56 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/state.py +1 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/__init__.py +19 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_additional.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_field_inputs.py +2 -0
- pyflightstream-0.41.0/src/pyflightstream/post/_matrix_template.py +116 -0
- pyflightstream-0.41.0/src/pyflightstream/post/_noise_products.py +142 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_products_campaign.py +5 -5
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_sim.py +39 -16
- pyflightstream-0.41.0/src/pyflightstream/post/_structure.py +141 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_tables.py +3 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/axes.py +6 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/corrections.py +38 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/farfield_fields.py +10 -8
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/farfield_products.py +27 -24
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/guides.py +2 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/inflow_tools.py +15 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/input_template.py +68 -115
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/point_tables.py +56 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/polar.py +42 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/probe_fields.py +12 -12
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/products.py +5 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/qsteady_noise.py +35 -17
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/rotor_table.py +14 -17
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/streamlines.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/superfile.py +28 -22
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/surfaces.py +2 -2
- pyflightstream-0.41.0/src/pyflightstream/probes/_model.py +93 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/probes/geometry.py +4 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/probes/lattice.py +3 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/probes/layouts.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/probes/planar.py +7 -6
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/_spec_ccs_mesh.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/_spec_ccs_noise.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/cli.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/geometry.py +1 -56
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/matrix.py +3 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/probes.py +2 -6
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/references/PHY-01.yaml +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/references/PHY-02.yaml +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/references/PHY-05.yaml +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/references/PHY-06.yaml +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/references/SMI-01.yaml +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/references/SMI-02.yaml +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/references/pressure-drag/PHY-01.yaml +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/references/pressure-drag/PHY-02.yaml +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/references/pressure-drag/PHY-05.yaml +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/references/pressure-drag/PHY-06.yaml +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/reference.py +10 -18
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/results/conditions.py +16 -13
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/results/wake.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_actions_counter.py +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_alias.py +6 -7
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_assessment.py +25 -30
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_campaign.py +4 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_cli_geometry.py +109 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_cli_mesh.py +7 -7
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_cli_parsers.py +8 -108
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_cli_print.py +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_cli_query.py +16 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_cli_query_point.py +3 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_collect_logs.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_collect_notes.py +4 -5
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_executors.py +13 -5
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_identity.py +4 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_mark_converged.py +12 -8
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_matrix_warnings.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_pending.py +2 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_plan.py +47 -21
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_points.py +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_rebuild.py +9 -6
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_rebuild_evidence.py +7 -12
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_rebuild_grouped.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_rebuild_summary.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_sweep.py +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/cli.py +25 -160
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/collect.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/matrix.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/records.py +22 -20
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/__init__.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/helpers.py +3 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/solver_setup.py +9 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/utils/cli.py +5 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/__init__.py +8 -26
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_degenerate.py +14 -14
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_free_space.py +9 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_geometry_build.py +63 -20
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_geometry_clean.py +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_geometry_convert.py +7 -5
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_geometry_instruction.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_geometry_record.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_geometry_sidecar.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_geometry_vtk.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_layout.py +44 -9
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_ledger_history.py +7 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_matrix_homes.py +3 -5
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_matrix_phases.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_missing_log.py +11 -11
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_query_point.py +3 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_refine/__init__.py +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_refine/_audit.py +25 -25
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_refine/_blocks.py +9 -7
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_refine/_config.py +24 -23
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_refine/_geometry.py +26 -26
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_refine/_grid.py +19 -17
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_refine/_level.py +53 -47
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_refine/_obj.py +3 -3
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_refine/_periodic.py +7 -7
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_refine/_remesh.py +18 -18
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_refine/_remesh_group.py +10 -10
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_refine/_remesh_pairs.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_row_setup.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_settings_file.py +16 -16
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_verdicts.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/actuator_profiles.py +1 -1
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/builds.py +5 -5
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/cli.py +39 -64
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/costs.py +2 -2
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/excel.py +20 -10
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/fsi_external_setup.py +4 -4
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/fsi_setup.py +167 -31
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/inputs.py +35 -333
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/ledger.py +9 -7
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/manifest.py +19 -34
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/matrix.py +2 -3
- pyflightstream-0.41.0/src/pyflightstream/workspace/migrate.py +174 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/naming.py +2 -2
- pyflightstream-0.41.0/src/pyflightstream/workspace/record_document.py +325 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/setup_standards.py +1 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/sidecars.py +2 -108
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/sixdof_setup.py +6 -6
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/storage.py +9 -10
- {pyflightstream-0.40.0 → pyflightstream-0.41.0/src/pyflightstream.egg-info}/PKG-INFO +18 -13
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream.egg-info/SOURCES.txt +6 -2
- pyflightstream-0.40.0/src/pyflightstream/cases/_matrix_upgrade.py +0 -975
- pyflightstream-0.40.0/src/pyflightstream/run/rename.py +0 -934
- pyflightstream-0.40.0/src/pyflightstream/workspace/rename_groups.py +0 -237
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/LICENSE +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/setup.cfg +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/__init__.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_atmosphere.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_decimal.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_expressions.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_fsi_calibration.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_lengths.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_mesh.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_retired_names.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_signature.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_textio.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_tokens.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/_yamlflow.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/_ccs.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/_matrix_layouts.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/_setup_keys.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/_sweep_names.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/_unsteady_actions.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/acoustics.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/ccs_fuselage.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/ccs_revolution.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/corrections.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/field_coverage.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/freestream.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/mesh.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/qsteady.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/reference_blocks.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/windows.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_actuator.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_batch_actions.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_batch_script.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_conventions.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_frames.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_gap_evidence.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_reductions.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_row_cells.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_solver_settings.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/cases/workflows/_steady.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/_schema.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/acoustics.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/base_regions.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/cad.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/cad_create.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/ccs_fuselage_mesh.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/ccs_revolve_mesh.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/ccs_wing_mesh.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/coordinate_systems.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/file_io.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/free_surfaces.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/inlets_outlets.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/mesh_import_export.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/mesh_operations.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/mesh_unite.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/mesh_wrapper.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/plots.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/runtime_settings.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/scene_settings.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/scenes.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/script_controls.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/simulation_controls.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/solver_contours.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/solver_initialization.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/stability_toolbox.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/streamlines.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/sweeper.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/transition_trips.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/commands/volume_sections.yaml +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/exceptions.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/extras.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/farfield/__init__.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/beam.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/calibration.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/centrifugal.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/errors.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/kinematics.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/materials.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/nodes.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/fsi/wing.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/options.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/overview.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_admit.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_condition.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_installed_copies.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_reduction_stage.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_rotor_plan.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_rotor_products.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_settings_product.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_stage.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/_transfer_functions.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/acoustics.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/boundary_layer.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/custom_polar.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/diagnostics.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/disc_maps.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/equations.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/field_frames.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/glossary.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/harmonics.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/provenance.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/qsteady.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/reductions.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/section_distributions.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/series.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/settings_table.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/unsteady.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/unsteady_polar.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/post/writers.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/probes/__init__.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/probes/errors.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/__init__.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/_spec_0400_gap.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/_spec_0400_gapbase.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/_spec_0400_gapedges.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/_spec_0400_gapkit.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/_spec_26125.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/_spec_catalog_b.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/_spec_kit.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/_spec_t1.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/compat.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/cost.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/drift.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/errors.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/physics.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/reports.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/qa/specs.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/results/__init__.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/results/core.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/results/exports.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/results/loads.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/results/log.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/results/native_surface.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/results/sectional_loads.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/results/surface.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/results/tables.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/__init__.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_additional.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_assemble.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_batch_collect.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_batch_exec.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_batch_plan.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_batch_run.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_batch_split.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_cli_parsers_storage.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_cli_query_history.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_continuation.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_continuation_frame.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_field_motion.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_grouped.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_ids.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_record_files.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_solver_windows.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_step_exports.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/run/_wake_edge_verdict.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/_arg_checks.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/_build_forms.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/_ledger_tables.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/_relaxed_te.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/_settings.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/_surface_averaging.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/_wake_edge_file.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/entities.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/motion.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/rotor_vocabulary.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/script/toggles.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/support.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/testing.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/utils/__init__.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/utils/database.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/utils/errors.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/utils/manual.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/versions.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_batch_life.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_batch_relocate.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_batches.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_effective.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_ledger_api.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_links.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_matrix_binding.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_query_files.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_query_logs.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_script_comparison.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/_step_prune.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/excel_bridge.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/excel_file.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/excel_sync.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/fields.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/flight_condition.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/hpc.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/selections.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/setup_inspection.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/trailing_edges.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream/workspace/wake_edges.py +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream.egg-info/dependency_links.txt +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream.egg-info/entry_points.txt +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream.egg-info/requires.txt +0 -0
- {pyflightstream-0.40.0 → pyflightstream-0.41.0}/src/pyflightstream.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyflightstream
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.41.0
|
|
4
4
|
Summary: Version-aware, didactic Python driver for the FlightStream panel-method solver
|
|
5
5
|
Author: Geovana Neves
|
|
6
6
|
License: MIT
|
|
@@ -60,7 +60,10 @@ Version-aware Python driver for the FlightStream panel-method solver: write a
|
|
|
60
60
|
run matrix, and pyflightstream plans, runs and post-processes every point,
|
|
61
61
|
from your workstation or a cluster. MIT licensed.
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
This source tree contains 0.41.0; CHANGELOG.md describes its changes and the
|
|
64
|
+
retained release history.
|
|
65
|
+
Use the [upgrade guidance](https://nevesgeovana.github.io/pyflightstream/upgrading/)
|
|
66
|
+
when moving an existing workspace to a newer package version.
|
|
64
67
|
|
|
65
68
|
**Documentation: [nevesgeovana.github.io/pyflightstream](https://nevesgeovana.github.io/pyflightstream/)**
|
|
66
69
|
|
|
@@ -94,18 +97,19 @@ pip install "pyflightstream[geom,fsi,plot,excel]"
|
|
|
94
97
|
Python 3.12 or newer. FlightStream itself is licensed separately and is
|
|
95
98
|
located through your workspace, never guessed.
|
|
96
99
|
|
|
97
|
-
## Quick start
|
|
100
|
+
## Quick start without a solver
|
|
98
101
|
|
|
99
102
|
```
|
|
100
|
-
pyfs-workspace init my-study
|
|
101
|
-
cd my-study # add a geometry, a matrix, a reference, a setup
|
|
102
|
-
pyfs-matrix plan matriz.fs # zero solver time: what will run, what is refused
|
|
103
|
-
pyfs-matrix run matriz.fs # runs every READY point
|
|
104
|
-
pyfs-matrix post --workspace . # rebuilds the products from the records
|
|
103
|
+
pyfs-workspace init my-study
|
|
105
104
|
```
|
|
106
105
|
|
|
107
106
|
[Getting started](https://nevesgeovana.github.io/pyflightstream/getting-started/)
|
|
108
|
-
|
|
107
|
+
starts with an executable solver-free example, then walks the geometry,
|
|
108
|
+
matrix, reference, setup and post-processing inputs needed before planning.
|
|
109
|
+
Initialization creates `my-study/inputs/INPUTS.md`; read it next. Planning
|
|
110
|
+
needs those inputs but no solver license. Running requires a separately
|
|
111
|
+
licensed FlightStream installation.
|
|
112
|
+
|
|
109
113
|
[From the GUI to pyfs](https://nevesgeovana.github.io/pyflightstream/gui-to-pyfs/)
|
|
110
114
|
maps each GUI step to the key that takes it here.
|
|
111
115
|
|
|
@@ -113,7 +117,7 @@ maps each GUI step to the key that takes it here.
|
|
|
113
117
|
|
|
114
118
|
| Tool | What it is for |
|
|
115
119
|
|---|---|
|
|
116
|
-
| `pyfs-workspace` | Create a workspace; archive
|
|
120
|
+
| `pyfs-workspace` | Create or migrate a workspace; archive simulations; prepare geometry, custom fields and actuator profiles |
|
|
117
121
|
| `pyfs-matrix` | Plan, run, collect and post a run matrix; storage (`space-in-use`, `free-space`, `delete-sims`) and `sync` between workspaces |
|
|
118
122
|
| `pyfs-qa` | Command-validity probes and physics regression on a licensed machine |
|
|
119
123
|
| `pyfs-fsi` | The structural executable of the aeroelastic coupling loop |
|
|
@@ -127,7 +131,7 @@ maps each GUI step to the key that takes it here.
|
|
|
127
131
|
| Parsers, tables, run manifest, reconstruction | supported |
|
|
128
132
|
| Campaigns, run matrices, workspace, pre-flight | supported |
|
|
129
133
|
| Far-field ledgers and probe surveys | **experimental** |
|
|
130
|
-
| FSI structural beam and modal analysis | **experimental** (`examples/wing_static_deflection.py`, `examples/fsi_campbell_diagram.py`) |
|
|
134
|
+
| FSI structural beam and modal analysis | **experimental** (`docs/examples/_sources/wing_static_deflection.py`, `docs/examples/_sources/fsi_campbell_diagram.py`) |
|
|
131
135
|
| FSI coupled driver (the four-phase loop) | **experimental**: offline replay only, never run against a live solver in CI |
|
|
132
136
|
| Rotary two-way coupling | **not validated** |
|
|
133
137
|
|
|
@@ -151,8 +155,9 @@ and the evidence behind it is narrower than for the supported rows.
|
|
|
151
155
|
| 26.125 | 26.12 | `operational` |
|
|
152
156
|
|
|
153
157
|
`operational` means the minimal geometry-to-loads workflow builds for that
|
|
154
|
-
version, checked by a test
|
|
155
|
-
|
|
158
|
+
version, checked by a test. `documented` describes the database support level;
|
|
159
|
+
it does not imply that no measurements exist for that build. Individual commands
|
|
160
|
+
may carry different evidence. The details, and how to tell
|
|
156
161
|
which build you have, are on
|
|
157
162
|
[Which build do I have](https://nevesgeovana.github.io/pyflightstream/builds/):
|
|
158
163
|
|
|
@@ -8,7 +8,10 @@ Version-aware Python driver for the FlightStream panel-method solver: write a
|
|
|
8
8
|
run matrix, and pyflightstream plans, runs and post-processes every point,
|
|
9
9
|
from your workstation or a cluster. MIT licensed.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
This source tree contains 0.41.0; CHANGELOG.md describes its changes and the
|
|
12
|
+
retained release history.
|
|
13
|
+
Use the [upgrade guidance](https://nevesgeovana.github.io/pyflightstream/upgrading/)
|
|
14
|
+
when moving an existing workspace to a newer package version.
|
|
12
15
|
|
|
13
16
|
**Documentation: [nevesgeovana.github.io/pyflightstream](https://nevesgeovana.github.io/pyflightstream/)**
|
|
14
17
|
|
|
@@ -42,18 +45,19 @@ pip install "pyflightstream[geom,fsi,plot,excel]"
|
|
|
42
45
|
Python 3.12 or newer. FlightStream itself is licensed separately and is
|
|
43
46
|
located through your workspace, never guessed.
|
|
44
47
|
|
|
45
|
-
## Quick start
|
|
48
|
+
## Quick start without a solver
|
|
46
49
|
|
|
47
50
|
```
|
|
48
|
-
pyfs-workspace init my-study
|
|
49
|
-
cd my-study # add a geometry, a matrix, a reference, a setup
|
|
50
|
-
pyfs-matrix plan matriz.fs # zero solver time: what will run, what is refused
|
|
51
|
-
pyfs-matrix run matriz.fs # runs every READY point
|
|
52
|
-
pyfs-matrix post --workspace . # rebuilds the products from the records
|
|
51
|
+
pyfs-workspace init my-study
|
|
53
52
|
```
|
|
54
53
|
|
|
55
54
|
[Getting started](https://nevesgeovana.github.io/pyflightstream/getting-started/)
|
|
56
|
-
|
|
55
|
+
starts with an executable solver-free example, then walks the geometry,
|
|
56
|
+
matrix, reference, setup and post-processing inputs needed before planning.
|
|
57
|
+
Initialization creates `my-study/inputs/INPUTS.md`; read it next. Planning
|
|
58
|
+
needs those inputs but no solver license. Running requires a separately
|
|
59
|
+
licensed FlightStream installation.
|
|
60
|
+
|
|
57
61
|
[From the GUI to pyfs](https://nevesgeovana.github.io/pyflightstream/gui-to-pyfs/)
|
|
58
62
|
maps each GUI step to the key that takes it here.
|
|
59
63
|
|
|
@@ -61,7 +65,7 @@ maps each GUI step to the key that takes it here.
|
|
|
61
65
|
|
|
62
66
|
| Tool | What it is for |
|
|
63
67
|
|---|---|
|
|
64
|
-
| `pyfs-workspace` | Create a workspace; archive
|
|
68
|
+
| `pyfs-workspace` | Create or migrate a workspace; archive simulations; prepare geometry, custom fields and actuator profiles |
|
|
65
69
|
| `pyfs-matrix` | Plan, run, collect and post a run matrix; storage (`space-in-use`, `free-space`, `delete-sims`) and `sync` between workspaces |
|
|
66
70
|
| `pyfs-qa` | Command-validity probes and physics regression on a licensed machine |
|
|
67
71
|
| `pyfs-fsi` | The structural executable of the aeroelastic coupling loop |
|
|
@@ -75,7 +79,7 @@ maps each GUI step to the key that takes it here.
|
|
|
75
79
|
| Parsers, tables, run manifest, reconstruction | supported |
|
|
76
80
|
| Campaigns, run matrices, workspace, pre-flight | supported |
|
|
77
81
|
| Far-field ledgers and probe surveys | **experimental** |
|
|
78
|
-
| FSI structural beam and modal analysis | **experimental** (`examples/wing_static_deflection.py`, `examples/fsi_campbell_diagram.py`) |
|
|
82
|
+
| FSI structural beam and modal analysis | **experimental** (`docs/examples/_sources/wing_static_deflection.py`, `docs/examples/_sources/fsi_campbell_diagram.py`) |
|
|
79
83
|
| FSI coupled driver (the four-phase loop) | **experimental**: offline replay only, never run against a live solver in CI |
|
|
80
84
|
| Rotary two-way coupling | **not validated** |
|
|
81
85
|
|
|
@@ -99,8 +103,9 @@ and the evidence behind it is narrower than for the supported rows.
|
|
|
99
103
|
| 26.125 | 26.12 | `operational` |
|
|
100
104
|
|
|
101
105
|
`operational` means the minimal geometry-to-loads workflow builds for that
|
|
102
|
-
version, checked by a test
|
|
103
|
-
|
|
106
|
+
version, checked by a test. `documented` describes the database support level;
|
|
107
|
+
it does not imply that no measurements exist for that build. Individual commands
|
|
108
|
+
may carry different evidence. The details, and how to tell
|
|
104
109
|
which build you have, are on
|
|
105
110
|
[Which build do I have](https://nevesgeovana.github.io/pyflightstream/builds/):
|
|
106
111
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pyflightstream"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.41.0"
|
|
8
8
|
description = "Version-aware, didactic Python driver for the FlightStream panel-method solver"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {text = "MIT"}
|
|
@@ -187,6 +187,16 @@ testpaths = ["tests"]
|
|
|
187
187
|
# with `-o pythonpath=`.
|
|
188
188
|
pythonpath = ["src"]
|
|
189
189
|
markers = [
|
|
190
|
+
"pkg_core: tier-1 core package",
|
|
191
|
+
"pkg_script_results: tier-1 script-results package",
|
|
192
|
+
"pkg_probes_farfield: tier-1 probes-farfield package",
|
|
193
|
+
"pkg_fsi: tier-1 fsi package",
|
|
194
|
+
"pkg_cases: tier-1 cases package",
|
|
195
|
+
"pkg_workspace: tier-1 workspace package",
|
|
196
|
+
"pkg_run: tier-1 run package",
|
|
197
|
+
"pkg_post: tier-1 post package",
|
|
198
|
+
"pkg_qa: tier-1 qa package",
|
|
199
|
+
"pkg_guards: tier-1 repository guards package",
|
|
190
200
|
"needs_flightstream: requires a local FlightStream installation and license",
|
|
191
201
|
"validity: tier 2 per-command probe tests",
|
|
192
202
|
"physics: tier 3 physics regression matrix (slow)",
|
|
@@ -276,7 +286,7 @@ exclude_also = [
|
|
|
276
286
|
# modules exempted below still reports at least one error (re-counted with the
|
|
277
287
|
# sentence above). The per-module figures, the
|
|
278
288
|
# reproduction command and the dependency versions the count rests on are in
|
|
279
|
-
#
|
|
289
|
+
# the internal type-debt record; the release tooling re-derives the counts
|
|
280
290
|
# from a single run.
|
|
281
291
|
#
|
|
282
292
|
# THE PROSE AROUND THE SENTENCE IS NOT GUARDED AND WENT STALE ON 2026-08-20,
|
|
@@ -37,7 +37,7 @@ _POST_WARNINGS: ContextVar[bool | None] = ContextVar(
|
|
|
37
37
|
"pyflightstream_cli_post_warnings", default=None
|
|
38
38
|
)
|
|
39
39
|
#: Python's own warning format, held for the length of one invocation so a
|
|
40
|
-
#: console level chosen after the parse can put it back (FR-
|
|
40
|
+
#: console level chosen after the parse can put it back (FR-997).
|
|
41
41
|
_STANDARD_FORMAT: ContextVar[Callable[..., str] | None] = ContextVar(
|
|
42
42
|
"pyflightstream_cli_standard_format", default=None
|
|
43
43
|
)
|
|
@@ -73,7 +73,7 @@ def note_post_ran() -> None:
|
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
def set_post_warning_policy(enabled: bool) -> None:
|
|
76
|
-
"""Set whether this invocation prints grouped post-processing warnings (FR-
|
|
76
|
+
"""Set whether this invocation prints grouped post-processing warnings (FR-996).
|
|
77
77
|
|
|
78
78
|
Read from the raw command line before the parse; a workspace settings file
|
|
79
79
|
or ``--no-pproc-warnings`` decides after it. Outside a console command it
|
|
@@ -89,7 +89,7 @@ def set_post_warning_policy(enabled: bool) -> None:
|
|
|
89
89
|
|
|
90
90
|
|
|
91
91
|
def set_console_level(level: str) -> None:
|
|
92
|
-
"""Set the console level of this invocation, chosen after the parse (FR-
|
|
92
|
+
"""Set the console level of this invocation, chosen after the parse (FR-997).
|
|
93
93
|
|
|
94
94
|
``verbose`` prints warnings in Python's full format, the other two levels in
|
|
95
95
|
the package's short one; :func:`pyflightstream._progress.set_console_level`
|
|
@@ -264,7 +264,7 @@ def cli_entrypoint[**P, R](function: Callable[P, R]) -> Callable[P, R]:
|
|
|
264
264
|
_POSTED.reset(posted_token)
|
|
265
265
|
_POST_WARNINGS.reset(warning_token)
|
|
266
266
|
_ACTIVE.reset(token)
|
|
267
|
-
# FR-
|
|
267
|
+
# FR-997: a quiet console says its errors and final line, then the signature.
|
|
268
268
|
_progress.release_quiet(terminal, failed=outcome in ("failed", "cancelled"))
|
|
269
269
|
if outcome == "success" and posted[0]:
|
|
270
270
|
outcome = "post"
|
|
@@ -36,7 +36,7 @@ _Subparsers = argparse._SubParsersAction
|
|
|
36
36
|
#: word longer than the room left (a long path) is kept whole on its own line.
|
|
37
37
|
WIDTH = 90
|
|
38
38
|
|
|
39
|
-
#: The console levels of a command (FR-
|
|
39
|
+
#: The console levels of a command (FR-997), least to most: ``quiet`` says the
|
|
40
40
|
#: errors, the final summary line and the signature; ``normal`` is the console of
|
|
41
41
|
#: 0.38.0; ``verbose`` is its ``--verbose``. The activity log is full at every level.
|
|
42
42
|
CONSOLE_LEVELS = ("quiet", "normal", "verbose")
|
|
@@ -640,100 +640,18 @@ def removed_names_hook(module: str) -> Callable[[str], object]:
|
|
|
640
640
|
return refuse
|
|
641
641
|
|
|
642
642
|
|
|
643
|
-
#:
|
|
644
|
-
#:
|
|
645
|
-
#:
|
|
646
|
-
#: releases rather than one because a workspace migrates its inputs by
|
|
647
|
-
#: hand and the tables are shared by every row of a configuration.
|
|
648
|
-
_MOVED_TO_THE_REFERENCE = (
|
|
649
|
-
"A boundary name and a coordinate system are properties of the "
|
|
650
|
-
"CONFIGURATION, and a preset is per condition."
|
|
651
|
-
)
|
|
652
|
-
SETUP_ALIASES_TABLE = DeprecatedParameter(
|
|
653
|
-
owner="the setup preset",
|
|
654
|
-
old="[aliases]",
|
|
655
|
-
new="the same table in the reference artifact",
|
|
656
|
-
deprecated_since="0.15.0",
|
|
657
|
-
removal_version="0.18.0",
|
|
658
|
-
extra=_MOVED_TO_THE_REFERENCE,
|
|
659
|
-
)
|
|
660
|
-
SETUP_FRAMES_TABLE = DeprecatedParameter(
|
|
661
|
-
owner="the setup preset",
|
|
662
|
-
old="[[frames]]",
|
|
663
|
-
new="the same table in the reference artifact",
|
|
664
|
-
deprecated_since="0.15.0",
|
|
665
|
-
removal_version="0.18.0",
|
|
666
|
-
extra=_MOVED_TO_THE_REFERENCE,
|
|
667
|
-
)
|
|
668
|
-
#: THE FIVE ROW KEYS AN ALIAS REPLACES (FR-61). The reference states each
|
|
669
|
-
#: of them once, in the rotor's own block, so a row states the alias and
|
|
670
|
-
#: nothing else about the rotor.
|
|
671
|
-
_STATED_IN_THE_BLOCK = (
|
|
672
|
-
"The reference states it once, in the rotor's own block, and a row names the rotor by alias."
|
|
673
|
-
)
|
|
643
|
+
#: A motion record must name its rotor by alias. Flat rotor rows retain their
|
|
644
|
+
#: accepted axis, origin, sign and blade-count keys; this refusal is conditional
|
|
645
|
+
#: on MOVING_BOUNDARIES appearing inside a MOTIONS record.
|
|
674
646
|
ROW_MOVING_BOUNDARIES = DeprecatedParameter(
|
|
675
|
-
owner="a
|
|
647
|
+
owner="a MOTIONS record",
|
|
676
648
|
old="MOVING_BOUNDARIES",
|
|
677
649
|
new="MOVING_BC_ALIAS",
|
|
678
650
|
deprecated_since="0.15.0",
|
|
679
651
|
removal_version="0.18.0",
|
|
680
|
-
extra=_STATED_IN_THE_BLOCK,
|
|
681
|
-
)
|
|
682
|
-
ROW_ROTOR_AXIS = DeprecatedParameter(
|
|
683
|
-
owner="a motion record",
|
|
684
|
-
old="ROTOR_AXIS",
|
|
685
|
-
new="the axis of the rotor the record names",
|
|
686
|
-
deprecated_since="0.15.0",
|
|
687
|
-
removal_version="0.18.0",
|
|
688
|
-
extra=_STATED_IN_THE_BLOCK,
|
|
689
|
-
)
|
|
690
|
-
ROW_ROTOR_ORIGIN = DeprecatedParameter(
|
|
691
|
-
owner="a motion record",
|
|
692
|
-
old="ROTOR_ORIGIN",
|
|
693
|
-
new="the hub of the rotor the record names",
|
|
694
|
-
deprecated_since="0.15.0",
|
|
695
|
-
removal_version="0.18.0",
|
|
696
|
-
extra=_STATED_IN_THE_BLOCK,
|
|
697
|
-
)
|
|
698
|
-
ROW_RPM_SIGN = DeprecatedParameter(
|
|
699
|
-
owner="a motion record",
|
|
700
|
-
old="RPM_SIGN",
|
|
701
|
-
new="the rpm_sign of the rotor the record names",
|
|
702
|
-
deprecated_since="0.15.0",
|
|
703
|
-
removal_version="0.18.0",
|
|
704
|
-
extra=_STATED_IN_THE_BLOCK,
|
|
705
|
-
)
|
|
706
|
-
ROW_BLADES = DeprecatedParameter(
|
|
707
|
-
owner="a motion record",
|
|
708
|
-
old="BLADES",
|
|
709
|
-
new="the length of that rotor's families_blades",
|
|
710
|
-
deprecated_since="0.15.0",
|
|
711
|
-
removal_version="0.18.0",
|
|
712
652
|
extra=(
|
|
713
|
-
"
|
|
714
|
-
"
|
|
715
|
-
"reduces over four and no row states a number that can disagree "
|
|
716
|
-
"with the file it opens."
|
|
717
|
-
),
|
|
718
|
-
)
|
|
719
|
-
#: A KEY BECOMING REQUIRED IS NOT A RENAME, and this is the first entry of
|
|
720
|
-
#: that shape. `old` is the ABSENCE and `new` is the key, because what a
|
|
721
|
-
#: reader needs is the sentence "you have until 0.17.0 to add this", which
|
|
722
|
-
#: the ledger's own renderer produces from those two fields. Written here
|
|
723
|
-
#: rather than only in the warning string, because a promise the deadline
|
|
724
|
-
#: guard cannot see is a promise nothing keeps (the interface lens of the
|
|
725
|
-
#: 0.15.0 release review).
|
|
726
|
-
ROW_CLOCK_MOTION_ON_A_FLAT_ROW = DeprecatedParameter(
|
|
727
|
-
owner="a rotor row in the pre-0.15.0 spelling",
|
|
728
|
-
old="no CLOCK_MOTION, the clock following the fastest rotor",
|
|
729
|
-
new="CLOCK_MOTION naming the motion that owns the clock",
|
|
730
|
-
deprecated_since="0.15.0",
|
|
731
|
-
removal_version="0.18.0",
|
|
732
|
-
extra=(
|
|
733
|
-
"A row stating a MOTIONS list is refused without the key since "
|
|
734
|
-
"0.15.0. A flat-form row that turns more than one rotor is refused "
|
|
735
|
-
"without it as well, and a flat-form row turning ONE rotor needs no "
|
|
736
|
-
"key, because there is nothing to choose between."
|
|
653
|
+
"A MOTIONS record names a rotor alias from the reference. "
|
|
654
|
+
"Flat rotor row keys remain accepted."
|
|
737
655
|
),
|
|
738
656
|
)
|
|
739
657
|
ROW_ROTATE_FAMILIES = DeprecatedParameter(
|
|
@@ -795,30 +713,11 @@ ROW_BLADES_SELECTOR = DeprecatedParameter(
|
|
|
795
713
|
#: the entry moves rather than staying here unspoken. Its home is
|
|
796
714
|
#: :data:`pyflightstream._retired_names.PROBE_SCALE_PROPELLER_RADIUS`.
|
|
797
715
|
|
|
798
|
-
#:
|
|
799
|
-
#:
|
|
800
|
-
#:
|
|
801
|
-
#: 2026-09-10 is that this release breaks them rather than carrying two
|
|
802
|
-
#: vocabularies into a package with no stable version: a promise made
|
|
803
|
-
#: inside an unreleased version was never a promise to anyone.
|
|
804
|
-
#:
|
|
805
|
-
#: The entries stay as objects because their `message()` is the sentence the
|
|
806
|
-
#: REFUSALS print, and one home for a sentence is what this module is for.
|
|
807
|
-
#: They are out of :data:`DEPRECATIONS` because that tuple is what the Tier 1
|
|
808
|
-
#: deadline guard reads, and there is no shim left for it to watch expire.
|
|
809
|
-
#:
|
|
810
|
-
#: The 0.14.0 batch is deliberately NOT here. Those promises were published,
|
|
811
|
-
#: they expire at 0.16.0 which is the next release anyway, and breaking them
|
|
812
|
-
#: would break a workspace that upgraded on the strength of them.
|
|
716
|
+
#: Live refusal messages for removed spellings, not unconditional bans on
|
|
717
|
+
#: flat rotor row keys. These entries have callers; obsolete catalog-only
|
|
718
|
+
#: entries are not promises or active refusals.
|
|
813
719
|
REFUSED_IN_0_15_0: tuple[Deprecation, ...] = (
|
|
814
|
-
SETUP_ALIASES_TABLE,
|
|
815
|
-
SETUP_FRAMES_TABLE,
|
|
816
720
|
ROW_MOVING_BOUNDARIES,
|
|
817
|
-
ROW_ROTOR_AXIS,
|
|
818
|
-
ROW_ROTOR_ORIGIN,
|
|
819
|
-
ROW_RPM_SIGN,
|
|
820
|
-
ROW_BLADES,
|
|
821
|
-
ROW_CLOCK_MOTION_ON_A_FLAT_ROW,
|
|
822
721
|
ROW_ROTATE_FAMILIES,
|
|
823
722
|
ROW_EACH_BLADE,
|
|
824
723
|
ROW_AIRFRAME_SELECTOR,
|
|
@@ -124,6 +124,11 @@ EXCLUDED_FROM_EVERY_DIGEST = (
|
|
|
124
124
|
#: package for every ``hashlib`` call and fails on a module absent here,
|
|
125
125
|
#: so a new digest cannot enter with its canonical form unstated.
|
|
126
126
|
CANONICAL_FORMS = {
|
|
127
|
+
"workspace/record_document.py": (
|
|
128
|
+
"the UTF-8 encoding of JSON with sorted keys, compact comma/colon separators "
|
|
129
|
+
"and ensure_ascii=True for each shared solver, frame or geometry definition. "
|
|
130
|
+
"The full SHA-256 names the immutable definition in its workspace registry."
|
|
131
|
+
),
|
|
127
132
|
"_digest.py": (
|
|
128
133
|
"the raw bytes of a file, read in blocks and never decoded; or the "
|
|
129
134
|
"UTF-8 encoding of a string. Nothing else is read: not the path, not "
|
|
@@ -225,7 +230,7 @@ CANONICAL_FORMS = {
|
|
|
225
230
|
"newline, 'name key=value ...' with the keys sorted, factor always "
|
|
226
231
|
"written and every other option only when it is not its default, a "
|
|
227
232
|
"number as the shortest text that reads back to the same float without "
|
|
228
|
-
"a trailing '.0' (FR-
|
|
233
|
+
"a trailing '.0' (FR-970). The first 8 hexadecimal characters name a "
|
|
229
234
|
"level folder whose automatic tag is too long; refine.json lists the "
|
|
230
235
|
"selected families as tag_selection, not the text."
|
|
231
236
|
),
|
|
@@ -171,15 +171,8 @@ class ProductArgumentError(PyflightstreamError, TypeError):
|
|
|
171
171
|
class ProductError(PyflightstreamError, ValueError):
|
|
172
172
|
"""A product cannot be written from what the run left.
|
|
173
173
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
The post layer raises it, and `workspace.rename_groups` -- the migration
|
|
177
|
-
that moves a user's existing products -- raised it by importing UPWARD into
|
|
178
|
-
`post`, an edge on the package's own import path that resolved only by the
|
|
179
|
-
relative order of two lines in a third file. Moving that block, or adding
|
|
180
|
-
any earlier `workspace` import to `post.products`, stopped the package
|
|
181
|
-
importing at all. An architecture lens found it; a circular import while
|
|
182
|
-
wiring item 14 is what made it urgent.
|
|
174
|
+
Defined in the shared error catalogue so callers can catch a product
|
|
175
|
+
refusal without importing the post-processing layer.
|
|
183
176
|
|
|
184
177
|
`post.products` re-exports it, so the public name and the pair of bases are
|
|
185
178
|
unchanged and `except ValueError` catches exactly what it always did.
|
|
@@ -1010,7 +1010,7 @@ def surface_mesh(
|
|
|
1010
1010
|
def boundary_owners(path: str | Path) -> tuple[int, ...]:
|
|
1011
1011
|
"""Return the boundary of every face of a saved simulation's mesh block, counted from 1.
|
|
1012
1012
|
|
|
1013
|
-
The geometry stage colours its preview by it (FR-
|
|
1013
|
+
The geometry stage colours its preview by it (FR-1107). Empty where the
|
|
1014
1014
|
block carries no boundary row this reader recognises.
|
|
1015
1015
|
|
|
1016
1016
|
Raises
|
|
@@ -11,7 +11,7 @@ trailing edges and the others), and everything else should come from the
|
|
|
11
11
|
script. So every block other than those is put back to the content a freshly
|
|
12
12
|
imported file holds.
|
|
13
13
|
|
|
14
|
-
WHAT IS RESET IS MEASURED, NEVER GUESSED (FR-
|
|
14
|
+
WHAT IS RESET IS MEASURED, NEVER GUESSED (FR-531). A saved simulation is a
|
|
15
15
|
sequence of ``$<NAME>_START$`` ... ``$<NAME>_END$`` blocks after a two-line
|
|
16
16
|
head (the solver's version, then its build). Measured on 2026-09-30 over the
|
|
17
17
|
ten committed tier-3 geometries, which the tier-3 preparation made by
|
|
@@ -375,7 +375,7 @@ def reset_to_fresh_import(text: str, unit: str | None, where: str) -> FreshReset
|
|
|
375
375
|
(),
|
|
376
376
|
f"{where}: no fresh import of build {build or 'unknown'} saved in "
|
|
377
377
|
f"{unit or 'an unread unit'} is measured, so every block other than the "
|
|
378
|
-
"saved solver actions is kept as it is (FR-
|
|
378
|
+
"saved solver actions is kept as it is (FR-531)",
|
|
379
379
|
)
|
|
380
380
|
eol, lines = _lines(text)
|
|
381
381
|
held = block_lines(text)
|
|
@@ -248,8 +248,6 @@ MATURITY = {
|
|
|
248
248
|
"pyflightstream.run.matrix": "stable",
|
|
249
249
|
# Module path added after v0.30.0.
|
|
250
250
|
"pyflightstream.run.records": "provisional",
|
|
251
|
-
# v0.30.0: run/rename.py
|
|
252
|
-
"pyflightstream.run.rename": "stable",
|
|
253
251
|
# v0.30.0: script/__init__.py
|
|
254
252
|
"pyflightstream.script": "stable",
|
|
255
253
|
# v0.30.0: script/entities.py
|
|
@@ -316,10 +314,12 @@ MATURITY = {
|
|
|
316
314
|
"pyflightstream.workspace.manifest": "provisional",
|
|
317
315
|
# v0.30.0: workspace/matrix.py
|
|
318
316
|
"pyflightstream.workspace.matrix": "stable",
|
|
317
|
+
# 0.41.0: explicit workspace migration and shared record definitions.
|
|
318
|
+
"pyflightstream.workspace.migrate": "provisional",
|
|
319
319
|
# v0.30.0: workspace/naming.py
|
|
320
320
|
"pyflightstream.workspace.naming": "stable",
|
|
321
|
-
#
|
|
322
|
-
"pyflightstream.workspace.
|
|
321
|
+
# 0.41.0: shared record definitions.
|
|
322
|
+
"pyflightstream.workspace.record_document": "provisional",
|
|
323
323
|
# Module path added after v0.30.0.
|
|
324
324
|
"pyflightstream.workspace.selections": "provisional",
|
|
325
325
|
# v0.30.0: workspace/setup_inspection.py
|
|
@@ -133,7 +133,7 @@ class _Terminal:
|
|
|
133
133
|
self.console: _Console | None = None
|
|
134
134
|
#: The width of the progress line a terminal shows now, to clear before any other line.
|
|
135
135
|
self.redrawn = 0
|
|
136
|
-
#: The ``quiet`` console level (FR-
|
|
136
|
+
#: The ``quiet`` console level (FR-997): what the console would show is
|
|
137
137
|
#: held, and only the errors and the final summary line are said at the end.
|
|
138
138
|
self.quiet = False
|
|
139
139
|
#: How deep the console is in its own chatter (the opening block, a stage
|
|
@@ -173,7 +173,7 @@ def command_terminal(*, verbose: bool) -> Iterator[_Terminal]:
|
|
|
173
173
|
|
|
174
174
|
|
|
175
175
|
def set_console_level(level: str) -> None:
|
|
176
|
-
"""Set the console level of the running command (FR-
|
|
176
|
+
"""Set the console level of the running command (FR-997).
|
|
177
177
|
|
|
178
178
|
``verbose`` is the console of ``--verbose``; ``normal`` the default one;
|
|
179
179
|
``quiet`` holds everything the console would show and, once the command
|
|
@@ -220,7 +220,7 @@ def _chatter() -> Iterator[None]:
|
|
|
220
220
|
|
|
221
221
|
|
|
222
222
|
def quiet_keeps(text: str, *, error: bool = False) -> None:
|
|
223
|
-
"""State a command's final summary, or one of its errors, for a quiet console (FR-
|
|
223
|
+
"""State a command's final summary, or one of its errors, for a quiet console (FR-997).
|
|
224
224
|
|
|
225
225
|
A ``quiet`` console says, once the command has ended, the errors and the
|
|
226
226
|
final summary line a command states here, whatever stream the command
|
|
@@ -250,7 +250,7 @@ def say_summary(text: str) -> None:
|
|
|
250
250
|
"""Print a command's final summary line on standard output, stated for a quiet console.
|
|
251
251
|
|
|
252
252
|
The same line :func:`print` writes, at every level; a ``quiet`` console
|
|
253
|
-
says it once the command has ended (FR-
|
|
253
|
+
says it once the command has ended (FR-997, :func:`quiet_keeps`).
|
|
254
254
|
|
|
255
255
|
Parameters
|
|
256
256
|
----------
|
|
@@ -788,7 +788,7 @@ class _ConsoleStream:
|
|
|
788
788
|
Each write clears a progress line a terminal shows, says the opening block
|
|
789
789
|
first where it is still owed, then goes to the stream it wraps and to the
|
|
790
790
|
live log. Every other attribute is the wrapped stream's. On a ``quiet``
|
|
791
|
-
console (FR-
|
|
791
|
+
console (FR-997) a write still reaches the live log and is not said:
|
|
792
792
|
of standard error what is not the console's own chatter is held, for
|
|
793
793
|
:func:`release_quiet` to say if the command fails; standard output is
|
|
794
794
|
said only through what the command states with :func:`quiet_keeps`.
|